responsive embed for

it is possible to encapsulate the SVG with "embed-responsive" for responsives SVGs
or daydreaming !?

@rubenscd you'd have a few options for responsive SVG though I don't think .embed-responsive would be the best one for it. Personally, I would recommend using the SVG viewbox attribute depending on your IE needs. Essentially you need to

Set a viewBox attribute.
Set at least one of height or width on the <img>.
Don't put it inside a table layout if you care about supporting Internet Explorer.

This article by CSS-Tricks does a good job in my opinion of explaining the pros and cons associated with the different options.

Yeah I haven't looked much into it myself, but I believe this needs to happen at the SVG level, not just with CSS. Regardless, it's a new feature that we won't be addressing in v3 and likely won't get to ourselves in the first few releases for v4.


Infinite rendering loop when rendering a FormBuilder as part of an ElementAction

When rendering a FormBuilder component as part of an ElementAction, ElementEditor will go into an infinite loop of re-rendering ElementEditor
This started happening as part of this change https://github.com/silverstripe/silverstripe-elemental/pull/1044
PR

https://github.com/silverstripe/silverstripe-elemental/pull/1123

Merged


link data passed to branch.init callback is a JSON-encoded string

When trying to extract the link data using the web SDK, I'm finding a JSON-encoded string of the parameters rather than the parsed param hash.  Here's an example
"{"$marketing_title":"Test link with user context","sender_avatar_url":"https://placekitten.com/g/200/202","sender_name":"Whiskers McFluffybelly"}"

It's possibly that this is the expected behavior, but it's a bit odd.

This is a relic from the old version of the SDK that we intend to change in version 2.x. In the meantime, I'll add an option you can set that will automatically parse the data property. I'll keep you posted when it's ready.

This will be in the newest release. You're right that it's very odd. In the next version (will release either today or tomorrow), you will be able to use data_parsed, which is the parsed version of this :-)


Moved from vp9 plugin

Just copy-pasted module that previously was in membrane_rtp_vp9_plugin.
Module is used to convert stream of raw VP9 frames into IVF container format.

@AndrzejPodo btw, this should be called membrane_ivf_plugin


Remove collaborators and participants from /event/list/

Use title, description, location and datetime.
One suggestion, would be have total number of collaborators and number of participants instead, instead complete list.

Fixed


Suggestion - Translation (PT-BR)

Congratulations on the excellent plugin. It has been very helpful to me. Just a small correction. In the Portuguese language (PT-BR), Sunday is abbreviated as being as "Dom" and not as "Sol".
fa={January:"Janeiro",February:"Fevereiro",March:"Mar\xE7o",April:"Abril",May:"Maio",June:"Junho",July:"Julho",August:"Agosto",September:"Setembro",October:"Outubro",November:"Novembro",December:"Dezembro",Sunday:"Dom",Monday:"Seg",Tuesday:"Ter",Wednesday:"Qua",Thursday:"Qui",Friday:"Sex",Saturday:"S\xE1b",Today:"Hoje"}
Thank you very much and success!

Thx, already fixed it in the new release.


Typos

Fixes typos as noted in #2109 (created one migration).
Note it does not edit the typos in previous migrations because I don't know what happens if you edit an old migration.

Note it does not edit the typos in previous migrations because I don't know what happens if you edit an old migration.

This is fine.


Allow multiple queries for SET = commands in a cell

@parisni @Dubrzr
It would be good if we allow multiple SET commands  in a cell.
use case:  If a user has to set many variables, user will end up writing each SET in a different cell
Solution:
a) Code cell should only have SET commands with semicolon terminated
example SET hive.abc=def;
SET hive.zyz=ijk;
b) Throw MultipleQueriesError when the code cell contains code other than SET
c) Split the cell code by semicolon(;), check if it starts with SET then send the command to kernel  in a loop
Let me know your thoughts as this may be helpful for users

This makes sense. Also we should allow both USE and SET

@parisni @Dubrzr  raised PR
We are now supporting:
SET key=value (sets variables)
SET prints all the available variables
SET key prints the key data
Regarding USE, could you please elaborate as of now USE  works perfectly fine

Hi @bharatl ! Thanks for your contribution!
I think what Nicolas was talking about is to be able to write this:
USE some_database;
SHOW TABLES;

which is simply specifying a USE statement with another query.
Actually, we could classify commands like this:

Those who return data (displayed in a html table): SELECT, SHOW, ...
Those who don't return data: USE, SET...

And use this classification to let users specify multiple commands that don't return data with a single command that returns data.

@Dubrzr  agreed
That might imply some code refactoring.

@parisni @Dubrzr If I understand correctly
1. In a cell there could be multiple statements (semicolon terminated) which doesn't return anything (use, describe etc) and only one statement which returns data (select, show).
Action: We have to support this
2. In a cell if there are multiple statements (;) which returns data.
Action: we have to throw some error (multiple queries error)
Let me know the if my understanding is correct and feel free to add any other cases. I can come up with the code changes once we finalize

I feel like you understood correctly :) I don't see other cases right now.
Ok awesome @bharatl!!!
Thanks a lot!

@parisni @Dubrzr
There is a simple solution:
After splitting the queries with semicolon, all the queries will go through self.last_conn.execute() method in a loop and returns SqlAlchemy ResultProxy Object. This Object will be NONE if it doesn't contains any rows, for example USE, CREATE, DROP etc commands will have ResultProxy as NONE and SELECT, SHOW etc commands will contain data in ResultProxy object
If we have data to display, we can retrieve the data from ResultProxy object (ResultProxy.fetchall()) and  construct pandas dataframe using this ResultProxy.fetchall() method like below
ResultSet = ResultProxy.fetchall()
df = pd.Dataframe(ResultSet, colums=ResultSet.keys())
return df.fillna('NULL').astype(str).to_html(notebook=True)

If we doesn't have data (ResultProxy is NONE) to render then proceed to next command.
The above solution gets rid of all the restrictions we have currently and allow multiple selects in a cell
Let me know your thoughts

Does it still work with returning messages with commands such as USE?
For example, when someone use a USE statement, we want to send a message displayed like "Successfully changed to xxx databse!"

@Dubrzr

Does it still work with returning messages with commands such as USE?
For example, when someone use a USE statement, we want to send a message displayed like "Successfully changed to xxx databse!"

No it wont display message  but on success execution_count will be incremented.
This behaviour would be similar to import statements in python (ex: import pandas as pd) won't send any message but execution count is incremented.

@parisni @Dubrzr
Raised PR
I have made changes to send the messages requested by @Dubrzr
Also this PR addresses the Better handle error message #8
Let me know if I need to do any other changes after your review comments

Hi @bharatl please take a look at the multiple_queries branch I did 2 days ago.
The idea is quite similar and I wonder what's the best solution:

use the proxy and concatenate the dataframe (as you propose)
concatenate the html in the result

Not sure about the behavior of 1. What happens when the dataframes  from 2 select queries are differents ?
The solution 2 also shows up the results of each steps as @Dubrzr was talking about and is also more flexible isn'it ?

@parisni
Regarding  use the proxy and concatenate the dataframe (as you propose):
In my solution each time a select query is executed, dataframe(df) will be populated with the new data and that is sent back as shown below (I am not concatenating the dataframe)
result = self.last_conn.execute(query.strip())
if result is not None and result.returns_rows is True:
                    df = pd.DataFrame(result.fetchall(), columns=result.keys())
                    html = df_to_html(df)

So multiple select queries are handled well
I am also handling the results of each steps as @Dubrzr mentioned.

So everytime the dataframe is filled with the latest select query? This would replace the MultipleQueriesError if I understand correctly?
Why not

@Dubrzr thanks, let me know your comments

@bharatl : merged! Available on pypi @ 1.0.13
@parisni : can you check we don't loose any feature?
Thanks,

Thanks @bharatl  !
I will add some tests to ensure no regression in the future @Dubrzr

@Dubrzr @parisni Thank you


False unreachable code message

