pyocd-gdbserver crash when disconnecting serial port

If I start pyocd-gdbserver,  run application and open serial port connection to mbed (K64F) board everything seems work as expected, but if I then disconnect serial port pyocd-gdbserver crashes with Unhandled exception in handleMsg.
See traceback below:
2017-05-17T11:55:03.547Z - warn: pyocd:stderr:  ERROR:root:Unhandled exception in handleMsg:
2017-05-17T11:55:03.547Z - warn: pyocd:stderr:  Traceback (most recent call last):
2017-05-17T11:55:03.547Z - warn: pyocd:stderr:    File "/Users/user01/git/github/mbedmicro/pyOCD/pyOCD/gdbserver/gdbserver.py", line 426, in handleMsg
2017-05-17T11:55:03.547Z - warn: pyocd:stderr:      return self.getRegisters(), 0
2017-05-17T11:55:03.547Z - warn: pyocd:stderr:    File "/Users/user01/git/github/mbedmicro/pyOCD/pyOCD/gdbserver/gdbserver.py", line 868, in getRegisters
2017-05-17T11:55:03.547Z - warn: pyocd:stderr:      return self.createRSPPacket(self.target_facade.getRegisterContext())
2017-05-17T11:55:03.547Z - warn: pyocd:stderr:    File "/Users/user01/git/github/mbedmicro/pyOCD/pyOCD/gdbserver/context_facade.py", line 54, in getRegisterContext
2017-05-17T11:55:03.547Z - warn: pyocd:stderr:      vals = self._context.readCoreRegistersRaw(reg_num_list)
2017-05-17T11:55:03.548Z - warn: pyocd:stderr:    File "/Users/user01/git/github/mbedmicro/pyOCD/pyOCD/debug/context.py", line 117, in readCoreRegistersRaw
2017-05-17T11:55:03.548Z - warn: pyocd:stderr:      return self._core.readCoreRegistersRaw(reg_list)
2017-05-17T11:55:03.548Z - warn: pyocd:stderr:    File "/Users/user01/git/github/mbedmicro/pyOCD/pyOCD/coresight/cortex_m.py", line 655, in readCoreRegistersRaw
2017-05-17T11:55:03.548Z - warn: pyocd:stderr:      reg_cb = self.readMemory(CortexM.DCRDR, now=False)
2017-05-17T11:55:03.548Z - warn: pyocd:stderr:    File "/Users/user01/git/github/mbedmicro/pyOCD/pyOCD/coresight/cortex_m.py", line 397, in readMemory
2017-05-17T11:55:03.548Z - warn: pyocd:stderr:      result = self.ap.readMemory(addr, transfer_size, now)
2017-05-17T11:55:03.548Z - warn: pyocd:stderr:    File "/Users/user01/git/github/mbedmicro/pyOCD/pyOCD/coresight/ap.py", line 162, in readMemory
2017-05-17T11:55:03.548Z - warn: pyocd:stderr:      self.write_reg(AP_REG['TAR'], addr)
2017-05-17T11:55:03.548Z - warn: pyocd:stderr:    File "/Users/user01/git/github/mbedmicro/pyOCD/pyOCD/coresight/ap.py", line 103, in write_reg
2017-05-17T11:55:03.548Z - warn: pyocd:stderr:      self.dp.writeAP((self.ap_num << APSEL_SHIFT) | addr, data)
2017-05-17T11:55:03.548Z - warn: pyocd:stderr:    File "/Users/user01/git/github/mbedmicro/pyOCD/pyOCD/coresight/dap.py", line 259, in writeAP
2017-05-17T11:55:03.548Z - warn: pyocd:stderr:      self.link.write_reg(ap_reg, data)
2017-05-17T11:55:03.548Z - warn: pyocd:stderr:    File "/Users/user01/git/github/mbedmicro/pyOCD/pyOCD/pyDAPAccess/dap_access_cmsis_dap.py", line 635, in write_reg
2017-05-17T11:55:03.548Z - warn: pyocd:stderr:      self._write(dap_index, 1, request, [value])
2017-05-17T11:55:03.549Z - warn: pyocd:stderr:    File "/Users/user01/git/github/mbedmicro/pyOCD/pyOCD/pyDAPAccess/dap_access_cmsis_dap.py", line 840, in _write
2017-05-17T11:55:03.549Z - warn: pyocd:stderr:      self._send_packet()
2017-05-17T11:55:03.549Z - warn: pyocd:stderr:    File "/Users/user01/git/github/mbedmicro/pyOCD/pyOCD/pyDAPAccess/dap_access_cmsis_dap.py", line 783, in _send_packet
2017-05-17T11:55:03.549Z - warn: pyocd:stderr:      self._read_packet()
2017-05-17T11:55:03.549Z - warn: pyocd:stderr:    File "/Users/user01/git/github/mbedmicro/pyOCD/pyOCD/pyDAPAccess/dap_access_cmsis_dap.py", line 738, in _read_packet
2017-05-17T11:55:03.549Z - warn: pyocd:stderr:      decoded_data = cmd.decode_data(raw_data)
2017-05-17T11:55:03.549Z - warn: pyocd:stderr:    File "/Users/user01/git/github/mbedmicro/pyOCD/pyOCD/pyDAPAccess/dap_access_cmsis_dap.py", line 419, in decode_data
2017-05-17T11:55:03.549Z - warn: pyocd:stderr:      data = self._decode_transfer_data(data)
2017-05-17T11:55:03.549Z - warn: pyocd:stderr:    File "/Users/user01/git/github/mbedmicro/pyOCD/pyOCD/pyDAPAccess/dap_access_cmsis_dap.py", line 318, in _decode_transfer_data
2017-05-17T11:55:03.549Z - warn: pyocd:stderr:      raise DAPAccessIntf.TransferError()
2017-05-17T11:55:03.551Z - warn: pyocd:stderr:  TransferErro

I presume you are using DAPLink on the K64F board? Which version?
This actually sounds like a DAPLink bug rather than pyOCD. There should be no connection between the CDC and CMSIS-DAP interfaces.
Regardless, pyOCD should perhaps more gracefully handle the transfer error.

Daplink was 0242 or 0243, I can check it out. yes root cause could be in daplink side as well. I also saw some strange data appears to serial port when I pause debugging, probably related (also) to daplink.

Double checking the version would be good. There were a number of USB related fixes in DAPLink 0243.

# DAPLink Firmware - see https://mbed.com/daplink
Unique ID:<PHONE_NUMBER>514e450031500585d40022e981000097969900
HIC ID: 97969900
Auto Reset: 0
Automation allowed: 1
Overflow detection: 0
Daplink Mode: Interface
Interface Version: 0243
Bootloader Version: 0242
Git SHA: b403a07e3696cee1e116d44cbdd64446e056ce38
Local Mods: 0
USB Interfaces: MSD, CDC, HID
Bootloader CRC: 0xa65218eb
Interface CRC: 0x4d98bf7e
Remount count: 0

DAPLink interprets a serial break as a command to reset the target. This is used extensively by mbed testing. This is the only command I would expect to interfere with the serial port, and that shouldn't be getting sent on disconnect.

Ah, wait a sec. On macOS, when you disconnect from a serial port, it does in fact automatically send a break (which is a real pain when using DAPLink for testing). I wonder if this is a POSIX thing?
@jupe What OS are you using?

mac 🙄😐

I just tried this on my machine locally. I don't see the break being sent on windows when closing the serial terminal. Also, if I intentionally send a break from the serial terminal I get a traceback similar to what you got.

Right, the break on close is only sent on macOS.
Two suggestions here:

It might be nice the have a configuration setting to disable the reset-on-break feature of DAPLink.
pyOCD needs to detect the target unexpectedly going into reset. This could be helped by extending CMSIS-DAP/DAPLink to send a notification of a detected reset.

I have now verified this with current PyOCD and the issue still exist.
Can you at least workaround this?
I'm forced to use OpenOCD to debug the Icetea testcases, since it does not crash. Only stops the debugging session. But if I'm fast enough, I can call continue on GDB immeadiately when it happens and the testcase continues..

Thanks for the update @SeppoTakalo. I'll try to reproduce it. But it will take some time to get to due to priorities related to Mbed Studio for TechCon.
I'd like to approach this from several angles:

Add option to DAPLink to disable reset-on-break.
Make pyOCD more resilient to transfer errors. This is likely to be a complex task.
Research what code in the Mac serial stack is sending the break on connection code, and if there's a way to disable it. I've previously searched for info about this online (several years ago) but nothing came up. I'll probably have to dig into the serial driver Kext code or BSD serial support (which is thankfully all open source).

Tried with #455  branch but this still reproduces:
$ pyocd-gdbserver
0000427:INFO:board:Target type is k64f
0000470:INFO:dap:DP IDR = 0x2ba01477
0000487:INFO:dap:AP#0 IDR = 0x24770011
0000494:INFO:dap:AP#1 IDR = 0x001c0000
0000520:INFO:target_kinetis:K64F not in secure state
0000531:INFO:rom_table:AP#0 ROM table #0 @ 0xe00ff000 (designer=43b part=4c4)
0000539:INFO:rom_table:[0]<e000e000:SCS-M4 class=14 designer=43b part=00c>
0000545:INFO:rom_table:[1]<e0001000:DWT class=14 designer=43b part=002>
0000551:INFO:rom_table:[2]<e0002000:FPB class=14 designer=43b part=003>
0000558:INFO:rom_table:[3]<e0000000:ITM class=14 designer=43b part=001>
0000564:INFO:rom_table:[4]<e0040000:TPIU-M4 class=9 designer=43b part=9a1 devtype=11 archid=0000 devid=0:0:ca1>
0000571:INFO:rom_table:[5]<e0041000:ETM-M4 class=9 designer=43b part=925 devtype=13 archid=0000 devid=0:0:0>
0000577:INFO:rom_table:[6]<e0042000:ETB class=9 designer=43b part=907 devtype=21 archid=0000 devid=0:0:0>
0000583:INFO:rom_table:[7]<e0043000:CSTF class=9 designer=43b part=908 devtype=12 archid=0000 devid=0:0:28>
0000588:INFO:cortex_m:CPU core is Cortex-M4 r0p1
0000593:INFO:cortex_m:FPU present
0000609:INFO:dwt:4 hardware watchpoints
0000612:INFO:fpb:6 hardware breakpoints, 4 literal comparators
0000623:INFO:semihost:Telnet: server started on port 54356
0000624:INFO:gdbserver:GDB server started at port:3333
0009058:INFO:gdbserver:One client connected!
Traceback (most recent call last):
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/gdbserver/gdbserver.py", line 729, in resume
    self.target.halt()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 527, in halt
    self.flush()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/core/target.py", line 109, in flush
    self.session.probe.flush()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/probe/cmsis_dap_probe.py", line 226, in flush
    six.raise_from(self._convert_exception(exc), exc)
  File "/usr/local/lib/python2.7/site-packages/six.py", line 737, in raise_from
    raise value
