Sleigh: how to specify multiple instructions within an instruction bundle?

Hi,
I am currently attempting to add TileGx architecture to Ghidra.
I am unsure of how to define the instructor constructors as instructions are packed into 64-bit bundles containing 2-3 instructions each, depending on X or Y mode.
Example:

Also, the instruction format bits of different instructions within a bundle may not be contiguous.
Example:

Y0 bits: 0-19, 27-30
Y1 bits: 31-50, 58-61
Y2 bits: 20-26, 51-57, 62-63

One possible solution is to define every possible permutation of instructions manually (for both X and Y mode) but that would be infeasible due to the large instruction count. Is there a better way to implement this?
My current code:
@define REGSIZE "8"
@define ADDRSIZE "8"

define endian=$(ENDIAN);

define alignment=2;

define space ran type=ram_space size=$(ADDRSIZE) default;
define space register type=register_space size=$(REGSIZE);

define register offset=0 size=$(REGSIZE) [
	r0 r1 r2 r3 r4
	r5 r6 r7 r8 r9
	r10 r11 r12 r13 r14
	r15 r16 r17 r18 r19
	r20 r21 r22 r23 r24
	r25 r26 r27 r28 r29
	r30 r31 r32 r33 r34
	r35 r236 r37 r38 r39
	r40 r41 r42 r43 r44
	r45 r46 r47 r48 r49
	r50 r51 r52 r53 sp
	lr r56 idn0 idn1 udn0
	udn1 udn2 udn3 zero
];

define token instr_bundle(64)
	mode = (62,63)

	# X1
	Opcode_X1 = (59,61)
	RRROpcodeExtension_X1 = (49,58)
	SrcB_X1 = (43,48)
	SrcA_X1 = (37,42)
	Dest_X1 = (31,36)
	Imm8OpcodeExtension_X1 = (51,58)
	Imm8_X1 = (43,50)
	MT_Imm14_X1_13_6 = (43,50)
	MT_Imm14_X1_5_0 = (31,36)
	MF_Imm14_X1 = (37,50)
	Imm16_X1 = (43,58)
	UnaryOpcodeExtension_X1 = (43,48)
	ShiftOpcodeExtension_X1 = (49,58)
	ShAmt_X1 = (43,48)
	BrType_X1 = (54,58)
	BrOff_X1_16_6 = (43,53)
	BrOff_X1_5_0 = (31,36)
	JumpOpcodeExtension_X1 = (58,58)
	JumpOff_X1 = (31,57)

	# X0
	Opcode_X0 = (28,30)
	RRROpcodeExtension_X0 = (18,27)
	SrcB_X0 = (12,17)
	SrcA_X0 = (6,11)
	Dest_X0 = (0,5)
	Imm8OpcodeExtension_X0 = (20,27)
	Imm8_X0 = (12,19)
	Imm16_X0 = (12,27)
	UnaryOpcodeExtension_X0 = (12,17)
	ShiftOpcodeExtension_X0 = (18,27)
	ShAmt_X0 = (12,17)
	BFOpcodeExtension_X0 = (24,27)
	BFStart_X0 = (18,23)
	BFEnd_X0 = (12,17)

	# Y2
	Opcode_Y2_1_1 = (57,57)
	SrcBDest_Y2 = (51,56)
	Opcode_Y2_0_0 = (26,26)
	SrcA_Y2 = (20,25)

	# Y1
	Opcode_Y1 = (58,61)
	RRROpcodeExtension_Y1 = (49,50)
	SrcB_Y1 = (43,48)
	SrcA_Y1 = (37,42)
	Dest_Y1 = (31,36)
	Imm8_Y1 = (43,50)
	UnaryOpcodeExtension_Y1 = (43,48)
	ShiftOpcodeExtension_Y1 = (49,50)
	ShAmt_Y1 = (43,48)

	# Y0
	Opcode_Y0 = (27,30)
	RRROpcodeExtension_Y0 = (18,19)
	SrcB_Y0 = (12,17)
	SrcA_Y0 = (6,11)
	Dest_Y0 = (0,5)
	Imm8_Y0 = (12,19)
	UnaryOpcodeExtension_Y0 = (12,17)
	ShiftOpcodeExtension_Y0 = (18,19)
	ShAmt_Y0 = (12,17)
	;

ISA Reference: tile-gx-instruction-set-architecture_compress.pdf

Thanks for the example, may I know if phasebit is referring to phase in the context?

phase would be a transient context register field defined by the language spec.  We frequently use that name to track the recursive phases of an instruction parse which may be employed for the language spec.

Sorry, yes a typo

I am unable to get all the instructions to display as it seems to move on to parse the next 64-bits after the first match.
Ghidra:

Disassembly:

@define ENDIAN "little"
@define REGSIZE "8"
@define ADDRSIZE "8"

define endian=$(ENDIAN);
define alignment=8;

define space ram type=ram_space size=$(ADDRSIZE) default;
define space register type=register_space size=$(REGSIZE);

define register offset=0 size=$(REGSIZE) [
	r0 r1 r2 r3 r4
	r5 r6 r7 r8 r9
	r10 r11 r12 r13 r14
	r15 r16 r17 r18 r19
	r20 r21 r22 r23 r24
	r25 r26 r27 r28 r29
	r30 r31 r32 r33 r34
	r35 r236 r37 r38 r39
	r40 r41 r42 r43 r44
	r45 r46 r47 r48 r49
	r50 r51 r52 r53 sp
	lr r56 idn0 idn1 udn0
	udn1 udn2 udn3 zero
];

define token instr_bundle(64)
	mode = (62,63)

	# X0
	Opcode_X0 = (28,30)
	RRROpcodeExtension_X0 = (18,27)
	SrcB_X0 = (12,17)
	SrcA_X0 = (6,11)
	Dest_X0 = (0,5)
	Imm8OpcodeExtension_X0 = (20,27)
	Imm8_X0 = (12,19)
	Imm16_X0 = (12,27)
	UnaryOpcodeExtension_X0 = (12,17)
	ShiftOpcodeExtension_X0 = (18,27)
	ShAmt_X0 = (12,17)
	BFOpcodeExtension_X0 = (24,27)
	BFStart_X0 = (18,23)
	BFEnd_X0 = (12,17)

	# X1
	Opcode_X1 = (59,61)
	RRROpcodeExtension_X1 = (49,58)
	SrcB_X1 = (43,48)
	SrcA_X1 = (37,42)
	Dest_X1 = (31,36)
	Imm8OpcodeExtension_X1 = (51,58)
	Imm8_X1 = (43,50)
	MT_Imm14_X1_13_6 = (43,50)
	MT_Imm14_X1_5_0 = (31,36)
	MF_Imm14_X1 = (37,50)
	Imm16_X1 = (43,58)
	UnaryOpcodeExtension_X1 = (43,48)
	ShiftOpcodeExtension_X1 = (49,58)
	ShAmt_X1 = (43,48)
	BrType_X1 = (54,58)
	BrOff_X1_16_6 = (43,53)
	BrOff_X1_5_0 = (31,36)
	JumpOpcodeExtension_X1 = (58,58)
	JumpOff_X1 = (31,57)

	# Y0
	Opcode_Y0 = (27,30)
	RRROpcodeExtension_Y0 = (18,19)
	SrcB_Y0 = (12,17)
	SrcA_Y0 = (6,11)
	Dest_Y0 = (0,5)
	Imm8_Y0 = (12,19)
	UnaryOpcodeExtension_Y0 = (12,17)
	ShiftOpcodeExtension_Y0 = (18,19)
	ShAmt_Y0 = (12,17)

	# Y1
	Opcode_Y1 = (58,61)
	RRROpcodeExtension_Y1 = (49,50)
	SrcB_Y1 = (43,48)
	SrcA_Y1 = (37,42)
	Dest_Y1 = (31,36)
	Imm8_Y1 = (43,50)
	UnaryOpcodeExtension_Y1 = (43,48)
	ShiftOpcodeExtension_Y1 = (49,50)
	ShAmt_Y1 = (43,48)

	# Y2
	Opcode_Y2_1_1 = (57,57)
	SrcBDest_Y2 = (51,56)
	Opcode_Y2_0_0 = (26,26)
	SrcA_Y2 = (20,25)
;

define register offset=0x1000 size=8 contextreg;
define context contextreg
	bundleType = (0,1)
;

attach variables [
	SrcA_X0 SrcB_X0 Dest_X0
	SrcA_X1 SrcB_X1 Dest_X1
	SrcA_Y0 SrcB_Y0 Dest_Y0
	SrcA_Y1 SrcB_Y1 Dest_Y1
	SrcA_Y2 SrcBDest_Y2
] [
	r0 r1 r2 r3 r4
	r5 r6 r7 r8 r9
	r10 r11 r12 r13 r14
	r15 r16 r17 r18 r19
	r20 r21 r22 r23 r24
	r25 r26 r27 r28 r29
	r30 r31 r32 r33 r34
	r35 r236 r37 r38 r39
	r40 r41 r42 r43 r44
	r45 r46 r47 r48 r49
	r50 r51 r52 r53 sp
	lr r56 idn0 idn1 udn0
	udn1 udn2 udn3 zero
];

:^instruction is bundleType=0 & mode=0x00 & instruction [ bundleType=1; ] {}
:^instruction is bundleType=0 & mode!=0x00 & instruction [ bundleType=2; ] {}

# X Format
with : bundleType = 1 {
	:X is bundleType {} # Filler
}

# Y Format
with : bundleType = 2 {
	# Opcode_Y0 = (27,30), RRROpcodeExtension_Y0 = (18,19), SrcB_Y0 = (12,17), SrcA_Y0 = (6,11), Dest_Y0 = (0,5)
	:move Dest_Y0, SrcA_Y0 is Opcode_Y0=0xA & RRROpcodeExtension_Y0=0x2 & SrcB_Y0=0x3F & SrcA_Y0 & Dest_Y0 {}

	# Opcode_Y1 = (58,61), Imm8_Y1 = (43,50), SrcA_Y1 = (37,42), Dest_Y1 = (31,36)
	:addxi Dest_Y1, SrcA_Y1, Imm8_Y1 is Opcode_Y1=0x2 & Imm8_Y1 & SrcA_Y1 & Dest_Y1 {}

	# Opcode_Y2_1_1 = (57,57), SrcBDest_Y2 = (51,56), Opcode_Y2_0_0 = (26,26), SrcA_Y2 = (20,25)
	:st SrcA_Y2, SrcBDest_Y2 is Opcode_Y2_1_1=0x1 & SrcBDest_Y2 & Opcode_Y2_0_0=0x1 & SrcA_Y2 {}
}

Sleigh parses by consuming bytes, currently there is no way to lookahead and use bytes in the match pattern without consuming them.  We have thought about adding the ability to match bytes but not consume them.  Currently you would need to save the bytes off to parse later.
There are two ways I see to deal with this.

recursively parse and enumerate the formats of the instructions as you have started to do above
parse by re-arranging bytes into the context register and match on the context register

Both methods above may require saving bytes into the context if the first instruction requires the byte in order to parse, or if the second instruction requires bytes from the first instruction.
The second method above is useful if you can easily transform the second instruction bytes into a pattern that is exactly like the first instructions match pattern for instructions.  Meaning the match pattern for the addxi in the first instruction slot as the match pattern for the addxi instruction in the second instruction slot if the bytes could be simply rearranged (copied/shifted into the same location)
What you have done above is a start, however the bytes of the second instruction are gone by the time you recurse to the second instruction.  You have only put the type of the instruction in the context register, not the entire byte to be matched in the instructions.
Also the instructions don't follow the skeleton pattern I laid out above with the "& instruction" in the match pattern, so they aren't recursively parsing.
I'll see if I can lay our a mechanism for you to try based on what you have already.