Type: Bug
The source file enclosed in the {* and } below is a work in progress assembler for a homebrew instruction set architecture called rCode; specifically the D1-I5 version. The linter insists a bunch of code is unreachable despite it being above the if name == "main" boilerplate. By all reason everything should be evaluated by the interpretor but it's marking the code as unreachable.
{
'''
An assembler for my D1-I3 8-bit processor designed to
run in emulation or be implemented in Minecraft
Redstone.
A brief explanation of the register file seems in
order before diving into the instruction set.

0-3:The s registers: s0, s1, s2 and s3 are the top of the
stack. They can generally be used like normal GPRs,
but when stack pushes or pops happen, or sp changes
for any reason, they get dumped into memory and
repopulated with whatever sp is pointing to. S0 = [sp],
s1 = [sp + 1], etc.
4:  Ban is used in sx concatination addressing mode. Ban
is the high byte; an sx register is the low byte.
5:  por is used to store port numbers when doing IO. The
rest of the time, it can be used as a scratch register.
Importantly, moves of 16-bit to 8-bit or vice-versa
read or write 2 consecutively enumerated 8-bit
registers. por is the one after s3, so its the low
byte of s3.
6,7:SP and PC are the stack pointer and program counter.
Pretty straightforward.
Also, we're big-endian in this house, dammit! There
will be no argument! Take that little-endian heresy
elsewhere!

Addressing Modes:
sx Concatination (Enumeration: 0-3):
    Memory is addressed by using the ban as the high byte
    of an address to which an s register is the low byte.

Immediate (Enumeration: 4):
    The byte following an instruction is read to the
    destination register.

Absolute (Enumeration: 5):
    The two bytes immediately following the instruction
    are read as an address and used to load/store a byte
    to/from memory.

zero page indirect (Enumeration: 6):
    The effective address is a pair of bytes stored at a
    location in the zero page indicated by the byte following
    the instruction

Zero page (Enumeration: 7):
    Addresses to first 256 bytes of RAM like on a 6502
    with a single immediate byte.

'''
Below is a 16 * 16 grid of visible characters. The
horizontal axis represents the high nybble
(most significant) 4 bits of the instruction byte and
the vertical is the low nybble. 0x00 is the top left
corner. Below that, is a key indicating which instruction
each character represents with a brief description of
its function.
"""
0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
0  N  M  M  M  M  M  M  M  L  L  L  L  L  L  L  L
1  M  H  M  M  M  M  M  M  L  L  L  L  L  L  L  L
2  M  M  =  M  M  M  M  M  L  L  L  L  L  L  L  L
3  M  M  M  i  M  M  M  M  L  L  L  L  L  L  L  L
4  M  M  M  M  d  M  M  M  I  +  +  +  D  -  -  -
5  M  M  M  M  M  r  (  )  +  I  +  +  -  D  -  -
6  M  M  M  M  M  /  R  M  +  +  I  +  -  -  D  -
7  M  M  M  M  M  \  M  C  +  +  +  I  -  -  -  D
8  S  S  S  S  *  S  S  S  <  &  &  &  !
C  E  ?  ?  ?  X  X  X  X  V  V  V  V  W  W  #  #
D  ?  E  ?  ?  X  X  X  X  ^  ^  ^  ^  %  %  @  $
E  ?  ?  E  ?  X  X  X  X  ~  ~  ~  ~  0  0  0  0
F  ?  ?  ?  E  X  X  X  X  J  J  J  J  J  J  J  J
Child instructions: These are instructions containing 0
or 1 parameters inserted into the codespace regions of
instructions that require multiple parameters to conserve
codespace by eliminating useless instructions; like moves
of a register into itself, or comparisons of a register
with itself. For example, 0x00 is nominally a
mov   s0  s0
but that would do nothing, so it's treated like a
do nothing; a nop instruction.
 This is         | syscall
; futureproofing for possible operating system      |
; development and other related fanciness.          |
i - inc sp  ; An instruction specifically for incrementing      | inc sp
; the stack pointer.                                |
d - dec sp  ; An instruction specifically for decrementing      | dec sp
; the stack pointer.                                |
r - rfi     ; Return from interrupt.                            | rfi
( - clc     ; Clear the carry flag.                             | clc
) - sec     ; Set the carry flag.                               | sec
/ - ext0    ; Execute the following byte(s) as an               | mul s0, s1 ; The extension prefix byte
; extension 0 instruction rather than as part       |            ; would be generated by the
; of the base instruction set.                      |            ; assembler
\ - ext1    ; Execute the following byte(s) as an               | fpadd zp[0]%64, zp[8]%64
; extension 1 instruction rather than as part       |            ; Same as ext0, assembler will
; of the base instruction set.                      |            ; translate this with the prefix.
R - ret     ; Return from call. Just a garden variety           | ret
; return instruction.                               |
C - cal     ; Call a function at an absolute address            | cal foo
I - inc     ; Increment one of the s registers.                 | inc s3
D - dec     ; Decrement one of the s registers.                 | dec s2

dup     ; Duplicate one of the s registers to the top       | dup s0
; of the stack. The s registers are actually        |
; mapped to sp, sp + 1... so this is useful         |
; for passing locals by value.                      |
< - jss     ; Jump if sign set. Please note that all            | jmp s, loop
; conditional jumps support the same                |
; addressing modes: immediate, direct, sp offset    |
; and zero page. Their enumerations in this         |
; case, however are 0-3, not 4-7.                   |
! - jcs     ; Jump if carry set.                                | jmp c, switchStmtDefault
E - jos     ; Jump if overflow set.                             | jmp o, ERROR_CODE
|
Parent instructions: These are instructions requiring one       |
or more parameters. Their positioning in the codespace is       |
decided such that those parameters are attainable by bit        |
banging; though they vary in length they're always              |
enumerated from 0 and they always begin at the least            |
significant bit of each nybble.                                 |
|
M - mov     ; Copy a register into another register. If the     | mov s2, sp
; registers differ in length, the next              |
; consecutively enumerated register will be used    |
; as a least significant byte For instance,         |
; mov   sp  s0                                      |
; will put s0 in the most significant byte of sp and|
; s1 in the least significant byte.                 |
; mov   s0  sp                                      |
; will write the most significant byte of sp        |
; to s0 and the least significant byte to s1.       |
; rCode is big-endian, can you tell? I hear         |
; you little-endian heritics groaning and I'll      |
; have none of it!                                  |
L - lod     ; Load from memory. This pneumonic is               | mov s2 abs[message]
; supported, but the                                | mov s0 zp[messageLen]
; mov   reg [addressing mode]                       |
; syntax is preferred. Low 2 bits of the low        |
; nybble indicate an sx register, low 3 of the      |
; high nybble indicate an addressing mode.          |

adc     ; Add any two of the s registers and store the      | clc
; sum in the first. The carry is always added       | adc s0, s2
; and must be explicitly cleared during the         | adc s1, s3 ; What a 16-bit add would look
; addition of the first pair of addend bytes.       |            ; like. ;-)

subb    ; First argument is the minuend, second is the      | sec
; subtrahend. Works on any s register and           | subb s0, s2
; stores the difference in the minuend.             | subb s1, s3
; The carry is always borrowed and must always      |
; be set before doing the subtraction on the        |
; least significant bytes of the operands.          |
S - sto     ; Store to memory. This pneumonic is                | mov zpi[usefulPointer], s2
; supported, but the                                | mov ban[s3], s1
; mov   [addressing mode]   reg                     |
; syntax is preferred. Low 2 bits of the low        |
; nybble indicate an sx register, low 3 of the      |
; high nybble indicate an addressing mode.          |
& - and     ; Bitwise and of any 2 s registers. This            | and s2, s0
; stores the result in the first operand; as        |
; in any bitwise operation.                         |
O - or      ; Bitwise or of any 2 s registers.                  | or  s0, s3
? - cmp     ; Subtracts the second operand from the first       | cmp s3, s2
; and sets the flags accordingly. Doesn't           |
; store the result.                                 |
X - xor     ; Bitwise exclusive or.                             | xor s3, s2
V - bsr     ; Bit shift right of any s register.                | bsr s0
^ - bsl     ; Bit shift left of any s register.                 | bsl s2
~ - not     ; Bitwise not of any s register.                    | not s3
J - jmp     ; Jump unconditionally to address obtained by       | jmp break
; any of the 8 supported addressing modes.          |
W - in      ; Read from the port whose port number is in        | in s0
; the port register (por) into s0 or s1.            | mov s1, imm[DISK_PORT]
% - out     ; Write the port whose port number is in por the    | mov por, s1
; contents of s0 or s1.                             | out s0

- spa     ; SP ADD: Sign extend s0 or s1 to 16 bit and        | spa s1
        ; add to sp.                                        |

@ - dum     ; Dump: Pops 4 values off the stack (the s          | dum zp[0x80]
; registers) and stores them at a zero page         |
; address.                                          |
$ - fil     ; Fill: Pushes 4 items from a zero page address     | fil zp[0x32]
; onto the stack, populating all the s registers    |
; with new values.                                  |
0 - jzs     ; Jump zero set.                                    | jmp z, exitRoutine
"""
"""
Continuing the pattern of this being equal parts design doc and implementation,
it's time to start fleshing out the details of the assembly language design.
Due to the limits of a 256 point codespace, each instruction has at most 2
operands and the processor is a load/store architecture. In hope of simplifying
parsing and making the code more readable, all addressing modes other than
absolute are explicitly marked by their addressing mode name followed by
specific information like a zero-page address or a register in square brackets.
For example:
A label, an integer literal or a constant will be recognized as an absolute
address in instructions requiring one as one of its operands. However,
abs[someInteger] will also be recognized by the assembler for consistencys
sake.

ban[s register] will be used for sx concat addressing mode.

zpi[<Thing that evaluates to an 8-bit integer>] is the syntactic representation
of a zero-page indirect.

zp[i8] will be used for zero page access.

<thing that evaluates to i8>.i will signify immediate addressing mode. If it's in
the range -128 to 256, the assembler will recognize it as fitting in 8 bits.

"""
from enum import *
import sys
import argparse
Helper functions:
def substituteExtension (filePath: str, extension: str) -> str:
intermediateSplit: list = filePath.split(".")
incompletePath: str = ""
for i in intermediateSplit[:-2]:
incompletePath += i + "."
return incompletePath + extension

Assembly related functions and classes:
@unique
class LexState (Enum):
NEW_TOKEN = auto()
NUMERIC = auto()
ALPHANUMERIC = auto()
KEYWORD = auto()
DIRECTIVE = auto()
STRING = auto()
FORMAT_STRING = auto()
CHAR = auto()
MACRO = auto()
class Token:
pass
class Lexer:
def init (self, srcString):
self._srcString = srcString
self._tokens = self.genTokens()
def genTokens (self):
    state: LexState = LexState.NEW_TOKEN
    nextState: LexState = LexState.NEW_TOKEN
    srcIdx: int = 0
    accumulatedStr: str = ""
    self._tokens: list[Token] = []

while True:
    pass

class AbstractSyntaxTree:
pass
def genCode (tree) -> bytearray:
pass
def assemble (srcString: str) -> tuple[Lexer, AbstractSyntaxTree, bytearray]:
binary: bytearray = b""
lex: Lexer = Lexer(srcString)
tree: AbstractSyntaxTree = AbstractSyntaxTree(lex)
binary = genCode(tree)

return binary

def main ():
parser: argparse.ArgumentParser = argparse.ArgumentParser(
sys.argv, description = "An assembler which targets the rCode D1-I5 processor architecture,\n
converting its assembly language into hexadecimal or binary (hlod or\n
lod) files for loading into memory and execution."
)
parser.add_argument("sourceFile", help="The file to be assembled.")
parser.add_argument("-o", "--outputFile", type = str, default=None, help="The output to be written. If not supplied, it defaults to sourceFile with the .s extension replaced with '.lod' or '.hlod' as appropriate depending on whether '-x' is included.")
parser.add_argument("-x", "--hexadecimal", action="store_true", help="Store the load file in a hexadecimal format rather than binary.")
parser.add_argument("-l", "--listing", action="store_true", help="Print a listing of the assembled program to console after assembly.")
parser.add_argument("-pl", "--writeListing", default=None, help="Write a listing of the assembled program to a file.")
class _:
    sourceFile: str
    outputFile: str
    hexadecimal: bool
    listing: bool
    writeListing: bool

args: _ = parser.parse_args(namespace=_())

# This logic is designed to determine a default name for the assembler output if
# args.outputFile isn't supplied by the user. It also informs the user if they use
# .hlod extension on their output file, inconsistent with an included with a -x
# argument, printing an error message and exiting.
if args.hexadecimal and args.outputFile:
    if len(args.outputFile) > 4:
        if args.outputFile[-4:] == ".lod":
            print(f"Error: -x was included yet the destination '{args.outputFile}' ends in a binary '.lod', not hexadecimal '.hlod' extension.")
            exit()

if args.outputFile:
    if len(args.outputFile) > 5:
        if args.outputFile[-5:] == ".hlod":
            args.hexadecimal = True

if not args.hexadecimal and not args.outputFile:
    args.outputFile = substituteExtension(args.sourceFile, "lod")

elif args.hexadecimal and not args.outputFile:
    args.outputFile = substituteExtension(args.sourceFile, "hlod")

srcString: str
try:
    with open(args.sourceFile, "r") as f:
        srcString = f.read()

except FileNotFoundError:
    print(f"Error: The file '{args.sourceFile}' does not exist.")
    exit()

## That's enough UI stuff done, It's time for assembly time!!!
binary: bytearray = assemble(srcString)

if name == "main":
main()
*}
Extension version: 2024.6.1
VS Code version: Code 1.90.2 (5437499feb04f7a586f677b155b039bc2b3669eb, 2024-06-18T22:34:26.404Z)
OS version: Windows_NT x64 10.0.19045
Modes:

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz (12 x 2592)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
undefined