TransferError
0018060:ERROR:gdbserver:Unhandled exception in handle_message:
Traceback (most recent call last):
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/gdbserver/gdbserver.py", line 546, in handle_message
    reply = handler(msg[msgStart:])
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/gdbserver/gdbserver.py", line 767, in v_command
    return self.v_cont(cmd)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/gdbserver/gdbserver.py", line 818, in v_cont
    return self.resume(None)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/gdbserver/gdbserver.py", line 734, in resume
    val = ('S%02x' % self.target_facade.get_signal_value()).encode()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/gdbserver/context_facade.py", line 117, in get_signal_value
    if self._context.core.is_debug_trap():
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 946, in is_debug_trap
    debugEvents = self.read_memory(CortexM.DFSR) & (CortexM.DFSR_DWTTRAP | CortexM.DFSR_BKPT | CortexM.DFSR_HALTED)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 482, in read_memory
    result = self.ap.read_memory(addr, transfer_size, now)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/ap.py", line 312, in _read_memory
    result = read_mem_cb()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/ap.py", line 293, in read_mem_cb
    res = result_cb()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/dap.py", line 281, in read_ap_cb
    result = result_cb()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/probe/cmsis_dap_probe.py", line 293, in read_ap_result_callback
    six.raise_from(self._convert_exception(error), error)
  File "/usr/local/lib/python2.7/site-packages/six.py", line 737, in raise_from
    raise value
TransferError
0018067:ERROR:gdbserver:Unhandled exception in handle_message:
Traceback (most recent call last):
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/gdbserver/gdbserver.py", line 544, in handle_message
    reply = handler()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/gdbserver/gdbserver.py", line 980, in get_registers
    return self.create_rsp_packet(self.target_facade.get_register_context())
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/gdbserver/context_facade.py", line 55, in get_register_context
    vals = self._context.read_core_registers_raw(reg_num_list)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/debug/cache.py", line 518, in read_core_registers_raw
    return self._regcache.read_core_registers_raw(reg_list)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/debug/cache.py", line 129, in read_core_registers_raw
    self._check_cache()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/debug/cache.py", line 106, in _check_cache
    if self._context.core.is_running():
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 671, in is_running
    return self.get_state() == Target.TARGET_RUNNING
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 648, in get_state
    dhcsr = self.read_memory(CortexM.DHCSR)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 482, in read_memory
    result = self.ap.read_memory(addr, transfer_size, now)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/ap.py", line 312, in _read_memory
    result = read_mem_cb()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/ap.py", line 293, in read_mem_cb
    res = result_cb()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/dap.py", line 281, in read_ap_cb
    result = result_cb()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/probe/cmsis_dap_probe.py", line 293, in read_ap_result_callback
    six.raise_from(self._convert_exception(error), error)
  File "/usr/local/lib/python2.7/site-packages/six.py", line 737, in raise_from
    raise value
TransferError
0018072:ERROR:gdbserver:Unhandled exception in handle_message:
Traceback (most recent call last):
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/gdbserver/gdbserver.py", line 544, in handle_message
    reply = handler()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/gdbserver/gdbserver.py", line 980, in get_registers
    return self.create_rsp_packet(self.target_facade.get_register_context())
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/gdbserver/context_facade.py", line 55, in get_register_context
    vals = self._context.read_core_registers_raw(reg_num_list)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/debug/cache.py", line 518, in read_core_registers_raw
    return self._regcache.read_core_registers_raw(reg_list)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/debug/cache.py", line 129, in read_core_registers_raw
    self._check_cache()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/debug/cache.py", line 106, in _check_cache
    if self._context.core.is_running():
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 671, in is_running
    return self.get_state() == Target.TARGET_RUNNING
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 648, in get_state
    dhcsr = self.read_memory(CortexM.DHCSR)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 482, in read_memory
    result = self.ap.read_memory(addr, transfer_size, now)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/ap.py", line 312, in _read_memory
    result = read_mem_cb()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/ap.py", line 293, in read_mem_cb
    res = result_cb()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/dap.py", line 281, in read_ap_cb
    result = result_cb()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/probe/cmsis_dap_probe.py", line 293, in read_ap_result_callback
    six.raise_from(self._convert_exception(error), error)
  File "/usr/local/lib/python2.7/site-packages/six.py", line 737, in raise_from
    raise value
TransferError
0018077:ERROR:gdbserver:Unhandled exception in handle_message:
Traceback (most recent call last):
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/gdbserver/gdbserver.py", line 544, in handle_message
    reply = handler()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/gdbserver/gdbserver.py", line 980, in get_registers
    return self.create_rsp_packet(self.target_facade.get_register_context())
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/gdbserver/context_facade.py", line 55, in get_register_context
    vals = self._context.read_core_registers_raw(reg_num_list)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/debug/cache.py", line 518, in read_core_registers_raw
    return self._regcache.read_core_registers_raw(reg_list)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/debug/cache.py", line 129, in read_core_registers_raw
    self._check_cache()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/debug/cache.py", line 106, in _check_cache
    if self._context.core.is_running():
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 671, in is_running
    return self.get_state() == Target.TARGET_RUNNING
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 648, in get_state
    dhcsr = self.read_memory(CortexM.DHCSR)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 482, in read_memory
    result = self.ap.read_memory(addr, transfer_size, now)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/ap.py", line 312, in _read_memory
    result = read_mem_cb()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/ap.py", line 293, in read_mem_cb
    res = result_cb()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/dap.py", line 281, in read_ap_cb
    result = result_cb()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/probe/cmsis_dap_probe.py", line 293, in read_ap_result_callback
    six.raise_from(self._convert_exception(error), error)
  File "/usr/local/lib/python2.7/site-packages/six.py", line 737, in raise_from
    raise value
TransferError
^C0024373:ERROR:board:link exception during target disconnect:
Traceback (most recent call last):
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/board/board.py", line 58, in uninit
    self.target.disconnect(resume)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/core/coresight_target.py", line 148, in disconnect
    core.disconnect(resume)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 405, in disconnect
    self.resume()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 680, in resume
    if self.get_state() != Target.TARGET_HALTED:
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 648, in get_state
    dhcsr = self.read_memory(CortexM.DHCSR)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/cortex_m.py", line 482, in read_memory
    result = self.ap.read_memory(addr, transfer_size, now)
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/ap.py", line 312, in _read_memory
    result = read_mem_cb()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/ap.py", line 293, in read_mem_cb
    res = result_cb()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/coresight/dap.py", line 281, in read_ap_cb
    result = result_cb()
  File "/Users/git/github/mbedmicro/pyOCD/pyocd/probe/cmsis_dap_probe.py", line 293, in read_ap_result_callback
    six.raise_from(self._convert_exception(error), error)
  File "/usr/local/lib/python2.7/site-packages/six.py", line 737, in raise_from
    raise value
TransferError

This is what I did with gdb:
(gdb) target remote localhost:3333
Remote debugging using localhost:3333
warning: Architecture rejected target-supplied description
warning: No executable has been specified and target does not support
determining executable automatically.  Try using the "file" command.
0x00000000 in ?? ()
(gdb) c
Continuing.
warning: Remote failure reply: E01
Remote failure reply: E01
Remote failure reply: E01
Remote failure reply: E01
(gdb)

just open serial port during gdb session and then closing causes this exception.
Note that this also looks like blocker for test beds
CC: @kjbracey-arm


~/.agignore and avoiding extraneous ^M

I'm not sure how to split these into two separate PRs. Sorry about that.

Win32 console stdout is put into binary mode so that what is essentially echoing the \r\n from input files to the console doesn't double the ^M characters. In text mode, \n is expanded to ^M^J already but we don't want that because \r is ^M. stdout is restored to text mode at application shutdown. I don't know if it's necessary to reset it or not but I figured it was safest to do so.
I always want to ignore my tags file so I fought with ~/.agignore for a while before figuring out it simply didn't work in Windows. Win32 builds use getenv("USERPROFILE") instead of getenv("HOME").

Thanks!


🍽 Downstream apps can't reliably test async listeners

Description
Trying to manage testing of a bolt app and running into some issues with reliably handling async - request handlers are resolving before messages have been handled. Wrote up a couple of test cases and opened a PR here to show them failing: https://github.com/slackapi/bolt/pull/337
We have business logic in async handlers (pretty common pattern?) and ideally we'd be able to handle the response when it comes from that async pattern. Example PR shows three failing cases.
What type of issue is this? (place an x in one of the [ ])

[ ] bug
[x] enhancement (feature request)
[ ] question
[ ] documentation related
[ ] testing related
[ ] discussion

Requirements (place an x in each of the [ ])

[x] I've read and understood the Contributing guidelines and have done my best effort to follow them.
[x] I've read and agree to the Code of Conduct.
[x] I've searched for any related issues and avoided creating a duplicate issue.

Thanks for the issue and PR @tteltrab. I'll bring this to the attention of a colleague.

@aoberoi Any chance you can check this one out when you have some spare cycles?

Left a comment in the PR linked above which outlines some approaches we could use to fix the issue.

With the release of Bolt for JS v2, you can now test listeners more reliably.
We've demonstrated a pattern for this in Bolt's own tests, using the FakeReceiver class. Once you initialize an App with that receiver, you can call await fakeReceiver.sendEvent(somePayload) and the following line of code will execute after all the listeners have had a chance to process the event. No more arbitrary delays!


(chore)litmuschaos: update litmus charts to 2.0beta

Signed-off-by: ksatchit<EMAIL_ADDRESS>Thank you for wanting to submit a Pull Request to the Civo Kubernetes Marketplace repository!
If your pull request is to submit a new application to the marketplace, please answer the following questions:

[ ] Have you followed the guidelines in our Contributing document in setting up the application?
[ ] Have you checked that the application your submission is proposing to add does not yet exist on the Marketplace, or as a pull request to be processed?
[ ] Have you tested your application on the Civo managed Kubernetes service? Please include a screenshot.
[ ] Can you confirm that the software you are submitting licensed for use in a publicly-available Kubernetes marketplace?

If your pull request concerns an existing Marketplace application, please make sure you have:

[ ] Notified the Maintainer of the application in this pull request so that they are aware of your proposal.
[ ] Outlined the changes you are proposing, and the reasons these are required (e.g. stability, compatibility with new versions of Kubernetes implementations, etc).
[ ] Tested that the application works with the proposed updates applied (including a screenshot)

There are a few more updates pending on this PR - notably initial instructions. Please consider as WIP - should be able to update soon.

Sure added WIP label, just mention me once ready

Thanks @saiyam1814 ! Have updated the install instructions.

LGTM


Password change page not rendering in 0.7

Severity

