Can not run containerd as non-root user

So I started containerd as a non-root user, my config file below:
state = "/tmp/containerd"
oom_score = 0

[grpc]
  address = "/tmp/containerd/containerd.sock"
  uid = 1000
  gid = 1000

[debug]
  address = "/tmp/containerd/debug.sock"
  uid = 1000
  gid = 1000
  level = "info"
So I started containerd as a non-root user, my config file below:

```root = "/tmp/containerd/root"
state = "/tmp/containerd"
oom_score = 0

[grpc]
  address = "/tmp/containerd/containerd.sock"
  uid = 1000
  gid = 1000

[debug]
  address = "/tmp/containerd/debug.sock"
  uid = 1000
  gid = 1000
  level = "info"

[metrics]
  address = ""

[cgroup]
  path = ""```

And I'm trying to pull an image using ctr, but I get this error:

unpacking sha256:aeaedc464482b5076c6f2c1d2de8653709c02cbdf0b7f42906d7318f35094e5e...
INFO[0052] Apply failure, attempting cleanup             error="rpc error: code = Unknown desc = failed to mount: operation not permitted" key="extract-181850504-0kvE sha256:cd7100a72410606589a54b932cabd804a17f9ae5b42a1882bd56d263e02b6215"
ctr: failed to extract layer sha256:cd7100a72410606589a54b932cabd804a17f9ae5b42a1882bd56d263e02b6215: rpc error: code = Unknown desc = failed to mount: operation not permitted

and I think it must be with the file systems, I wonder whether the upstream work happening with `img` or `runc` would allow me to import/run as rootless, (I'm good with using runc natively as rootless and works fine), I wonder how that changes when using ctr/containerd API, as I need to import the images or can I just point the path to rootfs and will it work? Any helpers/pointers would be appreciated

If not set the path to the runc runtime_root in the config defaults to  "/run/containerd/runc"
see:
  [plugins.linux]
    shim = "containerd-shim"
    runtime = "runc"
    runtime_root = ""
    no_shim = false
    shim_debug = false

I don't know anyone that's tried to run containerd rootless, so warning this may take a pr to make it happen :-)

The actual use case here: https://github.com/kubernetes/community/pull/1934/files

I have PR for rootless mode https://github.com/containerd/containerd/pull/2006

You need to create mountns and map uid 1000 to 0 (unshare -m -r)

@AkihiroSuda Do you want to take the work from that PR and put your findings into a proposal issue so we can road map it for 1.2?

@stevvooe posting all the data I got:
config file
root = "/tmp/containerd/root"
state = "/tmp/containerd"
oom_score = 0

[grpc]
  address = "/tmp/containerd/containerd.sock"
  uid = 1000
  gid = 1000

[debug]
  address = "/tmp/containerd/debug.sock"
  uid = 1000
  gid = 1000
  level = "info"

[metrics]
  address = ""

[cgroup]
  path = ""

 [plugins.linux]
    shim = "containerd-shim"
    runtime = "runc"
    runtime_root = "/tmp/containerd/runc"
    no_shim = false
    shim_debug = false