Memory (System)
15.86GB (7.23GB free)

Process Argv
--crash-reporter-id 37cd7278-7b18-442d-83bc-07e9ccda0db8

Screen Reader
no

VM
0%

A/B Experiments
vsliv368cf:30146710
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492:30256859
vstes627:30244334
vscoreces:30445986
vscod805cf:30301675
binariesv615:30325510
vsaa593:30376534
py29gd2263:31024239
c4g48928:30535728
azure-dev_surveyone:30548225
962ge761:30959799
pythongtdpath:30769146
welcomedialogc:30910334
pythonidxpt:30866567
pythonnoceb:30805159
asynctok:30898717
pythontestfixt:30902429
pythonregdiag2:30936856
pythonmypyd1:30879173
h48ei257:31000450
pythontbext0:30879054
accentitlementsc:30995553
dsvsc016:30899300
dsvsc017:30899301
dsvsc018:30899302
cppperfnew:31000557
dsvsc020:30976470
pythonait:31006305
jchc7451:31067544
chatpanelc:31048052
dsvsc021:30996838
jg8ic977:31013176
pythoncenvpt:31062603
a69g1124:31058053
dvdeprecation:31068756
pythonprt:31056678
dwnewjupytercf:31046870

Thanks for the issue, but can you clearly state where the issue is? We really only need to see the python code with the 'unreachable' problem.
Most of the time false 'unreachable' code is caused by incorrect or incomplete type annotations.
See this example:
https://github.com/microsoft/pylance-release/issues/5776


add support for python and grass gis

Overview
This pull request

Adds support for GRASS GIS in the old (but better) way - the Process can either point to existing location (grass_location="/path/to/location") or create temporary location (grass_location="epsg:1234")

Sanitizes inputs to dblog - instead of insert into ... values {}, {}, {}".format(value1, value2, value3) ? ? ? are used in the input of `cursor.execute

Fixes cleaning of temporary directory - it is cleaned NOT when the handler finished, but after response is constructed

logging LOGGER is now identified by "PYWPS" keyword, rather then __name__ - all logs should go into one file

Related Issue / Discussion
#138
Additional Information
This PR imho contains two critical features - dblog sanitisation and process.workdir cleaning
Contribution Agreement
(as per https://github.com/geopython/pywps/blob/master/CONTRIBUTING.rst#contributions-and-licensing)

[ ] I'd like to contribute [feature X|bugfix Y|docs|something else] to PyWPS. I confirm that my contributions to PyWPS will be compatible with the PyWPS license guidelines at the time of contribution.
[X] I have already previously agreed to the PyWPS Contributions and Licensing Guidelines

Coverage decreased (-1.6%) to 75.082% when pulling a8aa61f85ddc2b3eff6d1fe2c61801b1746007d6 on jachym:pygrass into b968b79c6afc357f9cb87e1c9c68f96a5a074349 on geopython:master.


pm: device_policy: Add a policy manager for devices

Add a device policy manager. The policy is called when the system goes to a particular state and is responsible which device power state a device should use.

Documentation and sample are coming.

I still don't see much value on adding such feature due to the limited policy actions (resume/suspend/turn off).

The policy is not limited to these actions. The policy is limited to the available pm device states. Applications are free to write their policy and use whatever states are convenient to them.


What does OidcKeepAliveServiceWorker actually do?

In the network-tab of my browser, I see numerous calls to OidcKeepAliveServiceWorker.json?minSleepSeconds=150. I can't find what this is in the docs.
I assume that it's the React-Oidc component doing a fetch-request to this URL, which is then intercepted by the service worker, after which it gets a new access token from the authorization server using a refresh token, is this correct?
The code that seems to handle this request also looks quite funky:
const keepAliveAsync = async (event: FetchEvent) => {
  const originalRequest = event.request;
  const isFromVanilla = originalRequest.headers.has('oidc-vanilla');
  const init = { status: 200, statusText: 'oidc-service-worker' };
  const response = new Response('{}', init);
  if (!isFromVanilla) {
    const originalRequestUrl = new URL(originalRequest.url);
    const minSleepSeconds = Number(originalRequestUrl.searchParams.get('minSleepSeconds')) || 240;
    for (let i = 0; i < minSleepSeconds; i++) {
      await sleep(1000 + Math.floor(Math.random() * 1000));
      const cache = await caches.open('oidc_dummy_cache');
      await cache.put(event.request, response.clone());
    }
  }

  return response;
};

I wonder, what is happening here with some sort of cache, and why are we doing await sleep()?
The reason I'm trying to understand all this, is because some of the calls to OidcKeepAliveServiceWorker.json fail, see attached picture. (the failing calls are from a referrer with silent-callback or silent-login in the url)

I also don't quite understand what is happening here, some rows are red, without a response code, so I think these should be 'pending', but somehow they're handled within a second.
This also shows in the console, which is of course quite worrying to me:

If you could help me (and others) to understand what is happening that'd be much appreciated.

Hi @WouterrV ,
ServiceWorker keep alive is a trick to keep alive the serviceworker.
It is important because tokens are keeped in memory inside the service worker.
I do not know how to make it without error :p help would be cool :)

Ok that helps!
I did some debugging by building the package myself with some adjustments, it seems the problem is with the fetch being made, and not the response to it. Because if I fetch to an online pokémon API, the exact same errors occur. The fetch is getting cancelled, because, just a guess, because the object from where the fetch happens gets removed from memory?

So where do we call this keepAlive function from, where the problematic fetch happens: three functions - tryKeepExistingSessionAsync, loginCallbackAsync, and defaultLoginAsync. Let's pass that to keepAlive, to narrow down where the problem occurs:

Now if I open the app I'm working on and log in, this happens in the console:

And if the tab gets refreshed, this:

(in the last picture, the calls from defaultLoginAsync and loginCallbackAsync are cancelled, and the one called recursively works)
So only of these three paths from where we call keepAliveAsync will succeed, based on the state of our authorization.
Now the next step for me would be to understand the code calling keepAliveAsync, but that's not going very fast, because OIDC + PKCD is complex enough by itself and now there's a whole app around it. If it had a bit more comments that'd be appreciated, for example at some point there's let storage (typed as implicit any) and then storage = Serviceworker and storage = session.
If you have some thoughts on how to debug further that'd be great.

Hi @WouterrV , thank you for your time !
The aim of the fetch is to keep the service worker working during for example the time you are entering your login and password.
The error happen start the login phase the fetch is running and the domain name change. The error happened in the console because javascrip client does not exist antmore, but the service worker continu to do well its job.

ServiceWorker keep alive is a trick to keep alive the serviceworker.
It is important because tokens are keeped in memory inside the service worker.
I do not know how to make it without error :p help would be cool :)

Is it make sense to make postMessage to store it inside local or session storage?

Hi @ulhb , if we store the data in session storage or local storage or IndexDB it will be available to the javascript client and it is what we want to avoid in order to increase a lot the security


Update to API v1.2 endpoints

Uber recently announced v1.2 endpoints for the Rides API. The following changes would be required to upgrade:

API base URL would need to reflect the version bump: https://api.uber.com/v1.2/. Sample endpoint.
A new ride request flow for upfront prices should be implemented, as described here
All usage of rate limiting headers should be removed. The headers are deprecated with v1.2. A new endpoint to meet the needs will be created. Here are the impacted headers: X-Rate-Limit-Limit, X-Rate-Limit-Remaining, X-Rate-Limit-Reset.

With respect to the API version in the base url, you can control that via client configuration:
$client = new Stevenmaguire\Uber\Client(array(
    'version'      => 'v1.2',
    // other config
));

With that in mind, are you able to test the new functionality? What endpoints, if any, are missing here?

@stevenmaguire I just updated the issue description. The v1.2 endpoints introduce a new ride request flow and we deprecated the rate limiting headers.
@dustinwhittle can jump in to help I believe.

Ok. Thank you for clarifying some of these things. I have a couple follow-up questions, and I am assuming you can answer them as you appear to be part of the Uber team.

How long will the current v1 endpoints be supported?
Will v1 endpoints be supported along side v1.2?
Unless otherwise noted, will existing v1 endpoints be accessible and function similarly in v1.2?
Will the v1 endpoints still support the rate limit headers?
Is the "new ride request flow for upfront prices" brand new functionality or does it break existing pricing functionality?

We will support v1 until Q3 2017.
Yes, until they are fully deprecated we will support v1.
Yes, most of the v1.2 endpoints have the same v1 responses with the exception of (requests post/estimates). See the change log and api references for complete details.
You should not rely on the existing rate limiting implementation as it will ultimately be deprecated. It is currently supported in v1.
The upfront fare flow was introduced when we added support for uber pool. We will start enforcing this in products/markets that support upfront fares in the v1.2 apis. The existing surge pricing and confirmation dialog/url will be supported until we deprecate the v1 apis.

Thanks for the awesome sdk and all of your effort so far. It would be great to work together to make the default flow using v1.2 apis and requesting an upfront fare by default.
Please let us know if we can ever be of any help.

@agraebe @dustinwhittle I've spent some time refactoring the package a bit based on these latest changes. Instead of drawing a hard line in the same with respect to v1 and v1.2 I've updated the package to include the new endpoints and gracefully fail when older things do not work. What this means, is that the package still puts the developer in the drivers seat to decide which API version to use and how to handle exceptions along the way. Please feel free to review those changes in PR #12 and if you feel so inclined, build a local copy based on the branch and give it a run against your v1.2 test beds.