[ ] Critical/Blocker (select if the issue makes the application unusable or causes serious data loss)
[ X ] High (select if the issue affects a major feature and there is no workaround or the available workaround is very complex)
[ ] Medium (select if the issue affects a minor feature or affects a major feature but has an easy enough workaround to not cause any major inconvenience)
[ ] Low (select if the issue doesn't significantly affect the user experience, like minor visual bugs)

Describe the bug
The page for password change (/accounts/password_change/) not rendering. Error during template rendering
In template /app/templates/registration/password_change_form.html, error at line 5
'crispy_forms_tags' is not a registered tag library.
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Contact Details
An e-mail address in case we need to contact you for further details regarding this issue.

fixed in mentioned linked commit. Closing.


issues with make file

hi awesome library
i am trying to build it but get
andrewcz@andrewcz-PORTEGE-Z30t-B ~ $ cmake ../andrewcz/libgp/
-- The CXX compiler identification is GNU 4.8.5
-- The C compiler identification is GNU 4.8.5
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
CMake Error at /usr/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
Could NOT find Eigen3 (missing: EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK)
(Required is at least version "3.0.1")
Call Stack (most recent call first):
/usr/share/cmake-3.2/Modules/FindPackageHandleStandardArgs.cmake:374 (_FPHSA_FAILURE_MESSAGE)
FindEigen3.cmake:77 (find_package_handle_standard_args)
CMakeLists.txt:21 (FIND_PACKAGE)
-- Configuring incomplete, errors occurred!
See also "/home/andrewcz/CMakeFiles/CMakeOutput.log".
would you have some advice.
Best,
Andrew

Hi Andrew,
according to the error message you don't have Eigen3 installed. Install it with your package manager and Cmake should be able to find it.
Best
Manuel


Feature/4790 5243 add exposure windows metadata tests

Description

Add unit testing for New exposure windows metrics
Small fix for an if condition

Link to Jira
https://jira-ibs.wbs.net.sap/browse/EXPOSUREAPP-5243
Screenshots
No UI involved

please set label and milestone


Update circe-core, circe-generic, ... to 0.12.3

Updates

io.circe:circe-core
io.circe:circe-generic
io.circe:circe-parser

from 0.12.0-RC3 to 0.12.3.
Release Notes/Changelog
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.circe" } ]

labels: semver-pre-release

Codecov Report

Merging #12 into master will not change coverage by %.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #12   +/-   ##
=======================================
  Coverage   16.25%   16.25%
=======================================
  Files          39       39
  Lines        1661     1661
  Branches       35       35
=======================================
  Hits          270      270
  Misses       1391     1391

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 140d2af...f6d5314. Read the comment docs.


Flask Driver Not Found

New to flask and programming in general. This is what my code looks like in my app:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import splinter

app = Flask(__name__)
app.secret_key = 'my_secret_key'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///./meal_data.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
browser = splinter.Browser('flask', app=app)

This error comes up:
Traceback (most recent call last):
  File "/Users/19tp01/flask-programs/lunchbot/venv/lib/python3.4/site-packages/splinter/browser.py", line 60, in Browser
    driver = _DRIVERS[driver_name]
KeyError: 'flask'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "run.py", line 2, in <module>
    from app import app
  File "/Users/19tp01/flask-programs/lunchbot/app/__init__.py", line 10, in <module>
    browser = splinter.Browser('flask', app=app)
  File "/Users/19tp01/flask-programs/lunchbot/venv/lib/python3.4/site-packages/splinter/browser.py", line 62, in Browser
    raise DriverNotFoundError("No driver for %s" % driver_name)
splinter.exceptions.DriverNotFoundError: No driver for flask

I'm pretty sure I'm following the documentation correctly, and the actual app works fine. All my dependencies have been installed, so I don't know what's the issue here.
Thanks

what version of splinter are you using?

0.7.3

looks like that flask is not installed

I'm pretty sure it's installed. The actual flask app is running smoothly.

I think you have some dependencies (either or both of lxml and cssselect) missing. You can install them with pip install splinter[flask] — which installs splinter and all dependencies required for the flask browser. This is mentioned in the docs http://splinter.readthedocs.io/en/latest/drivers/flask.html but it is a subtle point (looks a lot like pip install splinter flask) and is easily missed.

I remember I did install using pip install splinter[flask] but to make sure I did it again. And yes, they are installed:
$ pip install splinter[flask]
Requirement already satisfied (use --upgrade to upgrade): splinter[flask] in ./venv/lib/python3.4/site-packages
Requirement already satisfied (use --upgrade to upgrade): selenium>=2.47.1 in ./venv/lib/python3.4/site-packages (from splinter[flask])
Requirement already satisfied (use --upgrade to upgrade): cssselect; extra == "flask" in ./venv/lib/python3.4/site-packages (from splinter[flask])
Requirement already satisfied (use --upgrade to upgrade): Flask>=0.10; extra == "flask" in ./venv/lib/python3.4/site-packages (from splinter[flask])
Requirement already satisfied (use --upgrade to upgrade): lxml>=2.3.6; extra == "flask" in ./venv/lib/python3.4/site-packages (from splinter[flask])
Requirement already satisfied (use --upgrade to upgrade): Werkzeug>=0.7 in ./venv/lib/python3.4/site-packages (from Flask>=0.10; extra == "flask"->splinter[flask])
Requirement already satisfied (use --upgrade to upgrade): Jinja2>=2.4 in ./venv/lib/python3.4/site-packages (from Flask>=0.10; extra == "flask"->splinter[flask])
Requirement already satisfied (use --upgrade to upgrade): itsdangerous>=0.21 in ./venv/lib/python3.4/site-packages (from Flask>=0.10; extra == "flask"->splinter[flask])
Requirement already satisfied (use --upgrade to upgrade): click>=2.0 in ./venv/lib/python3.4/site-packages (from Flask>=0.10; extra == "flask"->splinter[flask])
Requirement already satisfied (use --upgrade to upgrade): MarkupSafe in ./venv/lib/python3.4/site-packages (from Jinja2>=2.4->Flask>=0.10; extra == "flask"->splinter[flask])

Can you try to import the FlaskDriver class? I believe that this is not registered because some error is happening:
from splinter.driver.flaskclient import FlaskClient

Yes. That appears to have fixed it. However this error still pops up:
Traceback (most recent call last):
  File "run.py", line 2, in <module>
    from app import app
  File "/Users/19tp01/flask-programs/lunchbot/app/__init__.py", line 5, in <module>
    from splinter.driver.flaskclient import FlaskClient
  File "/Users/19tp01/flask-programs/lunchbot/venv/lib/python3.4/site-packages/splinter/driver/flaskclient.py", line 13, in <module>
    import lxml.html
  File "/Users/19tp01/flask-programs/lunchbot/venv/lib/python3.4/site-packages/lxml/html/__init__.py", line 54, in <module>
    from .. import etree
ImportError: dlopen(/Users/19tp01/flask-programs/lunchbot/venv/lib/python3.4/site-packages/lxml/etree.so, 2): Library not loaded: libxml2.2.dylib
  Referenced from: /Users/19tp01/flask-programs/lunchbot/venv/lib/python3.4/site-packages/lxml/etree.so
  Reason: Incompatible library version: etree.so requires version 12.0.0 or later, but libxml2.2.dylib provides version 10.0.0

I've searched google on how to fix this, apparently by installing libxml2. My attempts so far have not worked (I'm running in a virtualenv, so the normal brew command does not work), but I'm going to keep at it. If anyone has a solution to this, that would be greatly appreciated.
Thanks for your help


Support Load-Balancer mode when deploying Submariner

What would you like to be added:
Submariner supports Loadbalancer mode for supporting tunnels. It can be used instead of creating external-ips and associating them to the instances.
Why is this needed:
This will ease the deployment process.

/assign @aswinsuryan

This is lower priority comparing to other 2.5 deliverables. Moving to the backlog for now.

/assign @sridhargaddam

This is done with https://github.com/stolostron/submariner-addon/pull/470.

/close


Add documentation for list_tables()

<activated-schema>.schema.list_tables()

Following up on this issue. It's a very helpful command to have documented.


Configure internationalization in docs

Implement support for Portuguese and English languages in the documentation.

Implement support for Portuguese and English languages in the documentation.

Hello!
Would this configuration translate the README.md file into Portuguese, for example? Or does it have nothing to do with it?


Default _draw usage

Operating system or device - Godot version:
Windows 8.1 , Godot 3.0 alpha
It would be great if i could draw Control node same as if _draw not overriden. I need it to draw some graphics over texture sprite but following code don't work
extends Control
func _draw():
._draw() // calling of nonexistanf function ( Gamemaker analog of draw_self() )
// draw my lines

No need to call base function, node is drawn anyway
On Jul 6, 2017 4:46 PM, "xdeadmonkx"<EMAIL_ADDRESS>wrote:

Operating system or device - Godot version:
Windows 8.1 , Godot 3.0 alpha
It would be great if i could draw Control node same as if _draw not
overriden. I need it to draw some graphics over texture sprite for. But
following code don't work
extends Control
func _draw():
._draw() // calling of nonexistanf function ( Gamemaker analog of
draw_self() )
// draw my lines
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/godotengine/godot/issues/9531, or mute the thread
https://github.com/notifications/unsubscribe-auth/AF-Z2wjVBn8gji0h4xKhNrKs3UFOm_iNks5sLTmvgaJpZM4OQGUU
.

Thanks, closed!


fix(hello world): Changed 05-hello-world to 06-hello-world

There was a tiny typo with file names.

Thank you!
@homunkulus r+

:pushpin: Commit 6f6e79e has been approved by japaric

:hourglass: Testing commit 6f6e79e with merge 187a4c7...

:sunny: Test successful - status-travis
Approved by: japaric
Pushing 187a4c717020c834bf7039d76c97fdf1f541888c to master...


[docs-only] Fix idm default port typo in README

Fix idm default port typo in README

Double checked with admin docs, the typo is only here. Thanks for catching 👍


Upstream contributions: add dev environment and easier path edits

Thanks for putting this together! It's been a big help.
I made some minor changes that I am upstreaming:

refactored the path references into 2 variables (one for input Dominion CVRs and one for output files)
path references are now a little easier to use with UNIX-based systems
added a Poetry dev environment
a few PEP 8-related formatting changes suggested by PyCharm
removed old files (these will still be available in prior commits)
updated README

Unfortunately, the GitHub file diff tool isn't doing a great job showing the differences. This is mostly due to the changes suggested by PyCharm.
Feel free to take or not take any of these!

Thanks! I've been busy on other projects. I'll take a look this week when I get a chance.


Language Support for ATS

Purpose
Adding language support and icon art for ATS.
Language support at tokei is still undergoing review, and will provide screenshot once it's available.
Logo Reference
http://www.ats-lang.org/MYDATA/theLogo.png
Preview

view

Related PR/issues:

#490
XAMPPRocky/tokei#840

I wonder when there will be a new release of tokei. https://github.com/XAMPPRocky/tokei/pull/840 was merged a long time ago.

Yeah, tokei's last release is more than year old 😟

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

Wow, every day I find a new pending PR :laughing:
@pykenny FYI: #1152

@spenserblack Sorry for not noticing conflict with upstream. Try the CI pipeline again?

@pykenny no worries. Although the CI will likely still fail right now since tokei hasn't been released with support for ATS yet. Though hopefully gengo will fix that :wink:
Anyway, I don't think you have to worry about this PR. You've done all that we could ask a contributor to do to add a new language. it just depends on us fixing upstream issues.

There's some major update on onefetch, so redo the commit from current main branch for simplicity.


Relative Path(usage)