I was able to get it to parse with only a few modifications.
        00012558 9d fd 6b                      move     r29,sp ; addxi r28, sp, 0xf8 ; st sp, lr
                 57 ce c6
                 bf cb

The following is the first method.
The second method I would use ONLY if you re-arranged the bytes for the Y0, Y1, Y2 the instructions could all be parsed with the same match pattern.  It would save duplicating instruction match patterns and semantics only because the matching bits are in a different location in the instruction word.  For example if you had an instruction like:
A C B B C A and if you could rearrange them during parse to:
context:  A A C B B C
context: B B C x x C
context C C x x x x
If they have the same bit pattern just re-arrange, then parsing from the context bits may be worth it.
The same idea of the recursive parse is needed, it is a bit more complicated, and would also need to re-arrange the bytes for each parse phase as above.
@define ENDIAN "little"
@define REGSIZE "8"
@define ADDRSIZE "8"

define endian=$(ENDIAN);
define alignment=8;

define space ram type=ram_space size=$(ADDRSIZE) default;
define space register type=register_space size=$(REGSIZE);

define register offset=0 size=$(REGSIZE) [
	r0 r1 r2 r3 r4
	r5 r6 r7 r8 r9
	r10 r11 r12 r13 r14
	r15 r16 r17 r18 r19
	r20 r21 r22 r23 r24
	r25 r26 r27 r28 r29
	r30 r31 r32 r33 r34
	r35 r236 r37 r38 r39
	r40 r41 r42 r43 r44
	r45 r46 r47 r48 r49
	r50 r51 r52 r53 sp
	lr r56 idn0 idn1 udn0
	udn1 udn2 udn3 zero
];

define token instr_bundle(64)
	mode = (62,63)

	# X0
	Opcode_X0 = (28,30)
	RRROpcodeExtension_X0 = (18,27)
	SrcB_X0 = (12,17)
	SrcA_X0 = (6,11)
	Dest_X0 = (0,5)
	Imm8OpcodeExtension_X0 = (20,27)
	Imm8_X0 = (12,19)
	Imm16_X0 = (12,27)
	UnaryOpcodeExtension_X0 = (12,17)
	ShiftOpcodeExtension_X0 = (18,27)
	ShAmt_X0 = (12,17)
	BFOpcodeExtension_X0 = (24,27)
	BFStart_X0 = (18,23)
	BFEnd_X0 = (12,17)

	# X1
	Opcode_X1 = (59,61)
	RRROpcodeExtension_X1 = (49,58)
	SrcB_X1 = (43,48)
	SrcA_X1 = (37,42)
	Dest_X1 = (31,36)
	Imm8OpcodeExtension_X1 = (51,58)
	Imm8_X1 = (43,50)
	MT_Imm14_X1_13_6 = (43,50)
	MT_Imm14_X1_5_0 = (31,36)
	MF_Imm14_X1 = (37,50)
	Imm16_X1 = (43,58)
	UnaryOpcodeExtension_X1 = (43,48)
	ShiftOpcodeExtension_X1 = (49,58)
	ShAmt_X1 = (43,48)
	BrType_X1 = (54,58)
	BrOff_X1_16_6 = (43,53)
	BrOff_X1_5_0 = (31,36)
	JumpOpcodeExtension_X1 = (58,58)
	JumpOff_X1 = (31,57)

	# Y0
	Opcode_Y0 = (27,30)
	RRROpcodeExtension_Y0 = (18,19)
	SrcB_Y0 = (12,17)
	SrcA_Y0 = (6,11)
	Dest_Y0 = (0,5)
	Imm8_Y0 = (12,19)
	UnaryOpcodeExtension_Y0 = (12,17)
	ShiftOpcodeExtension_Y0 = (18,19)
	ShAmt_Y0 = (12,17)

	# Y1
	Opcode_Y1 = (58,61)
	RRROpcodeExtension_Y1 = (49,50)
	SrcB_Y1 = (43,48)
	SrcA_Y1 = (37,42)
	Dest_Y1 = (31,36)
	Imm8_Y1 = (43,50)
	UnaryOpcodeExtension_Y1 = (43,48)
	ShiftOpcodeExtension_Y1 = (49,50)
	ShAmt_Y1 = (43,48)

	# Y2
	Opcode_Y2_1_1 = (57,57)
	SrcBDest_Y2 = (51,56)
	Opcode_Y2_0_0 = (26,26)
	SrcA_Y2 = (20,25)
;

define register offset=0x1000 size=8 contextreg;
define context contextreg
	bundleType = (0,1)
	phase = (2,4)
;

attach variables [
	SrcA_X0 SrcB_X0 Dest_X0
	SrcA_X1 SrcB_X1 Dest_X1
	SrcA_Y0 SrcB_Y0 Dest_Y0
	SrcA_Y1 SrcB_Y1 Dest_Y1
	SrcA_Y2 SrcBDest_Y2
] [
	r0 r1 r2 r3 r4
	r5 r6 r7 r8 r9
	r10 r11 r12 r13 r14
	r15 r16 r17 r18 r19
	r20 r21 r22 r23 r24
	r25 r26 r27 r28 r29
	r30 r31 r32 r33 r34
	r35 r236 r37 r38 r39
	r40 r41 r42 r43 r44
	r45 r46 r47 r48 r49
	r50 r51 r52 r53 sp
	lr r56 idn0 idn1 udn0
	udn1 udn2 udn3 zero
];

:^instruction is phase=0 & bundleType=0 & mode=0x00 & instruction [ bundleType=1; phase=1; ] {}
:^instruction is phase=0 & bundleType=0 & mode!=0x00 & instruction [ bundleType=2; phase=1; ] {}

# sub constructor to move to the next instruction parse phase
EndPacket:"; "^instruction is phase=1 & instruction [ phase=2; ] { build instruction; }
EndPacket:"; "^instruction is phase=2 & instruction [ phase=3; ] { build instruction; }

# X Format
with : bundleType = 1 {
	:X is bundleType {} # Filler
}

# Y Format
with : bundleType = 2 {
	# Opcode_Y0 = (27,30), RRROpcodeExtension_Y0 = (18,19), SrcB_Y0 = (12,17), SrcA_Y0 = (6,11), Dest_Y0 = (0,5)
	:move Dest_Y0, SrcA_Y0 EndPacket is phase=1 & Opcode_Y0=0xA & RRROpcodeExtension_Y0=0x2 & SrcB_Y0=0x3F & SrcA_Y0 & Dest_Y0 & EndPacket {
		# do move
		build EndPacket;
	}

	# Opcode_Y1 = (58,61), Imm8_Y1 = (43,50), SrcA_Y1 = (37,42), Dest_Y1 = (31,36)
	:addxi Dest_Y1, SrcA_Y1, Imm8_Y1 EndPacket is phase=2 & Opcode_Y1=0x2 & Imm8_Y1 & SrcA_Y1 & Dest_Y1 & EndPacket {
		# do add
		build EndPacket;
	}

	# Opcode_Y2_1_1 = (57,57), SrcBDest_Y2 = (51,56), Opcode_Y2_0_0 = (26,26), SrcA_Y2 = (20,25)
	# don't need EndPacket as this is last instruction
	:st SrcA_Y2, SrcBDest_Y2 is phase=3 & Opcode_Y2_1_1=0x1 & SrcBDest_Y2 & Opcode_Y2_0_0=0x1 & SrcA_Y2 {
		# do store
	}
}

Thanks @emteere, I really appreciate your detailed explanation and examples.
The instruction strings are now able to be displayed correctly 😃


JAVA-3005 Refresh entire node list when new node added

Empirically, Cassandra does not appear to send
TopologyChangeType.REMOVED_NODE when a node in the ring
crashes hard and is eventually replaced, even though the
bad node is removed from the system tables. This results in
the driver holding on to that node until a restart.
The 3.x driver refreshes the entire node list when a node is
added, so when a new node comes up to replace the crashed
node, the crashed node is removed from the driver's state.
With this change we port that behavior to the 4.x driver and
refresh the entire node list when a new node is added.
This also fixes JAVA-3002.

cc @absurdfarce

No worries @akhaku , it is in the process of being reviewed right now :)


az login --identity : doesn't work

This is autogenerated. Please review and update as needed.
Describe the bug
Cannot execute: az login --identity
while "az login" works
Command Name
az login
Errors:
HTTPConnectionPool(host='<IP_ADDRESS>', port=80): Max retries exceeded with url: /metadata/identity/oauth2/token?resource=https%3A%2F%2Fmanagement.core.windows.net%2F&api-version=2018-02-01 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f04bde3e430>: Failed to establish a new connection: [Errno 110] Connection timed out'))
Traceback (most recent call last):
python3/dist-packages/urllib3/connection.py, ln 159, in _new_conn
    conn = connection.create_connection(
...
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='<IP_ADDRESS>', port=80): Max retries exceeded with url: /metadata/identity/oauth2/token?resource=https%3A%2F%2Fmanagement.core.windows.net%2F&api-version=2018-02-01 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f04bde3e430>: Failed to establish a new connection: [Errno 110] Connection timed out'))

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az login --identity

Expected Behavior
Environment Summary
Linux-5.15.0-58-generic-x86_64-with-glibc2.29
Python 3.8.10
Shell: bash

azure-cli 2.0.81

Extensions:
azure-devops 0.17.0

Additional Context

@jiasli for awareness

We had a local problem.


Disabled options, not clickable

For some reason the options in the select seem disabled. I don't know what I do wrong.
I used the code snippet and added it my component like:

I found this issue.
https://github.com/shadcn-ui/ui/issues/2944


Fix link to cards in Migration docs

The page URL is card, not cards.

Sorry, my bad. I guess the website is not updated because the link still points to cards.

https://github.com/twbs/bootstrap/commit/6a5a38106ac518f0cd493901aac69c38e216944d#diff-0acfcc3020f39d1a05536c7f4f00bca5


fix: delete deletable tilesets and tiles when deleting style

Fixes #3
potentially running into an issue with the statements that I use to delete the tilesets. see https://github.com/WiseLibs/better-sqlite3/issues/842 for details

yeah we already have something for that. not sure it deletes the tiles though at the moment. will look into it!

yeah we already have something for that. not sure it deletes the tiles though at the moment. will look into it!

was wrong about this, we don't have an implementation for deleting tilesets. something to work on!

I think this is good to go now.


Algolia Tags

Is there a way to add a tag to an Object when saving it to Algolia.
For examples I have users with a state relationship. I would like to save a tag depending on that relationship.
Then I can search by query and tag on the front end.
Thank You!

Hi @kinnedev,
Yes you can implement the getAlgoliaRecord method on your model:
public function getAlgoliaRecord()
{
  $tags = FIXME; // compute your tags
  return array_merge($this->toArray(), [
    '_tags' => $tags
  ]);
}

Awesome!
So I can run this method on any create or update correct?

Yes any create or update will call this method to generate the record

Great! Thanks for the quick replies!


Refactoring urn used for attribute id for resource registry ids

Description
In discussions and design for supporing authorization of events and the new integration for the new OED (oppgjør etter dødsfall),
it's been concluded that the current urn:altinn:resourceregistry attribute should instead be urn:altinn:resource, as well as a future attribute id for instance sub-resources as urn:altinn:resourceinstance
Additional Information
No response
Tasks

[x] Refactoring the XacmlRequestAttribute.ResourceRegistryAttribute
[x] Refactoring the AltinnXacmlConstants.MatchAttributeIdentifiers.ResourceRegistryAttribute
[x] Refactoring all test data and policies for integration tests
[x] Existing delegations in AT-environments can be dropped
[x] The policy for the API-SystemResource must also be updated