Build containerd as per: https://github.com/containerd/containerd/issues/2246#issuecomment-377326321
Started containerd as: ./bin/containerd -c ~/containerd.config
Ran ctr pull as:
./ctr -a /tmp/containerd/containerd.sock --debug image pull --snapshotter=naive docker.io/library/alpine:latest
Got this error:
DEBU[0000] fetching                                      image="docker.io/library/alpine:latest"
DEBU[0000] resolving
DEBU[0000] do request                                    request.headers=map[Accept:[application/vnd.docker.distribution.manifest.v2+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.oci.image.manifest.v1+json, application/vnd.oci.image.index.v1+json, *]] request.method=HEAD url="https://registry-1.docker.io/v2/library/alpine/manifests/latest"
DEBU[0003] fetch response received                       response.headers=map[Www-Authenticate:[Bearer realm="https://auth.docker.io/token",service="registry.docker.io",scope="repository:library/alpine:pull"] Date:[Sun, 01 Apr 2018 15:49:21 GMT] Content-Length:[157] Strict-Transport-Security:[max-age=31536000] Content-Type:[application/json; charset=utf-8] Docker-Distribution-Api-Version:[registry/2.0]] status="401 Unauthorized" url="https://registry-1.docker.io/v2/library/alpine/manifests/latest"
DEBU[0003] Unauthorized                                  header="Bearer realm="https://auth.docker.io/token",service="registry.docker.io",scope="repository:library/alpine:pull""
DEBU[0006] do request                                    request.headers=map[Accept:[application/vnd.docker.distribution.manifest.v2+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.oci.image.manifest.v1+json, application/vnd.oci.image.index.v1+json, *]] request.method=HEAD url="https://registry-1.docker.io/v2/library/alpine/manifests/latest"
DEBU[0007] fetch response received                       response.headers=map[Content-Length:[2029] Content-Type:[application/vnd.docker.distribution.manifest.list.v2+json] Docker-Content-Digest:[sha256:7df6db5aa61ae9480f52f0b3a06a140ab98d427f86d8d5de0bedab9b8df6b1c0] Docker-Distribution-Api-Version:[registry/2.0] Etag:["sha256:7df6db5aa61ae9480f52f0b3a06a140ab98d427f86d8d5de0bedab9b8df6b1c0"] Date:[Sun, 01 Apr 2018 15:49:25 GMT] Strict-Transport-Security:[max-age=31536000]] status="200 OK" url="https://registry-1.docker.io/v2/library/alpine/manifests/latest"
DEBU[0007] resolved                                      desc.digest=sha256:7df6db5aa61ae9480f52f0b3a06a140ab98d427f86d8d5de0bedab9b8df6b1c0
DEBU[0007] fetch                                         digest=sha256:7df6db5aa61ae9480f52f0b3a06a140ab98d427f86d8d5de0bedab9b8df6b1c0 mediatype="application/vnd.docker.distribution.manifest.list.v2+json" size=2029
DEBU[0007] fetch                                         digest=sha256:8c03bb07a531c53ad7d0f6e7041b64d81f99c6e493cb39abba56d956b40eacbc mediatype="application/vnd.docker.distribution.manifest.v2+json" size=528
DEBU[0007] fetch                                         digest=sha256:ff3a5c916c92643ff77519ffa742d3ec61b7f591b6b7504599d95a4a41134e28 mediatype="application/vnd.docker.image.rootfs.diff.tar.gzip" size=2065537
DEBU[0007] fetch                                         digest=sha256:3fd9065eaf02feaf94d68376da52541925650b81698c53c6824d92ff63f98353 mediatype="application/vnd.docker.container.image.v1+json" size=1512
DEBU[0007] unpacking                                     image="docker.io/library/alpine:latest"
unpacking sha256:7df6db5aa61ae9480f52f0b3a06a140ab98d427f86d8d5de0bedab9b8df6b1c0...
INFO[0007] Apply failure, attempting cleanup             error="failed to unmount /tmp/containerd/root/tmpmounts/containerd-mount560706161: operation not permitted: failed to mount /tmp/containerd/root/tmpmounts/containerd-mount560706161: operation not permitted: unknown" key="extract-484204957-wLGm sha256:cd7100a72410606589a54b932cabd804a17f9ae5b42a1882bd56d263e02b6215"
ctr: failed to extract layer sha256:cd7100a72410606589a54b932cabd804a17f9ae5b42a1882bd56d263e02b6215: failed to unmount /tmp/containerd/root/tmpmounts/containerd-mount560706161: operation not permitted: failed to mount /tmp/containerd/root/tmpmounts/containerd-mount560706161: operation not permitted: unknown```

Same result after running in a mapped mount namespace as per @AkihiroSuda 's comments above `unshare -m -r`

@stevvooe yes, I'll do
@frezbo

Since you are in mapped UID 0, you don't need to write uid/gid = 1000 in config.toml
Some distro such as Debian requires writing  echo 1 > /proc/sys/kernel/unprivileged_userns_clone
Could you make sure you can execute mount --bind (without containerd) in unshare -m -r env?

@stevvooe https://github.com/containerd/containerd/issues/2262

I forgot to add my distro details: I am running Fedora 27 with SELinux in full enforcing mode, though the above errors have nothing to do with SELinux, I have checked the logs

@AkihiroSuda I'm able to do a bind mount in unshare env, please check if the below is right:
~ (aws:default)(kc)$ umount /tmp/proc
~ (aws:default)(kc)$ mkdir -p /tmp/proc
~ (aws:default)(kc)$ mount --bind /tmp/ /tmp/proc
~ (aws:default)(kc)$ umount /tmp/proc
~ (aws:default)(kc)$ rm -rf /tmp/proc/
~ (aws:default)(kc)$

@AkihiroSuda shouldn't image pull --snapshotter=naive work without gid/uid remapping and mount syscalls? I thought that now called native snapshotter is supposed to work on unprivileged and old systems (from your PR description: https://github.com/containerd/containerd/pull/2261).

No, especially for an image that contains files owned by non-default users.
Alternatively we could implement user.rootlesscontainers xattr as in umoci though

I suppose this is closable now: https://github.com/containerd/containerd/blob/master/docs/rootless.md


Compressed genesis

I think you'll need to unzip the genesis.json.zip file on line 27 of the script 🤔

the compressed file (after unzipping) fails verification


fix helm test --logs command throws exception

What this PR does / why we need it:

Fix the kind type of hook that does not support throwing exceptions

Support the job type to obtain its log

I tried to solve those issue : https://github.com/helm/helm/issues/8342 、https://github.com/helm/helm/issues/8018 、https://github.com/helm/helm/issues/6968.
If not, please give me some advice.Thx!
Special notes for your reviewer:
If applicable:

[ ] this PR contains documentation
[ ] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

please write a test to cover this case. Thanks.

please write a test to cover this case. Thanks.

I tried to write UT for a while, but I didn't feel right. I hope to get your suggestions. Then there is a bug in mock pod log and I need to wait for a release：https://github.com/kubernetes/kubernetes/pull/92952

@Cweiping Are you still working on this? If not maybe someone else can help push this forward!


Update docs for 0.5

Changes introduced with this PR
Update/verify documentation for 0.5.

By contributing to this repository, I agree to the contribution guidelines.

Merged.


Download 2015 assessor data set and figure counts for use types

In the building tag, OSM allows for houses, but in the assessor's data we see two levels of uses. There's a "GeneralUseType" and a "SpecificUseType"

[x] Download data set
[x] Do counts for GeneralUseType and SpecificUseType
[x] Put use types in Google Spreadsheet to figure out what tag and value

Done by @cityhubla and me in the spreadsheet


Don't push to latest tag on prereleases.

Description
As it currently stands we are pushing to docker :latest tag on prereleases.

Confirmation of no latest tag on the most recent pre-release.


Install Envoy with getenvoy went wrong

Title: Install Envoy with getenvoy went wrong
Description:
Install Envoy with getenvoy went wrong

Repro steps:
follow instructions at getenvoy site

@Xunzhuo my guess is that this is related to release yesterday
cc @lizan

1.18.2 has been released but I try to install it with getenvoy, return 404 as this issue tells and getenvoy try to install v1,17.1

Yes I'm working on them. We're also doing migration from Bintray because it will be sunset on May 1.

@lizan tks~
It seems like that I can directly get .rpm from http://tetrate.bintray.com/getenvoy-rpm/centos/8/x86_64/stable/Packages/

@Xunzhuo it is weird that your package manager is trying to download from getenvoy-rpm/centos/2.2 which is not a valid centos version. What's the environment you're using?

@lizan Ops~ I realize what may caused this weird error, my server runs on a System of Tencent which based on CentOS, and its version is 2.2, so package manager is trying to download from getenvoy-rpm/centos/2.2  which caused 404 response...

@Xunzhuo is this resolved ?
afaict all of the tetrate/bintray links are not working - at least the ones linked from Envoy install docs - i think we should keep it open until this can be successfully installed

https://status.bintray.com/incidents/x1dvhtdqkcnx


DBField converts to string using wrong encoding

When you get data from a varchar database column and the data has some diacritics the resulting Dolphin String contains the diamond char instead of the diacritic one.
I've changed the DBField>>asString method this way and it worked OK. But I'm not sure if that's the best/right way.
asString
	"Private - Answer the receiver's buffer as a <String>."

	^buffer copy: AnsiString from: 1 to: self length

Also I've found the following article
https://docs.microsoft.com/en-us/sql/relational-databases/native-client-odbc-results/autotranslation-of-character-data?view=sql-server-2017
but seems that only applies to sql server.
and https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/programming-guidelines?view=sql-server-2017#character-set-support
Any thoughts?

I think that is the right fix for SQL_CHAR, SQL_VARCHAR, etc, columns. The #fromString: needs a fix for the reverse direction:.
fromString: aString
	"Private - Set the receiver's buffer from aString."

	(self shouldTranslate: aString class: String)
		ifTrue:
			[| byteCount ansi |
			"This may be lossy; unrepresentable chars will be converted to the replacement char"
			ansi := aString asAnsiString.
			byteCount := ansi size.
			byteCount > buffer size
				ifTrue:
					[^self error: 'String too long. Max ' , buffer size displayString , ' got ' , byteCount displayString].
			buffer
				replaceFrom: 1
				to: byteCount
				with: ansi.
			self length: byteCount]

The SQL_WCHAR, SQL_WVARCHAR column types need #asUtf16String and #fromUtf16String: get/set methods added and then used appropriately in the initialization of the GetSelectors and SetSelectors maps in DBField class>>initialize.
There is a need for more work to convert the Database Connection packages to work with UTF-16 strings by default. At present it is still using the Ansi ODBC APIs.  I'm afraid I didn't give it much attention when I did the UTF work.

OK Thanks. I'll take a look at this, do some manual tests with my database and send a MR later.
Here is the documentation for unicode odbc.

I'm having trouble with #fromUtf16String:
I've implemented this way, note that I'm using unicode size instead of unicode byteSize. That's because using #byteSize results in a "size of replacement incorrect" error in the replaceFrom: .... method. I understand the problem but I didn't found how to solve it. Tried several things and I always end with incorrect results. I'm trying to insert into a nvarchar column using a DBParameterizedStatement.
This is my #fromUtf16String: version:
fromUtf16String: aString
	"Private - Set the receiver's buffer from aString. It could be an AnsiString or Utf8String too so we convert to Utf16."

	(self shouldTranslate: aString class: String)
		ifTrue:
			[| byteCount unicode |
			"This may be lossy; unrepresentable chars will be converted to the replacement char"
			unicode := aString asUtf16String.
			byteCount := unicode size. "unicode byteSize ??"
			byteCount > buffer size
				ifTrue:
					[^self error: 'String too long. Max ' , buffer size displayString , ' got ' , byteCount displayString].
			buffer
				replaceFrom: 1
				to: byteCount
				with: unicode.
			self length: byteCount]

I also had to change the SQL_C_WCHAR constant from -9 to -8 See this because using the actual value results in a bind api call error. I'm currently reading OK Ansi and Unicode (with non latin chars) from the database. Only remains this problem with #fromUtf16String:

Ok, so the size reported by a Utf16String will be its size in code units, i.e. 16-bit words. In this case you should use the size in bytes (although not #byteSize, since this includes the null terminator which I think you probably don't want), although #replaceFrom:to:with: is confused by the mix of word and byte sized collections. I think the error check it contains is redundant since the method it calls will perform this check directly or indirectly anyway. I suggest:
fromUtf16String: aString
	"Private - Set the receiver's buffer from aString. It could be an AnsiString or Utf8String too so we convert to Utf16."

	(self shouldTranslate: aString class: String)
		ifTrue:
			[| byteCount unicode |
			unicode := aString asUtf16String.
			byteCount := unicode size << 1.
			byteCount > buffer size
				ifTrue:
					[^self error: 'String too long. Max ' , (buffer size >> 1) displayString , ' got ' , unicode size displayString].
			buffer
				replaceFrom: 1
				to: byteCount
				with: unicode
				startingAt: 1.
			self length: byteCount]

I'm not surprised the constant definition is wrong. Originally these were defined by hand, and then they may not have been exercised so any error went unnoticed.

In case it isn't obvious, I suspect this won't work without migrating everything over onto the wide string APIs. I would assume that when using the ANSI APIs that the driver will be doing a WideCharToMultiByte on the contents of a WCHAR column on the assumption that the caller cannot handle UTF-16.
I would expect that to be quite a lot of work, and the nature of the API is such that it will be easy to crash Dolphin by unmodified parts of the old code passing in buffers that are sized for byte characters to an API expecting to write wide chars to that buffer.

Nope it didn't work :(
I'm using 'അ' as test string. The character has the code point 3333 and asByteArray #[5 13]. With the fromUtf16String: implementation provided by you the buffer is correctly written #[5 13] and the length set to 2. After insert, in the database side, the string isn't visible. When I query again that row I get in that column's buffer #[5 0 13 0] with length 4. Is that the problem you described before?
It's a pity because for reading nvarchar there isn't such a problem. Could you explain me why?
This is a picture with results from DB. The first 3 rows where inserted from sql management studio. The last one from Dolphin. The first column is always a varchar and the second nvarchar

I'll take a look for you. #[5 13] is the correct encoded representation in UTF-16 as your test character requires only a single code point. However, it looks as if it is being interpreted by ODBC as if originating from a byte character buffer. In the original Dolphin implementation, which did not of course have any proper support for multi-byte strings, we just mapped the wide character column types to narrow character 'C' types, i.e. instructed ODBC to map SQL_WVARCHAR -> SQL_C_CHAR. You can see this in the map defined in DBColAttr class>>initialize. This is what defines what ODBC is expecting to find in the buffer, and has to match the conversions defined in DBField class>>initialize. There is a two stage conversion when sending data to SQL:

Dolphin converts from Object format to a byte buffer, e.g. a Utf16String to the byte encoding (a direct copy in this case)
The ODBC driver converts from the 'C' buffer to the representation required for the column. This would have performed a narrow to wide conversion in the original Database Connection configuration.
And on reading, there is similarly a conversion from the SQL data type to the specific SQL_C_xxx type that Dolphin has configured for the column, and then Dolphin constructs an object from the C bytes.
This will undoubtedly work when moving in a direction to/from an internal ANSI string on the same machine because the driver respects the current code page. It probably works even when the code page is different between the machine that wrote the data and the machine that reads it, because SQL probably stores sufficient information to be able to convert it to a different code page (e.g. it remembers the original code page, or it stores it in UTF-8 or UTF-16). Where this will break is if the character has no mapping in the code page of the machine on which it is being read. For example I'd be surprised if that Malayalam character would survive be stored to a SQL_WVARCHAR (nvarchar) column and retrieved as an ANSI string in most code pages.
Anyway, rather than talking about it in theory, I'd prefer to go and try it. I suspect there are going to be other issues than just matching up the DBField and DBColAttr mappings.

Thanks Blair, there's no hurry.
To be clear, I've changed the following methods:
DBColAttr class>>initialize (-8 is SQL_C_WCHAR, note that -9 is SQL_C_WVARCHAR but the bind fails with that value)
initialize
	"Private - Initialize the receiver's class variables.
		self initialize
	"

	"The types to convert the result data to on loading into our buffers - normally these are the default conversions
	 because they are sensible for most things except GUIDs (where the default string conversion doesn't match
	 the reported column length, which makes allocating an appropriately sized buffer tricky. We also let the ODBC
	 driver(manager) convert wide character strings on our behalf"

	SQLToCTypes := (Array new: SQL_NUM_TYPES)
				at: SQL_GUID + TypeOffset put: SQL_C_GUID;
				at: SQL_WLONGVARCHAR + TypeOffset put: SQL_C_CHAR;
				at: SQL_WVARCHAR + TypeOffset put: -8;
				at: SQL_WCHAR + TypeOffset put: -8;
				at: SQL_BIT + TypeOffset put: SQL_C_BIT;
				at: SQL_TINYINT + TypeOffset put: SQL_C_TINYINT;
				at: SQL_BIGINT + TypeOffset put: SQL_C_SBIGINT;
				at: SQL_LONGVARBINARY + TypeOffset put: SQL_C_BINARY;
				at: SQL_VARBINARY + TypeOffset put: SQL_C_BINARY;
				at: SQL_BINARY + TypeOffset put: SQL_C_BINARY;
				at: SQL_LONGVARCHAR + TypeOffset put: SQL_C_CHAR;
				at: SQL_TYPE_NULL + TypeOffset put: SQL_C_DEFAULT;
				at: SQL_CHAR + TypeOffset put: SQL_C_CHAR;
				at: SQL_NUMERIC + TypeOffset put: SQL_C_CHAR;
				at: SQL_DECIMAL + TypeOffset put: SQL_C_CHAR;
				at: SQL_INTEGER + TypeOffset put: SQL_C_LONG;
				at: SQL_SMALLINT + TypeOffset put: SQL_C_SHORT;
				at: SQL_FLOAT + TypeOffset put: SQL_C_DOUBLE;
				at: SQL_REAL + TypeOffset put: SQL_C_FLOAT;
				at: SQL_DOUBLE + TypeOffset put: SQL_C_DOUBLE;
				at: SQL_DATE + TypeOffset put: SQL_C_DATE;
				at: SQL_TIME + TypeOffset put: SQL_C_TIME;
				at: SQL_TIMESTAMP + TypeOffset put: SQL_C_TIMESTAMP;
				at: SQL_VARCHAR + TypeOffset put: SQL_C_CHAR;
				yourself

DBField class>>initialize
initialize
	"Initialize the dictionaries of to/from
	C Type/Smalltalk object converters.
		DBField initialize
	Note that the maps rely on the sequential numbering of the type enumerations.
	"

	self assert: [TypeOffset = (SQL_GUID abs + 1)].
	self assert: [SQL_NUM_TYPES = (TypeOffset + SQL_VARCHAR)].
	GetSelectors := (Array new: SQL_NUM_TYPES)
				at: SQL_GUID + TypeOffset put: #asGUID;
				at: SQL_WLONGVARCHAR + TypeOffset put: #asString;
				at: SQL_WVARCHAR + TypeOffset put: #asUtf16String;
				at: SQL_WCHAR + TypeOffset put: #asUtf16String;
				at: SQL_BIT + TypeOffset put: #asBoolean;
				at: SQL_TINYINT + TypeOffset put: #asByte;
				at: SQL_BIGINT + TypeOffset put: #asInt64;
				at: SQL_LONGVARBINARY + TypeOffset put: #asByteArray;
				at: SQL_VARBINARY + TypeOffset put: #asByteArray;
				at: SQL_BINARY + TypeOffset put: #asByteArray;
				at: SQL_LONGVARCHAR + TypeOffset put: #asString;
				at: SQL_CHAR + TypeOffset put: #asString;
				at: SQL_NUMERIC + TypeOffset put: #numberFromNumeric;
				at: SQL_DECIMAL + TypeOffset put: #numberFromNumeric;
				at: SQL_INTEGER + TypeOffset put: #asLong;
				at: SQL_SMALLINT + TypeOffset put: #asShort;
				at: SQL_FLOAT + TypeOffset put: #asDouble;
				at: SQL_REAL + TypeOffset put: #asFloat;
				at: SQL_DOUBLE + TypeOffset put: #asDouble;
				at: SQL_DATE + TypeOffset put: #asDate;
				at: SQL_TIME + TypeOffset put: #asTime;
				at: SQL_TIMESTAMP + TypeOffset put: #asTimeStamp;
				at: SQL_VARCHAR + TypeOffset put: #asString;
				yourself.
	SetSelectors := (Array new: SQL_NUM_TYPES)
				at: SQL_CHAR + TypeOffset put: #fromString:;
				at: SQL_NUMERIC + TypeOffset put: #numberToNumeric:;
				at: SQL_DECIMAL + TypeOffset put: #numberToNumeric:;
				at: SQL_INTEGER + TypeOffset put: #fromLong:;
				at: SQL_SMALLINT + TypeOffset put: #fromShort:;
				at: SQL_FLOAT + TypeOffset put: #fromDouble:;
				at: SQL_REAL + TypeOffset put: #fromFloat:;
				at: SQL_DOUBLE + TypeOffset put: #fromDouble:;
				at: SQL_DATE + TypeOffset put: #fromDate:;
				at: SQL_TIME + TypeOffset put: #fromTime:;
				at: SQL_TIMESTAMP + TypeOffset put: #fromTimeStamp:;
				at: SQL_VARCHAR + TypeOffset put: #fromString:;
				at: SQL_LONGVARCHAR + TypeOffset put: #fromString:;
				at: SQL_BINARY + TypeOffset put: #fromByteArray:;
				at: SQL_VARBINARY + TypeOffset put: #fromByteArray:;
				at: SQL_LONGVARBINARY + TypeOffset put: #fromByteArray:;
				at: SQL_BIGINT + TypeOffset put: #fromInt64:;
				at: SQL_TINYINT + TypeOffset put: #fromByte:;
				at: SQL_BIT + TypeOffset put: #fromBoolean:;
				at: SQL_WCHAR + TypeOffset put: #fromString:;
				at: SQL_WVARCHAR + TypeOffset put: #fromUtf16String:;
				at: SQL_WLONGVARCHAR + TypeOffset put: #fromUtf16String:;
				at: SQL_GUID + TypeOffset put: #fromGUID;
				yourself

DBField>>asString and #fromString:
asString
	"Private - Answer the receiver's buffer as a <String>."

	^buffer copy: AnsiString from: 1 to: self length

fromString: aString
	"Private - Set the receiver's buffer from aString."

	(self shouldTranslate: aString class: String)
		ifTrue:
			[| byteCount ansi |
			"This may be lossy; unrepresentable chars will be converted to the replacement char"
			ansi := aString asAnsiString.
			byteCount := ansi size.
			byteCount > buffer size
				ifTrue:
					[^self error: 'String too long. Max ' , buffer size displayString , ' got ' , byteCount displayString].
			buffer
				replaceFrom: 1
				to: byteCount
				with: ansi.
			self length: byteCount]

DBField>>asUtf16String and fromUtf16String: using your implementation.
asUtf16String
	"Private - Answer the receiver's buffer as a <Utf16String>."

	^Utf16String fromByteArray: buffer length: self length // Utf16String elementSize

I ran the tests using MSSQLServer 2017 with the SQL Server Native Client 11.0 driver.
I used the following tables and test data:
create table unicode_test
(
    string varchar(100),
    unicode_string nvarchar(100)
)
go

insert into unicode_test (string, unicode_string) values ('Camión', 'Camión');
insert into unicode_test (string, unicode_string) values ('Unicode', N'ღმერთსი შემვედრე, ნუთუ კვლა დამხსნას სოფლისა შრომასა');
insert into unicode_test (string, unicode_string) values ('Unicode', N'അ');

I eventually discovered the reason for the data being inserted with null bytes in your experiments, and it was because of specifying SQL_C_DEFAULT in the DBParameterizedStatement>>setParams method. Rather than specifying the actual buffer being passed, this was saying "assume it is the default for this column type". One would have thought that the default assumption for nvarchar would be SQL_C_WCHAR, but in fact it is SQL_C_CHAR. This is probably for backwards compatibility with old clients that are not Unicode aware.
Anyway, I worked through the whole thing doing a transformation on it to support UTF encoded strings (something I overlooked when I did that work last year). The issue with SQL_C_DEFAULT was one of the last things I discovered. I think I have it all covered in my new PR, however, if you'd like to try it out.

Thanks, I'm testing a bit now

Awesome! works perfect with my tiny tests. Maybe in some time we start to use master and do more serious tests because our app does a very intensive use of odbc.
If you have the snippet in #752 as a test I'd add this 2 lines
c query: 'insert into 海豚 (Ansi, 編碼) values (''Inserted by sql 1'', N''അ'')'.
c query: 'insert into 海豚 (Ansi, 編碼) values (''Inserted by sql 2'', N''Camión'')'.

I have no more ways to say thank you, sorry, due to my limited english sometimes is difficult to express my gratitude.

No problem. I'll merge it.


⚠ Mobitopup has degraded performance

In 3b2e7e3, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 8972 ms

Resolved: Mobitopup performance has improved in 19ff24e.


Improving the HandlesQuerySource functionality to better deal with SelectMany-GroupJoin-DefaultIfEmpty cases.

@smitpatel @anpete

looks good.

@smitpatel @maumar It seems like this is still pretty ad-hoc? If so, can we move to something more general?

filed https://github.com/aspnet/EntityFramework/issues/7716 to track this


Error when running the site locally

When I run jekyll serve -w I get the error
WARN: Unresolved specs during Gem::Specification.reset:
      rb-fsevent (>= 0.9.3)
      ffi (>= 0.5.0)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.
Configuration file: /Users/najela/OpenSource/GitHub/myGithub/devfest-mezam/_config.yml
/Library/Ruby/Gems/2.0.0/gems/jekyll-2.5.3/lib/jekyll/plugin_manager.rb:29:in `require': cannot load such file -- jekyll-sitemap (LoadError)
	from /Library/Ruby/Gems/2.0.0/gems/jekyll-2.5.3/lib/jekyll/plugin_manager.rb:29:in `block in require_gems'
	from /Library/Ruby/Gems/2.0.0/gems/jekyll-2.5.3/lib/jekyll/plugin_manager.rb:26:in `each'
	from /Library/Ruby/Gems/2.0.0/gems/jekyll-2.5.3/lib/jekyll/plugin_manager.rb:26:in `require_gems'
	from /Library/Ruby/Gems/2.0.0/gems/jekyll-2.5.3/lib/jekyll/plugin_manager.rb:19:in `conscientious_require'
	from /Library/Ruby/Gems/2.0.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:79:in `setup'
	from /Library/Ruby/Gems/2.0.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:41:in `initialize'
	from /Library/Ruby/Gems/2.0.0/gems/jekyll-2.5.3/lib/jekyll/commands/build.rb:29:in `new'
	from /Library/Ruby/Gems/2.0.0/gems/jekyll-2.5.3/lib/jekyll/commands/build.rb:29:in `process'
	from /Library/Ruby/Gems/2.0.0/gems/jekyll-2.5.3/lib/jekyll/commands/serve.rb:26:in `block (2 levels) in init_with_program'
	from /Library/Ruby/Gems/2.0.0/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in `call'
	from /Library/Ruby/Gems/2.0.0/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in `block in execute'
	from /Library/Ruby/Gems/2.0.0/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in `each'
	from /Library/Ruby/Gems/2.0.0/gems/mercenary-0.3.5/lib/mercenary/command.rb:220:in `execute'
	from /Library/Ruby/Gems/2.0.0/gems/mercenary-0.3.5/lib/mercenary/program.rb:42:in `go'
	from /Library/Ruby/Gems/2.0.0/gems/mercenary-0.3.5/lib/mercenary.rb:19:in `program'
	from /Library/Ruby/Gems/2.0.0/gems/jekyll-2.5.3/bin/jekyll:20:in `<top (required)>'
	from /usr/bin/jekyll:23:in `load'
	from /usr/bin/jekyll:23:in `<main>'