@agraebe @dustinwhittle I've just cut a new release of the client that includes these latest changes. Please let me know if anything unexpected comes up. In the mean time, I have a request of my own.
The Uber documentation lists this project as a community supported PHP library (thanks!) and indicates that its version requirement is "5+". This is not accurate and may cause grief for some folks. The current minimum requirement is 5.5+, even though 5.5. Are you in a position to update this?
https://developer.uber.com/docs/riders/guides/client-libraries

Sounds good. I will update the site to reflect 5.5+. Thanks for the awesome
work!
On Mon, Nov 21, 2016, 18:05 Steven Maguire<EMAIL_ADDRESS>wrote:

@agraebe https://github.com/agraebe @dustinwhittle
https://github.com/dustinwhittle I've just cut a new release of the
client that includes these latest changes. Please let me know if anything
unexpected comes up. In the mean time, I have a request of my own.
The Uber documentation lists this project as a community supported PHP
library (thanks!) and indicates that its version requirement is "5+". This
is not accurate and may cause grief for some folks. The current minimum
requirement is 5.5+, even though 5.5. Are you in a position to update this?
https://developer.uber.com/docs/riders/guides/client-libraries
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/stevenmaguire/uber-php/issues/11#issuecomment-262126734,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAvgSPHSE8kK31eLbcv3zWTcUkFM-Xbks5rAk3KgaJpZM4KsFjR
.


JestUtil: Adding mockTimezone

This PR introduces the JestUtil. mockTimezone function that can be used to provide the default timezone to be used by the Date object.
(Since unfortunately jest.clock does not provide this functionality)

I had a minor #nit, but as the linter isn't configured for this, it's not too important to me. Approved!

Feel free to ⛵ as soon as that one comment is done


Add summary on project exit when using --print-fps

Related to https://github.com/godotengine/godot-proposals/issues/5459.

When combined with the --quit-after and --disable-vsync command line arguments, this can be used to reliably benchmark pull requests without having to add bespoke code to every project being tested.
Metrics displayed were inspired by CapFrameX.
Example output:

Project FPS: 455 (2.19 mspf)
Project FPS: 340 (2.94 mspf)
Project FPS: 326 (3.06 mspf)
[...]

3000 frames rendered in 5.53 seconds.
Frametime statistics over the duration of the run:

Average: 553 FPS (1.81 mspf)

Maximum: 1506 FPS (0.66 mspf)
    P99: 1466 FPS (0.68 mspf)
 Median: 783 FPS (1.28 mspf)
     P1: 214 FPS (4.67 mspf)
   P0.1: 161 FPS (6.20 mspf)
Minimum: 92 FPS (10.84 mspf)

 Frametimes compliant with a 30 FPS cap: 100.0%
 Frametimes compliant with a 60 FPS cap: 100.0%
Frametimes compliant with a 120 FPS cap: 99.9%

Rebased and tested again, it works as expected.

Hopefully not just feature creep but IMO it would be useful if the tracking + reporting portion of this was usable on its own for a running project so that multiple runs could be automated with various configurations without needing to restart the project.

This would make the code a lot more complex, so it would be better done in its own PR.

I can see the usecase for this, but imo this also needs to output the data in a machine readable format to be really useful.
Right now the user needs to manually extract the values from the console, which is arguably worse than something custom that does write the results to a file.
Just creating a csv file (with column headers!!!) On exit next to the binary should do the trick.


feat(telemetry): send RPC provider on operator startup

Description
On operator start, it sends the current version to the telemetry system. It has to send also the RPC provider.
New data to send:

Http rpc provider
Ws rpc provider
Http fallback rpc provider
Ws fallback rpc provider

[!CAUTION]
Make sure to do not leak users sensitive credentials

#1136


[DEV-2665] support AWS provider v5

Summary
We would like to be able to upgrade to AWS provider v5.0, which was just recently released.
How did you test this change?
Clone this repo locally, change the version pin, then change my source for the module to point at my local copy. Then I ran a terraform plan and verified that it works, with no diffs.
Issue
https://github.com/lacework/terraform-aws-ecr/issues/45

I also noticed that CI is still being tested using provider version 3. I'm happy to copy/paste a new test case which uses provider v5, or just bump the existing test cases to use v5.

@dmurray-lacework thanks for reviewing this. Since CI passed, could we get this merged (and then also get a new release)? Thanks.

make it so (run tests)


D runtime segfault on exiting the editor

OS: OpenSUSE Tumbleweed Linux
Godot: 3.1.1 stable
Compiler: DMD 2.087.0 and LDC2 1.18.0-beta1
If the import plugin is installed, closing the editor causes a freeze or crash during D runtime termination by the game's GDNativeLibrary (after the import plugin's GDNativeLibrary is also terminated). The problem may be (edit: is) with two D libraries sharing the runtime in general, not specifically the import plugin.
Something about how the runtime is used by Godot-D libraries is probably broken. There is exactly one call to Runtime.initialize and Runtime.terminate per library...
Another condition: it only crashes if the library has been unloaded+reloaded at least once by unfocusing the window.
Backtrace DMD:
Thread 1 "Godot_v3.1.1-st" received signal SIGSEGV, Segmentation fault.
0x00007ffff7a640a1 in pthread_mutex_destroy () from /lib64/libpthread.so.0
(gdb) bt
#0  0x00007ffff7a640a1 in pthread_mutex_destroy () from /lib64/libpthread.so.0
#1  0x00007fffbcf65f52 in _d_critical_term () from /usr/lib64/libphobos2.so.0.87
#2  0x00007fffbcf66bb4 in rt_term () from /usr/lib64/libphobos2.so.0.87
#3  0x00007fffbcf3fbad in core.runtime.Runtime.terminate() () from /usr/lib64/libphobos2.so.0.87
#4  0x00007fffec932ae5 in asteroidsgdnative_terminate (options=0x7fffffffc8c0)
    at ../../../.dub/packages/godot-d-0.1.3/godot-d/src/godot/d/register.d:161
#5  0x000000000099cc0b in GDNative::terminate() ()
#6  0x0000000000b480ea in NativeScriptLanguage::~NativeScriptLanguage() ()
...

Backtrace LDC:
Thread 1 "Godot_v3.1.1-st" received signal SIGINT, Interrupt.
0x00007ffff7eec9b6 in pthread_mutex_destroy () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff7eec9b6 in pthread_mutex_destroy () from /lib64/libc.so.6
#1  0x00007fffbc3cd2b6 in _D2rt8monitor_12destroyMutexFNbNiPS4core3sys5posixQk5types15pthread_mutex_tZv ()
   from /home/sheep/bin/ldc2-1.18.0-beta1-linux-x86_64/bin/../lib/libdruntime-ldc-shared.so.88
#2  0x00007fffbc3c2369 in _d_critical_term ()
   from /home/sheep/bin/ldc2-1.18.0-beta1-linux-x86_64/bin/../lib/libdruntime-ldc-shared.so.88
#3  0x00007fffbc3c27fa in rt_term () from /home/sheep/bin/ldc2-1.18.0-beta1-linux-x86_64/bin/../lib/libdruntime-ldc-shared.so.88
#4  0x00007fffbc39d3d6 in core.runtime.Runtime.terminate() ()
   from /home/sheep/bin/ldc2-1.18.0-beta1-linux-x86_64/bin/../lib/libdruntime-ldc-shared.so.88
#5  0x00007fffcbb22635 in asteroidsgdnative_terminate (options=0x7fffffffc8c0)
    at /home/sheep/Projects/asteroids-demo/asteroids/../../godot-d/src/godot/d/register.d:161
#6  0x000000000099cc0b in GDNative::terminate() ()
#7  0x0000000000b480ea in NativeScriptLanguage::~NativeScriptLanguage() ()
...

Temporary workaround for import plugin to be usable at all is to statically link Phobos. Not sure if having multiple separate runtimes causes problems though...
	"dflags-linux-dmd": ["-defaultlib=libphobos2.a"],
	"dflags-linux-ldc": ["-link-defaultlib-shared=false"],

EDIT: confirmed to happen with two normal Godot-D libraries sharing the runtime. This rules out the import plugin as the source of the crash. Godot-D itself is breaking the runtime somehow.

This might be D bug #17591: "SIGSEGV in pthread_mutex_destroy after dlopen'ing a shared library with -defaultlib=libphobos2.so".

Crashes on Windows too, simply commenting out Runtime.terminate() works as a hack for now.
https://github.com/godot-d/godot-d/blob/master/src/godot/d/register.d#L214
It could be related to double freeing by calling godot_gdnative_terminate() because the following code prints "Library terminated" twice and then crashes, it still prints twice but no longer crashes without Runtime.terminate()
mixin GodotNativeLibrary!
(
	// your GDNativeLibrary resource's symbol_prefix
	"gdproj",

	// a list of all of your script classes
	TestScript,

	// functions to call at initialization and termination (both optional)
	(GodotInitOptions o){ writeln("Library initialized"); },
	(GodotTerminateOptions o){ writeln("Library terminated"); }
);


Observer GUI disappears when the controller is switched back

The following video shows switching controllers: BaselineWalkingController (BWC) -> MultiContactController (MCC) -> BWC.
After returning to BWC, Rviz's observer GUI is missing.
https://github.com/jrl-umi3218/mc_rtc/assets/6636600/ae9188ca-ee16-4fea-8751-b06624b5975d

Observer GUI is added (only) here
https://github.com/jrl-umi3218/mc_rtc/blob/418f74fac4e8e14331db105727ce666a18cba603/src/mc_control/MCController.cpp#L624
and removed (only) here
https://github.com/jrl-umi3218/mc_rtc/blob/418f74fac4e8e14331db105727ce666a18cba603/src/mc_control/mc_global_controller.cpp#L775

For the same reason, the observer's log is also missing even after the controller switches back.


Data Syncing

Love meteor-up, but It would be great to have some sort of data synchronizing features. For example a 'mup sync_from_server' command to fetch the meteor DB from the remote server and load into my local, and 'mup sync_to_server' for the inverse.  When I'm working on a site locally and want load the database onto a remote server, the solution (using mongodump) is pretty arduous.

This would definitely be useful, this is a very common thing to do with Drush in Drupal.
For example doing:
drush sql-sync @local @prod --create-db will synchronize the database from the machine defined in the @local alias to another machine defined in the @prod alias. Very useful!