It seems that the program can work with relative path references.
It may be something to look at and changing the prompts.

Usage changed to require github repo url instead of path to software package as input.


[pkg] update waterline-sequel

Apparently the new version of waterline-sequel wrecks everything. Will revisit this some other time unless someone needs this now.


Feature: Cdable to root and home directory.

Add mappings to cd to root and home directory.
Default mappings are same as vimfiler's.

Thank you for the great PR! Merged with some fixes:

<Plug>(vaffle-open-home) looks nice! And the default mapping for it (~) is very intuitive.
<Plug>(vaffle-open-root) also looks good but I think <Bslash> is not intuitive and I worry about collision with other mappings. So I removed it from the default mappings.


May be bug with top level records

Hello!
If set ParentId  to null, then when requested, the null is exceeded to 0.
part of error text:
sql: 'INSERT INTO `config_pricelists` (`id`,`keyName`,`keyValue`,`keyType`,`keyKind`,`**parentId**`,`createdAt`,`updatedAt`,`hierarchyLevel`) VALUES (DEFAULT,?,?,?,?,?,?,?,?);',
 parameters: [
    'test',
    '',
    0,
    'string',
    **0,**
    '2021-01-14 12:22:02',
    '2021-01-14 12:22:02',
    1
  ],
  fields: [ 'parentId' ],
  table: 'config_pricelists',
  value: undefined,
  index: 'config_pricelists_ibfk_1',
  reltype: 'child'
}

My object with params for insert record:
{ name: 'test', parentID: 0, type: 0, kind: 'string', **parentId: null** }
Node: v12.16.1
sequelize: 5.10.1
sequelize-hierarchy: a2.0.4

You haven't given enough information to diagnose this.
But I notice in "object with params for insert record" there's parentID: 0. That is likely the cause.
I'm closing this for now as it doesn't look like it's a bug in sequelize-hierarchy from info provided. If you can produce a repeatable reproduction that demonstrates otherwise, I'll be happy to re-open and investigate.

You haven't given enough information to diagnose this.
But I notice in "object with params for insert record" there's parentID: 0. That is likely the cause.
I'm closing this for now as it doesn't look like it's a bug in sequelize-hierarchy from info provided. If you can produce a repeatable reproduction that demonstrates otherwise, I'll be happy to re-open and investigate.


gitlab cd : notarget No matching version found for<EMAIL_ADDRESS>

npm error

Can't find package stackframe@^1.3.0,too

try again

StackFrame is not a constructor

StackFrame is not a constructor

应该是cnpm的问题吧，过几个小时吧


Post installation script fails to run for<EMAIL_ADDRESS>when path contains whitespace

Describe the bug
If you attempt to upgrade aws-amplify to version 4.31.0 with a path that contains whitespace, it will fail; then amplify-cli will not be usable. I had no problems upgrading up until now! Thanks for all your hard work 👍
Amplify CLI Version
4.30.0
To Reproduce
run npm i -g @aws-amplify/cli
Expected behavior
Successful upgrade to 4.30.0 -> 4.31.0
Screenshots

Desktop (please complete the following information):

OS: Windows
Node Version : 14.4.0

Additional context
Add any other context about the problem here.

This is also affects builds on aws/codebuild/standard:4.0 image, without whitespace in the path:

><EMAIL_ADDRESS>postinstall /usr/local/lib/node_modules/@aws-amplify/cli
178 | > node scripts/post-install.js
179 |
180 | /usr/local/lib/node_modules/@aws-amplify/cli/node_modules/execa/index.js:205
181 | throw error;
182 | ^
183 |
184 | Error: Command failed with exit code 1: /usr/local/lib/node_modules/@aws-amplify/cli/bin/amplify post-install
185 | Scanning for plugins...
186 | Plugin scan failed.
187 | Plugin scan failed.
188 | Error: Plugin scan failed.
189 | at scan (/usr/local/lib/node_modules/@aws-amplify/cli/lib/plugin-manager.js:141:15)
190 | at makeError (/usr/local/lib/node_modules/@aws-amplify/cli/node_modules/execa/lib/error.js:59:11)
191 | at Function.module.exports.sync (/usr/local/lib/node_modules/@aws-amplify/cli/node_modules/execa/index.js:188:17)
192 | at Function.module.exports.commandSync (/usr/local/lib/node_modules/@aws-amplify/cli/node_modules/execa/index.js:227:15)
193 | at Object.<anonymous> (/usr/local/lib/node_modules/@aws-amplify/cli/scripts/post-install.js:23:9)
194 | at Module._compile (internal/modules/cjs/loader.js:1138:30)
195 | at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
196 | at Module.load (internal/modules/cjs/loader.js:986:32)
197 | at Function.Module._load (internal/modules/cjs/loader.js:879:14)
198 | at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
199 | at internal/main/run_main_module.js:17:47 {
200 | shortMessage: 'Command failed with exit code 1: /usr/local/lib/node_modules/@aws-amplify/cli/bin/amplify post-install',
201 | command: '/usr/local/lib/node_modules/@aws-amplify/cli/bin/amplify post-install',
202 | exitCode: 1,
203 | signal: undefined,
204 | signalDescription: undefined,
205 | stdout: 'Scanning for plugins...\n' +
206 | 'Plugin scan failed.\n' +
207 | 'Plugin scan failed.\n' +
208 | 'Error: Plugin scan failed.\n' +
209 | '    at scan (/usr/local/lib/node_modules/@aws-amplify/cli/lib/plugin-manager.js:141:15)',
210 | stderr: '',
211 | failed: true,
212 | timedOut: false,
213 | isCanceled: false,
214 | killed: false
215 | }
216

Hi @9710willy thanks for reporting this, we're investigating now. In the meantime, the CLI should actually still be usable even though the installation failed. The only features affected by the post-install script are local mocking. Hope this unblocks you for now.

Also failing on Debian:

<EMAIL_ADDRESS>postinstall /usr/local/lib/node_modules/@aws-amplify/cli
node scripts/post-install.js

/usr/local/lib/node_modules/@aws-amplify/cli/node_modules/execa/index.js:205
throw error;
^
Error: Command failed with exit code 1: /usr/local/lib/node_modules/@aws-amplify/cli/bin/amplify post-install
┌───────────────────────────────────────────────────┐
│       @aws-amplify/cli update check failed        │
│        Try running with sudo or get access        │
│       to the local update config store via        │
│ sudo chown -R $USER:$(id -gn $USER) /root/.config │
└───────────────────────────────────────────────────┘
Scanning for plugins...
Plugin scan failed.
Plugin scan failed.
Error: Plugin scan failed.
at scan (/usr/local/lib/node_modules/@aws-amplify/cli/lib/plugin-manager.js:141:15)
at makeError (/usr/local/lib/node_modules/@aws-amplify/cli/node_modules/execa/lib/error.js:59:11)
at Function.module.exports.sync (/usr/local/lib/node_modules/@aws-amplify/cli/node_modules/execa/index.js:188:17)
at Function.module.exports.commandSync (/usr/local/lib/node_modules/@aws-amplify/cli/node_modules/execa/index.js:227:15)
at Object. (/usr/local/lib/node_modules/@aws-amplify/cli/scripts/post-install.js:23:9)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/@aws-amplify/cli/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"ia32"})
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none is installed. You must install peer dependencies yourself.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>postinstall: node scripts/post-install.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script.

@mattk- @TonyAsbestosAlert after the installation fails, are you able to run amplify plugin scan? Or do you get the same error?

Also @mattk- @TonyAsbestosAlert did you install the cli using sudo?

Hi Edward,

I install using sudo
After the install fails, there is no amplify command installed to run!
Regards,
Tony

From: Edward Foyle<EMAIL_ADDRESS>Sent: 23 October 2020 18:27
To: aws-amplify/amplify-cli<EMAIL_ADDRESS>Cc: Tony Bolton at Alert Technology Ltd<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [aws-amplify/amplify-cli] Post installation script fails to run for<EMAIL_ADDRESS>when path contains whitespace (#5673)
@mattk-https://github.com/mattk- @TonyAsbestosAlerthttps://github.com/TonyAsbestosAlert after the installation fails, are you able to run amplify plugin scan? Or do you get the same error?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/aws-amplify/amplify-cli/issues/5673#issuecomment-715473703, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQ7U4JQUZL53BXWCU63HQIDSMG4FPANCNFSM4S4AM7QA.

@TonyAsbestosAlert Got it. We've reverted the change and if you re-run npm install -g @aws-amplify/cli - the CLI should install correctly.

@kaustavghosh06 Installed ok, but the latest npm version is 4.30.0, whereas the failing version was 4.31.0.

This issue has been fixed in CLI version 4.31.1

Thanks Edward, successfully installed on Debian.


[Android]Constructors should be protected instead of private to allow extending of renderers instead of overwriting everything.

All the constructor in the renderers currently have private constructors. Making it protected would help us to extend those renderers instead of having to override everything

Thanks for reporting this. I believe we were tracking this change previously and it may already be in master.
@khouzam @tuanh118 could you confirm, and whether or not this will be in the next maven push?


Datepicker Error on focus

There is an error when trying to manually type in the date:
TypeError: Cannot read properties of undefined (reading 'focus')
    at VueComponent.focusTimePicker (t-datepicker.js?0e0b:4180)
    at keydown (t-datepicker.js?0e0b:4455)
    at invokeWithErrorHandling (vue.runtime.esm.js?2b0e:1863)
    at Proxy.invoker (vue.runtime.esm.js?2b0e:2188)
    at invokeWithErrorHandling (vue.runtime.esm.js?2b0e:1863)
    at Proxy.Vue.$emit (vue.runtime.esm.js?2b0e:3903)
    at keydown (t-datepicker.js?0e0b:1514)
    at invokeWithErrorHandling (vue.runtime.esm.js?2b0e:1863)
    at HTMLInputElement.invoker (vue.runtime.esm.js?2b0e:2188)
    at HTMLInputElement.original._wrapper (vue.runtime.esm.js?2b0e:6961)

Here is my component:
<t-datepicker
        v-model="userData.birthday"
        :placeholder="$t('user.birthday')"
        name="birthday"
        class="w-full"
        userFormat="d.m.Y"
        dateFormat="Y-m-d"
        initialDate="2000-01-01"
        initialView="year"
        :maxDate="new Date()"
        :clearable="false"
        :timepicker="false"
      />

Anybody already had this issue and is there maybe a workaround?

Really nobody?

I can reproduce it, seems to happen when you press a key

I have the same error I think. It looks like the cause is this line:
https://github.com/alfonsobries/vue-tailwind/blob/7ff9278d66a8b75234fbfedcd6dc1ed1c51f50cf/src/components/TDatepicker.ts#L573
If you have no timepicker then $refs.timePicker is null leading to the error. A simple fix would be to change the line to
      (this.$refs.timePicker as TimePicker)?.focus();


Generated config should be complete with some default cluster name

Is this a BUG REPORT or FEATURE REQUEST?:
FEATURE REQUEST
Kraken version:
1.2.3-stable+git.sha.f855e5378bcf1d80ffbf441b8274e145cec1ce2e
What happened:
After running ./bin/up.sh --generate the config MUST be edited before it can be used.
What you expected to happen:
Running ./bin/up.sh --generate could produce a complete configuration with a required value for the cluster name.
Anything else we need to know:
Also reported at samsung-cnct/kraken#220

To avoid the problems we had before we removed a default name, the name could be generated using the "combined word" strategy used by kubernetes for things like pod naming, ie. "understated-octopus".

The strategy could also be a constructed pseudo random value like default-$(date "+%y%m%d")-$USER


Add licenses to Markdown

I noticed that we ignore markdown files: https://github.com/apache/iceberg-rust/blob/106be6f5ddd87423dbb1b56cf7ed2d403ee48ad1/.licenserc.yaml#L26
Let's also add the markdown, similar to PyIceberg: https://github.com/apache/iceberg/blob/master/python/mkdocs/docs/api.md

Wow, I didn't know we could add a license header in Markdown!


Incorrect area sizes when initially not visible

When split container (as-split) is hosted within 'mat-tab' (Angular Material tab) and that tab initially is not active/visible then sizes for areas calculated as [0, 0, 0,...100].
Sizes set by 'size' property of 'as-split-area' are ignored.

Please provide a stackbitz demo.

Working on it.

Here's the demo:
https://stackblitz.com/edit/angular-split-in-tab

Thanks,
Yes there's something wrong that has been corrected in 3.x branches, just install version 3.0.0-rc.0.
3.0.0 release is coming soon.

Works as expected with 3.0.0-rc.0
Thanks!


Port and build on linux-arm64 (ARMv8, aarch64)

What I saw: binaries for linux-arm (ARMv7, 32-bit) in the release directory.
What I expected to see: also binaries for linux-arm64 (ARMv8, 64-bit) in that same directory.
I think the fix is a one-liner in the Makefile, at https://github.com/bcicen/ctop/blob/master/Makefile#L20 and I'll have a PR to that effect.
thanks!

I ran into #16 on the way there.

As mentioned in the build doc and #16, build dependencies have since been vendored so you will need to install them via glide install


Add   {bool notify = true}  to removeElement

I was using this package to build a chart which addNextById automatically when adding or remove elements, it is better to add  {bool notify = true} to removeElement fuction. Just an advice.

Good point.
I added the same behavior also to removeAllElements, removeElementConnection, removeAllElements, and some other methods.
Thanks for notifying me :)