This is my output for bundle install
Using RedCloth 4.2.9
Using i18n 0.7.0
Using json 1.8.3
Using minitest 5.8.0
Using thread_safe 0.3.5
Using tzinfo 1.2.2
Using activesupport 4.2.4
Using addressable 2.3.8
Using execjs 2.6.0
Using autoprefixer-rails 6.0.2
Using blankslate <IP_ADDRESS>
Using hitimes 1.2.2
Using timers 4.0.4
Using celluloid 0.16.0
Using chunky_png 1.3.4
Using fast-stemmer 1.0.2
Using classifier-reborn 2.0.3
Using coffee-script-source <IP_ADDRESS>
Using coffee-script 2.4.1
Using colorator 0.1
Using multi_json 1.11.2
Using sass 3.4.18
Using compass-core 1.0.3
Using compass-import-once 1.0.5
Using rb-fsevent 0.9.6
Using ffi 1.9.10
Using rb-inotify 0.9.5
Using compass 1.0.3
Using ethon 0.7.4
Using gemoji 2.1.0
Using net-dns 0.8.0
Using public_suffix 1.5.1
Using typhoeus 0.7.3
Using github-pages-health-check 0.5.3
Using jekyll-coffeescript 1.0.1
Using jekyll-gist 1.3.4
Using jekyll-paginate 1.1.0
Using jekyll-sass-converter 1.3.0
Using listen 2.10.1
Using jekyll-watch 1.2.1
Using kramdown 1.5.0
Using liquid 2.6.2
Using mercenary 0.3.5
Using posix-spawn 0.3.11
Using yajl-ruby 1.2.1
Using pygments.rb 0.6.3
Using redcarpet 3.3.2
Using safe_yaml 1.0.4
Using parslet 1.5.0
Using toml 0.1.2
Using jekyll 2.4.0
Using jekyll-feed 0.3.1
Using mini_portile 0.6.2
Using nokogiri <IP_ADDRESS>
Using html-pipeline 1.9.0
Using jekyll-mentions 0.2.1
Using jekyll-redirect-from 0.8.0
Using jekyll-sitemap 0.8.1
Using jemoji 0.5.0
Using maruku 0.7.0
Using rdiscount 2.1.7
Using terminal-table 1.5.2
Using github-pages 39
Using sass-media_query_combiner 0.0.7
Using bundler 1.10.5
Bundle complete! 4 Gemfile dependencies, 65 gems now installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