Acceptance Criterias
No response

Verified in AT23 after all repos/components have been updated for the new resource id


Fix wrong trivy variable

Change-type: patch
Signed-off-by: Stathis Moraitidis<EMAIL_ADDRESS>

@balena-ci I self-certify!


nstd_core_mem_copy functions cannot actually be called in const

The nstd_core_mem_copy function needs a mutable raw pointer (dest: *mut NSTDByte). There is currently no way to create such a pointer in const on stable. (Well, one can of course cast a shared reference to *mut, but then writing to that would be UB.)
The copy_nonoverlapping functions inside nstd_core_mem_copy  were accidentally made stable on const, but can't actually be used. We are debating whether we want to take back stabilization to avoid misuse (which we are already seeing).
Is there any issue with making nstd_core_mem_copy (and nstd_core_mem_copy_overlapping) not be const fn any more?

@RalfJung thank you for the heads up!

Is there any issue with making nstd_core_mem_copy (and nstd_core_mem_copy_overlapping) not be const fn any more?

Not at all, I'll update these functions now.

Fixed in 0263142.


TimePicker: Added Step Parameter For Minutes

Description

This PR adds the option to limit the step interval for minutes (1, 5, 10, 15, and 30). The default behavior is the same. Options other than One will change the displayed clock numbers and clicks will be rounded to the nearest interval.
How Has This Been Tested?

Visually - I tested all options using the Docs server.
Unit - Created new tests

Test to check clicks are correctly rounding to the nearest interval
Tests to check the correct clock numbers are displayed for each option

Types of changes

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

Checklist:

[X] The PR is submitted to the correct branch (dev).
[X] My code follows the code style of this project.
[X] I've added relevant tests.

Hi there, we discussed this in the team and we can see the use-case of a selection step for minute selection especially for intervals of say 5 minutes. However, the inanimous opinion is that the visualization of the clock should not change, no matter what the step is. By not touching the visualization this opens up the possibility to do away with the enum which we also don't feel like a good design choice (I am sure if we add this feature at some point in time somebody will need a time step that is not in the enum). So in essence, we'd be willing to add this feature if you make the following changes:

Make the parameter of type int and call it MinuteSelectionStep with default value 1.
When the user selects round to the next minute of MinuteSelectionStep % 60 (modulo), so no matter what value is set (i.e. 65 will result in an effective step of 5).

What do you say?

Those changes sound good to me, I'll make the adjustments soon.

I have completed the requested changes, it should be ready to go.

Can you record a GIF using ScreenToGif and post here please? Thanks a lot


shared "code" for hamburg and bremen

the states hamburg and bremen have both the code "HB".
Idea: change the code for hamburg to "HH"

Thanks for pointing out!
Fixed with 23bb6a404b5d9b163364fe422c59dd0ce6106852


CLI proof-of-concept

Request for feedback
Add as a dependency:
npm i -D @medplum/cli

Or add directly to package.json:
  "devDependencies": {
    "@medplum/cli": "0.0.0"
  }

Syntax:
medplum <command> <args>

At present, there is only one command called deploy-bot.  Syntax:
medplum deploy-bot <filename> <bot-id>

Example:
medplum deploy-bot dist/hello-world.js e54fa800-02ab-41be-8d48-8c027dd85ccc

In practice, you would probably add that to the "scripts" section of your package.json:
  "scripts": {
    "build": "tsc",
    "deploy:hello-world": "medplum deploy-bot dist/hello-world.js e54fa800-02ab-41be-8d48-8c027dd85f0c"
  },

Then, from the command line, you could run:
npm run deploy:hello-world

Authentication requires client credentials in the form of environment variables MEDPLUM_CLIENT_ID and MEDPLUM_CLIENT_SECRET.  This supports most use cases, including secrets from CI/CD.  dotenv is enabled, so you could store them in .env file.
Example use cases
Write your bot.  This can be TypeScript.  It can reference @medplum/core and node-fetch:
import { MedplumClient } from '@medplum/core';
import { Resource } from '@medplum/fhirtypes';

export async function handler(medplum: MedplumClient, input: Resource): Promise<any> {
  console.log('Hello world');
}

Compile that with vanilla tsc (no webpack, no rollup, no vite)
npx tsc

Or:
npm run build

You get sensible output:
export async function handler(medplum, input) {
    console.log('Hello world');
}

You can then use the Medplum CLI to deploy it.
npm run deploy:hello-world

Auth alternatives
One model that I like, but would be more work, is prompting the user with the Medplum sign-in form.  On success, grab the access token and refresh token, and store someplace safe.
Okta has an example for how to do that using Okta auth.  It might be nice to research more:
https://developer.okta.com/blog/2019/06/18/command-line-app-with-nodejs
The key use case is for developer permissions, where you likely do not want lots of clients scattered around.  If the user authenticated as their real identity, then history tracking would be more accurate as well.

Coverage decreased (-0.8%) to 94.334% when pulling af3001a26e1f413c47673e510909cd226100a232 on cody-cli into 26eee576e172b33b37ace6e164765b708f243a6c on main.

Generally I like this, but it's not clear to me: does this allow any dependencies to be added?  Will the bundle be produced and deployed including multiple files?  Do you get any ack that the deploy was successful?  The updates will appear to be from the ClientApplication, right?

Thanks for looking @reshmakh !

does this allow any dependencies to be added?  Will the bundle be produced and deployed including multiple files?

No, it does not.  Both of those would take significantly more work.
Or, we could drop our code abstraction and provide a CLI tool to create a fully baked zip file and deploy it directly.

Do you get any ack that the deploy was successful?

Yes, right now you get a simple "success" message, but we could show more.

The updates will appear to be from the ClientApplication, right?

Yes, using the authentication as presented, it would show up as the ClientApplication.
For it to show up as the user, we would need to implement the Okta model of showing a web browser popup for the user to enter credentials.
https://developer.okta.com/blog/2019/06/18/command-line-app-with-nodejs

Or, we could drop our code abstraction and provide a CLI tool to create a fully baked zip file and deploy it directly.

Two options for this:
1. We allow approved customers to build and deploy a zip directly

This effectively allows customers to deploy sandboxed lambdas in our environment unrestricted

We could put some size caps on the total package size, but that's about all we could do

We would need to manage at a contractual and partnership level
It would provide maximum power/control to the developer

2. We have a separate build/deploy process, where they submit the code package (source + package.json), and we build and deploy

Then we could add our checks and controls at build time
It would require high engineering lift to create separate CI/CD pipelines for each customer's lambdas

I like the simple approach, and the limitations of scoping to specific libraries.

This looks useful and heading in a good direction. No blocking feedback from me, but a few things just to consider:

It seems like the CLI makes a few assumptions (bots in single files, limited dependencies, etc.). Is there a way for the CLI / other tools to provide feedback when those assumptions are violated? E.g. can we check for improper dependencies and provide an error message?
We need to think about how this experience interplays with our in-app bot editor. Right now it seems like a discrete choice: either you create a repo for your bots or you use the in-app editor. We could consider a smoother handoff, where you start in the app, then graduate to a full repo as your bots become more complex. This might have implications for future technical decisions for Bots (e.g should the in-app bots be backed by a Git repo?). Don't need to block this PR on these considerations, but I don't want us to lose track of

I agree with the comments above about keeping it simple, and I think it makes sense for the customer to own their own build process.

https://github.com/medplum/medplum/pull/501#issuecomment-1111600988

We discussed this

Bot code should be written in 1 function with a fixed signature (potentially default export)
Bot code will be saved in a separate file
There will a thin wrapper function that imports the bot code and invokes the function
function signature handler(medplum, context){}.
context object can include things like resource, content-type
HL7 can be parsed by the thin wrapper and shoved into the context


Load the satellite data to the repository

upload data_whole.csv to repo

Upload satellite text file into repo

[ ] conform data

[ ] remap data in d3


feat: adapt build plugin implementation to new API

requires @sap/cds-dk 7.3.2

Holding off for cds-dk 7.3.2

Would be great if we could ship this version soon as the current postgres plugin version does not support @sap/cds-dk 7.3.2. See https://github.tools.sap/cap/issues/issues/14748

Open points re simplifications to be discussed in follow-up.

@patricebender @johannes-vogel Can we ignore HANA tests for changes in cds-dbs/postgres in GHA? Or rather an opt-in and just run HANA integration tests for changes in db-service, test, and hana?


[FEATURE]: Integration of Cash Interface possible?

Is your feature request related to a problem?
Yes
Description
Integrating of payment methods like cash interface
https://casino-software.de/cash-interface2/index_e.htm
Describe the solution you'd like
Integrate communication with cash interface to accept coins / bills.
Set amount in admin interface and, if amount is needed for printing and / or make a photo / and a setting for "free"
Describe alternatives you've considered

Additional context
No response

Hey and thanks for your feature request!
I've thought about something like this in the past and added a simple print counter which allows to lock printing after defined amount of prints. Everything else sounds like something for professional use and, from my side, will not be added to this free and OpenSource software. Might be something for a paid plugin in future.
If you like to implement it, you're also welcome to do a pull request with needed changes to the source for review.


Backend times out when connecting to the db: e.g. /items endpoint

Symptoms: No error messages, just timeout after 15s
My solution: I had to manually upgrade the lib version
npm install<EMAIL_ADDRESS>

Can't reproduce with any endpoints


Clean up Windows console mode and Unix termios state on process exit

Windows: This would be beneficial for CMD as it does not reset the console mode after executing a program.
Unix: While most shells do, there is no guarantee that a shell is going to clean up the termios state after a program exits.

More details in: https://github.com/microsoft/terminal/issues/4949

I'm not actually sure where/when we could safely do this. Even AppDomain.CurrentDomain.ProcessExit isn't really safe since there might be other handlers that expect to be able to use System.Terminal.

Is it possible to add a method that can be called that resets it? This way I can call it as I know I terminate.

That sounds reasonable.

@Thraka For your use case, would it be acceptable if the cleanup method would perform terminal state cleanup and also exit the process immediately after? This would greatly simplify matters in the library since I would not need to care about users calling the cleanup method and then trying to use the library after.
It might look something like this:
static class Program
{
    static void Main(string[] args)
    {
        using (var lifetime = TerminalLifetime.Create())
        {
            // ... work ...

            if (workFailed)
                lifetime.ExitCode = 1; // defaults to zero
        }

        // lifetime.Dispose() called here, cleans up terminal state and exits
    }
}

To simplify this, I'd probably also provide a package that works similarly to DragonFruit, i.e. it generates the real Main for your application, takes care of the TerminalLifetime for you, and calls your entry point method.

PS: I know it's been a while since this issue was opened... I'm only now getting around to continuing the project with .NET 6 being out.

Resolved in 443eff97c52198ced3f83232177d23e525b2f872.

For your use case, would it be acceptable if the cleanup method would perform terminal state cleanup and also exit the process immediately after? This would greatly simplify matters in the library since I would not need to care about users calling the cleanup method and then trying to use the library after.

I'll spin this off into a separate issue.


New command llum login

Login with default user (the same user used with command adminlte:admin)

Add modifier to llum serve to also use login


Moving to other navigation dropdown

Hello
i was trying to move the resource to other navigation dropdown but did not get work, will appreciate if you can help.
Menu::make(__('Game Mechanics'))                 ->icon('bs.gamepad')                 ->list([                     Menu::make(__('Ranks'))                         ->icon('bs.dash')                         ->route('platform.resource.rank')                         ->permission('admin.games.ranks'),                 ]),
 /**     * Get the resource should be displayed in the navigation     *     * @return bool     */    public static function displayInNavigation(): bool    {        return false;    }