Individual Player Stats in Box Score?

Is your feature request related to a problem? Please describe.
I'm sure you've considered this, but being able to get individual player stats for a given game would be wonderful. Particularly for the NCAA basketball module, though I'm sure all of them could use it.
Describe the solution you'd like
I'd guess that it'd be easiest to do this within the BoxScore class, but I suppose you could also do it by passing in the boxscore URI to a Player object similar to how you do it by season now. Just by glancing at the code for it, it seems like the former would be easier than the latter, though perhaps not as elegant.
Describe alternatives you've considered
I've looked just about everywhere for free NCAAB player data, and I'm pretty sure the only real solution right now is to scrape. Which while not necessarily difficult, is annoying given how often most stats sites change. This is by far the most complete API with any sort of wrapper that I've seen, so I really appreciate what you've done already. Even if you are a Carsen Edwards fan ;)
It'd be great to hear if this is in your plans at all.

Hey @j-andrews7, thanks for the suggestion, though you better not be hatin on Carsen! :laughing:
This is actually something that I’ve had in the back of my mind ever since the beginning and have wanted to implement it at some point. There’s a lot of valuable information that can be gained from individual player stats within each game (like the dominance of NPOY candidate Carsen Edwards). I’ve been waiting to include this until I finished both the Boxscore and Player classes, but now that both are complete, I think it would be wise to flag this as a higher priority.
I think I agree with your first suggestion, it would be good to include it in the Boxscore class at the very least, but perhaps each player will have a sub-class instance within the Boxscore. I will do some more thinking on this, but I really like the idea and will include it with a future release. I’ve been meaning to get out version 0.3.0 with some other boxscore updates, but I will see if I can include this with that release, or prioritize it for the next one.
Thanks again for the suggestion and for the kind words! Always happy to see people finding the program useful and love getting suggestions to improve it! Have a good one!

Finally finished this work and created PR #51 to get this merged with master. I apologize for the delay in completing this, but I'm happy that it's coming together. Assuming the test suite passes, I will merge this and finally close this issue, but please let me know if you find there is anything else missing.
Thanks again for including this idea and the feedback along the way! This is a very useful feature to include, and if helps you write more blog articles, that's fantastic! Keep the great ideas coming. 😃


no-qualifying-elements - allow-element-with-class: true bug?

I have this in my sass-lint.yml file:
no-qualifying-elements:
  - 1
  - allow-element-with-class: true

Yet am still getting the warning message 'Qualifying elements are not allowed for class selectors'.
allow-element-with-attribute and allow-element-with-id work as expected.

HI @philwareham, thanks for the report.
Could you provide your version of sass-lint and possibly a sample of the code that is failing so we can investigate a little further.
Thanks

Sure, it's sass-lint version 1.3.3 and a sample of Sass throwing the warning is as follows:
span.disabled { ... content ... }

Hmm, I can't seem to replicate this on 1.3.3 I'm afraid, is there something else around it that changes its context?

OK, I've tested further, and when like this it works:
no-qualifying-elements:
  - 1
  - allow-element-with-class: true

When like this (which is actually what is in my lint file), it doesn't work:
no-qualifying-elements:
  - 1
  - allow-element-with-attribute: true
  - allow-element-with-class: true
  - allow-element-with-id: false

Ah, I've just realised I have the syntax wrong (doesn't need the dashes). Really sorry to waste your time!

No problem. Glad you sorted it.
For anyone else coming across this issue you need to pass the multiple options through as an object like so.
  no-qualifying-elements:
    - 1
    -
      allow-element-with-attribute: true
      allow-element-with-class: false
      allow-element-with-id: true


update dependencies

Hi Zakaria, thanks for your PR!
Are you sure that no changes to the code required after updating to the major release?

The tests fail for this PR. The current stable release for this build is also failing. We should look into why the tests arent passing first.

Just checked the reason. The builds are failing because there are no tests to run. Adding some tests would be a start.

Closing PR now. Feel free to create new after all necessary checks.


Response caching?

I've seen another link checking tool mention response caching:

URL request results will be cached when true. This will ensure that each unique URL will only be checked once.

Which is also paired with a cache age option:

Default Value: 3_600_000 (1 hour)
The number of milliseconds in which a cached response should be considered valid. This is only relevant if the cacheResponses option is enabled.

I don't see it documented here if responses are cached by default implicitly. If not, is this something that could help with
I did see this discussion about an extractor pool with the benefit of de-duping URL checks. That's a similar benefit I guess, although if there were a related cache data file that could be persisted (with an expiry timestamp), one could persist this with CI cache tooling across runs.
That would be useful for PRs triggering tests each time commits are pushed to update the PR, reducing concerns about Rate Limits being hit? (since the likelihood of a URL, at least ignoring internal ones if local filesystem URI were later supported; would probably still be successful within a given duration between runs)

Oh that's a great idea! We don't cache responses yet. Didn't even think about using a file for storing these responses yet, but I'm all for it.
We could use sled for that, which looks like the perfect fit as it's a file-based, high-perf key-value store written in Rust but it doesn't support key expiry out of the box. We either have to implement that ourselves or look for a different crate.
In any case, a pull request would be amazing. 😎

You could probably just store the expiry in seconds (probably just needs to be an arg actually) with this data along with a unix timestamp to know if the file should be used for cache or discarded. I haven't written rust in a while but std::time::SystemTime.duration_since() looks like it might be sufficient. Otherwise I guess there's chrono which isn't too heavy AFAIK to include for UTC ISO8601 string storage and convenience methods?
The file in the CI can be cached easily enough, eg with Github Actions, a prior step would be:
- name: Cache Responses
  uses: actions/cache@v2
  with:
    path: <path to cache file from lychee>
    key: lychee.cache

The lychee-action could also leverage that internally (available as NPM package) to pass some input args (or hash of them) if desirable which could help with cache invalidation I guess? (as the file is cached/restored by CI instead of committed to the repo, where you'd normally get a hash of the file contents)

EDIT:

but it doesn't support key expiry out of the box.

I just realized you mentioned key expiry specifically :sweat_smile:
I had a more naive approach in mind. Just caching the status of URLs to disk to persist between CI runs and invalidating the cache when now > (before + expiry). The expiry is tied to the cache file itself rather than individual requests/URLs.
That is the before value is from the original run that created the cache file, and now is time with subsequent runs. You could update the file with new URLs to cache and that would still be fine, they might be more short-lived, but the global expiry value ensures that they're still cached effectively without complicating per URL expiry offsets (and a larger file).
An expiry of 3600 would just mean any newly cached URLs at the 3599 mark would expire and need to be cached again, and that only matters if there is another run that following duration (hour); otherwise every URL needs to be re-cached anyway. Therefore you have a guarantee that the URLs that are successful won't be checked more than twice within the expiry duration window.

This caching behavior may cause some false positives depending on activity (for internal or external links) that might cause the links to actually be unreachable but not caught, but for a PR I think that is uncommon and a CI event can do a full scan without cache via a related event such as reviewer approving for merge.

I'd give a shot, but I'm pretty swamped as-is right now 😞

No worries. Thanks to the detailed write-up; I'm sure it will help implementing the functionality in the future.
I'm all in favor of keeping this as simple as possible.

lychee cache file with creation timestamp
on start, check if the file is too old. If it is, remove it and create a new one. If it isn't, use it.
that's it

I don't even think we'd need sled for that. Perhaps just a serialized version of the Status struct + a timestamp would do. 😊

An impl of the things discussed plus some additional comments is here: #443.

I'll close this issue because the other one contains my TODO list and the PR code. Let's move the discussion over there as well. Thanks for the initial idea! 😊


Vickel: Watch sproutsitter.com

Vickel requests the watch of the watch_keyword sproutsitter\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

sproutsitter\.com has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Approved by tripleee in Charcoal HQ

Approved by tripleee in Charcoal HQ


rancheros-install -f does not partition or re-read table correctly

[rancher@rancher ~]$ sudo rancheros-install -c cloud-init -f -v v0.2.1 -d /dev/sda -t generic
All data will be wiped from this device
Partition: true
DEVICE: /dev/sda1
Are you sure you want to continue? [yN]y+ DEVICE=/dev/sda1
+ [[ -z /dev/sda1 ]]
++ wc -l
+++ cut -d / -f3
+++ echo /dev/sda1
++ grep sda1 /proc/partitions
+ PARTITION_COUNT=1
+ '[' 1 -gt 1 ']'
+ fdisk /dev/sda1

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): Partition number (2-4, default 2): Value out of range.
Partition number (2-4, default 2):
No free sectors available.

Command (m for help):

Command (m for help):
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Invalid argument

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