Strange, it seems like jekyll-sitemap is missed however it should be included into github-pages gem.
Try to run gem 'jekyll-sitemap' and let me know about your results

which repo is this? I thought you were using my fork gdgbambili repo?

@Ch3ck it gdg[x] repo.

@ozasadnyy  I've solved the issue. I had to run jekyll with bundle exec jekyll serve


Zoom in mobile device with gesture

can we zoom the pdf with gesture in mobile device? the behavior should same with "+" in toolbar, not zoom all browser.

Closing as duplicate of issue #2582.


[SPARK-28668][SQL][WIP] Support V2SessionCatalog for ALTER TABLE

What changes were proposed in this pull request?
Adds support for the V2SessionCatalog for ALTER TABLE statements.
Why are the changes needed?
To allow V2 DataSources to plug in through a configurable plugin interface without requiring the explicit use of catalog identifiers, and leverage ALTER TABLE statements.
How was this patch tested?
TODO

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/14427/
Test PASSed.

Test build #109362 has started for PR 25502 at commit fd680e8.

Test build #109362 has finished for PR 25502 at commit fd680e8.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/109362/
Test PASSed.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/14730/
Test PASSed.

Test build #109683 has started for PR 25502 at commit 5b57a4c.

Test build #109683 has finished for PR 25502 at commit 5b57a4c.

This patch fails Spark unit tests.
This patch does not merge cleanly.
This patch adds no public classes.

Build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/109683/
Test FAILed.

LGTM. @brkyvz is there anything still WIP?

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/14948/
Test PASSed.

Test build #109922 has started for PR 25502 at commit 1f82198.

Test build #109922 has finished for PR 25502 at commit 1f82198.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/109922/
Test PASSed.

thanks, merging to master!


Update README.md

[Bug-fix]: changed the url for image so that image is shown properly.
Please merge it under hacktoberfest-accepted.

what have you changed @JayShukla8 dear ?

the path as you can see in the files changed:
images/SC2.png - right.
Images/SC2.png - earlier/wrong.
Because of small i in image, there is an error in rendering the image in readme.

I corrected that bug.
So now, it's like this.


Incorrect property reference URI

I have a link to the HttpContext.Sessionproperty link like this: :dn:prop:`Microsoft.AspNet.Http.HttpContext.Session`
The generated URL is: http://docs.asp.net/projects/api/en/latest/autoapi/Microsoft/AspNet/Http/HttpContext/index.html#Microsoft.AspNet.Http.HttpContext.Session
But this just goes to the HttpContext class page, instead of going right to the property.
The URL that appears to work is: https://docs.asp.net/projects/api/en/latest/autoapi/Microsoft/AspNet/Http/HttpContext/index.html#prop-Microsoft.AspNet.Http.HttpContext.Session

I see a similar issue with methods.
This link to the IApplicationBuilder.Use() method: :dn:meth:`Microsoft.AspNet.Builder.IApplicationBuilder.Use`
Produces this URL: http://docs.asp.net/projects/api/en/latest/autoapi/Microsoft/AspNet/Builder/IApplicationBuilder/index.html#Microsoft.AspNet.Builder.IApplicationBuilder.Use
But this is the URL that actually resolves to the method: http://docs.asp.net/projects/api/en/latest/autoapi/Microsoft/AspNet/Builder/IApplicationBuilder/index.html#meth-Microsoft.AspNet.Builder.IApplicationBuilder.Use


Tune dependency automation to be less noisy

My recommendation is to consider the following options to make dependabot updates less churnful:

Apply a update group to the npm package ecosystem. (Ref)
Downgrade the frequency from daily to weekly.

Closing this as no longer needed.


repoURL in Environments

What should be a value used in Environment .spec.subscriptions.repos.images[].repoURL? The examples in the docs use nginx so I thought that it should be any valid container image but when I put something like c8n.io/vfarcic/kargo-demo it fails to pass the CRD regex for that field which does not allow - or  /.

@vfarcic the regex is likely too restrictive. I'll take a look as soon as I'm able, but we'd also welcome a PR if you want to take crack at it.

The regex validation is here: https://github.com/akuity/kargo/blob/5cf88168aa00bb2678d74a34ef136e4d0d6239b5/api/v1alpha1/stage_types.go#L115


Legend icons have a wrong size

https://carto.com/developers/carto-vl/examples/maps/guides/add-legends/step-8.html
https://carto.com/developers/carto-vl/examples/#example-image-legend

This could be fixed by using: -webkit-mask-size: cover;. But maybe removing the size from the SVG (width, height) could be a solution too.

I'm going for the css fix for the next release

Fixed: https://github.com/CartoDB/carto-vl/pull/1364


GFF3 files with sequence included

In bacterial genomics we normally want the annotations and the sequences/contigs. This tool currently only handles each separately (as that is how NCBI provides it) via -F fasta and -F gff3.
This -F fullgff proposal would download the fasta and gff and construct the following:
##gff-version 3
<insert GFF>
##FASTA
<insert FASTA>

See https://github.com/The-Sequence-Ontology/Specifications/blob/master/gff3.md

That's where I'd use GenBank files, to be honest. Those have more data in then than the GFF files provide for all I can see from my ncbi-genome-download experience.
I see the appeal of this feature, but I need to think about how to integrate it in the current structure of the code.


fix: disable secret populate on PRs

as we may not have cloud IAM roles to read current secrets so we may try populate default values

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign jstrachan
You can assign the PR to them by writing /assign @jstrachan in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@jstrachan: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

kube
95c023397607c3b3f6c5ab9cfbed19cf31b9b527
link
/test kube

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.

@jstrachan: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

kube
95c023397607c3b3f6c5ab9cfbed19cf31b9b527
link
/test kube

gsm
95c023397607c3b3f6c5ab9cfbed19cf31b9b527
link
/test gsm

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.

@jstrachan: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

kube
95c023397607c3b3f6c5ab9cfbed19cf31b9b527
link
/test kube

gsm
95c023397607c3b3f6c5ab9cfbed19cf31b9b527
link
/test gsm

tls
95c023397607c3b3f6c5ab9cfbed19cf31b9b527
link
/test tls

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.

@jstrachan: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

kube
95c023397607c3b3f6c5ab9cfbed19cf31b9b527
link
/test kube

gsm
95c023397607c3b3f6c5ab9cfbed19cf31b9b527
link
/test gsm

tls
95c023397607c3b3f6c5ab9cfbed19cf31b9b527
link
/test tls

vault
95c023397607c3b3f6c5ab9cfbed19cf31b9b527
link
/test vault

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.

/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jstrachan
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jstrachan]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Research potential designs to implement IDs for vertices, edges, and labels. Designs that would generally work with existing code and that would permit multiple labels to be assigned to vertices and edges

Looking forward to working on this project.

Excited to contribute to this project!

Excited to work on this project.

Thank you all for selecting this project!
Per our meeting, the first tasks should be for everyone to get acquainted with PostgreSQL, Cypher, AGE's implementation of Cypher, and building and debugging the AGE extension.
The next step will be for us to work out a way that we can all work as a team, i.e., work together as a cohesive group to understand the issue and design potential solutions. We will discuss this in the next gchat.

I'm looking forward to collaborating with the team and work on this project!

Hey team,
So I came up with some ideas and since the shared document is still not available yet, I thought of putting them on dev to because of good readability, formatting and share-ability.
Would love to have your insights on it.

@CapnSpek Have Udaya Ganesh link you the spreadsheet for this. You will be able to put it there as well.

hello Guys. Here I have attached the sheet link. Kindly make use of it
https://docs.google.com/spreadsheets/d/1OICrYGikbbIT1qXX0N_08tUnt5NfQcg8SkscpIIEl6E/edit?usp=sharing

+1

@nupis-DanielS Hello. Could you please let us know what are your use cases of multiple labels?


components: Indirect returns don't validate that an into directive is present

Currently this validates:
(component
    (module $m
        (memory (export "memory") 1)
        (func (export "foo") (result i32) unreachable)
    )
    (instance $i (instantiate (module $m)))

    (func (export "tuple")
        (canon.lift
            (func (result (tuple s8 u8)))
            (func $i "foo")
        )
    )
)

but it shouldn't because an (into $i) directive is missing to indicate which memory the result is being loaded from.

An updated repro example for the latest text format:
(component
    (core module $m
        (memory (export "memory") 1)
        (func (export "foo") (result i32) unreachable)
    )
    (core instance $i (instantiate $m))

    (func (export "tuple") (result (tuple s8 u8))
        (canon lift (core func $i "foo"))
    )
)

I still haven't addressed the bug in wasmparser yet (the validation logic needs to also check if the result type would cause an "indirect multi-value" return in the canonical ABI too).


You are unable to access api.openai.com ??