I think this should be an entirely different tool. Considering that the database of some applciations can be hosted in a location other than where your app is being deployed. Creating another tool where you can define aliases for the location of your mongo database would be pretty neat.

@MaazAli Yeah your right, this could be something else yeah.. or what do you think @arunoda? :)

Yes it is. We need mup to be simple.
And that makes my life simple too. (no need to maintain a lot)
On Thu, Mar 12, 2015 at 1:19 PM Tim Brandin<EMAIL_ADDRESS>wrote:

@MaazAli https://github.com/MaazAli Yeah your right, this could be
something else yeah.. or what do you think @arunoda
https://github.com/arunoda? :)
—
Reply to this email directly or view it on GitHub
https://github.com/arunoda/meteor-up/issues/31#issuecomment-78436597.

True! Would be nice if @meteor was extensible with for example aliases and data-syncing then one could do for example:
meteor db-sync @local @prod

Then one could also write:
meteor mongo @prod to access the mongo interface on the production server

And aliases could be found in ~/.meteor/aliases/.
Which one can share the aliases with your coworkers super simple just by adding symlinking that folder to dropbox/drive etc.. :)

Actually mup could also benefit from using aliases, because we already keep deployment settings files somewhere outside of the repo most times, this could be contained in the aliases instead. and would make it possible to just stand in the right app and do mup deploy @prod
Aliases could even inherit settings from other aliases and so forth.
Sorry for spamming! :S


Add suggestions for regexp/no-lazy-ends

I added 2 suggestions to every report:

The first will transform the regex into what it is. E.g. /a+?/ -> /a/, because these 2 regexes are equivalent.
The second will make the quantifier greedy. E.g. /a+?/ -> /a+/. I thought that this might be useful.

Okay, how should I fix this? Our tests seem to require that all messages end with a dot, but my suggestion messages end with a sentence in parentheses, so it ends with .).

That message should be allowed, so I fixed the testcase for messages :smile:


English "Log in" / "Sign in"

@JasonBarnabe I noticed one really weird thing. This commit changes "Sign in" to "Log in", even though "sign in", "signed in" is used all around (even the key is sign_in). I see no reason for using a different, inconsistent wording for that. Would you be open to me updating it in Localeapp?

The update done here was to match what devise has. devise updated in https://github.com/plataformatec/devise/commit/67d8dd1e948b363523bb567417965b4c1cf4ed02. Not saying this was a good or bad change, but I want there to be no differences when using devise-i18n in English mode compared to vanilla devise.


Change notification content column type.

it will be better to change notification.content column type from varchar to text, to except issues like org.postgresql.util.PSQLException: ERROR: value too long for type character

This is a duplicate of #147


Updated Iris Flowers Classification Project issue #49

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Test Configuration:

Firmware version:
Hardware:
Toolchain:
SDK:

Checklist:

[ ] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

Add some references in the README in the same format as others have added!
Also add some screenshots in each folder
add all these files in a single folder
change name to AUTOMATIC_FB_LOGIN (example only) in this format for both folders

Add resources to readme
add screenshots to folder
add all these to a folder by name IRIS_FLOWER_DATA_CLASSIFIACTION

Refer https://github.com/garimasingh128/awesome-python-projects/pull/32


A spot in different data set which is not even turned on gets selected

When selecting a spot, the system selects and highlights a different spot from a different data set which is not turned on yet.
I couldn't reproduce this issue consistently, might need a discussion with Doug on this.
Screenshots
If applicable, add screenshots to help explain your problem.

Doug's comments : I tried to select another spot in the previous view, the system selects a line about 8 miles north ina data set that is not even turned on.
The below was the previous view, he mentioned about ;

@panamint55 is this bug still reproducible at all ? Can you please confirm if you could reproduce this issue during the recent testing ?

Seems to be fixed.
From: sdamaraju<EMAIL_ADDRESS>Reply-To: StraboSpot/StraboSpot-Mobile<EMAIL_ADDRESS>Date: Wednesday, February 17, 2021 at 3:27 PM
To: StraboSpot/StraboSpot-Mobile<EMAIL_ADDRESS>Cc: Doug Walker<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [StraboSpot/StraboSpot-Mobile] A spot in different data set which is not even turned on gets selected (#115)
@panamint55https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fpanamint55&data=04|01|jdwalker%40ku.edu|9ac8c5fabf154aea1b8808d8d38aca75|3c176536afe643f5b96636feabbe3c1a|0|0|637491940338997450|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=5QXI1jlU%2Bb%2Fbuq37y%2B1DG%2F40VE8BC1NVxiZGaZlplXQ%3D&reserved=0 is this bug still reproducible at all ? Can you please confirm if you could reproduce this issue during the recent testing ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FStraboSpot%2FStraboSpot-Mobile%2Fissues%2F115%23issuecomment-780865272&data=04|01|jdwalker%40ku.edu|9ac8c5fabf154aea1b8808d8d38aca75|3c176536afe643f5b96636feabbe3c1a|0|0|637491940339007443|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=zEygJNuhkckCRUsTxYSUftL7Sbg4VaEOaglwUgs28P0%3D&reserved=0, or unsubscribehttps://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FACG2MN2QSJ4YUO6JIKU2XRTS7QYDBANCNFSM4PDS7NLQ&data=04|01|jdwalker%40ku.edu|9ac8c5fabf154aea1b8808d8d38aca75|3c176536afe643f5b96636feabbe3c1a|0|0|637491940339007443|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=9evd0loOLVK3UXbHRx5zRfs7FA8PnsLvzWN1xJHVZ74%3D&reserved=0.

Closing the issue based on the confirmation received.


Update README's top-level tables CIPs & candidate CIPS.

Doh! Good catch @rphair and, I concur with your suggestion. Will do.


See running code as a icon/badge

I would like to have a small icon/badge/anything. That tells me if a Python script is running or is finished (with any exit code). Similar as in PyCharm. Example below:

Right now, if I run multiple scripts at once (same or different script). I have to manually click through the scripts and check the status. This would be a huge QoL improvement for me. I use mainly Python Debug Console, because I can easily run same script multiple times (with different parameters).

@Tyriar Isn't thins something that shell integration can detect and set the spinner? I don't think this is python specific.


DS3 host delivery service

Now that the DS is part of an independent workspace there should be an easy way a DS operator can use one on its own.

[ ] Figure out how to make CLI scripts as accessible as possible
[ ] Figure out how to make Deployment as easy as possible
[ ] Add documentation that makes it easy to set up a DS

Provide docker container and docker-compose file to spin up local or remote instance
avoid: wget xxx | sudo bash

Necessary steps

web app 1: create keys and config from input data -> config.txt
web app 2: load config.txt and publish to ens or offchain resolver
on webserver: execute docker compose with fonfig.txt
(configure network -> this is the user's responsibility)

Some notes: https://www.notion.so/corpusventures/Delivery-service-f68b1796472045d09fb4662b1ec04190

Thinking about the setup helper and the delivery service, I had a realization today. Currently, setting the service
up would work something like this:

get ENS
get domain
get wallet
use helper
copy files to some server or service
wget docker-compose.yml
docker compose up

I want it to work like this:

get domain (my-ds.org)
on server: docker run dm3-ds@latest
use browser to connect to my-ds.org/setup
finish setup there (you still need ens and wallet, but can follow the guide on your own instance, which feels much smoother and more trustworthy imo)

link
Open questions:

Database. Redis is launched as a separate container. Either we use docker compose, then the user has to manually download a docker-compose file. Or we integrate the database into the delivery service container.
Volumes. The config and environment should persist, otherwise the setup step would have to be repeated every time. The same goes for the database.
How to bundle the setup helper. I creates files inside the container, which is potentially dangerous. How do we make it safe? How can it be bundled? How does node create files on the server?

Current state: web app v0.1 is ready. I need:

Steffen and others to test the web app. (check existing issues and add new issues here)
The delivery-service-image to be published. (Anyone who wants to test, please download and import this image into your local docker: image)

done, though web app is just a poc atm


Allow reconnect after disconnect

Coverage increased (+0.4%) to 33.988% when pulling 9951b0d265c145ea14840de39dabb3b34759006a on falstaff84:allow-reconnect-after-disconnect into 2453d3ce2291cf27aa42cfb3bf8f73ade5b8e4f5 on connectbot:master.


Mention limitations per provider

AWS request/response limits etc, lack of websockets and so on, so people aren't surprised.

you can use AWS IOT for websockets (mqtt over websockets), there are some limitations on the size of messages, but it scales well, you can connect from browsers or mobile devices, and it can trigger lambda functions

yeah not sure if I'll go down that road or not, since you'd need two "apps", maybe! probably will omit that for now, I imagine the "container native" stuff is just going to become more and more commoditized, should be a non-problem at some point


add package.nix for airbyte

Description of changes
Add a new package: Airbyte. It depends on Docker 2.x and can only be run when the docker service is running.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Hey :)
Can you please check with the Contribution guide for nixpkgs?

version should start with a number
the commit message should have the form "pkg-name: init at version"
meta.description should not end in a period

I think it's quite odd to pull those files from airbytehq/airbyte-platform one by one using fetchurl. I guess the idea is not having to check out airbytehq/airbyte-platform? I'm not sure about this :thinking:, I hope someone with more experience comes along :)


[example config] Create linux-var-log-auth-sshd.md

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


iOS: Warn user that they need to give "codesign" keychain permissions

I installed the master branch, then ran flutter create, then flutter run:
ianh-macbookpro:story ianh$ flutter run
Downloading darwin-x64 artifacts from the cloud, one moment please...
Downloading https://storage.googleapis.com/mojo_infra/flutter/9e1e1fba5474b458458b65f1aa1d0d730af2705b/darwin-x64/artifacts.zip.
Starting lib/main.dart on Ian Hickson’s iPod...
Fetching the Xcode project archive from the cloud...
Downloading https://storage.googleapis.com/flutter_infra/flutter/9e1e1fba5474b458458b65f1aa1d0d730af2705b/ios/FlutterXcode.zip...
Unzipping Xcode project to local directory...
Xcode project created at /Users/ianh/dev/story/ios/.generated/.
User editable settings are in /Users/ianh/dev/story/ios/.

At this point an unexpected dialog came up asking for permission to access my key chain.
We should warn the user that this is going to come up.

I believe this will happen only with the Google Development key. Were you using something else?

