WPF Support

I'm having trouble working with a wpf-application. I manage to connect to the
program and draw an outline. But I don't manage to find any ControlIdentifiers.
All I get is the heading "Control Identifires:" and then nothing mote.

Do pywinauto support wpf, or just winforms? And if it only supports winforms,
are there any plans to support wpf?

What version of the product are you using? On what operating system?
pywinauto <IP_ADDRESS>, Windows 7 x64, .Net 4.0,

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 10 Jan 2011 at 12:40

Hmm... It seems UIA doesn't support TextPattern for native text controls like a label.
Guy Barker from MS claimed it here. So mixed (native+UIA) approach would be very useful if we were implemented it in pywinauto 0.6.x.

pywinauto 0.6.0 high-priority tasks status

[ ] 1) Make BaseWrapper abstract class.
[ ] 2) Create many UIA wrappers for every control type.

[ ] 2.1) Checkable & button controls like check boxes, radio buttons, buttons, group boxes etc.
[ ] 2.2) Plain list controls like list boxes and list views.

[ ] 3) [Vasily] Avoid __new__ method duplication in HwndWrapper, UIAWrapper & BaseWrapper.
[x] 4) [Vasily] Rewrite __getattr__ to __getattribute__ for new-style classes.
[ ] 5) Make most of the code PEP-8 complaint. Old native methods should have non-PEP-8 aliases for compatibility reasons.
[ ] 6) Make backend switching application-specific, not global. Expected result: app = Application(backend="uia").start('WpfApplication1.exe').

Meta class inheritance schema regarding (6.1), (3) and (1):
>>> import abc
>>> class BaseMeta(abc.ABCMeta):
... 	@staticmethod
... 	@abc.abstractmethod
... 	def find_wrapper(element_info):
... 		pass
...
>>> class BaseWrapper(object):
... 	__metaclass__ = BaseMeta
... 	def __new__(cls, element_info):
... 		new_class = cls.FindWrapper(element_info)
... 		return object.__new__(new_class)
...
>>> class HwndMeta(BaseMeta):
... 	@staticmethod
... 	def find_wrapper(element_info):
... 		return HwndWrapper
...
>>> class HwndWrapper(BaseWrapper):
... 	__metaclass__ = HwndMeta
...

@vasily-v-ryabov please fix the syntax in your schema. For Python 2.7, It should be:
class BaseMeta(object):
    __metaclass__ = abc.ABCMeta

You can't inherit metclass

It's checked on Py2.6. No syntax errors raised.

It's not about syntax. You'll get weird error messages when you try instantiate it. See a question on SO: http://stackoverflow.com/questions/31340339/python-error-when-initializing-a-class-derived-from-and-abstract-one

@airelil you can't instantiate a metaclass. I don't think that's what's happening here. Subclassing a metaclass is fine.

Yeah, I've found it in abc module help:

Using this decorator requires that the class’s metaclass is ABCMeta or is derived from it. A class that has a metaclass derived from ABCMeta cannot be instantiated unless all of its abstract methods and properties are overridden.

Even the following thing is possible:
@six.add_metaclass(abc.ABCMeta)
class BaseMeta(abc.ABCMeta):
    "Abstract metaclass for Wrapper objects"

    @staticmethod
    @abc.abstractmethod
    def find_wrapper(element):
        raise NotImplementedError()

Sorry, my bad. Didn't notice it was subclassing for another metaclass.

Several samples I found at Microsoft. Maybe they could be used for developing UIA wrappers.
TreeView: https://code.msdn.microsoft.com/windowsdesktop/File-system-TreeView-72549a6f
Ribbon controls: https://code.msdn.microsoft.com/windowsdesktop/Ribbon-Controls-Sample-003c390a
DataGrid: https://code.msdn.microsoft.com/windowsdesktop/Il-controllo-DataGrid-in-230577b3
Calculator (requires VS2012): https://code.msdn.microsoft.com/windowsdesktop/MyCalCulator-18767f9b

Control Type Identifiers
Control Pattern Identifiers

Hi Vasily,
Can you please let me know the expected completion date of pywinauto 0.6.0 for WPF support?

Hi @SravaniAnnepu, we're going to merge UIA branch into master till the end of September. 0.6.0 is planned for October.

Hi, I'm new with test automation and my question might be related to this WPF app support. At the moment i have a problem with identifier's, I'm using autoit V3 inspector tool to find out what are the identifier's in my app what I'm automating and I'm basically using class and instance to click example buttons, but what i really want to use is the control name (internal .NET Framework WinForms name). Because it seems that in some situation my instance number is changing so my tests are failing because of this and this control name seems to always be the same. Is there a possibility to use this control name as identifier in pywinauto? if not now maybe with pywinauto 0.6.0? I added also this picture to clarify my question :D so there you can see in the control tab that the name is button7 and this is what i want to use in my script like this.
ctrl = window[str('button7')]
ctrl.Click()