Traceback (most recent call last): File "/root/miniconda3/lib/python3.11/site-packages/openai/api_requestor.py", line 753, in _interpret_response_line data = json.loads(rbody) ^^^^^^^^^^^^^^^^^ File "/root/miniconda3/lib/python3.11/json/init.py", line 346, in loads return _default_decoder.decode(s) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/miniconda3/lib/python3.11/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/miniconda3/lib/python3.11/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/root/miniconda3/lib/python3.11/site-packages/tenacity/init.py", line 382, in call result = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/root/ChatDev/camel/utils.py", line 145, in wrapper return func(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/ChatDev/camel/agents/chat_agent.py", line 191, in step response = self.model_backend.run(messages=openai_messages) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/ChatDev/camel/model_backend.py", line 72, in run response = openai.ChatCompletion.create(*args, **kwargs, model=self.model_type.value, **self.model_config_dict) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/miniconda3/lib/python3.11/site-packages/openai/api_resources/chat_completion.py", line 25, in create return super().create(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/miniconda3/lib/python3.11/site-packages/openai/api_resources/abstract/engine_api_resource.py", line 153, in create response, _, api_key = requestor.request( ^^^^^^^^^^^^^^^^^^ File "/root/miniconda3/lib/python3.11/site-packages/openai/api_requestor.py", line 298, in request resp, got_stream = self._interpret_response(result, stream) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/root/miniconda3/lib/python3.11/site-packages/openai/api_requestor.py", line 700, in _interpret_response self._interpret_response_line( File "/root/miniconda3/lib/python3.11/site-packages/openai/api_requestor.py", line 755, in _interpret_response_line raise error.APIError( openai.error.APIError: HTTP code 403 from API (
Please enable cookies.
Sorry, you have been blocked
You are unable to access api.openai.com
Why have I been blocked?
This website is using a security service to protect itself from online attacks. The action you just performed triggered the security solution. There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.
What can I do to resolve this?
You can email the site owner to let them know you were blocked. Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.
Cloudflare Ray ID: 8278bf091dc91061 • Your IP: Click to reveal <IP_ADDRESS> • Performance & security by Cloudflare
)

Use Vpn

Hello,
When encountering issues with accessing api.base, it is important to check your network connection. For instance, verify if your location is within the regions authorized for OpenAI usage. In this case, I would suggest connecting to a VPN based in the United States and switching to a stable network connection or trying out a mobile hotspot. Thank you for your interest and efforts in trying out ChatDev! If you have any more questions or issues, please don't hesitate to raise them again. 😊


[BUG] Intermittent output helper destroying resources

Checklist

[ x ] Upgrade Terraspace: Are you using the latest version of Terraspace? This allows Terraspace to fix issues fast. There's an Upgrading Guide: https://terraspace.cloud/docs/misc/upgrading/
[ x ] Reproducibility: Are you reporting a bug others will be able to reproduce and not asking a question. If you're unsure or want to ask a question, do so on https://community.boltops.com
[ x ] Code sample: Have you put together a code sample to reproduce the issue and make it available?  Code samples help speed up fixes dramatically. If it's an easily reproducible issue, then code samples are not needed. If you're unsure, please include a code sample.

My Environment

Software
Version

Operating System
Ubuntu 22.04

Terraform
1.4.6

Terraspace
2.2.6

Ruby
3.1.2p20

Expected Behaviour
During terraspace all (plan|up) the output helper for tfvars should consistently find values in the terraform statefile.
Current Behavior
Under unknown conditions the output helper doesn't alway find existing values in the terraform statefile. Which can result in resources being destroyed unintentionally. For example if a KMS key ID defaults to a mock.
Step-by-step reproduction instructions
Run terraspace all up.
Code Sample
Picture of problem:

Unable to share the exact producible steps because its intermittent. I am also unable to share the code sample because of companies security policies. However, I  have done my own investigation and found some interesting things that will help with implementing a fix, see the below.
The temporary statefiles that terraspace pull from terraform state (in /tmp/terraspace/remote_state/ directory do contain the values. This suggests that terraspace either isn't reading them correctly or isn't reading them at the correct time (possible race condition).
The below image is a snapshot of on of the values in the statefile that wasn't populated in my most recent expieriance of the problem:
As you can see the value for vpc_endpoint_ec2messages_id is in the statefile:
(I had to change the directory because of CICD)

So this means terraspace/terraform is getting the state correctly, however, it appears terraspace is not always loading it correctly. This is inconsistent across the deployment when other stacks are using the same outputs (This is why I believe it's a race condition).
As you can see from the below code snapshot the output helps are setup correctly:

Solution Suggestion
I have two things to mention regarding this issue.

Obviously the above is a problem and should be addressed some how (Not sure exactly).
Terraspace should fail hard if mocks are detected in the compiled terraform code (after templating).

We have implemented a workaround thats worth sharing. Obviously this bug can still be annoying when large projects fail to deploy but this workaround will make it less likely to destroy any infrastructure by accident.
In the ./config/hooks/terraform.rb file we added some hooks for detecting mocks to stop the deployments so we don't break anything.
# Terraspace calls out to the terraform command.
# You can execute commands before and after each command with CLI hooks.
#
# See: https://terraspace.cloud/docs/config/hooks/terraform

# WARNING: A hack to stop terraspace from deploying a stack if a mock value is found.
#
# Checks for key word 'mock' because common use for mocking names
# Checks for<PHONE_NUMBER>0 because common use for mocking ids
# Checks for 10.0. because common use for mocking ips and cidrs

before("plan",
  label: 'Warn about found mocks at plan stage',
  execute: "! grep -qsEi '(mock|0000000000|10\.0\.)' *.tfvars || echo \"\033[0;33mWARNING: Found mock values in $(basename $(pwd))\033[0m\" ",
  exit_on_fail: false,
)
before("apply",
  label: 'Fail if mock values found at deploy stage',
  execute: "! grep -qsEi '(mock|0000000000|10\.0\.)' *.tfvars || \{ echo \"\033[0;31mFAILURE: Found mock values in $(basename $(pwd))\033[0m\"; false; \} ",
  exit_on_fail: true,
)

This is not a permanent fix because it will fail to deploy still.


GCE Multiple K8s DC C* Deployment - Networking

@paralin please submit a PR for getting muitple DC's Racks on GCE.

Bash scripts for networking
VPN Docker
Documentation

Once you have submitted a PR, let me know and I can get you a baby k8s cluster.

for rack I would just specify the rack name as the node attribute for availability zone
for DC most of what youre going to do is configuration in the GCE UI

so nothing in GCE ui please.  Please do all through gcloud api 😄
Bash is beautiful.
https://cloud.google.com/sdk/gcloud/
Or if you are really adventurous you can do terraform ...

kubectl label nodes $PRIVATE_IP failure-domain.beta.kubernetes.io/region=$REGION
kubectl label nodes $PRIVATE_IP failure-domain.beta.kubernetes.io/zone=$AVAIL_ZONE

@paralin have you worked out the networking as of yet with vpn?

Yes it works. At least for the purpose of bridging 2 clusters.

@paralin when will you have a chance to document?


[Feature Request] Shimmer Direction at ANY angle

Add support for shimmer direction at any angle. Shimmer currently supports the following four directions:
shimmer.dart
///
/// An enum defines all supported directions of shimmer effect
///
/// * [ShimmerDirection.ltr] left to right direction
/// * [ShimmerDirection.rtl] right to left direction
/// * [ShimmerDirection.ttb] top to bottom direction
/// * [ShimmerDirection.btt] bottom to top direction
///
enum ShimmerDirection { ltr, rtl, ttb, btt }

Proposal:
Change Shimmer direction to accept a double which represents degrees (or radians).
Static constants can be used for the existing directions of ltr, rtl, ttb, btt for minimal changes to existing clients.

You can use gradient parameter of Shimmer constructor to customize your gradient angle.


Using monaco-editor in web components (Polymer).

monaco-editor version: 0.8.3
Browser: Chrome 59
OS: macOS
Type : vscode Feature
It is currently impossible to use monaco-editor in polymer web components. The reason is that the rendering is prevented by a check on the presence of the container in the DOM.
line 400: vs/editor/view/viewImpl.ts
private _actualRender(): void {
		if (!dom.isInDOM(this.domNode.domNode)) {
			return;
		}
               /*...*/
  }

When meeting a shadow root isInDOM returns false, this function should look like this.
line 49 : vs/base/browser/dom.ts
export function isInDOM(node: Node): boolean {
	while (node) {
		if (node === document.body) {
			return true;
		} else if (node.host == null) {
			node = node.parentNode;
		} else {
                        // it's a polymer element
			node = node.host;
		}
	}
	return false;
}

Even with this modification there are still some rendering issues (no style colorization ...), probably caused by the strict way polymer isolate css rules.
You can find a small polymer project (obviously not working) using monaco editor here.
I intend to submit a PR to, at least, allow the rendering. Feel free to comment or suggest proper ways to do that.

Have a look at my comment. Shadow DOM support is completely broken for all browsers: https://github.com/Microsoft/monaco-editor/issues/308#issuecomment-284389162


Ground is not an available Frame when creating ExternalLoads and Motion Objects

Steps to reproduce

Load leg6dof9musc or any other model.
Load a motion file (e.g stance IK) and associate the ground reaction forces with the motion.
Then right click "Edit Motion Objects" and select one of the forces and click "Edit"
it opens the panel identical to the ExternalLoads editor that allows you to associate forces, points and torques with PhyscialFrames in the model.

Expected result
We are able to provide Expressed in frame for Forces and Points as ground.
Actual result

We cannot select ground as Apply to or Expressed in frame from the provided pulldown list.
Environment and GUI version
Not version specific.  On all 4.0 beta versions to date.
Remaining issue from list of Ground related issues #5.

Ground is available (W10, OpenSim-ba958aac-2018-04-30_threejs_r91.zip)


New instrument connection not possible

After updating to PyCharm 2022.3.2 (Community Edition) Build #PC-223.8617.48, I can't connect to new instruments any more. Ping is still working, but not test. I tried this with FSW and SMA. Following error is displayed by SCPI Logger:
Opening test ERROR: Could not initialize class com.sun.jna.NativeLong
R&S Instruments Plugin Version: 1.2.0

Please update to RsIC 1.3.1, this should work OK.


a5-20-04

TMPFC enum remove unused item and turn ranges into ranges

a5-20-04 uses ranges for unused ranges in enum

CVAR should be enum with range


[WIP] Add eBPF map as a read-only state store

Description
Please explain the changes you've made
Proof of concept for eBPF maps as a state storage component.
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #787
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

I've managed to get this to build and test on my own machine!
I think the issue is that bpf fs has to be be mounted.
sudo mount bpffs /sys/fs/bpf -t bpf


New syntax for #[export] methods and #[base] parameters

Resolve #850
Feature
Allows onwer argument to be omitted.
#[method]
fn foo(&self, a: i32, b: i32) -> i32 {
    a + b
}

By adding the #[base] attribute to the argument, it is defined as the owner argument. Only the second argument can be the owner argument. Also, there is no way to define the owner argument without #[base].
#[method]
fn foo(&self, #[base] base: TRef<&Node>, value: i32) {
    base.do_something(value);
}

All optional parameters that can be used with the #[export] attribute can also be used with #[method].
Compatibility
The old syntax #[export] attribute will continue to be supported. (It does not support omission of the owner argument.)
#[export]
fn foo(&self, base: TRef<&Node>, value: i32) {
    base.do_something(value);
}

The godot_wrap_method! macro is not compatible because its definition has changed. (Can be fixed for compatibility if needed)
Todo: Write tests.

Regarding #[export] -> #[method] transition, that might need some more discussion + input from other members.
While #[method] is consistent with #[property], #[export] is more descriptive ("method" has literally no information if it's annotated over a method). Maybe there are also other terms?
One option would also be to keep #[export] backwards-compatible (i.e. no support for #[base], always a required 2nd base parameter), but that would mean we definitely need to find a new name.
Also,
bors try

#[export] is more descriptive than #[method] ("method" has literally no information if it's annotated over a method)

It is described as exporting as a method. This would be useful in the future to add features like the #[getter] macro that exports a "non-variable based getter" or other features.

Is the #[export] syntax in this current implementation fully backwards-compatible and not changing in semantics (i.e. no support for #[base], always a required 2nd base parameter)? We could deprecate it and ease the transition for users from 0.10 to 0.11, plus merge this before 0.11.

At least, it is backward compatible with the range of tests originally in the library.
The #[export] syntax always requires a second parameter, and the second parameter is the base parameter without #[base]. However, #[base] can be explicit. This is just an addition to the syntax and does not break compatibility.

Something with Deref (is this somehow overlapping with https://github.com/godot-rust/godot-rust/pull/870?)

This pull request was branched from the deref-return branch. Sorry if this is confusing. I'm not yet familiar with Git.

It is described as exporting as a method. This would be useful in the future to add features like the #[getter] macro that exports a "non-variable based getter" or other features.

I see. I think the whole topic would look different if people qualified proc macros and attributes:
#[gdnative::methods]
impl MyClass {
    #[gdnative::method]
    fn exposed_via_gdnative(&self, owner: &Node, i: i32) -> String {
        ...
    }

    pub fn pure_rust(&self) -> bool {
        ...
    }
}

But without that, it's not really clear:
#[methods]
impl MyClass {
    #[method]
    fn exposed_via_gdnative(&self, owner: &Node, i: i32) -> String {
        ...
    }

    pub fn pure_rust(&self) -> bool {
        ...
    }
}

Which is why I was thinking maybe something related to Godot (or at least the exporting) should be made part of the name. But I appreciate other input on that topic 🙂

At least, it is backward compatible with the range of tests originally in the library.
The #[export] syntax always requires a second parameter, and the second parameter is the base parameter without #[base]. However, #[base] can be explicit. This is just an addition to the syntax and does not break compatibility.

Do we actually want to support #[export] with #[base]? If it's deprecated, then I'd say we keep the semantics as-is, and encourage everyone to switch to the new syntax. I don't see much reason to further improve something we officially declare obsolete.

This pull request was branched from the deref-return branch. Sorry if this is confusing. I'm not yet familiar with Git.

No worries! Just for the future, it would probably be easier to keep unrelated improvements in separate PRs (even if they touch the same code, like here the export proc-macros) 🙂
But we can also keep this pull request bigger if you prefer -- in that case, could you edit your initial post here to add the other improvements (I'm not sure if my list fully captures them)? That way we have a complete overview of any changes.

bors try

Do we actually want to support #[export] with #[base]?

No. I did this because it makes for a simpler code. Additional code would be needed to make this unsupported, would you do so?

could you edit your initial post here to add the other improvements (I'm not sure if https://github.com/godot-rust/godot-rust/pull/872#pullrequestreview-952360875 fully captures them)? That way we have a complete overview of any changes.

I think it is better to have an description in the commit, so I wrote it in the commit message. If this is not clear, I will add the explanation to the first comment.
I checked all the changes. No changes were found that were not included in the list. See the commit message for a summary of the refactoring. (Mouse-over the commit link for a quick view)

No worries! Just for the future, it would probably be easier to keep unrelated improvements in separate PRs (even if they touch the same code, like here the export proc-macros) 🙂
But we can also keep this pull request bigger if you prefer

If I rebase the history now, I will make it more confusing. So I will go ahead and study it.

The commit history looks very nice now, thanks! 👍

No. I did this because it makes for a simpler code. Additional code would be needed to make this unsupported, would you do so?

Ah ok. I think we can live with the way it is now, maybe just don't advertise #[export] + #[base] as a feature. Then it's an undocumented thing which is anyway deprecated.
So the only topic left is the naming 😅
More opinions from others on that?

More opinions from others on that?

I haven't spend much thought on it, but on first glance I like #[method] in combination with #[methods] and the fact that it is a non-breaking change with a simple deprecation strategy.

Regarding some of the opinions on the naming, I would say that I'm not too picky on which direction, but I would prefer if whichever attribute that is being used is descriptive on the functionality.
Since the idea is that we are exporting or connecting methods/properties to godot, using the term #[export] makes a lot more sense than #[method], imo. It serves both code generation and -- assuming that the user is proficient in English -- makes it clear that the method is being exposed.
If it were feasible, I might actually be more inclined to go the otherway by changing #[property] into #[export] for consistency with Godot's terminology (since it's only possible to export properties in GDScript and the like).
Then again, since it's also possible to use the explicit module path with the proc macro, I really like the readability of  #[gdnative::method] with how clear it makes that the attributed function is exposed via gdnative. In my own projects, I would probably call it this way instead.
I'm be happy with these changes.

Everyone: more input on #[export] vs. #[method] vs. #[godot_api]?
If there's no progress in the naming, I might merge this soon and we handle the naming discussion separately (with a potentially breaking change on master, but not in released versions).
This would allow us to integrate the proc-macro changes already, and make room free for other improvements on that codebase.

This PR looks fairly good! 🙂
I added some commits:

Renamed #[methods] to #[godot]
Compile-time warning about using deprecated #[export] syntax.

We still need to update all the occurrences in godot-rust itself...

Updated documentation, especially in NativeClass derive

Feel free to merge/rebase with your own commits as you wish, I don't insist on my commits (or their authorship) to be retained as-is. Just kept it as 3 commits so it's easier to see independent changes, we can also squash them.
Note that #[godot] is not a final choice, but I'd like to move on with this PR, we can still rename this in isolation later.
Why this naming?

It's more expressive than #[method] and makes clear the annotation is related to Godot.
Some libraries tend to unify attribute names, even if they appear in different positions. #[serde] is a famous example.
We currently have quite some variety with #[no_constructor], #[inherit] etc. See also #848.
We can't keep #[export] for backward compatibility reasons (that is, unless we simultaneously rename #[methods], but that's out of scope here).

Thanks for the great documentation! :smile:
I am a translator English as you can see, so it would be very helpful for me to write the document instead.

Renamed #[methods] to #[godot]

Oh my god! :scream:
However, it is unlikely that we will reach a consensus if we continue to discuss this, so this will do for now. Once #350 is implemented, we can truly write #[gdnative::method], and we can start another religious war at that time. :fire:
Finally, I have committed some fixes, so take a look.


[FR] Allow to NOT render semantic segmentation labels

Given a dataset with semantic segmentation labels, can I configure the app to NOT render them?
I realize that I can toggle their visibility on and off, but it seems to me that they get loaded independent of that, thus slowing down rendering.
Willingness to contribute
The FiftyOne Community welcomes contributions! Would you or another member of your organization be willing to contribute an implementation of this feature?

[ ] Yes. I can contribute this feature independently
[X] Yes. I would be willing to contribute this feature with guidance from the FiftyOne community
[ ] No. I cannot contribute this feature at this time

@cgebbe yep, in fact we're building this right now! 😄
cc @sashankaryal who is leading this effort 💪
Specifically our plan is:

"dense" label fields (segmentations, heatmaps, etc) will only be loaded if their visibility toggle is "on"
dense label field rendering is in a separate worker so that the rest of the grid can still be as buttery as possible even if dense labels (when visible) take longer to appear
(TBD) dense label fields are not toggled to visible by default
you can optionally configure what fields are visible by default via dataset.app_config


actor_id in the InitiativesPledges table

actor_id within the InitiativesPledges table will cause duplication in rows and doesn't seem intuitive. What would make more sense would be having the list of actors for each initiative within InitiativesPledges

Change actor_id to actor_list to contain a list of actor ids which have signed up to be part of the initiative


Modify search_attributes to align with server changes

The SDK is undergoing a rewrite/refresh and this issue applied to a previous version and is no longer applicable


ST-175: Add receivingOccupationalPension to Employment Model

[x] Unit tests passing
[ ] Coverage reached
[ ] Acceptance tests passing
[ ] Reviewed

⚠ To confirm API for receivingOccupationalPension field


Concurrency issues in junit-interface module

I believe some of the issues are also a concern in the original project the code was forked from,
however, I'll only describe them from the munit perspective.
TLDR - my recommendations:

Remove support for --no-stderr and -q (quiet) flags.
They are very broken with parallel execution, which is the default in sbt, and cannot be made to work properly either.

Simplify EventDispatcher and RichLogger by removing their support for multi-suite and multi-thread usage,
which is not needed by the munit implementation and which would have race conditions if those features were needed.

In more detail:
Regarding 1)
The --no-stderr and -q flags are currently not documented and also only supported for the JVM version of munit,
but a user might stumble across them in the code and try them out which would lead to a pretty bad surprise.
These options redirect System.out and System.err respectively, and they do this on a per-suite basis.
This leads to unexpected behaviour in the default, parallel run mode, as the suites start to step on each other's toes.
In most cases this will leave System.out still pointing to a ByteArrayOutputStream even after all tests completed, permanently silencing munit until sbt is restarted.
Even reverting the munit configuration change and using reload in the sbt console would not fix the issue.
sbt has to be restarted to get back to normal, making this a really bad trap for users.
The issue is easy to reproduce.

Set the -q flag with Test / testOptions += Tests.Argument(TestFrameworks.MUnit, "-q").
Leave parallelExecution at its default (true)
Run test or testOnly with at least a handful of suites.

Outcome:

1st run: The vast majority of munit logs are swallowed, only some make it through.
Every subsequent run: All munit logs are swallowed. Only sbt's own logger still works (they probably keep a reference to System.out internally).

Given that those features are 1) undocumented, 2) not supported for JS or Native and 3) essentially unfixable,
I think it is best to remove them.
Regarding 2)
This is not a user issue, but more a maintainer's issue, so somewhat less critical.
I think the implementations of EventDispatcher and RichLogger are confusing as they suggest a use case
that does not exist.
In practice both are pinned to a single suite and a single thread (see JUnitTask.execute).
munit does not support nested suites or running the tests of a single suite in parallel.
The concurrent maps, keyed by suite, unnecessarily complicate the code, and give a false sense of security,
as their implementation for concurrent use is not even correct.
(The use of the Stack class in RichLogger has a race condition). There is also a (minimal) performance overhead.
A somewhat more defensive change would be to only remove the multi-suite support, but keep these classes thread-safe.
The current observation that usage is pinned to a thread might theoretically be undermined by future changes in
JUnitCore or MUnitRunner (e.g. when the latter would stop using a parasitic ExecutionContext).
And removing multi-suite support alone already achieves most of the desired simplification.
Both of these suggestions are very simple changes, and I could quickly do them in the coming days,
but I wanted to see whether there are any concerns or objections before I do a PR.