The script stops after this. Re-running rancheros-install with /dev/sda1 gives us:
[root@rancher rancher]# rancheros-install -c cloud-init -v v0.2.1 -d /dev/sda1 -t generic
All data will be wiped from this device
Partition: true
DEVICE: /dev/sda1
Are you sure you want to continue? [yN]y

+ DEVICE=/dev/sda1
+ [[ -z /dev/sda1 ]]
++ wc -l
+++ echo /dev/sda1
+++ cut -d / -f3
++ grep sda1 /proc/partitions
+ PARTITION_COUNT=1
+ '[' 1 -gt 1 ']'
+ fdisk /dev/sda1

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): Partition number (2-4, default 2): Value out of range.
Partition number (2-4, default 2):
No free sectors available.

Command (m for help):

Command (m for help):
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Invalid argument

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

fdisk shows a partition:
Disk /dev/sda: 17.1 GB,<PHONE_NUMBER>4 bytes
171 heads, 2 sectors/track, 98112 cylinders
Units = cylinders of 342 * 512 = 175104 bytes

   Device Boot      Start         End      Blocks  Id System
/dev/sda1               6       98113    16776192  83 Linux

cloud-init is simply my ssh keys.

I cleared my partition table and it worked:
[root@rancher rancher]# rancheros-install -c cloud-init -f -v v0.2.1 -d /dev/sda -t generic
+ DEVICE=/dev/sda
+ [[ -z /dev/sda ]]
++ wc -l
+++ echo /dev/sda
+++ cut -d / -f3
++ grep sda /proc/partitions
+ PARTITION_COUNT=1
+ '[' 1 -gt 1 ']'
+ fdisk /dev/sda

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): Partition number (1-4, default 1): First sector (2048-33554431, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-33554431, default 33554431):
Created a new partition 1 of type 'Linux' and of size 16 GiB.

Command (m for help): The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

udev
+ getopts c:d:t:r: OPTION
+ case $OPTION in
+ DEVICE=/dev/sda
+ getopts c:d:t:r: OPTION
+ case $OPTION in
+ ENV=generic
+ getopts c:d:t:r: OPTION
+ case $OPTION in
+ CLOUD_CONFIG=/opt/user_config.yml
+ getopts c:d:t:r: OPTION
+ BASE_DIR=/mnt/new_img
+ '[' -n generic ']'
+ case ${ENV} in
+ format_and_mount
+ device_defined /dev/sda
+ [[ -z /dev/sda ]]
+ format_device
+ mkfs.ext4 -F -L RANCHER_STATE /dev/sda1
mke2fs 1.42.12 (29-Aug-2014)
Found a dos partition table in /dev/sda1
Creating filesystem with 4194048 4k blocks and 1048576 inodes
Filesystem UUID: d9067681-bc9a-427c-9d23-362e88172f42
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
	4096000

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

+ mount_device
+ local label=RANCHER_STATE
+ mkdir -p /mnt/new_img
++ lsblk -o name
++ wc -l
++ grep RANCHER_BOOT
+ '[' 0 -eq 1 ']'
+ mount -L RANCHER_STATE /mnt/new_img
+ trap 'umount /mnt/new_img' EXIT
+ create_boot_dirs
+ mkdir -p /mnt/new_img/boot/grub
+ install_grub
+ grub-install --boot-directory=/mnt/new_img/boot /dev/sda
Installing for i386-pc platform.
grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels.  This is not supported yet..
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.
+ umount /mnt/new_img

This resulted in a machine without an OS though.

This is a fresh vmWare Fusion instance with a new disk.

We are working to better support cases where we fail to partition the disk correctly. rancherio/os-installer#7. We didn't want to be too aggressive out of the gate because we weren't sure what configurations users would have. But, I think this scenario is something we can address.
It looks like in the first run, you used /dev/sda1 as the -d option? the command line and script output seem to conflict a bit compared to the second run.
Looks like a label was left behind. Probably need to add better error reporting when that fails as well. If you try with a new fresh disk, does it work?

I can't install it either:
Writing superblocks and filesystem accounting information: done

+ mount_device
+ local label=RANCHER_STATE
+ mkdir -p /mnt/new_img
++ lsblk -o name
++ wc -l
++ grep RANCHER_BOOT
+ '[' 0 -eq 1 ']'
+ mount -L RANCHER_STATE /mnt/new_img
+ trap 'umount /mnt/new_img' EXIT
+ create_boot_dirs
+ mkdir -p /mnt/new_img/boot/grub
+ install_grub
+ grub-install --boot-directory=/mnt/new_img/boot /dev/sda
Installing for i386-pc platform.
grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels.  This is not supported yet..
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.
+ umount /mnt/new_img

This is with a fresh disk. I don't know why GRUB complains about multiple labels. There is only one:

With v0.3.0, this should be fixed. If not, please reopen.

with version v0.3.1, this issue is still there. Please provide a fix

oops. It seems I downloaded the wrong .iso (machine-rancheros.iso), which caused the problem.

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): Partition type
p   primary (0 primary, 0 extended, 4 free)
e   extended (container for logical partitions)
Select (default p): Partition number (1-4, default 1): First sector (2048-33554431, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-33554431, default 33554431):
Created a new partition 1 of type 'Linux' and of size 16 GiB.
Command (m for help): The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
udev

getopts i:f:c:d:t:r:o:p: OPTION
case $OPTION in
DEVICE=/dev/sda
getopts i:f:c:d:t:r:o:p: OPTION
case $OPTION in
ENV=generic
getopts i:f:c:d:t:r:o:p: OPTION
case $OPTION in
CLOUD_CONFIG=/opt/user_config.yml
getopts i:f:c:d:t:r:o:p: OPTION
DIST=/dist
BASE_DIR=/mnt/new_img
PARTITION=/dev/sda1
KERNEL_ARGS=
'[' -n generic ']'
case ${ENV} in
format_and_mount
format_device
device_defined /dev/sda
[[ -z /dev/sda ]]
mkfs.ext4 -F -i 4096 -L RANCHER_STATE /dev/sda1
mke2fs 1.42.12 (29-Aug-2014)
/dev/sda1 contains a ext4 file system labelled 'RANCHER_STATE'
last mounted on /mnt/new_img on Fri Jun 19 12:11:12 2015
Creating filesystem with 4194048 4k blocks and 4194304 inodes
Filesystem UUID: 9ad10a74-9999-448c-aacf-b43067b62315
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

mount_device
local label=RANCHER_STATE
local raw=false
mkdir -p /mnt/new_img
++ lsblk -o name
++ grep RANCHER_BOOT
++ wc -l
'[' 0 -eq 1 ']'
local 'mount_opts=-L RANCHER_STATE'
'[' false == true ']'
mount -L RANCHER_STATE /mnt/new_img
trap 'umount /mnt/new_img' EXIT
create_boot_dirs
mkdir -p /mnt/new_img/boot/grub
install_grub
grub-install --boot-directory=/mnt/new_img/boot /dev/sda
Installing for i386-pc platform.
grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels.  This is not supported yet..
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.
umount /mnt/new_img
[rancher@rancher ~]$ sudo reboot
Connection to <IP_ADDRESS> closed by remote host.
Connection to <IP_ADDRESS> closed.
[~]$

@fatihusta what is in your cloud-config-processed.yml? did you include a SSH key which would allow you to SSH into the box?
You can review the docs: http://rancherio.github.io/os/docs/running-rancheros/server/install-to-disk/ to see if that will help.

yes I followed the link until the document.
I added to the ssh key configuration files.
cloud-config-processed.yml
ssh_authorized_keys:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDSmA2HTfo526N..... fatih@master

To confirm, did the file look like this? It needs to have the #cloud-config and the spacing needs to exist in the file around the dash in front of the ssh key. I just realized the spacing was missing in the docs, so have added it there.
#cloud-config
ssh_authorized_keys:
  - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDSmA2HTfo526N..... fatih@master

Hi deniseschannon
yes I am setting file creating in this way.
I've erased VirtualBox on the definition and create it again. It worked.
I tried to reproduce the same situation. But I was not successful.
I will share it here I can reproduce the error.
Thanks for your help.
Sory my bad english.

Ok, great. If it's another issue, please re-open a new one. Thanks.

Getting this with v0.3.3 attempting to install the fresh machine-rancher.iso into a Parallels Desktop VM.
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): Partition number (1-4, default 1): First sector (2048-33554431, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-33554431, default 33554431):
Created a new partition 1 of type 'Linux' and of size 16 GiB.

Command (m for help): Re-reading the partition table failed.: Success
The partition table has been altered.
Calling ioctl() to re-read partition table.

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
Syncing disks.

udev
+ getopts i:f:c:d:t:r:o:p: OPTION
+ case $OPTION in
+ DEVICE=/dev/sda
+ getopts i:f:c:d:t:r:o:p: OPTION
+ case $OPTION in
+ ENV=generic
+ getopts i:f:c:d:t:r:o:p: OPTION
+ case $OPTION in
+ CLOUD_CONFIG=/opt/user_config.yml
+ getopts i:f:c:d:t:r:o:p: OPTION
+ DIST=/dist
+ BASE_DIR=/mnt/new_img
+ PARTITION=/dev/sda1
+ KERNEL_ARGS=
+ '[' -n generic ']'
+ case ${ENV} in
+ format_and_mount
+ format_device
+ device_defined /dev/sda
+ [[ -z /dev/sda ]]
+ mkfs.ext4 -F -i 4096 -L RANCHER_STATE /dev/sda1
mke2fs 1.42.12 (29-Aug-2014)
The file /dev/sda1 does not exist and no size was specified.

Reboot then second run gives the grub blocklists error:
[rancher@rancher ~]$ sudo rancheros-install -c cloud_config.yml -f -v v0.3.3 -d /dev/sda -t generic
Unable to find image 'rancher/os:v0.3.3' locally
v0.3.3: Pulling from rancher/os
64e5325c0d9d: Pull complete
bf84c1d84a8f: Pull complete
2fee06ebd21b: Pull complete
f883cdbc141f: Pull complete
3583989b6df5: Pull complete
c5b9cd3135d4: Pull complete
3aa1e4862bf7: Pull complete
18a17f653f50: Already exists
Digest: sha256:a7d233ec194d7e2796ef596ef724c7e7c1dc17504692d596dfb6ea0e62218fad
Status: Downloaded newer image for rancher/os:v0.3.3
Device /dev/sda already partitioned!
+ DEVICE=/dev/sda
+ [[ -z /dev/sda ]]
++ wc -l
+++ echo /dev/sda
+++ cut -d / -f3
++ grep sda /proc/partitions
+ PARTITION_COUNT=2
+ '[' 2 -gt 1 ']'
+ echo 'Device /dev/sda already partitioned!'
+ echo 'Checking to see if it is mounted'
+ grep -q /dev/sda /proc/mounts
Checking to see if it is mounted
++ system-docker ps -q
+ for container in '$(system-docker ps -q)'
+ system-docker exec 86730138cd1e grep -q /dev/sda /proc/mounts
+ for container in '$(system-docker ps -q)'
+ system-docker exec 58c2991db7d9 grep -q /dev/sda /proc/mounts
+ for container in '$(system-docker ps -q)'
+ system-docker exec cbfdbe594fa3 grep -q /dev/sda /proc/mounts
+ for container in '$(system-docker ps -q)'
+ system-docker exec 29b1cc49e602 grep -q /dev/sda /proc/mounts
+ for container in '$(system-docker ps -q)'
+ system-docker exec d1ed3e1fd842 grep -q /dev/sda /proc/mounts
+ for container in '$(system-docker ps -q)'
+ system-docker exec 16712c7531e1 grep -q /dev/sda /proc/mounts
+ for container in '$(system-docker ps -q)'
+ system-docker exec 64a3e2d3302b grep -q /dev/sda /proc/mounts
+ dd if=/dev/zero of=/dev/sda bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.00140019 s, 366 kB/s
+ partprobe /dev/sda
+ fdisk /dev/sda
/dev/sda: device contains a valid 'ext4' signature, it's strongly recommended to wipe the device by command wipefs(8) if this setup is unexpected to avoid possible collisions.

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x87adc126.