Ah, yes, I was using such a key.


Feature: Add padding to the nav signIn button

Type of feature
🍕 Feature
Current behavior
there is no padding in the current sign in button

Suggested solution
To fix this add px-3 to the button
Additional context
No response
Code of Conduct

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

Thanks for opening this issue.
I think I added a padding for the button in #21. It's not merged yet, but will be soon...


[Web]: Path.extractPath and cubic bezier produce incorrect sub path

Steps to Reproduce

Run flutter create bug.
Update the files as follows:

import 'dart:math' as math;

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Container(
          alignment: Alignment.center,
          child: CustomPaint(
            size: Size.square(500),
            painter: MyPainter(),
          ),
        ),
      ),
    );
  }
}

class MyPainter extends CustomPainter {
  @override
  void paint(Canvas canvas, Size size) {
    // Setup canvas to draw within simple coordinate system
    final coordSysSize = Size.square(2);
    final scale = math.max(
      size.width / coordSysSize.width,
      size.height / coordSysSize.height,
    );
    canvas.translate(size.width / 2, size.height / 2);
    canvas.scale(scale);

    final paint = Paint()
      ..style = PaintingStyle.stroke
      ..color = Colors.orange
      ..strokeWidth = 1 / scale;

    final path = Path();
    path.moveTo(-1, 0);
    path.cubicTo(-1, -1, -1, -1, 0, -1);
    path.cubicTo(1, -1, 1, -1, 1, 0);

    canvas.drawPath(path, paint);

    final pathMetric = path.computeMetrics().first;
    final subPath = pathMetric.extractPath(0, pathMetric.length);

    canvas.translate(0, 1);

    canvas.drawPath(subPath, paint);
  }

  @override
  bool shouldRepaint(CustomPainter oldDelegate) => true;
}

flutter run -d chrome

Expected results:
The subPath should paint the same as path.
Actual results:
The subPath is painted incorrectly.

Logs

[✓] Flutter (Channel dev, 1.20.0-0.0.pre, on Mac OS X 10.15.5 19F101, locale
    en-DE)
    • Flutter version 1.20.0-0.0.pre at /Users/gabriel/lib/flutter
    • Framework revision d9653445f4 (10 days ago), 2020-06-09 18:43:03 -0400
    • Engine revision e8c13aa012
    • Dart version 2.9.0 (build 2.9.0-14.0.dev 5c1376615e)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/gabriel/Library/Android/sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: /Users/gabriel/Library/Application
      Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/193.6514223/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.5, Build version 11E608c
    • CocoaPods version 1.9.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Users/gabriel/Library/Application
      Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/193.6514223/Android
      Studio.app/Contents
    • Flutter plugin version 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] IntelliJ IDEA Ultimate Edition (version 2020.1.2)
    • IntelliJ at /Users/gabriel/Applications/JetBrains Toolbox/IntelliJ IDEA
      Ultimate.app
    • Flutter plugin version 46.0.3
    • Dart plugin version 201.7846.93

[!] VS Code (version 1.46.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    ✗ Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (4 available)
    • iPhone von Gabriel • 75abc84aa275adf729ece3997b970c5f2aa0e420 • ios
      • iOS 12.4.6
    • macOS              • macOS                                    • darwin-x64
      • Mac OS X 10.15.5 19F101
    • Web Server         • web-server                               •
      web-javascript • Flutter Tools
    • Chrome             • chrome                                   •
      web-javascript • Google Chrome 83.0.4103.106

! Doctor found issues in 1 category.

Hi @blaugold
testing your code on web and android with the latest master

screenshots

doctor
[✓] Flutter (Channel master, 1.20.0-1.0.pre.118, on Mac OS X 10.15.5 19F101, locale en-GB)
    • Flutter version 1.20.0-1.0.pre.118 at /Users/nevercode/development/flutter_master
    • Framework revision 8665e13801 (10 hours ago), 2020-06-18 18:08:01 -0700
    • Engine revision b5f5e6332c
    • Dart version 2.9.0 (build 2.9.0-17.0.dev 54481776c9)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/nevercode/Library/Android/sdk
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.5, Build version 11E608c
    • CocoaPods version 1.9.0

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 3.6)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 45.1.1
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)

[✓] VS Code
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.11.0

[✓] Connected device (4 available)
    • Pixel 3a      • 965AY0WP5C • android-arm64  • Android 10 (API 29)
    • macOS desktop • macos      • darwin-x64     • Mac OS X 10.15.5 19F101
    • Web Server    • web-server • web-javascript • Flutter Tools
    • Chrome        • chrome     • web-javascript • Google Chrome 83.0.4103.106

• No issues found!

the issue occurs as you described
Thank you

The path code is being rewritten from scratch. @ferhatb will this be covered with the new path code?

Fixed in https://github.com/flutter/engine/pull/19557 , fixed and verified on flutter master channel.


cats upgrade to 0.7.2 and more unit tests in the "cats" subproject

Example of how to use Kryo when using Monoids with intermediate collections that don't extend Serialiazable.
Include one simple toRdd convenient implicit method for converting Scala Sequences to RDDs.

Hi, thanks for your pull request! Couple of comments:

I don't think seqToRdd should go in frameless.cats.implicits. It's fine to have for tests, but I sure exposing it is a good idea. My reasoning is that we should stick as close as possible the Spark syntax when possible...

Regaring the Kryo, is scala.collection.Map the thing which is not serializable? You could maybe add a comment about that in the test to inform other

Thanks for the comments @OlivierBlanvillain ! The idea behind toRdd is to reduce the verbosity of having to type sc.parallelize(mySeq) every time. I did this so many time in the REPL and for tests that I really wanted Spark to have something simpler. If you think that is too exotic, I can remove it.
The serialization problem comes from the Algebra's Monoid (which is also cats' monoid). You are right, it will be a good idea to document this better. I am wondering if we should have some kind of documentation of how to better configure spark to work well with cats and frameless in general?

The idea behind toRdd is to reduce the verbosity of having to type sc.parallelize(mySeq) every time. I did this so many time in the REPL and for tests that I really wanted Spark to have something simpler.

I understand, and I don't have a strong opinion on that being a good idea or not. My point is that since this convenience has nothing to do with frameless in particular, it has nothing to do in frameless public API and should rather go into apache/spark directly. However nothings wrong with adding such convenience to our tests :)

The serialization problem comes from the Algebra's Map() Monoid (which is also cats' monoid)

Could you check if updating the cats version fixes the issue? If possible I think if would be best to fix the issue at it's root.

I am wondering if we should have some kind of documentation of how to better configure spark to work well with cats and frameless in general?

It should be no different that working with Spark in general, so I would say we should rather focus on documenting the new stuff...

Hey @OlivierBlanvillain.  I didn't have the serialization issues so I got rid of the Kyro stuff. I also move the toRdd in the test suite. I also added few more unit tests.

Current coverage is 81.04% (diff: 100%)

Merging #47 into master will not change coverage

@@             master        #47   diff @@
==========================================
  Files            20         20
  Lines           364        364
  Methods         360        360
  Messages          0          0
  Branches          4          4
==========================================
  Hits            295        295
  Misses           69         69
  Partials          0          0

Powered by Codecov. Last update 92eb1a0...acbe25a

LGTM :+1:
Could you try rebasing on top of #48? (Or wait for it be merged and rebase on top of master)

Let me now when the other PR is done and I can rebase after. Thanks!

This PR can now be rebased on top of master

Just rebased and pushed the changed code. Hope all tests go well.

Many thanks, merging :+1:


[FEATURE] supply arm64 image

Is your feature request related to a problem? Please describe.
i want elasticdump to run on arm server. now i clone code on arm server and build it. i want supply official arm64 image.
supply arm64 image in https://hub.docker.com/r/elasticdump/elasticsearch-dump/tags
Describe the solution you'd like
supply official arm64 image in https://hub.docker.com/r/elasticdump/elasticsearch-dump/tags
Describe alternatives you've considered
now i clone code on arm server and build it.
Give some examples of implementations
in arm server，and run 'docker build -f dockerfile . -t xxx', and push to hub.docker, off cause, use ci is petty good

I can't support this since I don't use arm. Docker doesn't support autobuilds for OpenSource projects anymore. If I could I would, but I can't sorry.

@ferronrsmith it seems your project utilizes now github actions, are you fine to contribue a dockerhub release workflow for both amd64/arm64 archs (using qemu/docker buildx)?

arm64 support is now available in the latest version of elasticsearch-dump


CVAT serverless function return type support

Actions before raising this issue

[X] I searched the existing issues and did not find anything similar.
[X] I read/searched the docs

Is your feature request related to a problem? Please describe.
I would like to know all types returned by all serverless functions currently supported by CVAT
Does CVAT support rotation box object detection without server function type return
Describe the solution you'd like
No response
Describe alternatives you've considered
No response
Additional context
No response

Hello, please, refer to #6332

Does CVAT support rotation box object detection without server function type return

https://github.com/opencv/cvat/pull/6961

您好，请参考#6332

CVAT是否支持无服务器函数类型返回的旋转框对象检测

#6961

thanks you so much


Replace quota polling with quota metrics from heartbeats

Currently SS does periodic poll for quotas to each agent.
This is a very inefficient way.
But since now agent supplies quota metrics with heartbeat, we need to use them, and remove quota polling.

Done


Update Client Core Utils

resources/app/client/core/utils.js

no changes @JPMeehan

This can be closed @JPMeehan


build command returns a 403  403 No valid crumb was included in the request

Using Jenkins 2.19.2, calling a Jenkins build for jobName returns the following

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Error 403 No valid crumb was included in the request</title>

HTTP ERROR 403

Problem accessing /job/jobName/build. Reason:

    No valid crumb was included in the request

Powered by Jetty://

This seems linked to PR #6 but since there was no answer on this PR, any idea?
Thank you for your help

I faced the same issue that @oltruong mention above.

Hi @WadeTsai  I ended up disabling the security check in Jenkins to make it work...


Initial client

Not sure why we need to separate - perhaps all that needs to happen is that server only ADRs should be labeled as "SERVER ONLY", as in most cases an ADR for the server will have some sort of impact on the client. IE all the ADRs on server dir have some significance on the client.

I could number them starting with 1 but I thought to differentiate between client and server. Too bad tools aren't smart enough to allow manual assignment of a number or to just figure out what the largest number is. I'm guessing I could even write go code to create a file from a template with the proper number. Also, don't we all know markdown?
I disagree that all adrs in the server folder will have impact on the client. Configuration is a prime example of both major confusion and lack of documentation that does not specifically affect building a client.