Thank you for doing this detailed investigation! Big 👍 on both recommendations.
The --no-stderr option doesn't seem to be used in any public repositories (https://sourcegraph.com/search?q=context:global+--no-stderr+file:.%5C.sbt&patternType=literal) and the -q option only seems to be used with JUnit (https://sourcegraph.com/search?q=context:global+"-q"+file:.%5C.sbt&patternType=literal )

@jenshalm Thank you so much for looking in these issues. Fixed in #401


where to get TestOmni from? and whose address is that? My onmi core desktop wallet generated this address on testnet mtdLJismp9qZAkyFhpMg3DAhE2W5BDE2FH

Hi!

Go here https://testnet.manu.backend.hamburg/faucet and send to your address mtdLJismp9qZAkyFhpMg3DAhE2W5BDE2FH some test BTC.
According to this link https://github.com/OmniLayer/omnicore#testnet send some BTC funds to moneyqMan7uh8FqdCA2BV5yZ8qVrc9ikLP address. After, you'll get 100 test OMNI instead of each 1 test BTC to the sender address.

ok..thanks. but step 1 tip.
"System or Wallet error, Recaptcha failed or address invalid!"

Sometimes there are some problems with it. Try later

358a044454b55e71bfef8d18910f9d32a1a5a572f6f0fd5a758708c6daae9d58 - this is transaction id. I sent you some coins through it.
P.S. check, do you put your address without a space in the end

@timka-zhm
thank you for you help.
in my omni testnet,i got the return balance by "omni_getbalance", like
./omnicore-cli omni_getbalance "mtdLJismp9qZAkyFhpMg3DAhE2W5BDE2FH" 1 {   "balance": "0.00000000",   "reserved": "0.00000000" }
Is there any mistake?
and do you know how to test omni on testnet mode
can you offer help