Hi @nimuston. It seems your case is WindowsForms application that is partially Win32 API compatible, so pywinauto 0.5.4 is able to use button7 as an identifier. Say app.Calculator.button7.click() should work.
Of course, coming MS UI Automation support is better for WinForms: it can detect more complicated control types. AutomationId of a control is another benefit of UIA. For WinForms AutomationId property is  usually a programmatic name of the control like m_buttonSeven (exactly what's declared in the source code of the app).
BTW, Inspect.exe is the best GUI object inspector (it uses UIA mode as well). It can be found in Windows SDK folders (just search in Program Files* folders for Inspect.exe).

Planned release date for 0.6.0 is October, 30. We're in the master branch. So early testing is available downloading master as zip and running python setup.py install.

@nimuston, to be more specific possible identifiers are <control_text> (returned by WindowText() method), <control_text><control_type> (like OKButton), <left_static_text><control_type> (like FileNameEdit) and <control_type><autoincrement_number> (unstable in your case).
But you also can create more detailed window specification to find proper control. Something like that
control_spec = app.Calculator.ChildWindow(title='7', class_name='Button', found_index=0)

# to make sure it's a proper control while debugging in interactive mode
real_ctrl = control_spec.wrapper_object()

control_spec.click()

found_index filters only found controls with the rest of search criteria specified in ChildWindow call. So if number of buttons with specified title or title_re is stable, it might be useful. In some cases only total number of all controls are changing while some specific controls are of the same amount.

hi,
If i'm not mistaken all the identifier's what pywinauto can use, can be printed out with PrintControlIdentifiers() method? and in this list there is no reference to this .net control name.
I sound to me that this AutomationId is the right solution for my problem, like you said
control's are named like m_buttonSeven and this is also the case here. Maybe this calculator example was bit misleading.
How this UI automation support will work in pywinauto 0.6.0? is it so that PrintControlIdentifiers() method will recognize then this control name?

Basically, any control that you can see with Inspector.exe running in "UIA mode" should be reached with "UIA" backend. UIA backend is activated during creating Application object:
app = pywinauto.application.Application(backend='uia')  # needs pywinauto 0.6 or later

so it should work something like this in pywinauto 0.6.0?
import pywinauto
app = pywinauto.application.Application(backend='uia')
app.Start('calc.exe')
app.Calculator.Button1.Click()
in this example button1 value comes from inspect.exe automationID field, but what if automationID is something like button1 how this is handled? should i make variable that contains this value example
button1 = 'button1'
if this example is totally wrong can you give me example how this should work with automationID?

If control name or AutomationId contains non-alphanumeric symbols, access by item key is possible:
app.Calculator["-button 1-"].Click()

or even more detailed window specification:
app.Calculator.ChildWindow(title_re='^.*7$', class_name='Button').Click()

In the issue #120 I've explained it in more details. Will move to the docs soon.

Hi @nimuston. I also created a small snippet based on the WPF application from our samples.
from pywinauto.application import Application

# Create Application with UIA backend
# (requires pywinauto 0.6 or greater)
app = Application(backend="uia")

# Start a WPF sample
app.start(r"apps\WPF_samples\x64\WpfApplication1.exe")

# Just define a window spec for a dialog window
# (no actual search for a dialog is performed at this point)
dlg = app.WpfApplicationSample

# Describe a control with a specific automation id
ctl = dlg.child_window(auto_id="button2")

# Only now we try to find a dialog and a control as they've been
# described by the window specs above. If the whole name resolution
# is succeeded the 'draw_outline' action will be applied to the control
ctl.draw_outline()

# To have a constant accesss to the control without having to run
# through name resolution process again and again we store the found
# wrapper
# (Notice that pywinauto run the additional search here to resolve ctl again)
wrp = ctl.wrapper_object()

# Now we have the wrapper at our hands and we can work with our control
wrp.draw_outline("red")
wrp.invoke()

Hi, Great example thank's for that. it works for me at some level, only problem is that pywinauto 0.6.0rc seems to crash my python interpreter time to time. When i type wpr.invoke( it freezes and then it is not responding anymore. Also when i import pywinauto library i get these info messages from comtypes module
"INFO: Imported existing <module 'comtypes.gen' from c:\python27\lib\site-packages\comtypes-1.1.2-py2.7.egg\comtypes\gen_init_.pyc'>"
"INFO: Using writeable comtypes cache directory: 'C:\python27\lib\sute-packages\comtypes-1.1.2-py2.7.egg\comtypes\gen'
btw is it possible for the real release of pywinauto 0.6.0 to get PrintControlIdentifiers() method to also print out these automationID's if they are available in the target software? it would be really helpful.
Also is the release date october 30 still valid? this is really good library for test automation so great job guys!!

Thank you, @nimuston. We really appreciate your feedback.
Release date is valid. We'll do our best to be on time.
The interpreter freeze problem happens because Python tries to resolve all the attributes to show you an auto-complete list. The default timeout for finding non-existing window/control is up to 5 seconds for 1 attribute. So it may appear as not responding window. Currently I have no idea how to improve it.
print_control_identifiers() should definitely be improved. I'm planning to add something like that for every control: child_window(title="some name", auto_id="m_name", control_type="Button") so that automation engineer could just copy-paste a detailed window specification into his code if necessary.

@vasily-v-ryabov , I'm not sure if the freeze of wrp.invoke( is because of attempting to find all controls. In my example wrp is a fully fledged wrapper object...
@nimuston, did you try to run a couple of UIA unittests? Just to make sure that your setup is good. This is how you could invoke a bunch of unit tests with a WPF sample:
python pywinauto/unittests/test_uiawrapper.py UIAWrapperTests

what about those comtypes info messages? i installed latest comtypes 1.1.3 library and i got even more info messages and also after that my python script does not work anymore.
what comtypes library i should use with pywinauto?
also it seems that in time to time i get this pywinauto.findwindows.ElementNotFoundError when i run my code.
from pywinauto.application import Application
app = Application(backend='uia')
app.start('C:\Users\Niko\Desktop\calculator.exe')
dlg = app.calculator
ctl = dlg.child_window(auto_id='button7')
wrp = ctl.wrapper_object()
wrp.invoke()
and below the error message i got
Traceback (most recent call last):
File "calc.py", line 7, in
wrp = ctl.wrapper_object()
File "build\bdist.win-amd64\egg\pywinauto\application.py", line 238, in wrappe
r_object
File "build\bdist.win-amd64\egg\pywinauto\application.py", line 231, in __reso
lve_control
pywinauto.findwindows.ElementNotFoundError: {'process': 3960, 'best_match': 'cal
culator', 'backend': u'uia'}

@airelil i ran those unittests and it ran 22 tests and seems to be ok

On my machine I use comtypes-1.1.2 Works for py27 and py34. Maybe you need to clean the generated caches in 'comtypes-1.1.2-py2.7.egg\comtypes\gen' folder manually.
Regarding your error, it doesn't look as the output for the specified script. ElementNotFoundError is raised when the lookup fails to match any control to the specified criteria. But for you script it should include the "auto_id" filter.
When I fail my example intentionally:
ctl = dlg.child_window(auto_id="button2111")  # <- Non-existing automation id
wrp = ctl.wrapper_object()
wrp.invoke()

I get a slightly different error with details of filters (including auto_id):
    230         except TimeoutError as e:
--> 231             raise e.original_exception
    232
    233         return ctrl

ElementNotFoundError: {'auto_id': 'button2111', 'top_level_only': False, 'parent': <pywinauto.uia_element_
tInfo object at 0x0000000005105DA0>, 'backend': u'uia'}

Info messages from comtypes can be suppressed by setting appropriate level for logging module when loading UIAutomationCore.dll. Will look into that later.
One more restriction on comtypes usage is that it doesn't load some stuff like IUIAutomationRegistrar for 3rd party properties and custom controls.

i also got this error message from invoke() method
File "build\bdist.win-amd64\egg\pywinauto\controls\uiawrapper.py", line 409, in invoke
_ctypes.COMError: (-2147220991, 'An event was unable to invoke any of the subscribers', (None, None, None, 0, None))

i got the latest pywinauto from the master branch and i'm not able to install it if i don't install comtypes 1.1.3 first. Well it will download it from the web if its possible, but in my development machine i needed to install comtypes 1.1.3 manually before pywinauto was able to complete installation

File "build\bdist.win-amd64\egg\pywinauto\controls\uiawrapper.py", line 409, in invoke
_ctypes.COMError: (-2147220991, 'An event was unable to invoke any of the subscribers', (None, None, None, 0, None))

It usually happens when the element already doesn't exist. Need to raise more readable exception. Thanks.

i got the latest pywinauto from the master branch and i'm not able to install it if i don't install comtypes 1.1.3 first.

What is the output of python setup.py install when comtypes not installed?

File "build\bdist.win-amd64\egg\pywinauto\controls\uiawrapper.py", line 409, in invoke
_ctypes.COMError: (-2147220991, 'An event was unable to invoke any of the subscribers', (None, None, None, 0, None))
this error is bit strange because the script i have does everything is should and after that gives this error. Well only thing my script does at the moment is that it presses one button only, it also takes long time to complete the action.
for the comtypes problem, it seems that the installer is looking for comtypes 1.1.3. Also i need to install following packages:
setuptools_scm-1.0.0-py2.py3-none-any.whl
pypiwin32-219-cp27-none-win_amd64.whl
six-1.10.0-py2.py3-none-any.whl
Installed c:\python27\lib\site-packages\pywinauto-0.6.0rc1-py2.7.egg
Processing dependencies for pywinauto==0.6.0rc1
Searching for comtypes==1.1.3
Best match: comtypes 1.1.3
Processing comtypes-1.1.3-py2.7.egg
comtypes 1.1.3 is already the active version in easy-install.pth
Installing clear_comtypes_cache.py script to C:\python27\Scripts
Using c:\python27\lib\site-packages\comtypes-1.1.3-py2.7.egg
Searching for pypiwin32==219
Best match: pypiwin32 219
Adding pypiwin32 219 to easy-install.pth file
Using c:\python27\lib\site-packages
Searching for six==1.10.0
Best match: six 1.10.0
Adding six 1.10.0 to easy-install.pth file
Using c:\python27\lib\site-packages
Finished processing dependencies for pywinauto==0.6.0rc1
error when comtypes 1.1.3 is not installed: (downloading does not work for my development machine because it is behind firewall and it is blocked)
Installed c:\python27\lib\site-packages\pywinauto-0.6.0rc1-py2.7.egg
Processing dependencies for pywinauto==0.6.0rc1
Searching for comtypes
Reading https://pypi.python.org/simple/comtypes/
Download error on https://pypi.python.org/simple/comtypes/: timed out -- Some pa
ckages may not be found!
Couldn't find index page for 'comtypes' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.python.org/simple/
Download error on https://pypi.python.org/simple/: timed out -- Some packages ma
y not be found!
No local packages or download links found for comtypes
error: Could not find suitable distribution for Requirement.parse('comtypes')

Using pip in restricted environments where PyPI is not available is always painful. Though pip has command line option --proxy (helpful if you have internal proxy as a gateway to the big world).

i'm still wondering about this error message i got from the invoke() method. It seems that it is waiting a response from the app being tested, because for example in my script i press one button and if i after that do something in the tested app or press "esc" key when the test app is so called active, then my script is completed successfully and no error, but if dont do anything then my script fails and gives this error below.
Traceback (most recent call last):
File "auto_test1.py", line 77, in
uia_press()
File "auto_test1.py", line 70, in uia_press
nappi.click()
File "build\bdist.win-amd64\egg\pywinauto\controls\uia_controls.py", line 112, in click
File "build\bdist.win-amd64\egg\pywinauto\controls\uiawrapper.py", line 409, in invoke
_ctypes.COMError: (-2147220991, 'An event was unable to invoke any of the subscribers', (None, None, None, 0, None))

i got it to work :) if i use click_input() method it works and no errors :)
button = window.child_window(auto_id='_buttonName_1')
dlg = button.wrapper_object()
dlg.click_input()

Cool, though click_input makes most natural click and requires active desktop. See #247 if you will need to run it remotely and maybe nightly.
Regarding more silent click()... For "win32" wrappers we use SendMessageTimeout instead of blocking SendMessage to handle situations like you described. For example, if the click opens some dialog and waits for it to close. Will think about kinda the same for "uia".

jeah thats true click_input() is not working for me. To happy to soon :) click() work fine for my test app, but in real use it is waiting for something. How should I handle this wait? in real use I'm clicking a button that opens new window where is should do something else, but now that it is waiting for something and if I let I wait it will take about 1 minute and then script fails.

aaa now I understand, you mean that is should do it like this?
dlg = button.wrapper_object()
win32api.SendMessage(handle, dlg.invoke(), 0, 0)

This actually might work, only thing is that SendMessage() only accepts integer
parameters as far as I know. I can always put it inside a try statement

@nimuston, your example with SendMessage is just wrong. In fact, you are not supposed to go down to win32 API. At least with the normal Pywinauto usage. If your call to click method is stuck for a while it just means that Pywinauto can't find the control that you try to click. Most likely it's because your window specification is wrong. If you open another window you should make sure you have specified the "dialog" and its control right. Check it step-by-step with draw_outline method:

verify your access to this new window : app.NewWindowTitle.draw_outline()
after that check that you have found your control: app.NewWindowTitle.ButtonName.draw_outline()