Command (m for help): Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): Partition number (1-4, default 1): First sector (2048-33554431, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-33554431, default 33554431):
Created a new partition 1 of type 'Linux' and of size 16 GiB.

Command (m for help): The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

udev
+ getopts i:f:c:d:t:r:o:p: OPTION
+ case $OPTION in
+ DEVICE=/dev/sda
+ getopts i:f:c:d:t:r:o:p: OPTION
+ case $OPTION in
+ ENV=generic
+ getopts i:f:c:d:t:r:o:p: OPTION
+ case $OPTION in
+ CLOUD_CONFIG=/opt/user_config.yml
+ getopts i:f:c:d:t:r:o:p: OPTION
+ DIST=/dist
+ BASE_DIR=/mnt/new_img
+ PARTITION=/dev/sda1
+ KERNEL_ARGS=
+ '[' -n generic ']'
+ case ${ENV} in
+ format_and_mount
+ format_device
+ device_defined /dev/sda
+ [[ -z /dev/sda ]]
+ mkfs.ext4 -F -i 4096 -L RANCHER_STATE /dev/sda1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 4194048 4k blocks and 4194304 inodes
Filesystem UUID: 3f4eba49-b6c9-4e59-b72a-c9bb237c8e93
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
	4096000

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

+ mount_device
+ local label=RANCHER_STATE
+ local raw=false
+ mkdir -p /mnt/new_img
++ lsblk -o name
++ grep RANCHER_BOOT
++ wc -l
+ '[' 0 -eq 1 ']'
+ local 'mount_opts=-L RANCHER_STATE'
+ '[' false == true ']'
+ mount -L RANCHER_STATE /mnt/new_img
+ trap 'umount /mnt/new_img' EXIT
+ create_boot_dirs
+ mkdir -p /mnt/new_img/boot/grub
+ install_grub
+ grub-install --boot-directory=/mnt/new_img/boot /dev/sda
Installing for i386-pc platform.
grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels.  This is not supported yet..
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.
+ umount /mnt/new_img

@michaeldays I believe the machine-rancher.iso does an auto format on boot and sets up the state partition. It is meant to be use with docker machine. If you just want to install, I would use the rancher.iso image.

Thanks @cloudnautique that did the trick. Much appreciated!
How do I report a bug with the documentation? The bare-machine install section should probably mention the iso to use. ;)
http://os.docs.rancher.com/docs/running-rancheros/server/install-to-disk/

@MichaelDays The iso to use is referred to in this documentation page.
http://os.docs.rancher.com/docs/running-rancheros/workstation/boot-from-iso/
I've added additional information to the install to disk section in case they didn't see that page. Thanks for the feedback!

Thanks for the tweak, @deniseschannon - much harder for me to miss now. ;)

Still seeing this issue with 0.3.3. Using the rancher.iso on proxmox (KVM) with a virtio disk:
Cloud config:
#cloud-config
hostname: dummy
ssh_authorized_keys:
  - ssh-rsa AAAA<EMAIL_ADDRESS>rancher:
  network:
    interfaces:
      eth*:
        dhcp: false
      eth0:
        address: <IP_ADDRESS>/24
        gateway: <IP_ADDRESS>
        mtu: 1500
    dns:
      nameservers:
        - <IP_ADDRESS>
        - <IP_ADDRESS>

Command line:
sudo rancheros-install -c cloudconfig.yml -d /dev/vda

Output:
No install type specified...defaulting to generic
Device /dev/vda already partitioned!
Checking to see if it is mounted
+ DEVICE=/dev/vda
+ [[ -z /dev/vda ]]
++ wc -l
+++ echo /dev/vda
+++ cut -d / -f3
++ grep vda /proc/partitions
+ PARTITION_COUNT=2
+ '[' 2 -gt 1 ']'
+ echo 'Device /dev/vda already partitioned!'
+ echo 'Checking to see if it is mounted'
+ grep -q /dev/vda /proc/mounts
++ system-docker ps -q
+ for container in '$(system-docker ps -q)'
+ system-docker exec ca40f1e71368 grep -q /dev/vda /proc/mounts
+ for container in '$(system-docker ps -q)'
+ system-docker exec eaa8d2dd6f0f grep -q /dev/vda /proc/mounts
+ for container in '$(system-docker ps -q)'
+ system-docker exec 16b33b477969 grep -q /dev/vda /proc/mounts
+ for container in '$(system-docker ps -q)'
+ system-docker exec e8bf3f735cb5 grep -q /dev/vda /proc/mounts
+ for container in '$(system-docker ps -q)'
+ system-docker exec 8700905d4492 grep -q /dev/vda /proc/mounts
+ for container in '$(system-docker ps -q)'
+ system-docker exec 0bb39604735f grep -q /dev/vda /proc/mounts
+ for container in '$(system-docker ps -q)'
+ system-docker exec 8f5a80a87136 grep -q /dev/vda /proc/mounts
+ dd if=/dev/zero of=/dev/vda bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000809998 s, 632 kB/s
+ partprobe /dev/vda
+ fdisk /dev/vda
/dev/vda: device contains a valid 'ext4' signature, it's strongly recommended to wipe the device by command wipefs(8) if this setup is unexpected to avoid possible collisions.

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x6de42287.

Command (m for help): Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): Partition number (1-4, default 1): First sector (2048-33554431, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-33554431, default 33554431):
Created a new partition 1 of type 'Linux' and of size 16 GiB.

Command (m for help): The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

udev
+ getopts i:f:c:d:t:r:o:p: OPTION
+ case $OPTION in
+ DEVICE=/dev/vda
+ getopts i:f:c:d:t:r:o:p: OPTION
+ case $OPTION in
+ ENV=generic
+ getopts i:f:c:d:t:r:o:p: OPTION
+ case $OPTION in
+ CLOUD_CONFIG=/opt/user_config.yml
+ getopts i:f:c:d:t:r:o:p: OPTION
+ DIST=/dist
+ BASE_DIR=/mnt/new_img
+ PARTITION=/dev/vda1
+ KERNEL_ARGS=
+ '[' -n generic ']'
+ case ${ENV} in
+ format_and_mount
+ format_device
+ device_defined /dev/vda
+ [[ -z /dev/vda ]]
+ mkfs.ext4 -F -i 4096 -L RANCHER_STATE /dev/vda1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 4194048 4k blocks and 4194304 inodes
Filesystem UUID: 8b9d6bca-4b9b-4fe0-9191-68d4899720f0
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
	4096000

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

+ mount_device
+ local label=RANCHER_STATE
+ local raw=false
+ mkdir -p /mnt/new_img
++ lsblk -o name
++ grep RANCHER_BOOT
++ wc -l
+ '[' 0 -eq 1 ']'
+ local 'mount_opts=-L RANCHER_STATE'
+ '[' false == true ']'
+ mount -L RANCHER_STATE /mnt/new_img
+ trap 'umount /mnt/new_img' EXIT
+ create_boot_dirs
+ mkdir -p /mnt/new_img/boot/grub
+ install_grub
+ grub-install --boot-directory=/mnt/new_img/boot /dev/vda
Installing for i386-pc platform.
grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels.  This is not supported yet..
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.
+ umount /mnt/new_img

Partition labels:
ls -l /dev/disk/by-label
total 0
lrwxrwxrwx    1 root     root            10 Aug 22 15:30 RANCHER_STATE -> ../../vda1
lrwxrwxrwx    1 root     root             9 Aug 22 15:05 RancherOS -> ../../sr0

This should be reopened. The problem is happening to me with version 0.3.3

Yes, I can confirm it too, same grub error. VM in VMware Workstation on Linux.

After rebooting the machine and deleting/adding a new vdisk to the machine the install worked.

Repro on v0.4.0-rc8:
$ mkfs.ext4 /dev/sda
$ ros install -d /dev/sda


Add Title component alongside Titled to avoid confusion

Quickstart guide containing tuple return helps cover variations. This also helps to avoid confusion b/w Titled() and Title()

Thanks for the PR, but unfortunately this is entirely unnecessary. Also changes the very clean HTML output from:

  <title>Chart Demo</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">

Chart Demo

to this:

<!doctype html>

  <title>Chart Demo</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">

  <title>Chart Demo</title>

Chart Demo


Capitalization of compareMS2GUI

The software was originally written "compareMS2". In the GUI, it is written "comparems2gui", and here on GitHub "compareMS2gui". I would prefer "compareMS2GUI", as "gui" in lower case looks odd.

Project and software renamed to simply "compareMS2".


Partials do not update when content is in a symlink

If you render a partial, and that partial exists in a symlink, it will work and render correctly. However, if you edit the content of that partial and reload the page, it will not use the updated partial. I have a feeling it has to do with having some internal cache based on the files modified date, and its not picking up changes within a symlink.
I've tried adding the symlinked folder to reload paths (both relative, and the original folder) but looks like it's not reloading in those cases. Here's the steps to reproduce:
If you have a folder outside of your middleman project called "/users/me/code/my_folder" and symlink that into your Middleman "source/symlinked_in_folder" folder and try to use a partial within that folder you'll see this behavior.
= partial 'symlinked_in_folder/example'

Just ran into this, and am still tracking it down. If I do, I'll try adding a PR with it. :)

Narrowed this down to v3.4 Listen.to not working as you'd expect ( issue here in the listen gem ) https://github.com/guard/listen/issues/279 .
A workaround for the moment is to use the force_polling option, which does cause these to update:
middleman server --reload-paths data/,lib/ --force_polling true

Going to also try updating to 4's rc to see if that helps out as a next step.

I've found that Middleman 4's multiple source folders has eliminated my need for symlinks. There's not a lot of documentation for it at present, but you can find some examples in the test fixtures, such as multiple-sources-app and multiple-sources-with-duplicate-file-names-app. Check out config.rb in both directories.
Also possibly useful, though I haven't yet used this myself, are the import_path and import_file methods. Example

I'm doing some issue-gardening 🌿🌷🌾 and came across this issue.
Sorry that this has lingered for quite a while! This should work in v4. If not a a PR with a failing test would be a great start.
Also, @jimothyGator if you'd like to provide a PR to the docs (https://github.com/middleman/middleman-guides) that would be awesome! ⛵