bitcoin.conf     set      testnet=1

Hi @ying23, the RPC omni_getbalance only shows token balances, but not BTC balances.
You can use a "testnet faucet" to get some BTC and then check out these steps to get Test Omni:
https://github.com/OmniLayer/omnicore#testnet

Hi @timka-zhm ,can you give me some tbtc to mhvDB8a3mEiVvnNBJ2UGoYrvxD1RU4MZB5
thinks

https://live.blockcypher.com/btc-testnet/tx/aac3b2e5543ad35b197c4d397078168919f75992baacacf5fc283c6c97928045/ - here is the transaction
You can send for yourself using this https://testnet.manu.backend.hamburg/faucet service

HI hi can't get test coin
I send testnet3 btc to  moneyqMan7uh8FqdCA2BV5yZ8qVrc9ikLP
93f4dbffa4e914e5810c2693d66a1ee85dd99404fffc897e780e29cf4d5568f9
But I didn't get it TestOmni，Please help me Please /(ㄒoㄒ)/~~

Try to use https://github.com/OmniLayer/omnicore/blob/master/src/omnicore/doc/rpc-api.md#omni_getallbalancesforid this method. And you'll see addresses, where you got test OMNI

Thanks @timka-zhm!

Hi @songjim, no! Test Omni and USDT are two completely different tokens, but both use the Omni Layer as platform.

I really need OMNI test coin , can anyone can donate 10 coin to this address rDfipwDJzYdSgA8uujTFxJRercwgxi2wkf .


Enable a "real desktop" by default

Most desktop environments allow users to have icons on the desktop. Like this:

As per https://twitter.com/NomadBSD/status/1299469685562499075 the solution is to run pcmanfm --desktop (which happens to be already installed).
I'd ask to make launching this the default, so that the desktop gets the functionality known to users from most desktop environment like Windows, the Mac, Xfce, etc.
Reference:
https://forum.nomadbsd.org/t/shortcut-icons-on-the-desktop/274

I think it's a good idea to enable the desktop. Maybe without any pre-set icons, though.

I've since implemented this over at https://github.com/helloSystem/. This is my current desktop I am typing this on:

Hence closing here.


localhost:5173 failed on npm run dev

Error:
[plugin:vite:import-analysis] Failed to resolve import "../amplify_outputs.json" from "src/main.ts". Does the file exist?
.../AIoTStudio/test/d2ai-info/src/main.ts:5:20
Reproduce Steps:
On the developer machine
*1. git clone
*2. npm i
*3. npm run dev
Browser
open localhost:5173 will get the following error on browser.

[plugin:vite:import-analysis] Failed to resolve import "../amplify_outputs.json" from "src/main.ts". Does the file exist?
.../AIoTStudio/test/d2ai-info/src/main.ts:5:20
...

This will also cause build to fail npm run build

<EMAIL_ADDRESS>build
run-p type-check "build-only {@}" --
<EMAIL_ADDRESS>build-only
vite build

<EMAIL_ADDRESS>type-check
vue-tsc --build --force

vite v5.4.10 building for production...
✓ 10 modules transformed.
x Build failed in 174ms
error during build:
Could not resolve "../amplify_outputs.json" from "src/main.ts"
...

Hi, I just sent the amplify_outputs.json file to you through your gmail address.
As this file includes the AWS cloud side resource information, it is not part of the repository by .gitignore file in default.

Please make it only required when deploying this app to Amplify (should have a node.js env flag in AWS or Vite).
Please assign this to me if you need me to work on it.


Pretty print expected and actual when not equal

Closes #34

Codecov Report

Merging #36 (a041d0b) into master (b3ed38e) will increase coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #36      +/-   ##
==========================================
+ Coverage   99.09%   99.10%   +0.01%
==========================================
  Files           5        5
  Lines         330      337       +7
==========================================
+ Hits          327      334       +7
  Misses          2        2
  Partials        1        1

Impacted Files
Coverage Δ

ensurepkg/chain.go
100.00% <100.00%> (ø)

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 b3ed38e...a041d0b. Read the comment docs.


[check-syntax] adds a command for checking config file syntax

In order to make testing syntax in CI easier, we need a way to check syntax without checking if all the files exist. This PR adds a check syntax command to promtool that just loads the config from files and returns success if they load fine, or the error if the config is not valid. This replaces #5223 and is the fix for #5222
Signed-off-by: glightfoot<EMAIL_ADDRESS>

@simonpasquier

Thanks, you'll probably have to wait until next year before I give it a review :smirk:

Thanks! Not sure if this is the preferred approach or not, but it's definitely useful (we've been building our own promtool with this for a little while)

@simonpasquier - Can you take a look at this?

@simonpasquier is there anything preventing us from merging this? As it is, check config is actually unusable in CI for non-trivial config files (any use of service-discovery features), and there are several threads around the net where people are running into this same confusion about the meaning of check config. I've just run into this myself now. The PR here is minimal, clear in its function, and adds a ton of value.

For anyone arriving here in between now and when this is fixed, if you use k8s service discovery, I've got things working by faking the file /var/run/secrets/kubernetes.io/serviceaccount/token. Here's a cutting from my CI test:
logmsg "faking deployment env..."
# patch the container to fake being in the deployment environment
# see:
# - https://github.com/prometheus/prometheus/issues/5222
# - https://github.com/prometheus/prometheus/pull/6488
docker exec -i $monitor_id bash <<-EOF
    mkdir -p /var/run/secrets/kubernetes.io/serviceaccount/token
    touch /var/run/secrets/kubernetes.io/serviceaccount/token
EOF
logmsg "✔ faked deployment env."
# check config / rules using promtool
logmsg "using promtool to inspect generated yml's..."
set +e
docker exec $container /bin/sh -c 'promtool check config /etc/prometheus/prometheus.yml || exit $?'
exitcode=$?
set -e
# allow user to inspect files if not passing
if [ "$exitcode" != "0" ]; then
    inspect_command="vim /etc/prometheus/*.yml" && fail "promtool check config failed"
fi
logmsg "✔ promtool check config succeeded"
logmsg "🌱 success!"

@simonpasquier I just ran into this as well.  Any idea when this will be pushed through? 👀

check config and check syntax might be confusing for users. what about making this a flag of check config?

@roidelapluie I had that as a pr previously https://github.com/prometheus/prometheus/pull/5223. If that's what you're looking for, I can make similar changes here

@roidelapluie - any thoughts on the pr mentioned in my previous comment?

With recent changes to SD this is now plausible to implement in a maintainable fashion, however requires paying off some technical debt first. All validation of HTTP etc. settings should move down to common, with the file stuff being in a Validate method. Then this could be implemented by unmarshalling without calling Validate.

Any update on this? Would be nice to have


Extension recommendation isn't working

Insiders/main

Make sure SandDance extension isn't installed
Run SQL query
Click "Chart" button on results tab

Expected : Prompt displayed asking if user wants to install Visualizer extensions
Actual : No prompt