Hi! You were almost there. The only issue in the code is the resource link. It should be, for example, like this: route('platform.resource.list', UserResource::uriKey()). Here’s the complete, corrected example:
Menu::make(__('Game Mechanics'))
    ->icon('bs.gamepad')
    ->list([
        Menu::make(__('Ranks'))
            ->icon('bs.dash')
            ->route('platform.resource.list', YouClass::uriKey()) // Replace
            ->permission('admin.games.ranks'),
    ]);


fw: Update NVIDIA's firmware package

Description
Update NVIDIA's firmware package to Jetson Linux 35.5.0.
Dependencies
PR https://github.com/lf-edge/eve/pull/4170

@rene, can we merge it? Or do we have to wait until #4170 is merged?


Allow for wallpapers on the Bizbash x Hubilo page.

 Add code to BizBash x Hubilo page to allow a wallpaper from GAM


[RFC] Use latest module transpiler

This is a work in progress. Some things in the build system, such as CommonJS output, we did not replicate in this branch. What are the intended build artifacts for htmlbars? What is intended to be run both in the browser and node?
cc @chadhietala

Anyone interested in migrating to Esperanto?


Add support for specifying Kube API server advertise address/port

Why is this needed? In hypershift clusters, we run an HA proxy server on
each worker. This HA proxy server listens on a local interface and sends
traffic to the external control plane endpoint. To listen on the local
interface, we assign a dummy address to the loopback device and make
that the API server's advertise address. In some cases, it may be
necessary to change what this dummy address is to not interfere with
valid network address ranges in the customer's environment. This change
allows specifying that through the API.
The secure port at which the API server listens is also the same port at
which the HA proxy must listen on worker nodes. In the case of ROKS,
this has historically been different than the default (2040 instead of
6443). It may also be necessary to modify this port to not interfere
with pods listening on ports that are bound to the host network on
worker nodes.

/test e2e-aws

/cc @relyt0925

do we need to change these?
https://github.com/openshift/hypershift/blob/a86c74d2528991839e09725660b56dfa5fddbca3/control-plane-operator/controllers/hostedcontrolplane/hostedcontrolplane_controller.go#L68
https://github.com/openshift/hypershift/blob/a86c74d2528991839e09725660b56dfa5fddbca3/control-plane-operator/controllers/hostedcontrolplane/hostedcontrolplane_controller.go#L1684

/hold

this prototype pr might help:
https://github.com/relyt0925/hypershift/pull/24

/test e2e-aws

/hold cancel
This is working just as well as the main branch. While testing it, discovered that there's an issue with the communication between the kube apiserver and worker kubelets (oc get logs is not working). However, the issue is present in the main branch as well.

/lgtm

this is a very exciting milestone :) great work all!


feat(CX-2589): add the third tab to the MyC placeholder

This PR resolves CX-2589
Description

Add the third tab to the MyC placeholder when MyC Insights FF is enabled
https://user-images.githubusercontent.com/36167539/169099325-692bd0f0-baa0-4d3f-b603-f91ec0286d90.mp4
PR Checklist

[x] I tested my changes on iOS / Android.
[x] I added screenshots or videos to illustrate my changes.
[ ] I added Tests and Stories for my changes.
[ ] I added an app state migration.
[x] I hid my changes behind a feature flag.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

MyCollection placeholder improvements (related to my collection insights) -daria

iOS user-facing changes

Android user-facing changes

Dev changes

Need help with something? Have a look at our docs, or get in touch with us.

I love the last commit 😄


feat(starknet_batcher): add l2 gas used to decision_reached

This change is

#2950  👈 (View in Graphite)
main

This stack of pull requests is managed by Graphite. Learn more about stacking.


Reimplement natural sorting for interfaces

Issue type
[x] Feature request
[ ] Bug report
[ ] Documentation
Environment

Python version:  3.5.2
NetBox version:  2.3.4

Description
We've had a number of issues raised around the natural ordering of device and virtual machine interfaces, which feels like a moving target. Currently, we use an offensive array of regular expressions to break apart and sort interface names at query time:
TYPE_RE = r"SUBSTRING({} FROM '^([^0-9]+)')"
ID_RE = r"CAST(SUBSTRING({} FROM '^(?:[^0-9]+)(\d{{1,9}})$') AS integer)"
SLOT_RE = r"CAST(SUBSTRING({} FROM '^(?:[^0-9]+)?(\d{{1,9}})\/') AS integer)"
SUBSLOT_RE = r"COALESCE(CAST(SUBSTRING({} FROM '^(?:[^0-9]+)?(?:\d{{1,9}}\/)(\d{{1,9}})') AS integer), 0)"
POSITION_RE = r"COALESCE(CAST(SUBSTRING({} FROM '^(?:[^0-9]+)?(?:\d{{1,9}}\/){{2}}(\d{{1,9}})') AS integer), 0)"
SUBPOSITION_RE = r"COALESCE(CAST(SUBSTRING({} FROM '^(?:[^0-9]+)?(?:\d{{1,9}}\/){{3}}(\d{{1,9}})') AS integer), 0)"
CHANNEL_RE = r"COALESCE(CAST(SUBSTRING({} FROM ':(\d{{1,9}})(\.\d{{1,9}})?$') AS integer), 0)"
VC_RE = r"COALESCE(CAST(SUBSTRING({} FROM '\.(\d{{1,9}})$') AS integer), 0)"

This is necessary because NetBox does not limit support to any particular platform, so interface names can take any arbitrary format. We try to capture all reasonably common scenarios, from e.g. eth0 to xe-0/1/2:3.456.
As a more maintainable approach, I'm considering moving this logic to a function called when an object is saved. We can add a set of integer columns to the Interface model to store each potential value from the set of regular expressions above: id, slot, position, etc. When an interface object is saved, these values are extracted from its name and recorded in the appropriate table columns. This allows us to sort on those numeric values naturally instead of having to extract and cast each at query time from the name string.
For example, given the following list of interfaces:
xe-0/0/0
xe-0/0/1
xe-0/2/0
xe-0/2/1
xe-1/0/0:0
xe-1/0/0:1
lo0
irb.123

The resulting table would look something like this (simplifying a bit here for clarity):

name
slot
position
id
channel
vc

xe-0/0/0
0
0
0
null
null

xe-0/0/1
0
0
1
null
null

xe-0/2/0
0
2
0
null
null

xe-0/2/1
0
2
1
null
null

xe-1/0/0:0
1
0
0
0
null

xe-1/0/0:1
1
0
0
1
null

lo0
null
null
0
null
null

irb.123
null
null
null
null
123

Ordering interfaces would then be as simple as ordering by (slot, position, id, channel, vc, name). (Name would come either first or last in the series depending on the method of ordering chosen for the device type.)
It's probably not an ideal solution but would be much more maintainable long-term than the current approach. I'm open to other suggestions.

More generally, you could just split into alternate text and numeric parts:
>>> import re
>>> ifname = "xe-0/1/2:3.456"
>>> re.split(r'(\d+)', ifname)
['xe-', '0', '/', '1', '/', '2', ':', '3', '.', '456', '']
>>> ifname = "4/5"
>>> re.split(r'(\d+)', ifname)
['', '4', '/', '5', '']

Every alternate element is numeric, and can be converted with int().  At that point, interfaces are directly comparable:
>>> ['xe-', 0, '/', 1, '/', 2, ':', 3, '.', 456, ''] > ['ge-', 1, '/', 1]
True
>>> ['ge-', 0, '/', 0, '/', 0] > ['ge-', 0, '/', 0]
True

Doing this in postgres for server-side sorting might be a bit trickier. Could the interface name be decomposed into an array of a composite type of (string, integer) ?  Or a JSON column?

This might work, but I'm worried about scenarios where you have differing naming formats on one box. For example, on a Junos device you might have:

xe-0/0/0 (slot/position/ID)
xe-1/0/0:0 (slot/position/ID:channel)
fxp0 (ID only)
irb.123 (virtual circuit only)

With the current approach, fxp0 will be ordered after the xe interfaces, because slot is ordered before ID (fxp0 has a slot of null, which is ordered after zero). If we order only by the first number without regard to its "role," fxp0 will come before xe-1.

I hope this goes without saying, but I think supporting full names as well as their abbreviations would be something to look at as well.
In playing with some automation, ansible won't work with the abbreviations for certain things.

I think supporting full names as well as their abbreviations would be something to look at as well.

Interfaces should be named as they appear on the platform. NetBox makes no assumptions with regard to abbreviations. This would be unrelated to ordering anyway.

I was referring more to the proposed split, I didn't want it to get missed in the shuffle where the assumption was made to only match on Gi/Xe or otherwise.

Closed this in e97708ada03709dc9ccf12f8c3a2c8528cfba80b. After tweaking the coalescing and ordering of fields, DeviceType.interface_ordering is no longer needed. I've also introduced a test case for evaluating the ordering of some example Interface sets.


make every document in translation status page a hyperlink

Closing it, will do this and many more when we implement translation support back.