Notice that there is no guarantee that automation IDs are unique (https://msdn.microsoft.com/en-us/library/aa349646(v=vs.110).aspx) so it can be a case that you attempt to automate a different control that doesn't support "Invoke".
As already suggested, use Inspect.exe to find out controls locations and properties. Don't forget to switch Inspect.exe into UIA mode.

@airelil if I call click() method it is able to find the button and it will press it, it just gets stuck after that and it will give we the error message which I described.

it seems that click() method works just fine if I have for example app where the winform title is same all the time. Example calculator if I automate it to press button's based on automationID it works, but if I have app where I'm example pressing login button and then it opens login screen click() method fails and I get that error message. It is able to press the login button and everything is ok on that side, but because I getting this error message the script is not able to continue with the rest of the code.
Any idea how I should do this?

it seems that click() method works just fine if I have for example app where the winform title is same all the time.

Not sure I got it clear without a traceback. If the title is changed, you also need to create new window specification.
dlg = app["First window title"]
dlg.SomeButton.click()
# do some other stuff, open some file maybe

# here the title is changed (dlg.SomeButton.click() won't work with ElementNotFound exception)
dlg = app["Second Window Title"]
dlg.SomeButton.click() # should work again

If you're talking about the same issue as for ctypes.COMError: (-2147220991, 'An event was unable to invoke any of the subscribers' it might be more interesting. Is it possible to prepare isolated example to reproduce it on our side?

I found this small app from internet and with that I'm able to reproduce my problem. For some reason I'm not able to upload it here so you can download it from this website:
http://www.ittutorialswithexample.com/2015/01/simple-windows-form-login-application-in-csharp.html
below code that I'm using:
`from pywinauto.application import Application
app = Application(backend='uia')
app.Start(r'D:\LoginApplication.exe')
handle = app.window_(title='Login')
button = handle.child_window(auto_id='btn_Submit')
dlg = button.wrapper_object()
dlg.draw_outline()
dlg.click()
`

@vasily-v-ryabov hi, were you able to reproduce this error? now I started to investigating this again and noticed that sometimes I get this pywinauto.findwindows.ElementNotFoundError: 'title': 'Login', 'backend': u'uia'}
but I modified the code a little bit and then once again I get this  ctypes.COMError: (-2147220991, 'An event was unable to invoke any of the subscribers'   error

from pywinauto.application import Application
import time

app = Application(backend='uia')
app.Start(r'D:\LoginApplication.exe')
time.sleep(1)
app.Connect(title='Login')
handle = app.window_(title='Login')
button = handle.child_window(auto_id='btn_Submit')
dlg = button.wrapper_object()
dlg.draw_outline()
dlg.click()

I have one solution for this problem, more like workaround.
I added one new method to class WindowSpecification. Method name print_control_identifiers_return_control_text()

def print_control_identifiers_return_control_text(self, depth = 2):

        # Wrap this control
        this_ctrl = self.__resolve_control(self.criteria)[-1]

        # Create a list of this control and all its descendants
        all_ctrls = [this_ctrl, ] + this_ctrl.descendants()

        # build the list of disambiguated list of control names
        name_control_map = findbestmatch.build_unique_dict(all_ctrls)

        # swap it around so that we are mapped off the controls
        control_name_map = {}
        for name, control in name_control_map.items():
            control_name_map.setdefault(control, []).append(name)

        def print_identifiers_text(ctrls, current_depth = 1):
            if len(ctrls) == 0 or current_depth > depth:
                return

        print_identifiers_text([this_ctrl, ])
        return (u"{text}".format(
                    text=this_ctrl.window_text()))

It simply returns buttons text value. So my script look like this

from pywinauto.application import Application
import win32gui

app = Application(backend='uia')
app.Connect(title='Login')
handle = app.window_(title='Login')
button = handle.child_window(auto_id='btn_Submit')
button_text = button.print_control_identifiers_return_control_text()

newhandle = win32gui.FindWindow(None, 'Login')
win32gui.SetForegroundWindow(newhandle)
app2 = Application()
app2.Connect(title='Login')
window = app2.window_(title='Login')
pressbutton = window[str(button_text)]
pressbutton.Click()

and to understand why this workaround, the original problem was that I wanted to find and press buttons based on automationID. Now that it is possible with backend='uia' to find buttons based with automationID but it is not possible to use click() method(in some cases). Now i'm returning buttons text from the button that was found with automationID and pressing the button then with the "old" way.
I hope that this is just a temporary solution and click() method problem will be fixed?

Hi @nimuston, so for delayed reply. Was a bit busy and mostly offline this weekend. Thanks a lot for the provided example. Will investigate it soon.
Probably in this case ElementNotFoundError should be raised every time. COMError should be handled on a lower level (as it was fixed in PR #251). The reason for ElementNotFoundError is a target for investigation.

Hi @nimuston, finally I got a chance to look into your demo app. I think your main problem is (at least in the demo) that you got a modal dialog blocking the invoke method. Look at this [link] (https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/d2a086f5-9774-4fa4-80d2-18ed1a2d0bb6/too-slow-invokepattern-using-uiautomation?forum=windowsaccessibilityandautomation) for more details. @vasily-v-ryabov, there is an interesting point in the answer by Michael Bernstein, should we add an option to run invoke in a separate thread? Anyway, here the code that works fine for me. I opted out to click_input to get through the modal dialog.
from pywinauto.application import Application

app = Application(backend='uia')
app.start(r"LoginApplication.exe")

# Use a window title to get acccess to the main window
# but we could use app.top_window_() as well
login_dlg = app.Login

# Look around and learn available ID to work with
login_dlg.print_control_identifiers()

# The common way to access controls - just use IDs printed above
login_dlg.Edit0.type_keys("passw")
login_dlg.Edit2.type_keys("user")

# Another option is based on Automation IDs that can be retrieved with Inspect.exe utility
login_dlg.child_window(auto_id="txt_Password").set_text("passw2")
login_dlg.child_window(auto_id="txt_UserName").set_text("user2")

# click() method is based on Invoke pattern but we can't use invoke
# as the app brings in a modal dialog, so we revert to click_input()
# https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/d2a086f5-9774-4fa4-80d2-18ed1a2d0bb6/too-slow-invokepattern-using-uiautomation?forum=windowsaccessibilityandautomation
login_dlg.child_window(auto_id="btn_Submit").click_input()

# Re-print the control identifiers with more sub-levels and
# try to find ID of the popped up modal dialog
login_dlg.print_control_identifiers(depth=4)

# As we found out there is a second modal dialog with an "Ok" button on it
# Now we can just click on it and get to our main "after-login" application screen
login_dlg.Dialog2.OkButton.click()

click_input() method works yes, but for test automation it would be better to use click() method. As @vasily-v-ryabov told earlier "click_input makes most natural click and requires active desktop."

@nimuston, please notice that MS explicitly specifies that Invoke has to be asynchronous exactly for the modal dialog problem. However the demo app isn't complaint to this requirement and apparently the application you try to automate is too. So, if click_input() isn't the option for you, you may use type_keys method to press 'Enter' key:
login_dlg.child_window(auto_id="btn_Submit").set_focus().type_keys("{ENTER}")

Also, if you run on Py3 you may want to play with asyncio or perform a call to click() from another thread as suggested in my previous link

@airelil method type_keys works for me if the button belongs to class "WindowsForms10.BUTTON..." but i also need something for STATIC buttons that belongs to class "WindowsForms10.STATIC....". I thought that the behavior between these is the same but it seems that's it not.

Could you provide an example that reproduces the problem?

Static control cannot have keyboard focus. So type_keys('{ENTER}') won't work even if you try to press Enter manually.

for this i don't have any demo apps. At least now it seems that only way to click static buttons is to use click() or click_input() method, but because click() gives this comtypes error and click_input() needs active window i'm not able to use either of those.

i actually noticed that the error message is different if i use invoke() method to static button.
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    dlg.invoke()
  File "build\bdist.win-amd64\egg\pywinauto\controls\uiawrapper.py", line 409, in invoke
    self.iface_invoke.Invoke()
  File "build\bdist.win-amd64\egg\pywinauto\controls\uiawrapper.py", line 129, in __get__
    value = self.fget(obj)
  File "build\bdist.win-amd64\egg\pywinauto\controls\uiawrapper.py", line 227, in iface_invoke
    return uia_defs.get_elem_interface(elem, "Invoke")
  File "build\bdist.win-amd64\egg\pywinauto\uia_defines.py", line 219, in get_elem_interface
    raise NoPatternInterfaceError()
NoPatternInterfaceError

dlg.invoke()

Why dlg ? What do you try to access ? A control or a window ? If it's a control, at least, give a meaningful name to your variables.
NoPatternInterfaceError means that this cryptic dlg doesn't support Invoke pattern of MS UI
Automation.
I doubt all these wild guesses are going to get us anywhere. Please bring a clean and concise example demonstrating your problem, open a separate issue for this and we'll try to help.

i'm trying to access static type button with that example, but i will come back to this when i have demo app that i can give you guys. Anyways thank you for the help


the mega pull

Hi, I'm back!
Took your feedback and did some changes.
I just merged your master into my fork and lets do the second attempt at a pull request.
Okay, the changes:

support for MySQL/MariaDB for debian/ubuntu, added cases for RPM based distros aswell, but package names must be completed..
bumped version a couple of steps, since its a big change.
changed how the search works to support wrapper cookbooks.
removed stuff that was not pertinet to this cookbook ( e.g. iptables, should belong in wrapper).
fixed a bunch of minor stuff, (like adding not_if constraints to stop resources from executing every chef run.)

We are currently using a wrapper cookbook that includes this one and it works in Ubuntu precise. We've installed the agent in precise and trusty. Haven't tested ambari server on trusty yet, but can't imagine that it will be a problem.

Hey @Raboo ,
I'm sorry this PR has lingered, man.  I'm not sure how many people are actively maintaining this project atm, and I have been more or less "hands off" last month or so.
tl;dr - I'm just getting to this now.  And it's a big PR.  I will look it over this week and get back to you.
~J

Okay..

This was merged with #24 splitting it in multiple commits helped a lot.
Thanks a lot @Raboo


introduce caveats in datastore API

Closes https://github.com/authzed/spicedb/issues/757
What
Introduces Caveat in core.RelationTuple and adjusts all datastores to be able to read/write it
Why
Caveats are additional environmental constraints of a tuple, and hence the first step is to be able to store it in the Datastore interface.
How
This implementation does not make any assumption on how the actual caveats are implemented. However, we assume that somewhere in the gRPC controllers the core.RelationTuple.Caveat field will be set, and will be the result of compiling the textual representation of a Caveat language.
An initial limit of 4KB has been established and is enforced via proto validation. Each datastore uses a different datatype, but only spanner allows defining a limit, as far as I could tell.
I identified WriteRelationships wasn't validating the corev1 protos, so I also modified all implementations to call Validate on the proto value.

closing to explore yet another approach


Decode the json string 'language_dictionary'

The json string retrieved from settings ($settings['language_dictionary']) is never decoded. This decodes the json string so it actually becomes an array in $settings.

Thx for the contribution. I will apply this changes manually on the dev branch (https://github.com/auth0/wp-auth0#contributions) and it will be ready for the next release.


[BUG] Fix broken link checker

Running ./test-links.sh script locally is broken and needs to be resolved.

If the port is occupied when starting a server, it will not check the correct locally hosted site
429 error codes are abundant as too many requests to GH are made

We haven't been using that test-links.sh script for a long time. We do have the "link checker" added to GitHub actions, but it has usually been neglected, and we need to review those reports to remove or update all current broken links.
I think this should be done after removing any pending Typedocs from our Docs, to simplify things.


Fix creating YouTube API URLs for channel & playlist searches

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 70.79%. Comparing base (52eb47c) to head (3a2c0c3).
Report is 15 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##               main     #324   +/-   ##
=========================================
  Coverage     70.79%   70.79%
- Complexity      371      372    +1
=========================================
  Files            29       29
  Lines          1226     1226
=========================================
  Hits            868      868
  Misses          358      358

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


alias_method_chain

Long shot here but does anybody know how to fix this to not use alias_method chain? It conflicts with other plugins that have already made the jump https://github.com/danmunn/redmine_dmsf/issues/845
I think it is only used in issue_patch.rb

https://github.com/annikoff/redmine_plugin_computed_custom_field/pull/159


multiple images

It would be nice if we could have multiple images, like @ http://www.magictoolbox.com/magiczoom/integration/#multiple

@muszek I have been working on something to use multiple images as well. My solution is to put the images into an array and then pull the index of the image and pass its source to the function when the thumbnail/image is clicked.

Can anyone tell me why I see the following behaviour?
I have two images with different ids.

Now when I instantiate the zoom like
                       $('span[id^="magnify-span-"]').each(
                            function(){

                                if($(this).find('.zoomImg').length === 0){
                                    console.log('zoom - - ' + $(this).attr('id'));
                                    var element = $(this);

                                    element.zoom();

                                }
                            });

the HTML looks like

So only one of the images is zoomable. The logs echo both the ids. Why is only one img provided with the zoom image?

Can anyone tell me why I see the following behaviour?
There are two images, with different ids.


Implement custom consistency checks for SKR chart manager

Description
TBD
ACs

[ ] TBD

Related discussions
https://github.com/kyma-project/lifecycle-manager/pull/277#discussion_r1014820030
https://github.com/kyma-project/lifecycle-manager/pull/277#discussion_r1014819992

Please fill TBD fields @khlifi411


Add pickling for several classes

This will allow varcode.EffectCollection to get pickled.
Threw in equals and hashing for species because that was needed for the pickling tests to run.

This change is

Coverage increased (+0.5%) to 80.388% when pulling bcb6622e081e6f7db9040baafba391b671de8e69 on pickle into e9ec65a7824a573def4eae0969320ea235cc6c86 on master.

@iskandr Don't merge this yet, even if it looks good; I think there's a problem with pickling too much of the Genome.

@iskandr Tried to simplify as much as possible; take a look?

Coverage increased (+0.1%) to 80.014% when pulling 2eb332b7c0936e8466b57c04f686692434297054 on pickle into e9ec65a7824a573def4eae0969320ea235cc6c86 on master.

LGTM

Coverage increased (+0.1%) to 80.014% when pulling c3675553ea98249b7fd435e2f24a9be24c2ed00f on pickle into e9ec65a7824a573def4eae0969320ea235cc6c86 on master.


Hello! The pool is not going to.

Hello! The pool is not going to.

Hello Alex,
Can you please provide more data, which OS, how are you compilling?

I built ubuntu 20.04

Try to execute individually, in a terminal, all the command-lines inside the file: https://github.com/blackmennewstyle/miningcore/blob/dev/build-ubuntu-20.04.sh


rate-limiting plugin support at service level

rate-limiting plugin support at service level
The original code can't support rate limiting at service level, it's not satisfied the plugin usage.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.wuguangkuo seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@gszr


Bad error handling when user provides w/ expired or invalid Facebook Access Tokens

Bug Description:

No reply received when client provides an expired or invalid Facebook Access Token.

Expected behaviour:

Server should return HTTP status 400 for bad/expired tokens
and include a message describing the error

Fix pushed to master branch in commit #143dc8c


[go]: Range Checks and Null Values?

We are generating Encoders/Decoders for go.
In our schema, we have a field, defined as follows:
<field name="position" id="2" type="uint64" presence="optional" />

Our question goes to the range-checking which can be enabled in the generated decoder.
We observe that the check is generated as follows, regardless whether the presence="optional" attribute is set or not:
  if s.PositionInActingVersion(actingVersion) {
        if s.Position < s.PositionMinValue() || s.Position > s.PositionMaxValue() {
            return fmt.Errorf("Range check failed on s.Position (%d < %d > %d)", s.PositionMinValue(), s.Position, s.PositionMaxValue())
        }
    }

If a null value is received, it will be s.PositionMaxValue() + 1.
Our question is: should the range check code accommodate for null values or are we maybe confusing something?

I think it's a bug. I'll have a look.

I'm seeing token.presence() is always REQUIRED (which is why is token.isOptionalEncoding() is returning false on me. My test file is quite simple:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sbe:messageSchema xmlns:sbe="http://fixprotocol.io/2016/sbe"
                   package="issue472"
                   id="472"
                   version="0"
                   semanticVersion="1.0"
                   description="issue 472 test case"
                   byteOrder="bigEndian">
    <types>
        <composite name="messageHeader" description="Message identifiers and length of message root">
            <type name="blockLength" primitiveType="uint16"/>
            <type name="templateId" primitiveType="uint16"/>
            <type name="schemaId" primitiveType="uint16"/>
            <type name="version" primitiveType="uint16"/>
            <ref name="s" type="setRef"/>
        </composite>
    </types>
    <sbe:message name="issue472" id="1" description="issue 472 test">
        <field name="position" type="uint64" id="2" presence="optional"/>
    </sbe:message>
</sbe:messageSchema>

The optional is applied to the field here and not the type. The IR has this reflected in the field token vs the contained type token(s). The spec has some issues here. For example, presence is available on basic types but not composites, enums, or bitsets. There are also issues with minValue, maxValue, and nullValue being available on the type but not the field.  I personally believe the type should not have presence or restrictions and they should only be on the field. Maybe @donmendelson has a view here?

See issue https://github.com/FIXTradingCommunity/fix-simple-binary-encoding/issues/31
This change has already been approved by working group. I'd appreciate review of the proposed change for SBE version 2.0 RC1.

See https://github.com/real-logic/simple-binary-encoding/pull/475


user facing bit packing routine pseudocode

outlines for functions to reverse unpack_to_array and unpack_to_dict()
def pack_from_dict(flag_dict, product, num_bits):
    """
    Where keys are flag names, values are arrays all the same shape.
    product is a custom product spec. num_bits should be 8,16, or 32
    """

    qa_array = np.empty(shaped like input, dtyp = product[numbits])

    for flag in products:
        if 1 bit:
            qa_array[flag_bit] = qa_dict[flag]

        if > 1 bit:
            # ie. take an array of possible values 0,1,2,3 and convert to two bits.
            temp_qa_array = unpackbits(qa_dict(flag))
            for ii in bits:
                qa_array[flag_bit] = temp_qa_array[flag_bit] # or something like that

maybe have a validate flag here, where no checking is done in input so that it's slightly faster.


Add useOutputAsError option.

The useOutputAsError option uses the compiler output as the error message
passed to webpack. By default, a simple "PureScript compilation has failed."
error is passed to webpack and the compiler output is written to stderr. This
default behavior is undesirable if the compiler output is needed by webpack or
webpack plugins.
Solves the issues related to ethul/purescript-webpack-plugin#18 and ethul/purs-loader#40

The long story:
Because of ethul/purs-loader/issues/40, the errors (which included compiler output) from purescript-webpack-plugin were ignored and replaced by a generic "PureScript compilation has failed" message, to avoid seeing the compiler output in bold red. That could have been disabled by setting webpack stat's colors: false, but instead purescript-webpack-plugin was changed to write compiler output to stderr and purs-loader was changed to ignore the errors sent by purescript-webpack-plugin. This broke everything relying on detailed errors in webpack. In my case, it broke error feedback with webpack's live-reloading (which displays errors in the browser).
The best way I could think of satisfying both use cases, was to add this option to either write errors to stderr and send a simple "PureScript compilation has failed" error to webpack, OR send a detailed error with compilation output to webpack. I couldn't think of a better name than useOutputAsError.
If this is merged, and ethul/purs-loader/pull/46 is merged, then by adding useOutputAsError: true the original webpack error reporting functionality is restored while not effecting the people who would like to only send compiler output to the console and not webpack.

Thank you for following up on #18 and providing this PR. I agree that the loader/plugin should provide the PureScript output to the appropriate channels and allow Webpack to handle them accordingly.
I think the changes you have in this PR are certainly a viable solution. However, I wanted to propose a plugin-only change as in #20. Note that I am sure #20 works in all cases, but if it does pan out, I think I would prefer to go that route.
If you have a chance to give the changes in #20 a try, I would be interested to know if it works for your use-case and any thoughts you have on the change.

Closing due to #20


Rename create_copr_project_if_not_exists()

Merge after https://github.com/packit/packit/pull/2274.

recheck

recheck


Coercible integer doesn't accept Number as String, but accepts Number.

Describe the bug
Coercible integer can accept number input 200.1 but doesn't accept Number as String "200.1".
To Reproduce
This returns error:
Types::Coercible::Integer["100.0"]
# invalid value for Integer(): "100.0"

This works:
Types::Coercible::Integer[100.0]
# 100

Expected behavior
Types::Coercible::Integer["100.0"]
# 100

Coercible types use builtin Ruby methods for coercion. Types::Coercible::Integer delegates to Kernel.Integer so it's a question to Ruby design, more or less. In general, dry-types doesn't treat non-integer strings as integers, this is probably for the best. You can write a custom type with Types::Coercible::Integer.prepend { _1.sub(/\.0/, '') }.
P.S. This is an issue for the dry-types repo, not dry-schema.

Thanks for the explanation!


Help needed for Typescript

Firstly, thank you very much for this wrapper!
I am using Vue with typescript. When I tried to import VueGAPI from "vue-gapi", typescript wants me to provide a .d.ts file. For now, I created an empty .d.ts file to just pass the compiler. Can you please generate a .d.ts file for typescript users? Thank you!
Also, I am a little bit confused about how to use this:
this.$getGapiClient()
VScode gives me an error that $getGapiClient does not exist on type "App".
Thank you for helping me!

Hi Leo,
If you have the skills for creating the declaration file, please go ahead and create a pull request. I will test & review it. When all is good I'll document it :)
Thanks a lot for using VueGAPI!
Cheers

This is what I use just to pass Typescript errors, but not particularly helpful in advance usages such as auto completion.
declare module 'vue-gapi' {
    import {PluginFunction} from 'vue';

    // The `install` method is called inside Vue.use() function. It's required.
    export const install: PluginFunction<{}>;

    // Add global object to Vue instance, so you can use `this.@login` etc.
    module 'vue/types/vue' {
        interface Vue {
            $logout: any,
            $login: any,
            $getGapiClient: () => Promise<any>,
            $isAuthenticated: any
        }
    }
}

I can make a PR if you're ok with this declaration file.

@nguyendv Kindly open a PR as WIP so that we can advise. Thanks for your help

There are already type packages for gapi and gapi.auth2 that we can use like ng-gapi for angular does it.

I stumbled upon Vue.gapiLoadClientPromise and was wondering what the intention behind this variable is and how it can be typed. It's assigned Promise<void> but then it also has a status property.
https://github.com/cedpoilly/vue-gapi/blob/6d2e67d7baa5eed44c097c2739e0461c32a4a119/src/VueGAPI/index.js#L20-L27


[BUG] Reference/type is underspecified

Describe the bug
It's unclear when the Reference/type should be set to "ModelReference". Options:

when the target is contained in the same Submodel (example: ReferenceElement/value pointing to a neighboring SubmodelElement)
when the target is contained in the same AAS (example: ReferenceElement/value pointing to a SubmodelElement in a Submodel that also belongs to the same AAS)
when the target is contained in the same Environment (example: Property/semanticId pointing to a local ConceptDescription)
when the target is contained in the same server (as defined in Part 2, i.e. AssetAdministrationShellRepository, SubmodelRepository)

Where
AAS Pt. 1, sec <IP_ADDRESS>
Additional context
Ideally, this property would signify to a Client whether to resolve the first key of a Reference locally or look it up in a Registry (either a SubmodelRegistry or a semanic catalog).

For all attributes with type ModelReference<{element}> it is clearly defined that a ModelReference shall be used (see Annex D).
for semanticId there will be an even clearer recommendation to only use ExternalReference in V3.1 (see https://github.com/admin-shell-io/aas-specs/issues/376)
Similar for ValueId: https://github.com/admin-shell-io/aas-specs/issues/396
So your question is only open for SubmodelElement types ReferenceElement and RelationshipElement. Since there is no restriction in the specification all your examples are valid (and more, see below).
See also matching algorithms for SemanticId and References in chapter 4.4. There will be an update of these chapters in V3.1.  See https://github.com/admin-shell-io/aas-specs/issues/347 and https://github.com/admin-shell-io/aas-specs/issues/350
The main question for dataspaces will be which kind of discovery services are available to find the referenced entities, whether via ExternalReference or ModelReference.
P.S. your list of possibilities is incomplete, the following is missing:

when the target is on any server (e.g. SubmodelRepository, Submodel, etc.)

P.P.S. There is exactly one „Environment“ class for all servers since it is not identifiable.

I do not consider this to be a bug, remove tag „bug“

2024-10-30 TF Metamodel
Decision Proposal:

For all attributes with type ModelReference<{element}> it is clearly defined that a ModelReference shall be used (see Annex D).
For other elements like semanticId ReferenceElement etc. there are only best practices, no strict requirements (besides the constraints included in the specification)
See Chapters Matching Strategies https://admin-shell-io.github.io/aas-specs-antora/IDTA-01001/v3.1/general.html#matching-strategies for more input. The chapter will be updated (see #479, #480 , #471 , #473 )

2024-11-14 Workstream AAS
Decision proposal accepted: https://github.com/admin-shell-io/aas-specs/issues/389#issuecomment-2447609627


SBA for teams phones

It was announced here https://techcommunity.microsoft.com/t5/microsoft-teams-blog/what-s-new-in-microsoft-teams-november-2021/ba-p/3015700#calling that SBA is available in Teams Phones. Can we get update in this document to reflect that Teams phones are now a supported client and also information what app version/firmware/devices support SBA?
Thanks!

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

ID: 183fc921-e9b1-cc74-2bcb-26d32b994919
Version Independent ID: 1765bda3-dd62-76d7-1e2d-9f5496ac9094
Content: Direct Routing SBA - Microsoft Teams
Content Source: Teams/direct-routing-survivable-branch-appliance.md
Service: msteams
GitHub Login: @CarolynRowe
Microsoft Alias: crowe

Hi @Larryngolog, thank you for your feedback.
This is the same as:
https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/issues/8205
Work is in progress to add this information.


Exception Thrown by comparison of TargetPlatformVersion

Describe the bug
I just started a new UserControl Library Project using .Net 8.  I've added WindowsAppSDK via Nuget.  As soon as the package installs there a warning about TargetPlatformVersion.  The Project no loger loads, throwing this exception:
A numeric comparison was attempted on "$(TargetPlatformVersion)"
that evaluates to "" instead of a number, in condition
"'$(TargetPlatformVersion)' < '10.0.18362.0'".
C:\Users\cc.nuget\packages\microsoft.windowsappsdk\1.5.24040400
0\buildTransitive\Microsoft.InteractiveExperiences.Common.targets
Steps to reproduce the bug
Start a new Library Project under .NET 8
Add the WindowsAppSDK via Nuget. I used the latest stable :

Unload the Project. You can no longer re-load it. It throws the error shown in the description.
Adding a TargetPlatformVersion entry to .csproj does not help
10.0.18362.0
Expected behavior
I'd expect to be able to add the SDK without destroying my Project
Screenshots
No response
NuGet package version
Windows App SDK 1.5.2: 1.5.240404000
Packaging type
No response
Windows version
Windows 11 version 22H2 (22621, 2022 Update)
IDE
No response
Additional context
I'm actually running W11 23H2 Build 22631.3527 which is not listed as an option

What is the TargetFramework for the project?
If you set it to a fully versioned one, like <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>, does that help?

Thanks for the reply @DarranRowe.
If I add that line to specify the TargetFramework I get this error:
NETSDK1005	Assets file 'C:\Users\cc\OneDrive\Desktop\WindowAppSDK\WpfApp1\WpfCustomControlLibrary1\obj\project.assets.json' doesn't have a target for 'net8.0-windows10.0.19041.0'. Ensure that restore has run and that you have included 'net8.0-windows10.0.19041.0' in the TargetFrameworks for your project
I also get this:
There was no runtime pack for Microsoft.WindowsDesktop.App.WPF available for the specified RuntimeIdentifier 'win10-arm'
I realize that last is a known breaking change. If I modify the .csprof file with:
win-x64;win-x86
true
Then I can get the empty project to build.
Since I can't exactly reproduce my originial issue, I understand this could be hard to address. Note that I couldn't reproduce my original error, but I did get a nice crop of new ones ;-}
I'm very surprised that a new Project with the latest recommended platform and packages requires so much manual editing of the project file.

I do think this package should be updated to be a little more user-friendly.  However, the below .csproj does allow me to build successfully, after some manual editing and multiple load/unload cycles.

WinExe
net8.0-windows10.0.22621.0
win-x64;win-x86
enable
enable
true


Doc: link to Internals in "what's new"

Very minor issue, but the link to Internals in the latest what's new redirects to pandas', not xarray's.

Fixed, thanks!


Update ruby library to new algorithm

Update Ruby library to fix issue #316 and #307.
Enforces formatting by rubocop.

Hi @zongweil
This is ready to review.

Hi @zongwei - check and let me know if you're ok for me to merge!

I've been traveling, will take a look tomorrow!

LGTM!


@newsubtype instances cannot be used in Arrays

version 0.4.2.
object Test {
  @newsubtype case class VectorPointer(addr: Long)
 }

scala> new Array[Test.VectorPointer](10)
<console>:12: error: cannot find class tag for element type Test.VectorPointer
       new Array[Test.VectorPointer](10)

I actually have a wip branch (10-as-array) which improves Array support for newtypes. At this point though, you should be fine to cast so long as you know that the types are correct. So the following may be a workaround for you -
Array[Long](10).asInstanceOf[Array[VectorPointer]]

You could wrap this into a method to improve safety -
@newsubtype case class VectorPointer(addr: Long)
object VectorPointer {
  def wrapArray(a: Array[Long]): Array[VectorPointer] = a.asInstanceOf[Array[VectorPointer]]
  def unwrapArray(a: Array[VectorPointer]): Array[Long] = a.asInstanceOf[Array[Long]]
}

scala> VectorPointer.wrapArray(Array(10))
res0: Array[VectorPointer] = Array(10)


review of german translation

a slitly enhances version of german translation

Thanks!
I see some files don't have a new line character at the end of the file. Could you please add that ?
Thanks :+1:

strange... PhpStorm shows a newline at the end of each?!


MPI Fortran library cannot be found when linking in downstream projects when STRUMPACK is enabled

I have ran into this on two different platforms on two different projects (Serac and Tribol). Basically when STRUMPACK is enabled the Fortran MPI library is being added to MFEM_EXT_LIBS in config.mk without being proceeded by the required link directory. This then fails in downstream projects which do not use the MPI compiler wrappers.
Here is the line from the installed config.mk, notice the -lmpi_mpifh:
MFEM_EXT_LIBS  = -Wl,-rpath,/darwin-monterey-skylake/clang-15.0.7/hypre-2.26.0-7pw5gnd7dg4id2c2izl3jem2ebu2obwb/lib -Wl,-rpath,/opt/local/lib/lapack -L/darwin-monterey-skylake/clang-15.0.7/hypre-2.26.0-7pw5gnd7dg4id2c2izl3jem2ebu2obwb/lib -L/opt/local/lib/lapack -lHYPRE -llapack -lblas -Wl,-rpath,/darwin-monterey-skylake/clang-15.0.7/superlu-dist-8.1.2-tug7hmo33eytlamvr5klll2pmqn7cozy/lib -Wl,-rpath,/darwin-monterey-skylake/clang-15.0.7/parmetis-4.0.3-z7aplyooc4amsrzt7kf25zez45jya5f4/lib -L/darwin-monterey-skylake/clang-15.0.7/superlu-dist-8.1.2-tug7hmo33eytlamvr5klll2pmqn7cozy/lib -L/darwin-monterey-skylake/clang-15.0.7/parmetis-4.0.3-z7aplyooc4amsrzt7kf25zez45jya5f4/lib -lsuperlu_dist -lparmetis -Wl,-rpath,/opt/local/lib/lapack -L/opt/local/lib/lapack -llapack -lblas -Wl,-rpath,/darwin-monterey-skylake/clang-15.0.7/metis-5.1.0-eay32llvqx54ksnhbnsnufqoirmommkx/lib -L/darwin-monterey-skylake/clang-15.0.7/metis-5.1.0-eay32llvqx54ksnhbnsnufqoirmommkx/lib -lmetis -Wl,-rpath,/opt/local/lib/lapack -L/opt/local/lib/lapack -llapack -lblas -Wl,-rpath,/darwin-monterey-skylake/clang-15.0.7/sundials-6.7.0-rmlkznks6uqems7qvsb5igcsi2535bnj/lib -L/darwin-monterey-skylake/clang-15.0.7/sundials-6.7.0-rmlkznks6uqems7qvsb5igcsi2535bnj/lib -lsundials_arkode -lsundials_cvodes -lsundials_nvecserial -lsundials_kinsol -lsundials_nvecparallel -lsundials_nvecmpiplusx -Wl,-rpath,/darwin-monterey-skylake/clang-15.0.7/strumpack-7.2.0-6nipalmuka4vuomxjexithcjm3txex2y/lib -L/darwin-monterey-skylake/clang-15.0.7/strumpack-7.2.0-6nipalmuka4vuomxjexithcjm3txex2y/lib -lstrumpack -Wl,-rpath,/opt/local/lib/gcc12 -L/opt/local/lib/gcc12 -lgfortran -Wl,-rpath,/opt/local/lib -L/opt/local/lib -lmpi_mpifh -Wl,-rpath,/darwin-monterey-skylake/clang-15.0.7/parmetis-4.0.3-z7aplyooc4amsrzt7kf25zez45jya5f4/lib -L/darwin-monterey-skylake/clang-15.0.7/parmetis-4.0.3-z7aplyooc4amsrzt7kf25zez45jya5f4/lib -lparmetis -Wl,-rpath,/darwin-monterey-skylake/clang-15.0.7/netlib-scalapack-2.2.0-csnbn2ofsw35nqft3eixqmlfegzxi2wr/lib -L/darwin-monterey-skylake/clang-15.0.7/netlib-scalapack-2.2.0-csnbn2ofsw35nqft3eixqmlfegzxi2wr/lib -lscalapack -Wl,-rpath,/darwin-monterey-skylake/clang-15.0.7/zfp-1.0.0-chn3rigdocmstcdug6pdeqoyaortdemh/lib -L/darwin-monterey-skylake/clang-15.0.7/zfp-1.0.0-chn3rigdocmstcdug6pdeqoyaortdemh/lib -lzfp -Wl,-rpath,/darwin-monterey-skylake/clang-15.0.7/netcdf-c-4.7.4-aop722vvi32nbqyyrpmttvmr3cjec4jk/lib -L/darwin-monterey-skylake/clang-15.0.7/netcdf-c-4.7.4-aop722vvi32nbqyyrpmttvmr3cjec4jk/lib -lnetcdf -Wl,-rpath,/darwin-monterey-skylake/clang-15.0.7/hdf5-1.8.23-5s2e72lbeemy3q434qootqchca5auy6e/lib -L/darwin-monterey-skylake/clang-15.0.7/hdf5-1.8.23-5s2e72lbeemy3q434qootqchca5auy6e/lib -lhdf5_hl -lhdf5 -Wl,-rpath,/darwin-monterey-skylake/clang-15.0.7/zlib-ng-2.1.6-rkvax3kjs6izyuurohpdnrdxgeswnfj5/lib -L/darwin-monterey-skylake/clang-15.0.7/zlib-ng-2.1.6-rkvax3kjs6izyuurohpdnrdxgeswnfj5/lib -lz

@btalamini  @ebchin

This is normal since MFEM's make config does not really try to automate the config process for dependencies. It provides sensible defaults for the variables <PACKAGE>_OPT (compile flags) and <PACKAGE>_LIB (link flags). If these defaults do not work, the user is expected to define them on the make config ... command line or in their config/user.mk file (which should be copied from config/defaults.mk and then modified where needed).
In the case of STRUMPACK, STRUMPACK_LIB uses another variable to configure the MPI+fortran dependence -- MPI_FORTRAN_LIB. In your case, it sounds like it will be sufficient to just modify accordingly this variable and leave STRUMPACK_{OPT,LIB} as they are.
For example, on my Mac, I modify MPI_FORTRAN_LIB by adding the following to my user.mk:
# Additional Fortran library:
MPI_FORTRAN_LIB += -L$(BREW_DIR)/Cellar/gcc/13.1.0/lib/gcc/13 -lgfortran

where BREW_DIR is the path to my Homebrew directory.
In your case, you probably just need to add the path to where libmpi_mpifh.* is, before -lmpi_mpifh. Normally, this path will already be specified on the linking command line, so it is not explicitly needed. However, in your case, the MPI link path probably appears after -mpi_mpifh. So maybe a simpler solution is to just move the MPI link path before the MFEM flags.

I just realized that you may be using config.mk file from the CMake build system where things should be a bit more automated. Are you using CMake to build MFEM?

mpi_mpifh was in the correct directory but no -L<mpi directory was being added to the link line.

Shouldn't -L<mpi directory> -lmpi (or something like that) be added to the link line where you're linking an MPI executable without the MPI compiler wrapper?
If we want to add these flags to MFEM_EXT_LIBS, (by setting MPI_{OPT,LIB}) we may need a lot of extra logic to figure out what flags are actually added by the MPI wrapper -- it is not always just -I<mpi dir>/include and -L<mpi dir>/lib -lmpi. It is much more portable to just rely on the MPI wrapper, I think.
Maybe specifically in Spack this is easier to do? Do you know if we can get the needed MPI flags from Spack or the MPI-provider packages in Spack?

Shouldn't -L<mpi directory> -lmpi (or something like that) be added to the link line where you're linking an MPI executable without the MPI compiler wrapper?

Kind of, it generally adds an absolute path to the MPI libraries (we don't add the Fortran MPI library because we don't explicitly require it) but that isn't the problem. MPI_EXT_LIBS adds the Fortran MPI library to the link line w/o the directory to find it.

If we want to add these flags to MFEM_EXT_LIBS, (by setting MPI_{OPT,LIB}) we may need a lot of extra logic to figure out what flags are actually added by the MPI wrapper -- it is not always just -I<mpi dir>/include and -L<mpi dir>/lib -lmpi. It is much more portable to just rely on the MPI wrapper, I think.

The includes are and the absolute C++ libraries are added by our project but no -L's.

Maybe specifically in Spack this is easier to do? Do you know if we can get the needed MPI flags from Spack or the MPI-provider packages in Spack?

Staring at the multiple levels, I think what is happening is the Spack package adds the proper information to STRUMPACK_LIB so that MFEM itself builds, but that information is not getting passed to the config/defaults.mk|whatever generates the config.mk. I could be wrong but I think this line is injecting the $(MPI_FORTRAN_LIB) but not the -L:
https://github.com/mfem/mfem/blob/ac8858060532274b200b4d121b518138c7ccf9e4/config/defaults.mk#L331
Does the Makefile build system not override that command line STRUMPACK_LIB before it generates the outputted config.mk? I don't fully understand how your Makefile generates that file w/o more effort.

When @btalamini gets back I can get the command line from Spack to see if it will show more information of what is going on. I can't reproduce this myself.

Just to clarify: the MFEM's spack packages does add the correct path for -lmpi_mpifh or, more precisely, what I think is the correct path derived from the MPI package: the MPI prefix + /lib. This is done on this line:
                        sp_lib += [ld_flags_from_dirs([mpi.prefix.lib], ["mpi_mpifh"])]

(direct link to the above code)
In this context, the variable mpi is defined as:
                    mpi = strumpack["mpi"]

(direct link to the above code)
Judging by the value of MFEM_EXT_LIBS posted above, the path mpi.prefix.lib resolved to /opt/local/lib. Is this not the correct path? Maybe the libraries are in lib64 sub-directory and not in lib? If this is the case, I can fix the code to actually look at the file system to determine the right path.

Narrowing this down and it is a problem/missing feature in CMake:
https://github.com/spack/spack/issues/24685
We are attempting to allow Spack to build the MPI itself, hopefully this goes well.
Thanks for helping track this down and there is nothing MFEM could do to work around this.


Dispatch from model not working

I get the following error [vuex] unknown action type: entities/posts/setNext.
I check the store._mutations and it does in fact exist. I also can call it with store.commit("entities/posts/setNext", "jkahsdjaksd"); and it works.
which leads me to believe that Post.dispatch isn't working or I set up my vuex module incorrectly.
// model/Post.js

export const postVuex = {
    state: {
        next: null,
        previous: null,
    },
    mutations: {
        setNext(state, next) {
            state.next = next;
        },
        setPrevious(state, previous) {
            state.previous = previous;
        },
    },
    getters: {
        next: (state) => state.next,
        previous: (state) => state.previous,
    },
};

export default class Post extends Model {
    static entity = "posts";

    static fields() {
        return {
            id: this.attr(null),
            user_id: this.attr(null),
            content: this.attr(""),
            images: this.attr([]),
            view_count: this.attr(0),
            created: this.attr(""),
            is_private: this.attr(false),
            created_by: this.belongsTo(User, "user_id"),
            comment_count: this.attr(0),
        };
    }
}

// database/index.js

database.register(Post, postVuex);

Also, is there a better way to get state from a model than having to do post.$store().state.entities.posts.next. I understand getters are a thing, but it feels like a pain to include it for every property in my state.
And it feels like doing
getters: {
        $state: (state) => state,
    }

Just feels like I am going through obstacles.
Maybe something like $state similar to how $store is available through the model?
Edit:
I just realized something confusing in the documentation.
call-module-methods-fom-model.
dispatch is for calling actions in vuex.
IN the docs
An alternative to calling store methods directly, you may access the store instance from a model as well to dispatch actions or call getters.

const user = User.dispatch('add', 3)
The above code is exactly same as below.

store.dispatch('entities/users/add', 3)

It is trying to call an action, but according to the docs (above it), it is a mutation.

Hi! Thank you for the report!

I get the following error [vuex] unknown action type: entities/posts/setNext.

It seems like your trying to dispatch instead of commit? You must have setNext action at module, but you only have setNext mutation. Maybe this could be the reason?

Also, is there a better way to get state from a model than having to do post.$store().state.entities.posts.next.

Yeah I would like to have that as well. Just have to come up with good name because state is taken at Model definition and we can't use it. Maybe $state is good! But static state is taken it is going to be incosistent through out other model method names.

It is trying to call an action, but according to the docs (above it), it is a mutation.

Not sure what you mean. It is calling action, and I believe docs don't mention anything about mutations isn't it?

You are right on that. I just misunderstood the docs. The Call Module Methods fom Model part of the docs mentions const user = User.dispatch('add', 3) and I assumed add was trying to call the mutation, but it is in fact the action.
It was just the previous Vuex module was
const users = {
  state: {
    count: 0
  },

  mutations: {
    add (state, count) {
      state.count = state.count + count
    }
  }
}

which didn't have an action so I didn't immediately think of it. So may bad on that.

Thank you for the confirmation! I'm glad you found a way out.
Please let us know if you have anything else! 👍


Please enable two factor authentication in your github account

@nitishjohn;@guansong;@arodrigx7;@amdgerritcr;@dsquaredx2;@asroy;@ascollard;@ROCmSupport
We are going to enforce two factor authentication in (https://github.com/RadeonOpenCompute/) organization on 7th April , 2022 . Since we identified you as outside collaborator for this organization, you need to enable two factor authentication in your github account else you shall be removed from the organization after the enforcement. Please skip if already done.
To set up two factor authentication, please go through the steps in below link:
https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/configuring-two-factor-authentication
Please reach out to<EMAIL_ADDRESS>" for queries

Thanks Deeptimayee. I have sent you an email regarding this.

Closing this ticket as info is stale.  Deeptimayee is no longer an AMD employee.  Thanks.


Update visual-studio-code to 0.10.6

Thank you for the contribution. It was merged directly as 09158e6a48a1e795d8a71e4f873dfd2e9ce94ac6 to keep commit history cleaner. Your contribution is still credited to you.


status of nix build? (or how to use Daedalus on NixOS?)

I thought using the nix flake would be a good way to get Daedalus running on a NixOS system.
However:

the nixpkgs is quite, quite old
nothing seems to be cached in the provided cache

I'm not overriding any inputs, so the lack of cache hit was quite surprising.
Is this... a good way to use Daedauls on NixOS? Is there a better option?
Thanks!

Hi there,
We use GitHub issues as a place to track bugs and other development-related issues.
Please see the link below to our dedicated support line:
Help Center :  Click Here
Ticket ID: WR240
Note: Click on the live chat icon at the bottom corner of the page to start a conversation.

It's a more than a bit frightening to think I'm using such old nixpkgs for a crypto wallet...

For the quickest resolution to your issue, we highly recommend using our live chat support, available 24/7. Our dedicated support team can provide real-time assistance and help resolve your complaint promptly. You can access the live chat here:
Cardano / IOHK Support Request
Use the live chat button at the bottom right to connect with a support agent for prompt assistance.
Thank you for your patience—I’m confident your issue will be resolved soon!

Wow GitHub really has issues with spam huh.


Add default configurations in DockerFile for starting conatiner fron Kitematic

**Is your feature request related to a problem? Please describe.
Apart from running the Docker container through 'docker-compose' & 'docker run' container, many users start the container through some UI tool like Kitematic. Add the default configurations in the DockerFile so that container could start from Kitematic.

changes are done. Docker-airflow can easily be started through Kitematic.


Transaction payload outputs are not sorted by index

The output side of a transaction payload view might not have the outputs sorted by their index, this for example happens in https://explorer.alphanet.iotaledger.net/alphanet/block/0x6e0ea4c8a8cdea2107428b21d5a0838644c886b8c1bb770c23529e5116827738

The first input and output are the same NFT and the basic output should also occur as the 2nd entry given the API response:
      "outputs": [
        {
          "type": 6,
          "amount": "500000",
          "nftId": "0xc24676f4d669cc84598105cefd5b3541e02dcb51132f9b8917b68f3340635b8b",
          "unlockConditions": [
            {
              "type": 0,
              "address": {
                "type": 0,
                "pubKeyHash": "0x9db1be0e9f9ee71dbcc3e2a12723c01f9dfa7474f96a19251f04b885ad8eddf8"
              }
            }
          ],
          "immutableFeatures": [
            {
              "type": 1,
              "address": {
                "type": 0,
                "pubKeyHash": "0x9db1be0e9f9ee71dbcc3e2a12723c01f9dfa7474f96a19251f04b885ad8eddf8"
              }
            },
            {
              "type": 2,
              "data": "0x7b227374616e64617264223a224952433237222c2276657273696f6e223a2276312e30222c2274797065223a22696d6167652f676966222c22757269223a2268747470733a2f2f6d65646961332e67697068792e636f6d2f6d656469612f6f615255766b4e56434b38675a73484a484a2f67697068792e6769663f6369643d613230633661326176396d716434386e66366970756c72613464316772773036306a6f763765783478616c63787a396d5c75303032367269643d67697068792e6769665c753030323663743d67222c226e616d65223a2249636520486f636b65792053706f727420474946206279204e484c222c22636f6c6c656374696f6e4e616d65223a2249636520486f636b65792053706f727420474946206279204e484c222c226973737565724e616d65223a22546865204d6167696369616e222c226465736372697074696f6e223a2275706c6f61646564206279206e686c227d"
            }
          ]
        },
        {
          "type": 3,
          "amount": "993500000",
          "unlockConditions": [
            {
              "type": 0,
              "address": {
                "type": 0,
                "pubKeyHash": "0x9db1be0e9f9ee71dbcc3e2a12723c01f9dfa7474f96a19251f04b885ad8eddf8"
              }
            }
          ]
        },
...

Sort the input/outputs by index before render
Careful converting the index hex to decimal cause of the little-endian encoding


Call populateSettings in CheckMojo#canGenerateReport to address NPE

Fixes Issue
When using the check report there is a NPE due to the settings not being populated yet.
Caused by: java.lang.NullPointerException
	at org.owasp.dependencycheck.maven.CheckMojo.canGenerateReport(CheckMojo.java:67)
	at org.apache.maven.reporting.exec.MavenReportExecution.canGenerateReport(MavenReportExecution.java:89)
	at org.apache.maven.plugins.site.render.AbstractSiteRenderingMojo.getReports(AbstractSiteRenderingMojo.java:267)
	at org.apache.maven.plugins.site.render.SiteMojo.execute(SiteMojo.java:115)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	... 12 more

<plugin>
  <groupId>org.owasp</groupId>
  <artifactId>dependency-check-maven</artifactId>
  <reportSets>
    <reportSet>
      <reports>
        <report>check</report>
      </reports>
    </reportSet>
  </reportSets>
</plugin>

Description of Change
Call BaseDependencyCheckMojo#populateSettings from CheckMojo#canGenerateReport to ensure that the necessary items have been initialized to determine if the report can be generated.
Have test cases been added to cover the new functionality?
No, but tested with updated snapshot locally to get passed the NPE and generate the site report.

Can one of the admins verify this patch?

This is a must-have. Currently, the maven-plugin is broken as soon as there are any dependencies.
Example failing pom (generated with artifact maven-site):
`
4.0.0
test.groupid
artifactid-test
1.0-SNAPSHOT
Maven
http://maven.apache.org/
2001

website
scp://webhost.company.com/www/website

UTF-8

maven-site-plugin
3.6

en,fr

org.owasp
dependency-check-maven
2.1.0

false

<dependencies>
    <dependency>
        <groupId>com.hazelcast</groupId> <!-- any dependency here triggers the bug -->
        <artifactId>hazelcast</artifactId>
        <version>3.7.5</version>
    </dependency>
</dependencies>

`


Not possible to toggle with arrow keys before having finalized japanese input

Env
Windows 10
Chrome v51
Japanese MS IME
CodeMirror: v5.13.2 (also exists in v5.16 - and earlier versions)
To reproduce:

Open a code mirror mirror input area
activate the Japanese IME
Enter e.g 'nippo' in Hiragana (Microsoft IME)
Press space once
use the left arrow

Expected Result

Cursor moves. This works in MS Word, Notepad etc

Actual Result:

The left arrow key does not move the cursor

This is a case much like #4095 -- CodeMirror is trying to show an interface similar to that the IME module might be showing, but it doesn't have enough information to do a very good job there. Switching to inputMode: "contentEditable" does help here, since that allows the user to see the native interface.
If having some indicator of where the current selection is is important, it seems that I could periodically read the cursor position from the textarea, and show CodeMirror's cursor at the matching position, during IME. However, this still does not tell the user what group is being worked with -- I had hoped that the current group would be selected, but the only thing that happens is that the cursor is put in front of it, and I don't think there's a workable way to find out how the composed text is split into groups.

(Note that the arrow keys do seem to work, you just don't get visual feedback on their effect.)

Same issue on Chinese IME (Bopomofo)
I initially reported this issue on Ghost's repo (https://github.com/TryGhost/Ghost/issues/9012) but it seemed to be CodeMirror's issue.

This is a issue that is difficult if not impossible to solve with the fundamental approach currently taken by CodeMirror.
We are working on a rewrite (CodeMirror 6) that will address this issue, and we are currently raising money for this work: See the announcement for more information about the rewrite and a demo.
Note that CodeMirror 6 is by no means stable or usable in production, yet. It is highly unlikely that we pick up this issue for CodeMirror 5, though.


How to enable cors with mojo.js with just an function like cors() in express.js ?

Hi, how to enable cors with mojo.js with just an function like cors() in express.js ?

https://github.com/mojolicious/mojo.js/discussions/95


modules: initialize the data for packets sent by generators

Fields other than 'val' in {int,float}-generator output were not
initialized, so the packet would contain unitialized data. When another
node used that packet and extracted data from there, it could read
garbage.
This error was flagged by 'make check-fbp-valgrind' in the tests for
filter-repeated.
Signed-off-by: Caio Marcelo de Oliveira Filho<EMAIL_ADDRESS>

+2

Applied in 4d29fe87a4fcd891aa5baa6dd23002aebb82ef39.


Trying to fix Ruby vulnerabilities (Die nokogiri, die!)

Codecov Report

Merging #152 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master    #152   +/-   ##
======================================
  Coverage    61.1%   61.1%
======================================
  Files         138     138
  Lines        2707    2707
======================================
  Hits         1654    1654
  Misses       1053    1053

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 50293ab...53793b5. Read the comment docs.


GROOVY-9288: Compilation error when accessing a protected super class…

… field from inside a closure

So is this change designed to emit a compiler error or make it work?
I'm not sure I understand the use of static compilation metadata keys in VariableExpressionTransformer.
Paul and I have been fixing several bugs in this area since 9007.  Could we have a look before you decide on a solution involving passing node metadata around; I don't think any of the previous designs have required stashing metadata.

Within VariableExpressionTransformer, this one addition from your change stops the error.  However, I don't know the implications of setting this metadata.  In theory, a dynamic variable within a "with" closure is supposed to be satisfied from the delegate first.  This change is forcing it to be satisfied from the owner.
    private static Expression tryTransformDelegateToProperty(VariableExpression expr) {
        ...

        ClassNode owner = expr.getNodeMetaData(StaticCompilationMetadataKeys.PROPERTY_OWNER);
        if (owner != null) {
            receiver.putNodeMetaData(StaticTypesMarker.INFERRED_TYPE, owner);
            receiver.putNodeMetaData(StaticTypesMarker.IMPLICIT_RECEIVER, val);
            // add
            receiver.putNodeMetaData(StaticCompilationMetadataKeys.RECEIVER_OF_DYNAMIC_PROPERTY, val);
            // end
        }

However, if I edit the example only slightly, the error is still present for "owner.protectedField", "thisObect.protectedField" and "this.protectedField".  So I don't think this is a complete solution.
package a
abstract class Abstract {
  protected String field
}

package b
class Concrete extends a.Abstract {
  @groovy.transform.CompileStatic
  void method() {
    'whatever'.with {
      println field // add "owner.", "thisObect." or "this." and get an error (on line -1 no less)
    }
  }
}

Thanks for your reviewing the PR. I will try to tweak it later.

@eric-milles  The PR can support your edited version of tests now.
P.S.  the PR does not change the default resolve strategy

I need some time to run some experiments.  There is an interplay between StaticTypeCheckingVisitor.checkOrMarkInnerPropertyOwnerAccess, VariableExpressionTransformer.tryTransformDelegateToProperty and StaticTypesCallSiteWriter.makeGetPropertySite that is quite complicated.  We have made a series of changes to address some bugs and I need to go back and see what the original problems were so I can understnad the delegation metadata and property transformations.
Also, I posted links to a number of open bugs related to forbidden access errors under SC.  I think there is more going on than just protected superclass field access.

Also, I posted links to a number of open bugs related to forbidden access errors under SC. I think there is more going on than just protected superclass field access.

@eric-milles I added some tests about accessing public, package-private and private(via getter), you can find them in this PR too.

I've tried a few things and added some test cases.  Can you try just your new tests against the current master branch?  I chose to roll back the fix for GROOVY-7996 since it has caused this issue and a number of others.  I'd rather take a fresh look at that instead of adding one more patch on top of it's delegation data changes.

OK. I will try later today. It's 1:00 a.m. in Shanghai, I have to sleep now.

Running tests based on the latest master(last commit is: https://github.com/apache/groovy/commit/81ef58e114c83746d105dc12027341c27bc63e9f ), 7 tests failed:

As master reverted some commit, the PR is replaced with https://github.com/apache/groovy/pull/1048


refactor: Remove private packages

Removed in favor of https://github.com/kurtosis-tech/kurtosis/pull/108


Fix PYENV_VERSION on Travis

Apparently PYENV_VERSION needs to become PYTHON_VERSION for Travis CI to be happy.  Also updated Python from 3.6 to 3.7, which shouldn't be an issue for any of the libraries used, but one never knows.

Reliably failing with "CondaMemoryError: The conda process ran out of memory. Increase system memory and/or try again." Oddly, that's just on a step of updating conda, so it's hard to see what we could do differently. For now, closing and expecting to change CI systems, which will at least have different issues.


operator/v1: mark all status fields omitempty and optional

Status is unset until an operator is running. Therefore we should not serialize those values.

/hold
Even empty slices are omitted.

Double checked that we don't need special empty-slice handling.
/hold cancel

/assign @soltysh @deads2k


Added redis profile to base image

FIxes #77

great! thanks for the help.

heya. ps watch https://github.com/openzipkin/zipkin-redis as I'm extracting redis to its own repo. If you are interested in contributing or consuming for that matter. cc @gneokleo

pps re-pushing 1.25.3 to include your changes https://travis-ci.org/openzipkin/docker-zipkin/builds/96689603

Thanks @adriancole One of the things I wanted to do was some sort of retry policy on failure. I'll try and find some time and implement it.


Add export in SQL

It must be useful for moving the part of data of tables to the different DB engines

Raw SQL export (whole db/single table) is already implemented and available in 0.9.9

But not on the SQL results. I have tables with more than dozen millions of rows and sometimes I need a couple of rows from production Postgres DB to a developer MySQL table and the simplest way to do it is just to copy/paste and execute SQL

How would this feature work on the subset of table data? My guess is that you can always write a custom sql query and export the resulting data as csv, then import that file using postgres csv import feature.
I don't think this feature request worth implementing (from my point of view) since it's based on a very specific use case.  If you'd like to make it happen - send some code ;)


add xmake 2.3.5

[x] Have you signed the Contributor License Agreement?

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

Microsoft Reviewers: Open in CodeFlow

/azp run

You want to add
Switches:
Silent: /S
SilentWithProgress: /S
And change the installer to Nullsoft probably.

A new pr for xmake v2.3.6, see https://github.com/microsoft/winget-pkgs/pull/2941

I'd suggest to add the switches to the end of the file as well.
Switches:
Silent: /s
SilentWithProgress: /s


[Hold for payment 2022-02-14] Invite new member's personal message textinput is centered in iOS - Reported by @adeel0202

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open app
Navigate to Settings>Workspace>Manage Members
Invite
Start typing in the custom message field

Expected Result:
Message should start from the top
Actual Result:
Message starts in the middle
Workaround:
unknown
Platform:

Where is this issue occurring?

iOS

Version Number: 1.1.36-0
Reproducible in staging?: Y
Reproducible in production?: Y
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43995119/152629781-891860c1-2fed-4127-9584-222a0c9f7199.mp4
Expensify/Expensify Issue URL:
Issue reported by: @adeel0202
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1643301259101700
View all open jobs on GitHub

Triggered auto assignment to @SofiedeVreese (AutoAssignerTriage), see https://stackoverflow.com/c/expensify/questions/4749 for more details.

LGTM. Adding ENG.

Triggered auto assignment to @luacmartins (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

The issue is that the input is not "expanding" to the container height. We can see it if we add a border to it. It's affecting other places that use multiline inputs, e.g. Profile > Security > Close account. I'll put up a fix now.

I'll need to add an internal label so we can pay out the contributor who reported this!

Triggered auto assignment to @JmillsExpensify (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

Hey @JmillsExpensify looks like you've been assigned as CM. This issue was reported by an external contributor. It's been fixed but we'll want to pay out the reporting bonus most likely.

Apologies for the delay @adeel0202 !
@JmillsExpensify are you good to pay out the reporting bonus?

Oh sorry! Not sure why this issue wasn't showing up in my todo list. Yes, good to pay out the bonus for reporting. I'll create a job in Upwork now.

Ah, this issue is closed. Yeah blew right past my todo filters. In any case, Upwork job is here: https://www.upwork.com/jobs/~01317219372708fc82. Please apply @adeel0202 and we'll get this handled asap. Thanks!

@JmillsExpensify, applied. Thank you both.

Great, offer sent.

@JmillsExpensify, accepted.

Great, I've processed the payment and closed out the contract. Have a great day! Closing the issue, but let you know if there is still something we've missed.


Bump haskellNix and iohkNix

Bump haskellNix and iohkNix

Comments
Useful for:

Bumping openapi-spec-validator version needs another workaround not helped by this
Bumping haskell-language-server to 1.8 once we update the cabal index state
Good measure

Issue Number
Tackled as part of ADP-1655

bors try

bors try

bors r+

bors r+

bors r+

It seems buildkite cabal caches with and without this PR somehow are incompatible. Trying to merge without clearing the cache on all machines at once might just cause unnecessary pain 🤔

bors r+

bors r+

bors r-

bors r+

bors try

bors r-

bors r+

bors r-

bors try


⚠ St. Lawrence Global Observatory CKAN has degraded performance

In c9f083b, St. Lawrence Global Observatory CKAN (https://catalogue.ogsl.ca/en/) experienced degraded performance:

HTTP code: 200
Response time: 7472 ms

Resolved: St. Lawrence Global Observatory CKAN performance has improved in 05d3bcd after 4 minutes.


[plasmic] Sync project Canvas App Explorer

This is an automated commit generated by Matthew Jones

Created this by manually running the Github action to publish.
Going to look into working this into the UI Webhook.


reproject issues

Hi,
I live in southern part of Sri Lanka. Today evening, the entire sky is filled with clouds. But when I take an image from satdump(GK-2A LRIT) and send it to sanchez, there were no clouds shown over my country. It seems reproject option has an issue with countries in the edge. The cloud shown by the arrow in the image is really over my country. But the reproject option moved that cloud to left.

If you layer the original HRIT Imggery rebroadcast from GK2A the cloud you are referring is in the correct position for the time it was scanned by GK2A, sent to ground ops for processing, and relayed backed to GK2A for rebroadcast. What you receive on any HRIT or LRIT geo satellite is not Live, but delayed because of processing and rebroadcast. ( and timestamped for the time of reception)
For live Imagery you would need a much bigger system for level L0 or L1 imagery.

How to get the original timestamp of given image?


prevent reopening last sessions at startup

Describe the bug
It seems superputty re-opens last opened sessions, how can I prevent that.

Hi @elekgeek,
I had the same question. According to the documentation, it seems that "window states and open sessions" are called Layouts in supperputty.
So in the Options dialog, in the General tab, I changed the value of "Default Layout" from "" to empty, and it worked.
Is it what you where searching for?


Added unit test for LusciousRipper

Category
This change is exactly one of the following (please change [ ] to [x]) to indicate which:

[x] a bug fix (Fix #918)

Description
Added a unit test for LusciousRipper
Testing
Required verification:

[ ] I've verified that there are no regressions in mvn test (there are no new failures or errors).
[ ] I've verified that this change works as intended.

[ ] Downloads all relevant content.
[ ] Downloads content from multiple pages (as necessary or appropriate).
[ ] Saves content at reasonable file names (e.g. page titles or content IDs) to help easily browse downloaded content.

[ ] I've verified that this change did not break existing functionality (especially in the Ripper I modified).

Optional but recommended:

[ ] I've added a unit test to cover my change.

Coverage increased (+0.3%) to 39.95% when pulling e2a6a257c5aad88c11f91e38edd9cc117de98f7f on cyian-1756:LusciousRipperTest into 85316c7646599ccd512f5de76008897926a44b67 on RipMeApp:master.


lazy initialization of handles for streams

earlier, 1024 cudnn handles were initialized at "require 'cudnn'" for streams. this added an overhead of like 300MB or so. Now handles are initialized lazily, as needed. The overhead goes down to less than 1MB

cool, fixed https://github.com/soumith/cudnn.torch/issues/37


Different welcome emails for different experiments

Mostly looking at HAWC/CTA here.

I have a "Welcome to IceCube or Gen2" document that I give to new Institutional Leads. We should coordinate this.


Pressing keys with ghost tap on makes no miss noise, nor does it affect accuracy.

When you have the ghost tapping option off, pressing a key will give you a miss, but will not make bf play a miss animation or make a miss sound. The misses will also not count towards your overall accuracy.
Ex.
https://user-images.githubusercontent.com/43316541/224593870-c3f8ec39-dcdc-4d52-90ab-8267ec8664c5.mp4

All are bugs to me, except the accuracy part, missing a note only counts for that.

All are bugs to me, except the accuracy part

imo if ghost tap misses dont count toward accuracy, make the taps remove health and dont let them add misses.


Updated build handling to add selection of what to build; added support for PWD

Added support for the following:

Valid agents are dynamically determined by looking for Dockerfiles in the backchannels folder.
Play with Docker is supported with the assumption that either GENESIS_URL is passed in OR von-network is running in the same PWD session. In either case, when on PWD, a test is done to see if the URL can be resolved.
Arguments can be added to the build command to select the (valid) agents to build.  On PWD, this allows bypassing the PWD build of VCX which takes a really long time... :-)

FYI - PWD instructions:

start a PWD session on PWD or PWV (or run it on your own system in an empty folder)
Run these commands (assuming this PR has not been merged):

git clone https://github.com/bcgov/von-network
cd von-network/
./manage build
./manage start
cd ..
git clone https://github.com/swcurran/aries-agent-test-harness
cd aries-agent-test-harness/docker/
git checkout manage-build-updates
./manage build -a acapy
./manage run -d acapy


Make Tween.interpolate_value() static

This PR makes Tween.interpolate_value() a static method, so it can be used for interpolating anywhere in the code and is a nice alternative to the global ease() method (maybe it could be removed now?). Creating a Tween using Tween.new() is no longer a valid use-case, so doing so will now show an error.

and is a nice alternative to the global ease() method (maybe it could be removed now?).

 This is one of the main advantages of ease().

It's still limited to presets.
Well, if ease still has uses then it can be left. It was just a loose idea.

Thanks!