Update Input Template to support 1200 Rows of input including Import Data functionality

Why is this issue important?
The partners have several instances where they have over 200 rows of data in a single upload, specifically around Subawards and Expenditures. This complicates things for the partners as they have to apply their own changes. Additionally, the Import Data function only copies the first 200 rows of data.
Current State
The Input Template currently only supports 200 rows of data. This includes formatting (dates, currency, etc.), validation (like dropdowns), and conditional formatting. Additionally, the Import Data function only copies the first 200 rows.
Expected State
Increase the row limit for all EC and supporting sheets from 200 to 1200. This includes, cell formatting, conditional formatting and validations. Additionally, the Update Validation and Import Data functions must be altered to account for this change.
Implementation Plan
No response
Relevant Code Snippets
No response

This work has been applied and the version number was NOT increased as this has no affect on the backend or direct impact on the end users.


cuelang.org: modules reference has at least one 404 link

What page were you looking at?
https://cuelang.org/docs/reference/modules/
What version of the site were you looking at?
https://github.com/cue-lang/cuelang.org/commit/74a384fdff6e70dcc7cb17c824793892cf95ba4a
What did you do?
Click on the "Build constraints" link in https://cuelang.org/docs/reference/modules/#resolve-pkg-mod.
What did you expect?
To be taken to some other doc page.
What did you see instead?
https://cuelang.org/pkg/go/build/#hdr-Build_Constraints, which is a 404, and probably inherited from Go without being fixed/tweaked accordingly.
Note that we do have https://pkg.go.dev/cuelang.org/go/cue/build, but it doesn't document build constraints in any way.
There may be other 404 links, but I couldn't quickly spot any.

Worth noting that this is the only relative link to /pkg, so we likely want to make it absolute, because we don't render Go API docs ourselves:
$ git grep -E '\]\(/pkg'
reference/modules/en.md:constraints](/pkg/go/build/#hdr-Build_Constraints) are not applied for this

This wasn't spotted during the review that introduced the modules reference, partly because at that time (early 2024) we didn't have a strong opinion around always using the Hugo relref shortcode to enforce build-time page-existence checks. Now that we do, this kind of mistake wouldn't get missed during review.
It would be nice to include an early content check (such as those checks that aren't yet enforced by the preprocessor but are sub-optimally implemented in _scripts/contentLint.bash) that ruled out any in-site links without the use of relref. As we can see from an adaptation of your git grep, there are several:
$ git grep -E '\]\(/' content/
content/docs/concept/faq/new-modules-vs-old-modules/en.md:The [v0.9.0](/releases/v0.9.0) release of CUE
content/docs/concept/faq/new-modules-vs-old-modules/en.md:the `#modules` channel [on Slack](/s/slack) or [on Discord](/s/discord).
content/docs/concept/faq/removing-list-arithmetic-operators-v0.11/en.md:  use [`list.Repeat`](/go/pkg/list#Repeat) instead.
content/docs/concept/faq/removing-list-arithmetic-operators-v0.11/en.md:  use either [`list.Concat`](/go/pkg/list#Concat) or a nested `for` loop instead.
content/docs/concept/faq/removing-list-arithmetic-operators-v0.11/en.md:- Standard library: [`list.Repeat`](/go/pkg/list#Repeat)
content/docs/concept/faq/removing-list-arithmetic-operators-v0.11/en.md:- Standard library: [`list.Concat`](/go/pkg/list#Concat)
content/docs/concept/how-cue-enables-configuration/en.md:- Test out CUE in your browser, with the [CUE playground](/play)
content/docs/concept/how-cue-enables-data-validation/en.md:- Test out CUE in your browser in the [CUE playground](/play)
content/docs/concept/how-cue-works-with-json/en.md:[search for how-to guides mentioning "encoding/json"](/search/?q=encoding/json%20contentType:%22How-to%20Guides%22)
content/docs/concept/how-cue-works-with-yaml/en.md:[search for how-to guides mentioning "encoding/yaml"](/search/?q=encoding/yaml%20contentType:%22How-to%20Guides%22)
content/docs/reference/modules/en.md:constraints](/pkg/go/build/#hdr-Build_Constraints) are not applied for this
content/docs/tutorial/publishing-modules-to-the-central-registry/en.md:`#modules` channel [on Slack](/s/slack) or [on Discord](/s/discord)!
content/docs/tutorial/working-with-the-central-registry/en.md:`#modules` channel [on Slack](/s/slack) or [on Discord](/s/discord)!
content/examples/basic/block/en.md:Check out the [quote shortcode](/examples/shortcodes/quote) for a more advanced quote component.
content/examples/basic/block/en.md:Example for Code Blocks have moved to a separate page: [/examples/basic/code-block](/examples/basic/code-block)
content/examples/shortcodes/quote/en.md:Next to the regular (very basic) [markdown blockquotes](/examples/basic/block#blockquotes), there is an option to use the `{{</* quote */>}}` shortcode. With this shortcode you can also add an author name and their role. But unlike the markdown blockquotes, the `quote` shortcode does not accept markdown.
content/examples/shortcodes/spinner/en.md:For example the [playground](/play/).

Unfortunately these examples include links to paths that Netlify redirects for us, which Hugo doesn't know exist hence can't be used with relref (e.g. /s/slack, /s/discord, /releases/..., /go/...).
I'll fix any broken links in the modules reference, and then do a separate pass over the git grep output above to see which links can withstand being transformed into relref, page-aware links. Then we can see what set of links we're left with, and if it's worth constructing a permissive-yet-strict-enough content linting git grep invocation that will catch /future/ infractions in CI.


IN clause is not working

It's not a yaorm issue. With the added support of SQLDateTime it is also easier to fix.
Closing.


Add TypeInfo classes for cent/ucent.

The types are defined in the spec but not yet implemented. Add the
required TypeInfo classes for supporting compilers. The classes are
guarded to prevent compile errors on non-supporting compilers.
See https://github.com/D-Programming-Language/dmd/pull/4565 for
the name mangling.

Auto-merge toggled on

If we decide to go with a different mangling this can still be changed.


Rewrote how to choose a getting-started-guide.

@thockin @bgrant0607 @RichieEscarez @davidopp
I rewrote docs/getting-started-guide/README.md.  It still needs a pass of proofreading, but I thought I would get the general format out there for feedback.
I've switched from having a table as the first thing you see to having prose that helps guide your decision of where to start.  I left the table in at the bottom, but I'm thinking of getting rid of it too in a follow-up PR.
I've started replacing "getting started guide" with the word "solution".  Here is why:

"getting started guide" is a mouthful.
I don't want to imply that once you created a cluster, you have gotten started.  getting started means really using kubectl to create some pods.

My thought in terms of a left-nav for kubernetes.io is: to have the following items somewhere on the left nav bar:

Creating a cluster links to docs/getting-started-guides/README.md

Creating a local cluster links to docs/getting-started-guides/README.md#local-solutions
Creating a hosted cluster links to docs/getting-started-guides/README.md#hosted-solutions
Creating a cluster in the cloud links to docs/getting-started-guides/README.md#turn-key-cloud-solutions
Creating a custom cluster links to docs/getting-started-guides/README.md#custom-solutions

Awesome! Thanks much. I think this will help a lot.
LGTM

cc @davidopp for merge

I'll leave the ok-to-merge label but please fix the above

LGTM
will merge on green

Thanks Eric. Looks great! Ill update the site nav based on this structure. LGTM pending my comments.


@import external stylesheets

Hi,
I'm trying to reference an external stylesheet from GCSS. Can it be done? Is there a way?
$font: 'Lato'
@import url("//fonts.googleapis.com/css?family=" + $font)

body
  font-family: $font, sans-serif

Best regards,
Aleander Rødseth

@xyproto We can write @import like https://github.com/yosssi/gcss/blob/master/test/0009.gcss. But I'm not sure if we can write a parameter such as $font. I'll check it. Just a moment please.

@yosssi That would be superb. No rush!

What is the expected behaviour of this? For me, @import merely prints the line into the resulting css - and doesn't import it inline like, say, sass would. Are there any plans to support import in a sass-like way? I have, for example, a config.sass file with many configuration variables in it that I use throughout other files, it's the single thing that I need that gcss doesn't support.


transcode: add input/output width/height setting

It to fix https://github.com/01org/libyami/issues/578
Output resolution setting is optional, when it is not set, it will be
same as input resolution. And if it is different from input resolution,
scaling happens.

Signed-off-by: Zhong Li<EMAIL_ADDRESS>

merged as f3c21ae5ed2ee80befe54b41b6907a6de147d8f1


Add user

Make the "+" button on the project/id edit tab work.

#558 , so this is not needed anymore


Update Shadowdark-Unofficial.html: Fix monster parser HP, level, damage

Submission Checklist
Required

[x] The pull request title clearly contains the name of the sheet I am editing.
[x] The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).
[x] The pull request makes changes to files in only one sub-folder.
[x] The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)

Changes / Description

Fixed HP parsing (precedence issue, affected by previous Hydra fix attempt)
Fixed Level parsing (precedence issue, affected by previous Hydra fix attempt)
Fixed exception thrown by titleCase() when input is null / empty
Improved regex for level, hp, and attack damage to account for weird slash / issue with elementals (picks the left hand side as default - for best results people shouldn't paste slash, or can edit after import)
Fixed issue with splitting ATK with commas in the effect section, i.e.: the "Azer" stat block "2d8, ignites flammables" to properly parse the effect
Effect output now shows "Effect: " in the description
Fixed issue where range wasn't being imported due to using .rng instead of .range
Fixed issue with parsing non-die damage (like spider, dealing 1 damage without roll)

Tested in my custom sheet sandbox, looks good now!

Character Sheet Info Roll20 Internal Use only.


GE - GAU allocations automatically removed from the form if the donor is changed

When GAU allocations are added, If the chosen donor is removed or changed from the lookup the Allocations disappear too.
Steps to reproduce:
Pre-req: Template/Batch used should have the "GAU Allocations" widget
1- On Gift Entry form, add a donor from "Account Imported" or "Contact Imported" lookup field
2- Add Donation amount and Donation date
3- Add GAU allocations with totals matching the Donation amount
4- Remove the donor from the lookup field
Expected result: Only the donor and other related fields should become blank
Current Result: GAU allocations also disappear.

**lurch: attach W-042232

**lurch: attach W-042232

Tracking W-042232

W-7782982


password on wallet

I downloaded the newest version on multibit from multibit.org. I opened it and saw my wallet. I clicked receive and transferred btc to my wallet. While playing around I made a new wallet and noticed it didn't have a lock on it. So I clicked on the lock to see what it was and noticed it brought up a help page with information about the password. I never entered a password to encrypt my wallet. I've also never used multibit on my computer. Trying to figure out how when I started the program it created a wallet with a password on it that I don't know or never entered.

@roofLe
did you recover your multibit wallet,
this is the issue which occurs a lot for older versions of multibit, I can recover your wallet if you still have this problem contact me at<EMAIL_ADDRESS>