Fix raw wiki links (#31825)

Backport #31825 by @Zettat123
Fix #31395
This regression is introduced by #30273. To find out how GitHub handles this case, I did some tests.
I use redirect in this PR instead of checking if the corresponding .md file exists when rendering the link because GitHub also uses redirect. With this PR, there is no need to resolve the raw wiki link when rendering a wiki page. If a wiki link points to a raw file, access will be redirected to the raw link.

@Zettat123 lint error is related.


Add support for yaml config file, by converting yaml to json

Same as pull request https://github.com/XTLS/Xray-core/pull/86 in xray-core

It's already supported in v5.

Thanks for informing

Hi, Shadowsocks-NET/v2ray-go is an opinionated fork that accepts contributions in a more open and inclusive way. Are you interested in cherry-picking your contribution to Shadowsocks-NET/v2ray-go?


Consider more granular detects and remove variants

Following a suggestion from @hgl in #268 and an issue raised by @azproduction in https://github.com/azproduction/autopolyfiller/issues/18#issuecomment-88467588: There are a few problems that are cropping up repeatedly:

The existence of variants of polyfills means that it is impossible to create a polyfill bundle that is UA-agnostic.  You have to specify a UA in order that the service can choose the right variations of polyfills.  However the use case of using the service to build a generic bundle and send it to all browsers is a popular one.  I think it's somewhat misguided but supporting it would give the project more traction.
There's often repeated code between variants because while implementations are different for two browsers, they're not very different.

Suggestion:

Change detect.js to return either true, false or an object of multiple boolean flags, eg {basic:true, multipleArgs:false}.
Scrap variants, and put the entire solution, for all browsers, in one polyfill.js file
Scrap all the targeting data from the config.json files
In the polyfill source, use if statements to apply polyfill code conditionally based on the results of the detect, eg:

if (!PolyfillService.detectResults.multipleArgs) {
   // Code to polyfill multiple arg support
}

Initially, serve the full polyfill source gated with a feature detect, along with (if user opts in) a bit of code that beacons the results of the detect back to the service.  Once the service has the support data for a particular browser, it can then re-run minification, using Uglify's dead code removal flag, to create a dynamic variation of the polyfill source for a particular UA.  Uglify will remove any if statements including all the contained code if it knows that the condition is false.

Advantages:

Maintains the existing benefit of serving smaller amounts of code to browsers that already have some of the functionality
Simplifies the maintenance of polyfills, fewer files in the source tree, simpler polyfill config
Targeting becomes automatic which means no targeting mistakes and no targeting config to maintain
We are now able to support the unknown UA use case easily

Disadvantages:

For browsers where we don't have support data, polyfills will be potentially larger
Requires sending beacon data back to the service from third party websites (opt in, but people might still complain)
Third party polyfills will not use our detect data, so will not be optimisable (we could mitigate this a bit by automatically wrapping third party polyfills in a single if that checks the detect result, but it would be all-or-nothing, rather than offering the ability to optimise away just the unnecessary parts)
Runtime minification adds overhead to the server process
It requires a fairly major refactor

I'm not sure how using the service as a node module would work with this - presumably on a regular basis we'd want to download the detect data from the CDN app and commit it into the source tree, so that users who want to run their own version don't have to start from no detect data at all.
Thanks to @hgl for the inspiration for this.  @juandopazo @jonathantneal what do you think?

FWIW I haven't been using variants.

a bit of code that beacons the results of the detect back to the service
Trust me, this is a security nightmare.

I suggest sticking to a truthy value in detect.js and keeping an eye on the size of each polyfill while we rewrite them into a single file (I'll help).

The use of detect results to remove unnecessary code is an optimisation, so we could start with just scrapping variants and keeping the manual targeting data.  But I'd be keen to investigate the possibility of adding that optimisation later.  After all, serving the smallest possible amount of code is one of Jonathan's original design goals, and I'm on board with that goal.  But we are certainly finding it harder to adopt third party polyfills if the parts that target separate browsers are meant to be in different variants.
The beacon could be an analytics style image-beacon, and it would be opt in... I'm rubbish on security so can you point out some of the more obvious nightmares?  I'm thinking it would create a URL like:
/recordDetectData?result={"Element.prototype.classList": {"basic":true,"multipleArgs":false}}

And that would return the usual 1x1 gif.
How are you using the service without using the variants?

Variants are not just about file size. Variants are about performance and maintainability. Also, variants are becoming less common. They were especially useful for old browsers like IE≤8. Variants are used to quickly and clearly referencing the most performant or most capable thing in a particular browser that is used to create a polyfill.
The name of the game is writing the most accurate, most readable, fastest running, and fastest initializing polyfill, in that order of priorities IMHO. Maintainability is up to the community surrounding this project, no matter how you slice it (third-party / as-is vs originals / retooled), IMHO.

@triblondon Thank you for writing this up.
I have a few more suggestions:

Initially, serve the full polyfill source gated with a feature detect

I think that's inefficient. We should first serve the feature detect to a testing cluster like saucelabs to get the feature detect data for most popular browsers:
{
  "ie6": { "classList": false, "fetch": false },
  "ie >6 <12": "...",
  "chrome 1": { "classList": false, "fetch": false },
  "chrome >1 < 39": "...",
  "chrome 39": { "classList": { "toggleForceArg": false, "multipleArgs": true }, "fetch": true }
}

We then run the dead code elimination step on the combo of feature detect data and full polyfill to generated the smallest polyfill code for each browser. So when popular browsers request the service, they get precompiled file immediately.
Only when an unknown UA request the service, we service the detect code + full polyfill, and optionally beacons back the detect data (for unkown UA, we have to collection large amount of the same detect data, before mapping between the unknown UA and the detect data can be trusted). After we have the detect data for that UA, we then compiled the polyfill for it, declare the UA as known.

However, the code amount of full polyfill can potentially be very large for old browsers, especially as time goes by.
I think we can take it to the next level by letting users specify which kinds things they like to polyfill:
https://cdn.polyfill.io/v1/classList+fetch.js

When they request this url, they only get classList and fetch polyfills (if the browser doesn't support them).
We can even develop a tool to automatically detect the web API a particular code base uses, and return that list of polyfill names. (This should be easy, we just need to wrap web APIs and see which ones get called.)
We can even define a few keywords which will combine popular polyfills:
https://cdn.polyfill.io/v1/core+network.js

core can map to es shims + dom polyfill, and network can map to xhr + fetch for example.

And finally for development environment, we can offer the detect + full polyfill as a downloadable file, so users don't need to use the service while developing code.

Also I tried uglifyjs when I made the suggestion. It doesn't eliminate dead code if the condition is a property of an object.
var support = { foo: true, bar: false };

if (!support.foo) {
  window["foo"] = "foo"
  alert("foo polyfilled");
}

if (!support.bar) {
  window["bar"] = "bar"
  alert("bar polyfilled");
}

Try compress this on http://lisperator.net/uglifyjs/#demo
Only google closure compiler's "advanced compilation" eliminates it.

I also have thoughts on how we should test the polyfills, maybe we can discuss it later. (TL;DR, leverage https://github.com/w3c/web-platform-tests)

We can also use module syntax to solve the problem of polyfill dependencies.
performance.now.js
import "./data.now.js"

// polyfill performance.now

data.now.js
Date.now = function now() {
	return new Date().getTime();
};

If we can make sure no circular dependencies exist, the bundled code can be very lightweight (no commonjs or amd boilerplate code).

@hgl, using the ES6 import and transpiling the code to work in ES5 would be dreamy. Could you create a simple example?

Sure, in this example I use es6-module-transpiler's bundle format:
data.now.js
var customVar = new Date().getTime();
Date.now = function now() {
    return customVar;
};

performance.now.js
import "./data.now";

var customVar = "polyfill performance.now";
alert(customVar);

compile-modules convert performance.now.js

=>
(function() {
    "use strict";
    var customVar = new Date().getTime();
    Date.now = function now() {
        return customVar;
    };

    var performance$now$$customVar = "polyfill performance.now";
    alert(performance$now$$customVar);
}).call(this);

And if you do
compile-modules convert performance.now.js data.now.js

It's smart enough to not repeat the data.now.js file.

Variants are about performance and maintainability

@jonathantneal could you give me an example of how variants improve performance and maintainability?  In terms of maintainability I see variants as a problem, not a solution, because they result in repeated code (eg see the Node.prototype.contains polyfill which repeats largely the same code across three variants), require manual targeting, and more complex config.  In terms of performance I can't see that there's any difference, provided that we have a mechanism for removing the dead code.
On the other hand the existence of variants prevents us supporting something lots of people are asking for.

I think we can take it to the next level by letting users specify which kinds things they like to polyfill

@hgl this is already supported.

We can even define a few keywords which will combine popular polyfills

This is also already supported.

I tried uglifyjs when I made the suggestion. It doesn't eliminate dead code if the condition is a property of an object

OK then, it can be a single symbol name:
if (_PolyfillDetects_multipleArgs) {
   // insert code to polyfill multiple argument support here
}

I don't want to use Closure compiler, it's a Java tool which would make deploying the app significantly more complex.
Regarding dependencies, can you guys move that to another thread?  It seems orthogonal to this discussion.

Just to provide an example how granular detects support variants:
Take Node.prototype.contains for an example:
if (!NodeHasContains) {
	if (!isNodeExtendable && isElementExtendable) {
		document.contains = Element.prototype.contains = contains;
	} else if (isNodeExtendable) {
		Node.prototype.contains = contains;
		if (HTMLElementHasContains) {
			delete HTMLElement.prototype.contains;
		}
	}
}
function contains() {
	//...
}

ie * - 8:
  NodeHasContains: false
  isNodeExtendable: false
  isElementExtendable: true
ie 9 - *:
  NodeHasContains: false
  isNodeExtendable: true
  isElementExtendable: true
  HTMLElementHasContains: true
firefox * - 8, safari * - 2:
  NodeHasContains: false
  isNodeExtendable: true
  isElementExtendable: true
  HTMLElementHasContains: false

This is also already supported.

Sorry, didn't notice it.

I'll try to improve a bit variant of @hgl.
We could use Modernizr or Modernizr-ish feature detection with manual/runtime feature resolve.

our feature tests will be formed as a code, not just file with JS expression: eg.
possible to use without relaying on UA-string (runtime feature resolution).

Runtime resolution
function supports(what) {
    // vvv the code below is generated vvv
    if (what=== 'Array.prototype.forEach') {
       return Boolean(Array.prototype.forEach);
   }

   // ...
}
if (supports('Array.prototype.forEach')) {
    // Apply common polyfill part
    if (supports('Smth.else')) {
        // Apply spec. polyfill condition
    }
}

User Agent-based resolution (we already know what they support)
var supports = {
     'Array.prototype.forEach': true,
     'Smth.else': false
};

if (supports['Array.prototype.forEach']) {
    // Apply common polyfill part
    if (supports['Smth.else']) {
        // Apply spec. polyfill condition
    }
}

Which will be minified as
// Apply common polyfill part

I'm keen to pick this up again, and convinced that eliminating variants will help us maintain the service (simpler service code, fewer polyfill files, easier adoption of third party polyfills, simpler configs).  But we can do just that, without the dead code removal, as @juandopazo suggests at the top of this thread.  I've created https://github.com/Financial-Times/polyfill-service/issues/461 to talk about scrapping variants, and we can follow that up with an issue for dead code removal separately.


Support neovim 0.5 again

Restores 0.5 support.  The CI uses 0.5 on ubuntu, and nightly on macos.

Not sure what's going on with the search path test.  The function only fails when called from the test, but not if open nvim and run it manually.

(sorry, am working on generalizing phaazon/hop.nvim in support of #123, will look into test failures soon)

Tests pass on 0.5 now, but the neovim nightly builds are gone temporarily so now the other tests fail :-( https://github.com/neovim/neovim/issues/15709
The only thing I've changed since yesterday is the backported list_workspace_folders function though, so the tests should pass with nightly once the builds are back up.

Hooray, thanks!


sandcastle PVs are sometimes not cleaned up

so the fix from #94 did not help and we're still having lingering volumes in our prod cluster
if someone could analyze prod logs and figure out what's happening, that would be lovely

Was checking out a job now which left a volume. The build failed b/c the spec was wrong - could this be the problem?

Okay, so it's not just PVs, it's also pods! We have a ton of leftover pods in our prod sandbox namespace.

We should turn on the debug logs for Kubernetes. I am afraid that a problem could be in k8s API. We have been changing installation of dependencies recently and k8s API for deletion methods is different between 8.0.0 and 9.0.0.

k8s API for deletion methods is different between 8.0.0 and 9.0.0.

pip3 show kubernetes
Version: 8.0.1

this is resolved now


Waring when using dynamic route with ssr

Warning: React attempted to reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on the server was not what the client was expecting. React injected new markup to compensate which works but you have lost many of the benefits of server rendering. Instead, figure out why the markup being generated is different on the client or server:
 (client) <!-- react-empty: 1 -
 (server) <div data-reactroot="

reproduce: https://github.com/JounQin/react-ssr/tree/react-router
Step:

I'm using npm.taobao.org in china, so maybe you should delete the yarn.lock first
yarn && yarn dev

Then open localhost:3000, it will show the waring messages on console.

Sorry, noticed this link just now.

any solution? I use BrowserRouter in client.js, and use StaticRouter in server.js. not work.

@tiemei Sorry but I'm using react-router v3.0 which support dynamic route with ssr better, and v4.0 seems to drop support of dynamic router inside.
https://github.com/JounQin/react-ssr/tree/master/src
Here is the example of v3.0 in entry-client.js and entry-server.js.


RR-263 - improve the print link button alignment with the h1

Fix the npm outdated error in CircleCI https://app.circleci.com/pipelines/github/ministryofjustice/hmpps-education-and-work-plan-ui/516/workflows/8cc93033-0487-4438-90f5-aba18ce1ec3c/jobs/2270

Muddled up branches, Friday!
Opened a new PR.


Support multiple doctypes

Heya,
Lovely package. Would you consider having it support multiple doctypes? I have a working implementation of multiple doctypes that I can push as a PR if you want it.
Regards,
Kenn

What's the use case?
On 22 Mar 2015 22:00, "Kenn Jacobsen"<EMAIL_ADDRESS>wrote:

Heya,
Lovely package. Would you consider having it support multiple doctypes? I
have a working implementation of multiple doctypes that I can push as a PR
if you want it.
Regards,
Kenn
—
Reply to this email directly or view it on GitHub
https://github.com/leekelleher/umbraco-nested-content/issues/3.

Wanting different list item types in the same list? Instead of having one mother-of-all-list-items doctype to handle all permutations of whatever I want my editors to be able to enter, I could create multiple smaller doctypes tailored specifically to different uses, and fragment my frontend rendering accordingly.

Hmm, possibly. Could use a similar dialog as the grid when choosing a grid
item type to pick one.
How are you doing it in your PR?
On 22 Mar 2015 22:09, "Kenn Jacobsen"<EMAIL_ADDRESS>wrote:

Wanting different list item types in the same list? Instead of having one
mother-of-all-list-items doctype to handle all permutations of whatever I
want my editors to be able to enter, I could create multiple smaller
doctypes tailored specifically to different uses, and fragment my frontend
rendering accordingly.
—
Reply to this email directly or view it on GitHub
https://github.com/leekelleher/umbraco-nested-content/issues/3#issuecomment-84713298
.

Precisely like the grid. Same dialog just using the allowed doctype icons
and names.
I'll submit it tomorrow evening, then you can have a look.
On Mar 22, 2015 11:13 PM, "Matt Brailsford"<EMAIL_ADDRESS>wrote:

Hmm, possibly. Could use a similar dialog as the grid when choosing a grid
item type to pick one.
How are you doing it in your PR?
On 22 Mar 2015 22:09, "Kenn Jacobsen"<EMAIL_ADDRESS>wrote:

Wanting different list item types in the same list? Instead of having one
mother-of-all-list-items doctype to handle all permutations of whatever I
want my editors to be able to enter, I could create multiple smaller
doctypes tailored specifically to different uses, and fragment my
frontend
rendering accordingly.
—
Reply to this email directly or view it on GitHub
<
https://github.com/leekelleher/umbraco-nested-content/issues/3#issuecomment-84713298
.

—
Reply to this email directly or view it on GitHub
https://github.com/leekelleher/umbraco-nested-content/issues/3#issuecomment-84714422
.

Wondering how assigning multiple DocType and tab combinations UI would work?

+1

For the time being I'm simply assuming that the different selected doctypes will all use the same tab name, but it shouldn't be too much trouble to create a new property editor that allows for pairing doctypes and tab names for the datatype configuration.

+1

Closing this ticket, as we can continue discussions on PR #4.


Could  you supply the file("SBUX.csv")?

I am very interetes in your programe,but there is a little difficult for me to get the file in China. Could you please send the file("SUBX.csv") to my email("isharetech@163.com")?

thank you !

Sorry, I don't have that file handy anymore.


Rework the logger

It would be better to rely on the standard Java logging mechanism

Non-static Loggers could be injected via dependencies.


set jp translation for course on new course callout variant

Relates to : https://github.com/newrelic/gatsby-theme-newrelic/pull/344
Acceptance Criteria

[ ] Confirm with @jmiraNR what the correct term of course should be set for JP content
[ ] update callout jp translation json

https://github.com/newrelic/gatsby-theme-newrelic/blob/98eb4e873b3c94a0dd0fd93d41387c47f3a52fc4/packages/gatsby-theme-newrelic/src/i18n/translations/jp.json#L14)

@LizBaker did you say you've made this change for this localization? If so, is this done?

This looks to be in theme now, so closing.


Colors don't match with Unity Gradients (linear vs srgb)

First off, great assets, love it, this makes life so much easier <3
I noticed something strange, I had a shader in which I used the SampleGradient node which I wanted to replace therefore I saved the gradient as preset, installed your package, created a gradient from that preset gradient and replaced the gradient in the shader with a texture sample. But the colors are not identical, quite different actually.
The colors if I do a pow(x, 1/2.2) on the generated gradient therefore I think the gradient is not saved / created in linear colorspace?
When encoded to png the texture has the srgb toggle but that is already to late, there should be one on the gradient asset?

done, behaviour imitates TextureImporter.sRGB flag, after export to PNG flag is applied to TextureImporter. Exported PNG gamma and linear added to Samples.

if project color space is gamma - colors stay same
If project color spaice is linearr - colors would same as gradient of sRGB is on, and Gradient.Evaluate().linear is used if sRGB is off.

fantastic, especially that the default is picked by project settings, very nice.
I do get an error on package import due to a missing meta file though:
Asset Packages/com.mitay-walle.gradient-texture/Documentation/gradientTexture_srgb_inspector_preview.png has no meta file, but it's in an immutable folder. The asset will be ignored.
(in fact I do get a few more errors but I believe those are better suited for a separate issue)


add rx position at which the corrections have been computed

Some corrections are computed assuming a receiver position. This information should be provided in prx.
I think the default position that we consider is the rx position from the header.

More details on why I think a per epoch receiver position is an additional required information.
First, the RNX header field APROX POSITION XYZ is optional, so our code should not rely too much on it.
Then, if we process a RNX file from a long dynamic data collect (car/plane moving across a country), the receiver position may have changed significantly, leading to significant impact on the correction computation (atmospheric, Sagnac).
This position could come from

the RNX OBS header if available for fixed data collect
a Least Squares solution with uncorrected observations
a reference trajectory when provided (but this would be a hassle to deal with non-standardized reference trajectory files...)

The Least Squares solution is probably the most robust, self-contained one.

@plutonheaven I like the analysis a lot!
Having the option for a reference trajectory would be great though - it would provide the possibility to bake a ground truth directly into the CSV file, which is great for unit testing.


FEATURE: Highlight my mentions and @here/@all

Unrelated to this PR: in your screenshot that @here and @all don't get rounded corners.

Yes, this is because @here and @all are not styled the same as regular mentions (no background color at all, they're just bold). Not sure if this is intentional or not.


Add CSP support

Remove inline styles (styleInject) to support CSP (Content Security Policy).
Error:

Hi @ricardo17coelho, thanks for reporting this! It's in my spare time backlog :)

This should be resolved by latest 2.3.1. Thanks for reporting the issue!


Add ` hotkey to move to first line

Perhaps we should tweak this feature to skip manglacharan lines at the beginning or to be context aware of large shabads where the first line applies only to the 6-8 lines in the pauri, etc.
Another alternate idea is a hotkey for the first unread line as a dynamic hotkey.

Related #103

Would this hotkey be different to home?

Home goes to the top most line regardless of whether it's a manglacharan or not

I also think a hotkey for "next unread line" could be powerful

After re-thinking this for a while, perhaps ` should be a hotkey same as home and the 1 key should be the first non-title line after the DB has implemented line types. This has a couple benefits: you can use the 1 key to go to the first "singing" line. You can do easier maths to find lines. If each pauri is 2 lines, you can easily know that 5 will be the start of the second or third set of lines.
Related to https://github.com/ShabadOS/database/issues/36

On hold until next DB major release and coupling with Desktop


Rq:Change ESP Color while IsDefusing;isPlanting on active PlayerModel

I will check if I can implement the IsDefsuing;IsPlanting Event on PlayerModel for you. So if the PlayerModel is doing one of this two Actions it changes the PlayerModel Cham to different color to check if someone fake the defuse or not.

Thanks for giving this idea. Feel free to open PR if you implemented these features.

Currently working on that, if you don't mind.
also, can't find isPlanting offset, glad if anyone can help.

also, can't find isPlanting offset, glad if anyone can help.
Hey, there is an event called "bomb_beginplant" which will tell you when the bomb is being planted but you need to implement event logging in the cheat in order to use this event. There is also a netvar called "m_bStartedArming".

Implemented.


Foot note

Need to merge this: https://github.com/quran/quran.com-api/pull/135 before testing.
Also select Maududi translation to demo foot note popup/modal.

rebuild

Deployed to: http://staging.quran.com:32820


Refactor useLocationFromIp to use state and side-effects instead of a callback

This means you can do something like:
const location = useLocationFromIp();

useEffect(() => {
  if (!location) {
    return;
  }

  const { region_code } = location;

  setSubdivision(region_code);
}, [location]);

I made some optimisation changes so that the API request won't rerun.


[WIP] make sure 13 bounds constraints are added to angles that are part of an impropper torsion

What does this implement/fix? Explain your changes.
Fixing a bug where no 1-3 distance constraints are added to angles, which are part of an improper torsion. This leads to weird molecules (skewed rings, overlapping atoms, etc.).
For angles that are part of an improper torsion, a distance constraint is added based on the bounds matrix of the molecule.
A test is added to make sure we have no overlapping atoms.
The catch_tests.cpp changed in the commit that lead to this, were reverted to the state before that commit.
Any other comments?
Thanks @eruijsena for bringing this to our attention.
code to reproduce:
mol = Chem.AddHs(Chem.MolFromSmiles('COc1cc2cc(OC)c1OCCOC[C@H](C)OC(=O)[C@@H]CNC(=O)[C@H]2'))
params = AllChem.ETKDGv3()
params.randomSeed = 7
params.enableSequentialRandomSeeds = True
AllChem.EmbedMultipleConfs(
        mol,
        10,
        params,
    )

The one CI test failure that's happening here is not connected to this PR. It's one of those random CI things that sometimes happens.


Update content security policy

Content security policy details required

Please  ignore my commit.Unfortunately the commit changes made but not intentional


flipperzero: SPI interface

Something I wanted to add here since I have book looking into this:
There seem to be 2 physical busses denoted as "bus_r" and "bus_d"
Because of this, I think there should be 2 SPIBus structs of some sort, one for "bus_r" and the other of course "bus_d" each implementing the SpiBus trait from the EmbeddedHal crate. Of course I still am not sure how it should be gone about implementing the SPI device trait. Based on what I am seeing,  it might be best to implement each device with the SPI Bus trait since it seems like the higher level function calls that are exposed use the lower level items to lock the furi_hal_spi_bus_r_mutex "in targets/f7/furi_hal/furi_hal_spi_config.c"
As mentioned in a different post elsewhere, I am willing to help out with this. I probably need someone to help me understand how the bindings work, because it might be useful to try use and expose lower level function calls and static variables.
Further, based on how function calls like furi_hal_spi_bus_tx they are already using some sort of spin lock for transmitting data, so it would make sense to expose those calls with the non-blocking crate to provide an async interface.


Update product scope section of developer guide

Closes #32

Codecov Report

Merging #33 (3e9ebc2) into master (767709f) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #33   +/-   ##
=========================================
  Coverage     71.84%   71.84%
  Complexity      399      399
=========================================
  Files            71       71
  Lines          1236     1236
  Branches        125      125
=========================================
  Hits            888      888
  Misses          315      315
  Partials         33       33

Continue to review full report at Codecov.

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


Feature Request: Virtual Space support

monaco-editor version: 0.13.1
Browser: All browsers
OS: All OS
Steps or JS usage snippet reproducing the issue: (review editor options and VS Code issues carefully, discover there's no virtual space)
Feature Description: https://blogs.msdn.microsoft.com/zainnab/2010/02/28/understanding-virtual-space/
Also known as "cursor past end of line", "cursor in empty space" or "cursor past end of file".
First, Monaco is absolutely great and miles ahead of competitors, especially in performance. But the lack of virtual space hurts each time I try to use it. A matter of taste and a habit, indeed, but keeps me from adopting VS Code as well as from using Monaco in personal projects/recommending it elsewhere.
Would be great to know if it's even on the roadmap, and/or how hard does it look given the current Monaco internals (even without related multiple cursors/full rectangular selection support)
Thanks in advance!

This is the one thing holding me back from using Code.

https://github.com/microsoft/vscode/issues/13960

This is a must have for any code editor... I use this in VS IDE all the time when selecting vertically (with mouse and with shift+alt+arrows). Please add this. Like @GeekyMonkey, this is one the only things that's holding me back from using it daily.

I think it is better to track features that are not monaco-specific in the VS Code repository, as all major Monaco features are driven by VS Code feature requests anyway.
As there is already an issue for it (https://github.com/microsoft/vscode/issues/13960), to avoid duplicated discussions, I'm going to close this issue.
Please subscribe to the linked issue to stay updated on this topic.

not monaco-specific

wait, this feature is 100% not vscode-specific but monaco-specific. Monaco is used not just in vscode

Monaco is built from parts of the sources of VS Code.
Once there is Virtual Space support in VS Code, it will also be supported by Monaco.
It is very unlikely though that there will be exclusive support for Virtual Space in Monaco without supporting it in VS Code.

@alexdima Can you please comment whether you agree virtual space is a component feature or an app feature? Thanks.

As there is already an issue for it (microsoft/vscode#13960), to avoid duplicated discussions, I'm going to close this issue.
Please subscribe to the linked issue to stay updated on this topic.

Issue 919 is a duplicate of issue 13960?


parquet: Use specific error variant when codec is disabled

Instead of reporting it as 'not yet implemented'
Which issue does this PR close?
Closes #5520
Rationale for this change
It makes it clearer at runtime how to fix the error
Are there any user-facing changes?
It changes the error message, and adds a variant to the ParquetError enum.

Could we use the General error enumeration to avoid this being a breaking change?

Sure, done

Thank you


Update liveRTMP.js to fix issue #93

This pull request fixes issue #93

Thanks

Your are welcome
On Thu, Nov 18, 2021 at 6:07 PM Jibon L. Costa @.***>
wrote:

Thanks
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jibon57/bbb-recorder/pull/108#issuecomment-972951856,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AF7PROJCCINOM6WIJKKH3ITUMUJDTANCNFSM5HBLMZ7A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


adding handling for empty dataset to sitevisitpeak

@thongsav-usgs working locally with the empty site visit peak example JSON file


the website is error

the website is error

are you running the https://github.com/shadcn/next-template template?
Im also creating a template now and running the server, it seems to give an error and is not clear where its coming from.
The most readable error im getting is "ReferenceError: AbortSignal is not defined" which when I search for AbortSignal its not defined anywhere? @DroganC Is this the same for you?

I think he's referring to the website. I visit it with safari and get
e.at is not a function


Manual completion key?

I'm using neocomplete currently and tmux-complete is unfortunately a little bit too noisy for me.
Is it possible to have tmux completion be triggered through some manual key combination. E.g., <c-x><c-t>?

<c-x><c-u> should work already, unless something else took it over.

That works, thanks.
How can I exclude tmux completions from my normal neocomplete results though?


docs: fix blockquote tag

Hey @StefanoSaffran !
Thank you for your contribution, but theres still some things that could be fixed.
When you fixed the blockquote, you kept the  opening tag, but it is not used nor closed.
I think by removing this  tag before the blockquote would be the best solution.

Approved.
Thank you for your contribution, @StefanoSaffran! 🚀


Selecting a file should set focus on file's contents

Issue Type: Bug

Open a folder of files.
Select a file from the list.
Invoke keyboard shortcut to Select All (Cmd-A or Ctrl-A)

ACTUAL: All files in the explorer are selected
EXPECTED: All text in the selected and newly open file should be selected.
VS Code version: Code 1.36.1 (2213894ea0415ee8c85c5eea0d0ff81ecc191529, 2019-07-08T22:56:38.504Z)
OS version: Darwin x64 17.7.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz (8 x 2200)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: enabledoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: enabledskia_deferred_display_list: disabled_offskia_renderer: disabled_offsurface_synchronization: enabled_onvideo_decode: enabledviz_display_compositor: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
3, 3, 3

Memory (System)
16.00GB (9.47GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (8)

Extension
Author (truncated)
Version

xml
Dot
2.5.0

mssql
ms-
1.6.0

csharp
ms-
1.21.0

debugger-for-chrome
msj
4.11.6

vscode-code-outline
pat
0.2.1

java
red
0.47.0

vscodeintellicode
Vis
1.1.8

vscode-java-debug
vsc
0.20.0

Disagree. Where the focus we should select that.
You can switch the focus to the editor by pressing tab, or by pressing cmd + down.
Closing as we will not change this.

Then you should also NOT open the file.  I COMPLETELY DISAGREE with this since OPENING THE FILE CHANGES FOCUS TO THE FILE.


[release-2.17.0][BEAM-8917] jsr305 dependency declaration for Nullable class (#10324)

R: @Ardagan
CC: @suztomo @kennknowles

Run SQL postcommit

Hi Ismael,
Should I start building RC after this pr goes in, or will there be more changes required?

Yes you can go ahead once this one is in. Nothing else is missing AFAIK. Thanks @Ardagan !

Oups we discovered one minor issue I will cherry-pick an extra commit here and then it is ok to go. For more details https://issues.apache.org/jira/browse/BEAM-8967

Run SQL postcommit

run python precommit

run python precommit

I suggest merging this. The change is unrelated to python and it is blocking the RC.


HTML lexer doesn't handle elements with dashes in tag name

(Original issue 846 created by None on 2013-02-09T01:58:58.244769+00:00)
The html lexer generates <span class="err">'s on closing elements with dashes in the name, e.g. You can see this in the following inline example that's using (presumably) the same HTML lexer:
#!html
<x-tag>Hello</x-tag>

Here's the the same code without specifying a lexer:
<x-tag>Hello</x-tag>

This isn't a standard HTML tag, but custom elements/web components will have dashes in their names (e.g, http://www.x-tags.org/index).

(Original issue 846 last updated on 2013-05-19T08:24:40.484465+00:00)
(Issue automaticaly closed due to status in Bitbucket: resolved)

(Original comment by d6y on 2013-02-09T17:25:39.467696+00:00)
Possibly related, I have similar output for:
<lift:notice_class>boxed</lift:notice_class>

Where by the _class part has different formatting, and the closing of the tag is not formatted:
#!HTML

<lift:notice_class>boxed</lift:notice_class>

(Original comment by tshatch on 2013-05-10T01:09:21.522064+00:00)
I agree I've element names like those in the wild.  Richard, your should parse as xml in the meantime I think, since they're namespaced.

(Original comment by birkenfeld on 2013-05-19T08:24:40.476808+00:00)
Closes #846: support "strange" tag names (with ":", "_" or "-") in HTML lexer.
→ <>


Allow nil auth scheme

Context
Some systems, such as Cloudflare Access, don't specify auth scheme in JWT token. So we need fork our own module.
https://developers.cloudflare.com/access/setting-up-access/validate-jwt-tokens/
labstack/echo module was used in Jidoka and use dgrijalva/jwt-go for jwt validation. This is to upgrade labstack/echo to resolve CVE-2020-26160, as https://github.com/envato/jidoka/pull/595
From https://github.com/labstack/echo/pull/1390

Rather than merging into master, can we just use this branch in Jidoka?

yeah you are right.


pestudio CRC mismatch due to update

Hello,
While installing FLARE VM today I noticed that the download for pestudio has been updated with a new CRC. The install script grabs from the "current" directory, but tries to match with the previous version.

A new version 8.83 is available. Please reinstall PEStudio.

Current branch points to Pestudio 8.84, while FLARE compares checksum from 8.83. Please update a checksum for Pestudio 8.84.

@YarovoyD Thanks for letting us know, checksum for pestudio v8.84 has been updated.


Dockerize this frontend and the server

This would be at home in a docker container especially the server part, this issue is more of a suggestion and a way to discuss progress towards a PR with dockerfiles.

I don't see how you could dockerize an electron app, if that's what you meant when it comes to frontend. However, I think providing a docker image for the backend is a good idea, so feel free to improve this part.

oops forgot this is electron 😁


Extend sdk to support additional operations

Is it possible to extend operator-sdk/pkg/sdk in order to support by example such additional request able to create a subresource for a DeploymentConfig ?
https://goo.gl/uCxqWY
// Instantiate takes the representation of a deploymentRequest and creates it.  Returns the server's representation of the deploymentConfig, and an error, if there is any.
func (c *deploymentConfigs) Instantiate(deploymentConfigName string, deploymentRequest *v1.DeploymentRequest) (result *v1.DeploymentConfig, err error) {
	result = &v1.DeploymentConfig{}
	err = c.client.Post().
		Namespace(c.ns).
		Resource("deploymentconfigs").
		Name(deploymentConfigName).
		SubResource("instantiate").
		Body(deploymentRequest).
		Do().
		Into(result)
	return
}

We are moving closer to using the controller runtime and we will be using their client. You can find the documentation here https://godoc.org/sigs.k8s.io/controller-runtime/pkg/client#Client.
It appears that they also do not have support for subresources besides /status.
I am going to close this issue in favor of https://github.com/kubernetes-sigs/controller-runtime/issues/172. We can re-open this feature request depending on the outcome of that issue.


[Dataset Copy] rb.copy does not work explicitly specifying my workspace

Cannot create a copy when specifying my workspace.
This works:
rb.copy("ds", "ds2")

this does not, no error is thrown, no copy is created:
rb.copy("ds", "ds2", workspace="david")
# or
rb.set_workspace("recognai")
rb.copy("ds", "ds2", workspace="david")

@frascuchon any suspicions?

It's working the opposite (from david to recognai) ?

Yes, the other way around works fine


Should have exception for disallowSpacesInFunction for anonymous generators

I want to enforce no spaces after function or the name of the function.
function() {}
function a() {}

I want to enforce spaces before and after the star for generators.
function * () {}
function * a() {}

I have the rules:
{
  "disallowSpacesInFunction": {
    "beforeOpeningRoundBrace": true
  },
  "requireSpacesInGenerator": {
    "beforeStar": true,
    "afterStar": true
  }
}

Everything works as expected except the anonymous generator function * () {} which errors on the disallowSpacesInFunction. I think I need something like:
{
  "disallowSpacesInFunction": {
    "beforeOpeningRoundBrace": {
      "allExcept": [ "anonymousGenerators" ]
    }
  }
}

Is there a workaround for this? Or some rule I'm missing to make this work?

Not 100% on this, but i don't think there is such workaround and at this point, we are not committed to adding new features, sorry


Added plotter argument when creating a scene

Render/Scene classes changes mentioned in #145: such changes should fix the PyQt5-brainrender integration issues though I haven't tested those changes with other module functions (e.g.: plotting data from a script).
I should also mention that these fixes have been written and tested in a minimal PyQt5 working example and not with the whole GUI.

I've merged it into a development branch, will test out and commit to main branch if everything's okay, but it looks great. Thank you very much for submitting it!

Merged into master by https://github.com/brainglobe/brainrender/pull/167 and published to brainrender==<IP_ADDRESS>, thanks for the help!

My pleasure @FedeClaudi! Glad to contribute to such a great Python package


multiple keyPath observation

Hi!
Just start using this. It would be very nice if KVOController supports multiple keyPath observing like this:
observe(retainedObservable: view, keyPath: ["position", "bounds"], options: [])
    { [weak self] (observable: View, change: ChangeData<AnyObject>) -> () in
        // most of case, it actually doesn't matter changed values, but want to monitor changes and do something
         self?.updateView()
}

Thanks for using the library. Unfortunately, I'm not actively maintaining this pod, other than major changes like swift 3 support. But pull requests are always welcome.
For your specific case, you can add your own extension like that:
public extension NSObject {

    public func observe<Observable : NSObject, PropertyType>(
        retainedObservable: Observable,
        keyPaths: [String],
        options: NSKeyValueObservingOptions,
        block: @escaping ClosureObserverWay<Observable, PropertyType>.ObservingBlock) {

        keyPaths.forEach {
            observe(retainedObservable: retainedObservable, keyPath: $0, options: options, block: block)
        }
    }
}

Then you can use it as you pointed out.


add testing ability

This PR makes it easier to write tests in your application using this library.
This is related to https://github.com/openai-php/laravel/issues/23
@nunomaduro @mpociot  I have decided to create most of the testing logic within the client library itself and not in the Laravel wrapper. The main reason for this decision is to provide the same testing options to users which are using the client directly.
Additionally it should be fairly easy to provide the testing options in other wrappers too (@GromNaN)
The PR for the Laravel wrapper is here: https://github.com/openai-php/laravel/pull/27
There are multiple things to discuss:

First of all: Do you agree to put most of the testing logic into the client library?
I have add fixtures for all responses to make faking easier: It's not necessary to provide all response parameters, instead it's enough to provide the parameters the user is interested in. (see example below) Do you think that's too much?
The response fixtures are at the moment classes having a constant containing the default response attributes. Maybe it could be changed to something different as it seems a bit too much to have classes.
I have excluded the OpenAI\Testing namespace from phpstan because it's not really possible to add proper doc types as the return type could be possibly every available response.

Todos:

[x] Add documentation

A test using a fake response without providing all parameters
it('returns the faked response', function () {
    $fake = new ClientFake([
        CreateResponse::fake([
            'choices' => [
                [
                    'text' => 'awesome!',
                ],
            ],
        ]),
    ]);

    $completions = $fake->completions()->create([
        'model' => 'text-davinci-003',
        'prompt' => 'PHP is ',
    ]);

    expect($completions['choices'][0])
        ->text->toBe('awesome!');
});

@gehrisandro thank you very much for putting in the work for this PR.
I just tried the branch on What The Diff and it works great.
Internally, I personally don't think it's an issue that the testing implementation is inside the library.
There are two things that I noticed during implementing this:

The fixture values used for default responses should be simpler.

While testing, I didn't specify all of the choices responses and I saw the default fixture values like "this is indeed a test". Those default values made me wonder for a second if I'm making some actual API requests, so I think it might be better to either leave them out entirely or use some more verbose defaults that clearly indicate that this is a fake response.

Add the ability to test exceptions/errors

I have to add some tests to ensure that error handling is working correctly. This can have a couple of different reasons.
Either the API returns an internal error (GPT4 seems to do this), a rate limit error or something else.
I thought that I could just create a fake response with an error, but that didn't work as the ErrorException does not get thrown in the fake client:
CreateResponse::fake([
    'error' => [
        'message' => 'Something went wrong',
    ],
])

Other than that, this is perfect! :)

Hi @mpociot
Thank you for your valuable feedback.

I will review the default values and make them more clearly.
Not providing any default would force the users to always provide a full API response to fake a response object and this is in my opinion less convenient because in most tests they will be only interested in a specific value.

To be honest I totally forgot about returning exceptions. I have to take a look how to implement this as you are going to create a fake response instance but in the client the exception handling takes place before the response object is instantiated.
For now I think we should allow to pass exceptions as fake responses.

@nunomaduro I will start adjusting to the stream responses. Hope to finish until Monday evening.

@mpociot Exception testing should work now:
$client = new ClientFake([
    new \OpenAI\Exceptions\ErrorException([
        'message' => 'The model `gpt-1` does not exist',
        'type' => 'invalid_request_error',
        'code' => null,
    ])
]);

// the `ErrorException` will be thrown
$completion = $client->completions()->create([
    'model' => 'text-davinci-003',
    'prompt' => 'PHP is ',
]);


Basic frontpage

This pull request gives us the functionnal version of the website, it's faaaaaaaaaaaaar from being pretty and it works based on the lie as it's not connected with backend yet ( this is the next step probably)
I think that we should get rid of the spa docker in the next push probably.
the login has been improved but the old function are still used as they need to connect to the backend.
we have now
one tab for leaderboard
one tab for friends
one tab for game
one tab for personnal information
one tab to search for profiles
and a bunch of links between those

oh yeah my bad, you can connect using anylogin and password to check the rest.


Doesn't work for multiples of BUF_SIZE.

If the length of the HTTP request is a multiple of BUF_SIZE, then the server will keep trying to read data despite there being no more data to read.

Fixed in e4b7287c1808647bbb56f5f48b7062e89553f48e.


Sending build context to Docker daemon VERY slow

Has anyone else found that if you run docker build with the boot2docker-vagrant setup, the portion that says "Sending build context to Docker daemon" takes a VERY long time?
brikis98-pro:$ docker build .
Sending build context to Docker daemon 42.34 MB

The total size of the context is ~100MB, but it takes 5-10 min to get through that step. When I was using vanilla Boot2Docker, it only took a few seconds.
Any ideas what could cause that?

OK, I think I've found the problem. I used speedtest-cli to test the network performance of a Docker container running on boot2docker-vagrant:
> docker run -it --rm ubuntu:14.04 bash
root@52386ba8b6b0:/# ./speedtest-cli
[...]
Testing download speed........................................
Download: 11.36 Mbit/s
Testing upload speed..................................................
Upload: 0.00 Mbit/s

So my upload speed is so bad that it can't even be measured. Anyone know why? Is there some Vagrant setting I'm missing? I found some of the typical responses about Vagrant network slowness, but they didn't help:
config.vm.provider "virtualbox" do |v|
  v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
end

Any ideas?

I found a fix in this superuser discussion:
config.vm.provider "virtualbox" do |v|
  v.customize ["modifyvm", :id, "--nictype1", "virtio"]
end

Once I added this, the upload speed on the Docker container matched that of my host OS, and the "Sending build context to Docker daemon" step runs very quickly now.

@brikis98 great find!
I'll have to modify the base box template to set the default NAT and the first private network adapter types to virtio. In the mean time the workaround you posted does the trick.

I wonder if this explains why loading images using docker load -i blah.tar is so slow for me.  When using boot2docker an image was loading easily within 20-30 seconds.    I gave up waiting for it to complete.  Something else I noticed is that the CPU usage of VirtualBox during this time is around 2%, where normally it is high when using boot2docker during an image load.

Resolved in https://github.com/blinkreaction/boot2docker-vagrant/commit/ef09ddddcb0488a8a08fa20d268782bc52cebd67
Released in v0.13.0

This is happening again after virtualbox upgrade with new docker-tools package -- making life super slow

@34code what do you mean new docker-toolbox package?
Please run the following and post here
$ VBoxManage --version
$ vagrant --version
$ cat <path/to>/Vagrantfile | grep box_version
$ env | grep DOCKER
$ docker version

I mean v1.11.1 here: https://github.com/docker/toolbox/releases


psi4 windows version and outfile psiapi mode

Description
Fixes in conjunction with psi4 ddd. Still needs printing cleared out, after I confirm working.
Changelog description

[x] Switch psi4 --version collection to only grab the last line. This should fix #200, but I can't say for sure because chocolatey is down again.
[x] Use an independent tmpdir for each psi4 run in psiapi mode, not just exe.
[x] Reset the scratch dir for psi4 in psiapi mode, so set guess read in distributed driver has a chance.
[x] Add a connection to a postclean kwarg to cleanup the qcschema_tmpfile at end of routine (suitable for psiapi) rather than at atexit

Status

[x] Code base linted
[ ] Ready to go SQUASH!

Squash merge when you are ready.

This PR will also end up fixing the Windows error in execute below, though I haven't yet identified the minimum fix.
Traceback (most recent call last):
  File "D:\a\1\b\install\bin\psi4", line 331, in <module>
    exec(content)
  File "<string>", line 32, in <module>
  File "D:\a\1\b\install\lib\psi4\driver\driver.py", line 622, in gradient
    plan.compute()
  File "D:\a\1\b\install\lib\psi4\driver\driver_findif.py", line 1034, in compute
    t.compute(client=client)
  File "D:\a\1\b\install\lib\psi4\driver\task_base.py", line 156, in compute
    local_options={"memory": core.get_memory()/1000000000, "ncores": core.get_num_threads()}
  File "D:\a\1\b\install\lib\qcengine\compute.py", line 91, in compute
    output_data = executor.compute(input_data, config)
  File "D:\a\1\b\install\lib\qcengine\programs\psi4.py", line 171, in compute
    run_cmd, input_files, ["data.msgpack"], as_binary=["data.msgpack"], scratch_directory=tmpdir
  File "D:\a\1\b\install\lib\qcengine\util.py", line 459, in execute
    with popen(command, popen_kwargs=popen_kwargs) as proc:
  File "C:\tools\miniconda3\lib\contextlib.py", line 81, in __enter__
    return next(self.gen)
  File "D:\a\1\b\install\lib\qcengine\util.py", line 285, in popen
    ret = {"proc": subprocess.Popen(args, **popen_kwargs)}
  File "C:\tools\miniconda3\lib\subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "C:\tools\miniconda3\lib\subprocess.py", line 991, in _execute_child
    args = list2cmdline(args)
  File "C:\tools\miniconda3\lib\subprocess.py", line 481, in list2cmdline
    needquote = (" " in arg) or ("\t" in arg) or not arg

TypeError: argument of type 'WindowsPath' is not iterable

I guess we need to spin up windows CI as well.

Yeah, psi will effectively catch a lot for you, but half hour build is trying. I assume qcng will head azure-wards, too, eventually.
There's still something really bad in the detci+windows+psiapi+qcengine+subsequent_calc combination, but I have my fingers crossed that these Path changes may help that, too.

I think GHA+Windows will be the builds over Azure windows images. Pretty big fan of GHA once the codecov issue is patched up.

Going with this version since it gives a clean DDD https://github.com/psi4/psi4/pull/1351. Goodness knows the tmpdir commented line looks necessary, but detci on windows sure hates it. I didn't go back to psiexe and confirm I caught the important line for WindowPath error, but I bet I did, and I can always refix. Final result -- 17 commits for 7 lines.


possible changes to live content

Motivation
We receive quite a few suggestions from municipalities regarding live content - the purpose of this issue is to collect everything and prioritize them:

Show live content below the editor
Indicate when live content (used from other regions) was changed
Link to page where live content is from (below the live content selection in the page editor)/show live content and original pages in page tree
Allow copying of source code from live content

Proposed Solution
Discuss the four different features and once agreed upon, create issues for each one.
Design Requirements
Design requirements will be specified in the different issues.

I openend #3148 recently and it relates to the 1st and 3rd point so I'm just mentioning it here :)

Show live content below the editor

Link to page where live content is from (below the live content selection in the page editor)/show live content and original pages in page tree

Ah perfect - thanks @juliankehne
I think the showing it to non-experienced users is maybe one more point we can add here and then I'll start a list in this issue listing all the sub-issues :)


Plan 3Box at Devcon

Confirmed most members from both sides, uPort and 3Box, would prefer to stay together in Devcon. Submitted a few Airbnb inquiries.

I booked two airbnbs in Prague. Next up is ordering the food from a grocery delivery service, so the flat is stocked when we get there

@jjperezaguinaga that would be great! I'm not sure if I will be at the Status hackathon, but I will definitely be at Devcon. Let's connect closer to the event and we can figure out what our plan to connect is.