I think there consensus on the call. We have ADRs. Not ADRs for many different purposes.

I disagree that all adrs in the server folder will have impact on the client. Configuration is a prime example of both major confusion and lack of documentation that does not specifically affect building a client

Every single ADR in the server dir deals with client things.

ADRs are not for every configuration setting. They would be to describe the general design and approach taken with the configuration system as a whole or as a detail on how we might integrate with KMS systems as a general capability.
The existing documented process has this:
When to write an ADR
Not every little decision needs an ADR, and we are not overly prescriptive about the format. The kind of change that should have an ADR are ones likely to impact many client libraries or those where we specifically wish to solicit wider


Browser support

Hi! Thank you for the awesome library! Could you add the browser support? I am using absurd-sql, and I need the basic SQL builder. At now import { inspect } from "util"; doesn't allow me to use in browser(I am using vite)

Thanks for the flag, it should be possible to switch this over to symbols and/or remove the feature entirely.

Fixed in https://github.com/blakeembrey/sql-template-tag/releases/tag/v4.1.0
I'll release a v5 later today with ES support and drop some extra cruft from the module, so either 4.1 or 5.0 will work for you.

Wow, thank you so much for the fast fix!


Running doctests on Windows

Closes #322

I have also fully disabled NA tests referencing #321 until the floating point issue is resolved.

Now we have some sort of a benchmark for i686


Better syntax error messages for Lark errors

No idea how to do this

I've not actually encountered this, though I'm using pretty basic queries for testing. What are you seeing?


Bypass

What about red trust factor and vac? It can be undetected long time?

What about red trust factor and vac? It can be undetected long time?

tbh idk abt wut ur saying but ive been using it i have edited a few things to make it easier to use for me but it works great no ban yet been using it since i started the game 70+ hours of play time with it

What about red trust factor and vac? It can be undetected long time?

i  also  recently  added  bhop  to  mine

What about red trust factor and vac? It can be undetected long time?

i also recently added bhop to mine

sounds good.

so i can safely play with it on main?

What about red trust factor and vac? It can be undetected long time?

i also recently added bhop to mine

can you add me on discord please i wanna ask you something Reese#0613

Aimbot and RCS result in vac bans

What about red trust factor and vac? It can be undetected long time?

i also recently added bhop to mine
can u help me to add bunny hop on mine?
discord : big.namer

So, after looking into my own ban and testing a bit, I am now sure.
In non prime it is safe green trust and everything is fine.  It can be undetected long time?

tbh idk abt wut ur saying but ive been using it i have edited a few things to make it easier to use for me but it works great no ban yet been using it since i started the game 70+ hours of play time with it

how did u made the box filled?

What about red trust factor and vac? It can be undetected long time?

tbh idk abt wut ur saying but ive been using it i have edited a few things to make it easier to use for me but it works great no ban yet been using it since i started the game 70+ hours of play time with it

how did u made the box filled?

its a function in imgui i think


Question on Demo API : TODO

@leosuncin Thanks for you updates.
I just pulled the latest commits and it works pretty fine.
I'm not sure if I made a mistake or not, but when I make a GET request /todo:id, it returns the list of TO-DOs, not only the one with that ID.

Can you please take a look into this?

To get one todo by id use GET /todo/:id, replace :id with the specific id, by example GET /todo/1


Adding a Stream.splitByWithTimeout

The current splitBy method will leave the buffer unsent indefinetly if the separator is not detected.
For quick moving streams, this doesn't cause a problem but for some cases, with slower streams,
we want the buffer contents to be sent after a specific amount of time. Otherwise we are eternally one
step behind.

Can you provide a motivating example use case? Even with a slow source, I can't imagine wanting to split anywhere but on the delimiter.
Assuming the delimiter separates our elements to process, I don't see the benefit of getting an incomplete element a little sooner and the rest of it later (and then ostensibly needing to stitch them back together) as opposed to just waiting a little longer for the element to be all there.
If it's just a memory usage problem, there might be other ways around it.

@LewisJEllis one use case is parsing a text stream for log messages. Let's say we want to merge lines not starting with a date up to the previous line. In this case if we don't get another log event for a period of time, the previous message won't be sent (e.g. If we are getting low traffic). In this case we don't want the message to sit indefinitely waiting.

We've got a Node app that tails log files from a Java app and forwards it to LogStash. The Node app receives the stream of log data line by line but we need to split the log data up by

This seems way too narrow to put into the main repo. Is highland really not pluggable enough to keep this as a separate library?

I'm inclined to agree, but will leave this open if anyone else has more thoughts. This seems like a specific enough use case to either write a custom .consume handler or to package it separately and use .through.
In HL3.0 you'll be able to get a tighter integration with .use, but for now, if you don't want to write a custom .consume or use .through, you can probably achieve something similar through some crafty use of .batchWithTimeOrCount.

@realrunner and @cphoover I think you can accomplish the same thing by placing a custom transform before the splitBy that injects the delimiter upon a timeout. It should be trivial to write, and you won't have to replicate the splitBy logic. You'll end up with some empty lines, but that's also easy to filter out if it's a problem.
This transform seems to only make sense when you know that the delimiter will always be at the start of your strings, so I'll agree with @LewisJEllis and @mpj  that it probably doesn't belong in the main repo.
I'm going to close this so that it doesn't remain open forever. If anyone has more thoughts, they can always make a comment or reopen.


Government resource model - Map

Mapbox should have same settings as historic site resource model mapbox when about to edit such as:

[x] map view of all of BC when opening
[ ] have municipal layers showing - no longer required EJB update 2024/01/08
[x] ability to add feature (so I can use municipal map layers to set government location)

For #2 above - there is currently no way to configure which layers are visible on each of the edit maps. So we can either:

Display the municipal boundaries by default everywhere, including on the search page or
Not show them for now on the edit page and address this at a later date.

If option 2 is selected, please create a separate ticket for this in the New swimlane and we can address it sometime after MVP.

@bferguso just the municipal /regional boundaries for this resource model. Okay not proceeding with 2.

Can we leave this as a non-mvp ticket then? Do you need to add these boundaries immediately?

@bferguso yes it doesn't have mvp label. it could be moved to post mvp swim lane


[Android] CJK IME candidate window position error with external keyboard on Android

Steps to reproduce

Connect a physical keyboard (e.g., a Bluetooth keyboard) to your Android device.
Switch to a CJK input method (e.g., Chinese) and start typing to trigger candidate words.

Expected results
The candidate window should be displayed correctly near the cursor to ensure a seamless user experience. With the increasing popularity of Android tablets, many of which are commonly used with physical keyboards, it has become essential to address this issue. Correctly positioning the candidate window is critical for maintaining usability and consistency across devices, especially for users relying on CJK input methods. Fixing this bug will significantly improve the input experience for a growing segment of Android users.
Actual results
On Android devices, the candidate window for the input method is incorrectly displayed in the lower-left corner of the screen. In contrast, on iOS and desktop devices, the candidate window appears in the correct position. I used Gboard as the input method on Android and tested other input methods as well, but the issue persisted. This suggests that the problem is not related to a specific input method.
Code sample
Code sample
This is a very simple example that contains only a textfiled.
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: TextField(),
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
Android (incorrect position)
https://github.com/user-attachments/assets/a8cd4819-7af1-4910-8d80-4a6400d13d1f
ios (correct position)
https://github.com/user-attachments/assets/0876ab3b-bfae-4fbb-ab30-4630f2093074

Logs
No response
Flutter Doctor output
Doctor output
[✓] Flutter (Channel beta, 3.27.0-0.2.pre, on macOS 15.1.1 24B91 darwin-arm64,
    locale zh-Hans-CN)
    • Flutter version 3.27.0-0.2.pre on channel beta at
      /Users/alex/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision fc011960a2 (2 weeks ago), 2024-11-14 12:19:18 -0800
    • Engine revision 397deba30f
    • Dart version 3.6.0 (build 3.6.0-334.4.beta)
    • DevTools version 2.40.1
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0)
    • Android SDK at /Users/alex/development/Android
    • Platform android-35, build-tools 35.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 21.0.3+-79915917-b509.11)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16B40
    • CocoaPods version 1.16.2

[✗] Chrome - develop for the web (Cannot find Chrome executable at
    /Applications/Google Chrome.app/Contents/MacOS/Google Chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

[✓] Android Studio (version 2024.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 21.0.3+-79915917-b509.11)

[✓] IntelliJ IDEA Ultimate Edition (version 2024.3)
    • IntelliJ at /Applications/IntelliJ IDEA Ultimate.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.95.3)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (3 available)
    • 晦气4 (mobile)                    • 00008103-000A488102D9001E • ios
      • iOS 18.2 22C5142a
    • macOS (desktop)                 • macos                     • darwin-arm64
      • macOS 15.1.1 24B91 darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad     • darwin
      • macOS 15.1.1 24B91 darwin-arm64
    ! Error: Browsing on the local area network for iPhone SE. Ensure the device
      is unlocked and attached with a cable or associated with the same local
      area network as this Mac.
      The device must be opted into Developer Mode to connect wirelessly. (code
      -27)

[!] Network resources
    ✗ A cryptographic error occurred while checking "https://cocoapods.org/":
      Connection terminated during handshake
      You may be experiencing a man-in-the-middle attack, your network may be
      compromised, or you may have malware installed on your computer.

! Doctor found issues in 2 categories.

I have tested numerous applications developed with Flutter, and they all exhibit this issue. Therefore, I believe this problem is not related to a specific version of Flutter.

Thanks for the report @ZhuJHua
Can you provide the device details on which this occurs ? Is there a way to check on other Android devices (make and model) to see if the reported behavior persists across all android devices or is specific to the one you are using ?

Thank you for your response. I am using Android 14 and have tested the issue on multiple phone brands, including Huawei, Xiaomi, and OnePlus, with various input methods, all yielding the same results.

持续存在，还是特定于您正在使用的设备？

感谢您的报告@ZhuJHua 您能否提供发生这种情况的设备详细信息？ 有没有办法检查其他 Android 设备（品牌和型号），以查看所报告的行为是否在所有 Android 设备上持续存在，还是特定于您正在使用的设备？