Saw the same behavior.
  ERR Cannot read property 'filterIgnoredOrNotAllowed' of undefined: TypeError: Cannot read property 'filterIgnoredOrNotAllowed' of undefined
    at S.getRecommendedExtensionsByScenario (file:///Applications/Azure Data Studio - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:9348:505)
    at S.promptRecommendedExtensionsByScenario (file:///Applications/Azure Data Studio - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:9346:853)
    at w.promptRecommendedExtensionsByScenario (file:///Applications/Azure Data Studio - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:9485:170)
    at e.run (file:///Applications/Azure Data Studio - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:5468:855)
    at runAction (file:///Applications/Azure Data Studio - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1204:613)
    at run (file:///Applications/Azure Data Studio - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1204:480)
    at t.ActionViewItem.onClick (file:///Applications/Azure Data Studio - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1536:295)
    at Immediate.<anonymous> (file:///Applications/Azure Data Studio - Insiders.app/Contents/Resources/app/out/vs/workbench/workbench.desktop.main.js:1535:841)
    at ZoneDelegate.invokeTask (/Applications/Azure Data Studio - Insiders.app/Contents/Resources/app/node_modules.asar/zone.js/dist/zone.js:421:31)
    at Zone.runTask (/Applications/Azure Data Studio - Insiders.app/Contents/Resources/app/node_modules.asar/zone.js/dist/zone.js:188:47)
    at ZoneTask.invokeTask (/Applications/Azure Data Studio - Insiders.app/Contents/Resources/app/node_modules.asar/zone.js/dist/zone.js:496:34)
    at Immediate.ZoneTask.invoke (/Applications/Azure Data Studio - Insiders.app/Contents/Resources/app/node_modules.asar/zone.js/dist/zone.js:485:48)
    at Immediate.timer (/Applications/Azure Data Studio - Insiders.app/Contents/Resources/app/node_modules.asar/zone.js/dist/zone.js:2054:29)
    at processImmediate (internal/timers.js:439:21)


feat(a11y): expandable datagrid-row (backport to v3)

Backport #4163 to v3

@Shijir @gnomeontherun thanks for catching it .. I didn't notice that my cherry-pick had done that 😭


Dependencies

All peer dependencies should be probably installed as dependencies for simple usage.

Maybe we can do eslint as a peer dependency and all the others as dependencies. This way, we could (probably?) only have eslint and eslint-config-apify in our projects' package.jsons and everything else will be hidden inside this package.
I think eslint is needed as a peer dependency because IDEs and other tools might be checking for the presence of eslint in package.json to enable eslint specific features. I've encountered this with jest, where Webstorm would not show test integration tools unless jest was declared, even though it was installed in node_modules.

I am not sure if it is possible. I think that even if you require a configuration, eslint still searches for the plugins inside the project (first level) node_modules. I've made a branch  feature/dependencies with such a package.json, and I'm not able to link it, but the issue could be related to npm link not to the package itself.

I published two packages with two different variants.

With the eslint in peerDependencies https://www.npmjs.com/package/@petrpatek/eslint-config-apify
without peerDependencies https://www.npmjs.com/package/@petrpatek/eslint-apify


[Android]How to add Realtime Form Validations in android Using Livedata, Viewmodel and Data Binding

NOTE: All 1st-time contributors should know Topic approval and PR submission does NOT guarantee your Topic/Article will be published. Our team of Peer Reviewers and Content Moderators will review all PRs that come in to make sure they adhere to the standard of quality we expect from the EngEd community.
We expect all community memebers to go through provided examples, resources, and previously published material before submitting content. As a rule of thumb, please only submit articles (pull requests) that are complete, formatted correctly, and include a fully polished article (ready to be published and error free).
All revisions and edits should be completed on your own forked repo (as to not take up room in the queue). Any PR that is submitted incomplete (meaning not ready to be published as is) will be closed. A PR being closed does NOT mean the article can not be published (or fixed) it simply means that the edits, revisions, and fixes will happen outside of the queue.
Topic Suggestion
Enter topic suggestion here...
Pre-submission advice
By following all our pre-submission advice and reviewing our Resources folder, you will maximise your chances of your topic being approved.
We ask that you please be patient as our team works through approving and publishing all articles/tutorials in a timely manner.
Allow 1-3 days for a topic to be reviewed and/or approved - allow 3-7 days for an articles to be reviewed and/or published (subject to vary depending on volume and/or backlog of articles).
Be sure to visit our Resources Page for tools, resources, and example articles that will help you propose and write a successful article.
Please ensure that you have only one open issue + linked pull request at a time. This will ensure that we complete the article in a timely manner from inception to publishing.)
We tend to stray away or tend not to publish reviews/comparisons of commercial product offerings.
Writing sample(s):
Include any links or writing samples - to help our team better gauge your writing quality.
Proposal Submission
Proposed title of article
Your title should be descriptive of the article/tutorial. Be Specific.
Use keyword research to improve your article's SEO.
Proposed article introduction
We're looking for the first 2-3 paragraphs of your article that appropriately summarize what your article will be about.
We will use this writing snippet to help us assess the overall quality before approval so ensure it has been proofread, spellchecked and grammarchecked.
For example, if the article is based on machine learning, use the following: [Machine learning] Introduction to Machine Learning.
If the article is based on developing an Android application, use the following: [Android] Developing Apps using Android.
Building an application that requires a user to submit information requires you to verify this data before they are sent into your application. This is where the concept of form validations comes in. When a user fills in an email the application must be able to check if the user has provided an email input. If not, update the user accordingly to fill in the right email format. There are many values and specific data that an application requires from a user. This guide aims to help you understand how to achieve such concepts using the android studio. This guide will use LiveData, View model, and Data Binding to help check the inputs in real-time.
Key takeaways
What are the 3-5 most important things the reader should understand or be able to do after reading this article?
Use this area to get your ideas down on the bulk of your article or tutorial.

What is Form Validations
What is LiveData
What is Data Binding
Create a basic form in android
Add form validations using XML
Create a real-time check using LiveData, View model, and Data Binding
Validate the user inputs.

Article quality
How is your article unique? Tell us what makes your approach different from similar articles that have published on the same topic?
Is yours more in-depth? Does it cover additional topics? Do you provide handy tips or anecdotal advice?
References
Please list links to any published content/research that you intend to use to support/guide this article.
Conclusion
Finally, remove the Pre-Submission advice section and all our blockquoted notes as you fill in the form before you submit.
We look forwarding to reviewing your topic suggestion.
Templates to use as guides

How To Guide Template
Software Review Template
Tutorial Template

Good afternoon and thank you for submitting your topic suggestion.
Your topic form has been entered into our queue and should be reviewed (for approval) as soon as a content moderator is finished reviewing the ones in the queue before it. :rocket:

Hi @manmusa100
Could you please expand upon how your content will differ from what is already available on this article? We lean towards content that offers an original viewpoint/approach around programming-centric topics.

Hey @LinusMuema  I can choose to use Binding Adapters and use Regex checks instead of using the Livedata.


Observability: generate unique request ids

Is your feature request related to a problem? Please describe.
As a developer that uses microservices architecture I'd like to observe the requests that belong to the same transaction.  For each new request to Envoy generate an unique request id, that can be further used by other applications in their OpenTelemetry spans and access logs.
Describe the solution you'd like
See Request id generation - I think this should be the default behavior, i.e. not configurable.
Describe alternatives you've considered
none

Apparently this is done by default in Envoy, nothing to do here. I confirmed that request id header x-request-id is present in the access log and is forwarded to the application too.


fix(slots): preserve reactivity inside of $slots, fix #7856

Previously $slots was not reactive which caused use cases such as
portal-vue to not update when the contents of the slots updated. This
was because there were no reactive properties accessed when using $slots
and renders were only being triggered by calls to $forceUpdate when slot
contents changed.
This change makes $slots reactive, so updates are detected appropriately
regardless of where the slot is used.
fixes #7856

What kind of change does this PR introduce? (check at least one)

[X] Bugfix
[ ] Feature
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change? (check one)

[ ] Yes
[X] No

If yes, please describe the impact and migration path for existing applications:
The PR fulfills these requirements:

[X] It's submitted to the dev branch for v2.x (or to a previous version branch), not the master branch
[X] When resolving a specific issue, it's referenced in the PR's title (e.g. fix #xxx[,#xxx], where "xxx" is the issue number)
[X] All tests are passing: https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md#development-setup
[X] New/updated tests are included

Other information:
Related to https://github.com/LinusBorg/portal-vue/issues/105

@yyx990803 can this be merged?

For me create reactive $slots property, it is not solution issue(in that case of course it is one of the solution), but slots it is not like reactive variable, with watches and observer, it is another type.

This seems to be unrelated to the original issue discussed in #7856. Also, the added test case is not really a use case I think we should be encouraging. I'd rather implement proper portal support in core instead of relying on such usage.


phase bridge get slow down

i found that phase bridge (conveyor and conduit) are getting slow down rather than speed up, tested on campaign and custom game. mindustry v122
1x speed

4x speed

they, along with plastanium conveyors are very sensitive to fps, and timecontrol essentially halves/quarters the fps because there are double/quadruple calculations each frame. So, unless you are on a device which is capable of a max fps of 240, it will be affected. (Which is probably why Anuke did not add this feature at the first place)
Basically, the rule of thumb is, anything that gets affected by lag is affected by the time controller.


⚠ ClamAV has degraded performance

In 9caf7d2, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 53 ms

Resolved: ClamAV performance has improved in 0470a21.


The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu

Hello,
Thanks for the code!
I am getting the following issue:
The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page. https://goo.gl/7K7WLu
Could you please help me resolve?
Thanks

@swethamanur
If you have set the autoplay option, it would fail these days on both desktop / mobile because of new web security rules. If I remember correctly, autoplaying video / audio content was allowed only in muted state.

Hi. Can you please give more details into how to solve this?

@maxi032
I'm guessing you're having the same problem on Chrome.
As the browser warning links to Google WebAudio, it's explained there that the Chrome WebAudio API doesn't support autoplay anymore.
You need to change the source code:

Try creating the Visualiser instance on a user trigger event (e.g. click)
Create custom volume control and set the decoded audio to a muted state initially (not sure if this will work).

So, yeah, I don't see a simple workaround.

To elaborate on this, @LazicDavid is correct and gives 2 valid options.
Another option I've had success with is to check for an ?autoplay GET-parameter (decodeURIComponent), and to only set the audio stream when all scripts are loaded, based on that parameters' existence, only then starting the playback. [Use case was an online radio station]
(thought I'd share)

oh
firefox is working


Audiophile Assistant

As Audiophile Assistant, I specialize in providing expert advice on high-fidelity audio, from equipment selection to sound quality analysis. My expertise encompasses a deep understanding of audiophile terminology, technology, and the subtleties of music appreciation across various genres.
https://chat.openai.com/g/g-VbJvVjilC-audiophile-assistant

Merged


Kconfig introduces undocumented dependencies to kernel sources

On Ubuntu 16.04 LTS the initial snap configuration with all dependencies as listed in the README in place fails with the following error message:
${SNAP_ROOT} $ make snap_config
menuconfig: Setting up SNAP configuration
SNAP Build Options
  Linux:    /usr/src/kernels/4.4.0-96-generic
  Build:    /home/lwenzel/mp2017/snap_new/scripts/build
  Kconfig:  /home/lwenzel/mp2017/snap_new/scripts/Kconfig
  config:   ../.snap_config
  autoconf: ../software/include/autoconf.h
ERROR: Not able to generate SNAP config files via kconfig, because directory /usr/src/kernels/4.4.0-96-generic does not exist.
Makefile:26: recipe for target 'menuconfig' failed
make[2]: *** [menuconfig] Error 1
Makefile:112: recipe for target 'menuconfig' failed
make[1]: *** [menuconfig] Error 1
Makefile:126: recipe for target 'snap_config' failed
make: *** [snap_config] Error 1

Simply installing the kernel sources does not solve the problem, as on Ubuntu they reside in /usr/src/linux-source-vvv and not the expected /usr/src/kernels/vvv. It works with a symlink, but this should be documented properly or the kernel source discovery mechanism made more flexible.

Maybe use cat /etc/issue and do decision?
capi:snap$ cat /etc/issue
Ubuntu 15.04 \n \l

We should to look into using the standalone version, again.

The dependency to the kernel sources will be removed when change #476 is merged into master.
Instead a standalone version of kconfig will get installed automatically.

Change request #476 got just merged into master.
This means that we do no longer have a dependency to the kernel sources. The make process is now automatically cloning a standalone version of kconfig from https://github.com/guillon/kconfig.
A comment in README.md about this (hidden) dependency is outstanding. This comment will be part of change request #475.

Comments got added to change request #475

I am working on following Git version.  On Ubuntu 15.04. It still needs to install ncurses-devel
I executed one line of sudo apt-get install ncurses-dev based on the web search result from
https://askubuntu.com/questions/270381/how-do-i-install-ncurses-header-files
and make snap_config again. Then the blue GUI works.
capi:snap$ git show
commit 82c087dd15ce012dbf2fb244c5772560660b44d9
capi:snap$ make snap_config
menuconfig: Setting up SNAP configuration
SNAP Build Options
  Kconfig:          /home/capi/project/snap/snap/scripts/Kconfig
  Build directory:  /home/capi/project/snap/snap/scripts/build
  config:           /home/capi/project/snap/snap/.snap_config
  autoconf:         /home/capi/project/snap/snap/software/include/autoconf.h
Cloning kconfig from github.com/guillon/kconfig into /home/capi/project/snap/snap/scripts/build
Cloning into '/home/capi/project/snap/snap/scripts/build'...
remote: Counting objects: 131, done.
remote: Total 131 (delta 0), reused 0 (delta 0), pack-reused 131
Receiving objects: 100% (131/131), 192.12 KiB | 65.00 KiB/s, done.
Resolving deltas: 100% (48/48), done.
Checking connectivity... done.
Executing:
  make -C /home/capi/project/snap/snap/scripts/build -f GNUmakefile TOPDIR=. SRCDIR=. KBUILD_KCONFIG=/home/capi/project/snap/snap/scripts/Kconfig menuconfig
 *** Unable to find the ncurses libraries or the
 *** required header files.
 *** 'make menuconfig' requires the ncurses libraries.
 ***
 *** Install ncurses (ncurses-devel) and try again.
 ***
Makefile:203: recipe for target 'dochecklxdialog' failed
make[3]: *** [dochecklxdialog] Error 1

yes, the dependency to the ncurses library is documented in README.md.
The question would be if we should add more support for using the command line interface instead of the menu driven version for kconfig (or if we should look into the possibility to add a kind of automatic detection in order to decide which kconfig version to use)

@ldurdel I think this is fixed now, please close or comment

I tried the new version and everything (including the ncurses ui after installing libncurses-dev on Ubuntu) worked fine.


the action's dockerfile is failing to build

the problem is:
#7 120.8 WARNING: fetching https://dl-cdn.alpinelinux.org/alpine/v3.19/community: Permission denied
  #7 120.9 WARNING: Permanently redirected to [https://nl.alpinelinux.org:443/alpine/edge/testing/x86_64/APKINDEX.tar.gz](https://nl.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz)

It's very weird though - why would the cdn return 403?

oh a rerun fixed it but it remains especially weird