I use a vivo iqoo mobile phone and a Xiaomi tablet, and have adopted the open-source fcitx input method and Google's Gboard. However, no matter which input method is used, its floating window cannot be displayed correctly. And I have conducted experiments in different Flutter applications, all of which cannot be displayed correctly. It seems that this is not a problem with the input method, but a problem with the Flutter framework. Most Android tablets sold on the market are equipped with Bluetooth keyboards, so the coverage of this kind of problem is extremely wide. An effective solution is urgently needed. I sincerely request the official to pay attention to it.

Thanks for the update. I currently don't have a physical keyboard to verify this, but based on the report, I will keep the issue open for team's tracking.

Thanks for the update. I currently don't have a physical keyboard to verify this, but based on the report, I will keep the issue open for team's tracking.

Looking forward to your update. 😊

感谢您的更新。我目前没有实体键盘来验证这一点，但根据报告，我会继续关注此问题，以便团队进行跟踪。

Thank you for the reply. We are looking forward to the prompt fix of this issue. It is very important for a large number of Android users who use physical keyboards.

Can you attach a video of an android app (non flutter) that has the keyboard behavior you think is correct?

Can you attach a video of an android app (non flutter) that has the keyboard behavior you think is correct?

Of course
https://github.com/user-attachments/assets/23673022-6a3b-4971-8db5-22150794f479

Any update now?

FYI the flutter engine recently (2 days ago) changed from being in flutter/engine to being a sub directory of flutter/flutter.
Additionally the engine tool (et) can help when building an app with a custom engine or when trying to build/test/lint the engine.
https://github.com/flutter/flutter/tree/188d1e1999c7dd2804d3802976248fdad12d4372/engine/src/flutter/tools/engine_tool

FYI the flutter engine recently (2 days ago) changed from being in flutter/engine to being a sub directory of flutter/flutter.
Additionally the engine tool (et) can help when building an app with a custom engine or when trying to build/test/lint the engine.
https://github.com/flutter/flutter/tree/188d1e1999c7dd2804d3802976248fdad12d4372/engine/src/flutter/tools/engine_tool

Thanks, i'll try it!


implementation notification service

login entire flow done

add test

wip on test

insert tag integration test

test must be run with notificationserver running locally on http://<IP_ADDRESS>:10000/api/unstable
to run test: go test ./... -tags=integration

rebase master and update idenAssertFrom

Closing because this has been superseeded by another commit


Add iam, lambda, and apigatewayv2 to code-generator presubmit tests

Require a test controller to be generated for iam-controller, lambda-controller, and apigatewayv2-controller (in addition to the existing set) for future code-generator PRs.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

I might suggest ec2 as well since it includes a lot of fundamental resources referenced by other controllers, a lot of custom code and a lot of references.

I might suggest ec2 as well since it includes a lot of fundamental resources referenced by other controllers, a lot of custom code and a lot of references.

Added EC2


[Function Expose] Table 123 Purch. Inv. Line: FilterPstdDocLineValueEntries

Hello.
We need function FilterPstdDocLineValueEntries in Table 123 "Purch. Inv. Line" set as GLOBAL.
We are checking the posted lines for our own copying of entries related to the Purch. Inv. Lines.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Version 3.0.1 registers the Web Adaptor for server twice

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request

Module Version

3.0.1

Affected Resource(s)

ArcGIS_WebAdaptor

Configuration Files

{
    "AllNodes": [{
            "NodeName": "MACHINENAME",
            "Role": [
                "Server",
                "Portal",
                "DataStore",
                "ServerWebAdaptor",
                "PortalWebAdaptor"
            ],
            "DataStoreTypes": [
                "Relational",
                "TileCache"
            ],
            "SslCertificates": [
				{
                    "Path": "C:\\system\\certificates\\machinename.esri-de.com.pfx",
                    "Password": "***",
                    "CNameFQDN": "MACHINENAME.ESRI-DE.COM",
                    "Target": [
                        "Server", "Portal", "WebAdaptor"
                    ]
                }
            ]
        }
    ],
    "ConfigData": {
        "Version": "10.8",
        "ServerContext": "hostingserver",
        "PortalContext": "portal",
        "ServerRole": "GeneralPurposeServer",
        "Credentials": {
            "ServiceAccount": {
                "UserName": "agssrvc",
                "Password": "***",
                "IsDomainAccount": false
            }
        },
        "Server": {
            "LicenseFilePath": "C:\\temp\\Licenses\\ArcGIS Server Advanced 10.8.prvc",
            "Installer": {
                "Path": "C:\\temp\\Setups\\Enterprise 10.8\\ArcGIS_Server_Windows_108_172859.exe",
                "InstallDir": "C:\\apps\\ArcGIS Enterprise 10.8\\Server",
                "InstallDirPython": "C:\\apps\\ArcGIS Enterprise 10.8\\Python27"
            },
			"ConfigStoreLocation": "C:\\arcgis\\arcgisserver\\config-store",
			"PrimarySiteAdmin": {
				"UserName": "siteadmin",
				"Password": "***"
			},
            "ServerDirectoriesRootLocation": "C:\\arcgis\\arcgisserver\\directories",
            "LocalRepositoryPath": "C:\\arcgis\\arcgisserver\\local",
            "ServerLogsLocation": "C:\\arcgis\\arcgisserver\\logs",
            "ServerDirectories": [{
                    "name": "arcgiscache",
                    "physicalPath": "C:\\arcgis\\arcgisserver\\directories\\arcgiscache",
                    "directoryType": "CACHE",
                    "cleanupMode": "NONE",
                    "maxFileAge": 0
                }, {
                    "name": "arcgisjobs",
                    "physicalPath": "C:\\arcgis\\arcgisserver\\directories\\arcgisjobs",
                    "directoryType": "JOBS",
                    "cleanupMode": "TIME_ELAPSED_SINCE_LAST_MODIFIED",
                    "maxFileAge": 360
                }, {
                    "name": "arcgisoutput",
                    "physicalPath": "C:\\arcgis\\arcgisserver\\directories\\arcgisoutput",
                    "directoryType": "OUTPUT",
                    "cleanupMode": "TIME_ELAPSED_SINCE_LAST_MODIFIED",
                    "maxFileAge": 10
                }, {
                    "name": "arcgissystem",
                    "physicalPath": "C:\\arcgis\\arcgisserver\\directories\\arcgissystem",
                    "directoryType": "SYSTEM",
                    "cleanupMode": "NONE",
                    "maxFileAge": 0
                }
            ]
        },
        "Portal": {
            "LicenseFilePath": "C:\\temp\\Licenses\\ArcGIS_Enterprise_Portal_108.json",
            "Installer": {
                "Path": "C:\\temp\\Setups\\Enterprise 10.8\\Portal_for_ArcGIS_Windows_108_172870.exe",
                "InstallDir": "C:\\apps\\ArcGIS Enterprise 10.8\\Portal",
                "ContentDir": "C:\\arcgis\\arcgisportal\\localcontentdir"
            },
			"PortalAdministrator": {
                "UserName": "portaladmin",
                "Email"<EMAIL_ADDRESS>                "Password": "***",
                "SecurityQuestionIndex": 1,
                "SecurityAnswer": "My Hometown"
            },
			"PortalLicenseUserTypeId": "creatorUT",
            "ContentDirectoryLocation": "C:\\arcgis\\arcgisportal\\content",
            "EnableAutomaticAccountCreation": "false",
            "DefaultRoleForUser": "account_user",
            "DefaultUserLicenseTypeIdForUser": "creatorUT"
        },
        "DataStore": {
            "ContentDirectoryLocation": "C:\\arcgis\\arcgisdatastore",
            "EnableFailoverOnPrimaryStop": "false",
            "Installer": {
                "Path": "C:\\temp\\Setups\\Enterprise 10.8\\ArcGIS_DataStore_Windows_108_172872.exe",
                "InstallDir": "C:\\apps\\ArcGIS Enterprise 10.8\\DataStore"
            }
        },
        "WebAdaptor": {
            "AdminAccessEnabled": true,
            "Installer": {
                "Path": "C:\\temp\\Setups\\Enterprise 10.8\\Web_Adaptor_for_Microsoft_IIS_108_172749.exe"
            }
        }
    }
}

Expected Behavior

The Web Adaptor should have been registered only once.
Actual Behavior

The Web Adaptor was registered twice, see screenshot:

One thing to point out:
The machine-name in the URL of the Web Adaptor with the ID c9cc91fb-5948-402f-9afd-607902d63a71 is written in small letters: "https://machinename.esri-de.com/hostingserver".
The machine-name in the URL of the Web Adaptor with the ID 9055e3ae-2002-48da-a7ee-a8e0ee8b34d3 is written in capital letters: "https://MACHINENAME.ESRI-DE.COM:443/hostingserver".
I have seen this behavior on a machine with a CA-certificate like in this config as well as on a machine that only uses self-signed certificates from ArcGIS Enterprise.
Steps to Reproduce

"InstallLicenseConfigure" a base deployment with the ArcGIS DSC-module-version 3.0.1.
Important Factoids

None.
References

None.

@kaelian2 und @esride-dku, FYI.

@scma-esrich This is expected behavior. The module registers a "dummy" Web Adaptor to help mitigate possible redirect issues when using a DNS alias. This is the case with Portal for ArcGIS as well.

Thanks for the clarification @cameronkroeker.
@geocloud-kaa and @esride-dku, FYI.
I had no issues with the two Web Adaptors, when testing the print-service on my end with a fresh installation.


Fix pet update functionality - Fixed issue where editing a pet's type…

Fix Pet Update Functionality
Description
Fixed an issue where editing a pet's type or name wasn't persisting in the database, even though a success message was shown.
Changes made

Modified processUpdateForm to update existing pet properties instead of using addPet
Added proper handling of existing pet updates
Maintained all existing validation checks

Note: I'm new to contributing and haven't added tests yet. I'd be happy to add them if required.

@VishantOwO Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@VishantOwO Thank you for signing the Contributor License Agreement!


updating pr text

Description
Updates the issue text. I left out some of the suggestions from #14, they are more at home in a PR than an issue.
Related issues:

#14

Instructions to review the pull request
Review online.

PR continues here (branch name was changed) PR https://github.com/cffbots/filtering/pull/48


Moved ReadSource to read_source.py

If I have to understand ReadSource's methods then it seems cleaner to give that class its own file rather than having a cluttered reads_util module with a lot of semi-related functionality.

LGTM, thanks for adding some docstrings!