UserSignIn: not in WebAuthn session

Description
My Gitea was working properly before. Suddenly, one day when I tried to log in, an error page with the code 500 popped up. I don't know what the reason is, nor do I know how to solve this problem. Here are some logs that I've captured.  Received SIGTERM. Shutting down...
2024/12/17 12:23:57 cmd/web.go:336:listen() [I] HTTP Listener: <IP_ADDRESS>:3000 Closed
2024/12/17 12:23:57 .../graceful/manager.go:168:doHammerTime() [W] Setting Hammer condition
2024/12/17 12:23:57 ...eful/server_hooks.go:46:doShutdown() [I] PID: 16 Listener ([::]:3000) closed.
2024/12/17 12:23:58 .../graceful/manager.go:184:doTerminate() [W] Terminating
2024/12/17 12:23:58 ...er/issues/indexer.go:183:2() [I] PID: 16 Issue Indexer closed
2024/12/17 12:23:58 ...eful/manager_unix.go:208:handleSignals() [W] PID: 16. Background context for manager closed - context canceled - Shutting down...
2024/12/17 12:23:58 cmd/web.go:195:serveInstalled() [I] PID: 16 Gitea Web Finished
2024/12/17 12:24:07 ...les/setting/cache.go:75:loadCacheFrom() [I] Cache Service Enabled
2024/12/17 12:24:07 ...les/setting/cache.go:90:loadCacheFrom() [I] Last Commit Cache Service Enabled
2024/12/17 12:24:07 ...s/setting/session.go:74:loadSessionFrom() [I] Session Service Enabled
2024/12/17 12:24:07 ...es/setting/mailer.go:237:loadMailerFrom() [I] Mail Service Enabled
2024/12/17 12:24:07 ...es/setting/mailer.go:248:loadRegisterMailFrom() [I] Register Mail Service Enabled
2024/12/17 12:24:07 ...es/setting/mailer.go:259:loadNotifyMailFrom() [I] Notify Mail Service Enabled
2024/12/17 12:24:07 ...s/storage/storage.go:176:initAttachments() [I] Initialising Attachment storage with type: local
2024/12/17 12:24:07 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/attachments
2024/12/17 12:24:07 ...s/storage/storage.go:166:initAvatars() [I] Initialising Avatar storage with type: local
2024/12/17 12:24:07 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/avatars
2024/12/17 12:24:07 ...s/storage/storage.go:192:initRepoAvatars() [I] Initialising Repository Avatar storage with type: local
2024/12/17 12:24:07 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-avatars
2024/12/17 12:24:07 ...s/storage/storage.go:186:initLFS() [I] Initialising LFS storage with type: local
2024/12/17 12:24:07 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /data/git/lfs
2024/12/17 12:24:07 ...s/storage/storage.go:198:initRepoArchives() [I] Initialising Repository Archive storage with type: local
2024/12/17 12:24:07 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/repo-archive
2024/12/17 12:24:07 ...s/storage/storage.go:208:initPackages() [I] Initialising Packages storage with type: local
2024/12/17 12:24:07 ...les/storage/local.go:33:NewLocalStorage() [I] Creating new Local Storage at /data/gitea/packages
2024/12/17 12:24:07 ...queue/workergroup.go:255:doRun() [D] Queue "mail" starts running
2024/12/17 12:24:07 ...queue/workergroup.go:255:doRun() [D] Queue "notification-service" starts running
2024/12/17 12:24:07 ...queue/workergroup.go:255:doRun() [D] Queue "repo-archive" starts running
2024/12/17 12:24:07 routers/init.go:130:InitWebInstalled() [I] SQLite3 support is enabled
2024/12/17 12:24:07 routers/common/db.go:21:InitDBEngine() [I] Beginning ORM engine initialization.
2024/12/17 12:24:07 routers/common/db.go:28:InitDBEngine() [I] ORM engine initialization attempt #1/10...
2024/12/17 12:24:07 cmd/web.go:175:serveInstalled() [I] PING DATABASE sqlite3
2024/12/17 12:24:08 cmd/web.go:175:serveInstalled() [W] Table system_setting Column version db default is , struct default is 1
2024/12/17 12:24:08 cmd/web.go:175:serveInstalled() [W] Table project Column card_type db default is 0, struct default is
2024/12/17 12:24:08 cmd/web.go:175:serveInstalled() [W] Table project Column card_type db nullable is false, struct nullable is true
2024/12/17 12:24:08 cmd/web.go:175:serveInstalled() [W] Table hook_task has column repo_id but struct has not related field
2024/12/17 12:24:08 routers/init.go:136:InitWebInstalled() [I] ORM engine initialization successful!
2024/12/17 12:24:08 ...queue/workergroup.go:255:doRun() [D] Queue "push_update" starts running
2024/12/17 12:24:08 ...er/issues/indexer.go:156:func2() [I] PID 17: Initializing Issue Indexer: bleve
2024/12/17 12:24:08 ...queue/workergroup.go:255:doRun() [D] Queue "repo_stats_update" starts running
2024/12/17 12:24:08 ...xer/stats/indexer.go:38:populateRepoIndexer() [I] Populating the repo stats indexer with existing repositories
2024/12/17 12:24:08 ...queue/workergroup.go:255:doRun() [D] Queue "mirror" starts running
2024/12/17 12:24:08 ...queue/workergroup.go:255:doRun() [D] Queue "pr_patch_checker" starts running
2024/12/17 12:24:08 ...queue/workergroup.go:255:doRun() [D] Queue "webhook_sender" starts running
2024/12/17 12:24:08 ...queue/workergroup.go:255:doRun() [D] Queue "pr_auto_merge" starts running
2024/12/17 12:24:08 ...queue/workergroup.go:255:doRun() [D] Queue "task" starts running
2024/12/17 12:24:08 ...er/issues/indexer.go:185:func2() [D] Created Bleve Indexer
2024/12/17 12:24:08 ...er/issues/indexer.go:246:func3() [I] Issue Indexer Initialization took 53.665131ms
2024/12/17 12:24:08 ...queue/workergroup.go:255:doRun() [D] Queue "issue_indexer" starts running
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: update_mirrors
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: repo_health_check
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: check_repo_stats
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: archive_cleanup
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: sync_external_users
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: deleted_branches_cleanup
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: update_migration_poster_id
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: cleanup_hook_task_table
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: cleanup_packages
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: delete_inactive_accounts
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: delete_repo_archives
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: git_gc_repos
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: resync_all_sshkeys
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: resync_all_sshprincipals
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: resync_all_hooks
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: reinit_missing_repos
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: delete_missing_repos
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: delete_generated_repository_avatars
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: delete_old_actions
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: update_checker
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: delete_old_system_notices
2024/12/17 12:24:08 ...rvices/cron/tasks.go:147:RegisterTask() [D] Registering task: gc_lfs
2024/12/17 12:24:08 ...ates/htmlrenderer.go:113:initHTMLRenderer() [D] Creating static HTML Renderer
2024/12/17 12:24:08 ...xer/stats/indexer.go:84:populateRepoIndexer() [I] Done (re)populating the repo stats indexer with existing repositories
2024/12/17 12:24:08 cmd/web.go:285:listen() [I] Listen: http://<IP_ADDRESS>:3000
2024/12/17 12:24:08 cmd/web.go:289:listen() [I] AppURL(ROOT_URL): https://xxx.xxx.xxx/
2024/12/17 12:24:08 cmd/web.go:292:listen() [I] LFS server enabled
2024/12/17 12:24:08 ...s/graceful/server.go:62:NewServer() [I] Starting new Web server: tcp:<IP_ADDRESS>:3000 on PID: 17
2024/12/17 12:24:08 ...s/graceful/server.go:75:func1() [D] Starting server on tcp:<IP_ADDRESS>:3000 (PID: 17)
2024/12/17 12:24:08 ...web/auth/webauthn.go:36:WebAuthn() [E] UserSignIn: not in WebAuthn session
2024/12/17 12:24:08 .../context_response.go:74:HTML() [D] Template: status/500
2024/12/17 12:24:08 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/webauthn for <IP_ADDRESS>:8521, 500 Internal Server Error in 2.2ms @ auth/webauthn.go:26(auth.WebAuthn)
2024/12/17 12:24:12 ...eb/routing/logger.go:102:func1() [I] router: completed GET / for <IP_ADDRESS>:8521, 303 See Other in 0.7ms @ web/home.go:32(web.Home)
2024/12/17 12:24:12 ...eb/routing/logger.go:102:func1() [I] router: completed GET /explore for <IP_ADDRESS>:8521, 303 See Other in 0.6ms @ auth/middleware.go:87(auth.VerifyAuthWithOptions)
2024/12/17 12:24:12 .../context_response.go:74:HTML() [D] Template: user/auth/signin
2024/12/17 12:24:12 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/login for <IP_ADDRESS>:8521, 200 OK in 16.4ms @ auth/auth.go:141(auth.SignIn)
2024/12/17 12:24:19 .../context_response.go:74:HTML() [D] Template: user/auth/signin
2024/12/17 12:24:19 ...ers/web/auth/auth.go:206:SignInPost() [I] Failed authentication attempt for yowfung from <IP_ADDRESS>:8521: user's password is invalid [uid: 1, name: yowfung]
2024/12/17 12:24:19 ...eb/routing/logger.go:102:func1() [I] router: completed POST /user/login for <IP_ADDRESS>:8521, 200 OK in 69.2ms @ auth/auth.go:170(auth.SignInPost)
2024/12/17 12:24:24 ...eb/routing/logger.go:102:func1() [I] router: completed POST /user/login for <IP_ADDRESS>:8521, 303 See Other in 68.2ms @ auth/auth.go:170(auth.SignInPost)
2024/12/17 12:24:24 ...web/auth/webauthn.go:36:WebAuthn() [E] UserSignIn: not in WebAuthn session
2024/12/17 12:24:24 .../context_response.go:74:HTML() [D] Template: status/500
2024/12/17 12:24:24 ...eb/routing/logger.go:102:func1() [I] router: completed GET /user/webauthn for <IP_ADDRESS>:8521, 500 Internal Server Error in 1.0ms @ auth/webauthn.go:26(auth.WebAuthn)

Gitea Version
1.20.5
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots

Git Version
2.40.1
Operating System
Linux (in Docker)
How are you running Gitea?
Install from the official Docker image.
Database
SQLite

SignInPost() [I] Failed authentication attempt for yowfung from <IP_ADDRESS>:8521: user's password is invalid [uid: 1, name: yowfung]

SignInPost() [I] Failed authentication attempt for yowfung from <IP_ADDRESS>:8521: user's password is invalid [uid: 1, name: yowfung]

Can you check your password is correct?

SignInPost() [I] Failed authentication attempt for yowfung from <IP_ADDRESS>:8521: user's password is invalid [uid: 1, name: yowfung]

Can you check your password is correct?

It was a mistake of mine. I corrected the password later and logged in again for a 500 error. When the password is wrong, there will be no 500 error, but "Password incorrect" will be displayed.

Can you back up gitea, then upgrade gitea to the latest version and try again?

Can you back up gitea, then upgrade gitea to the latest version and try again?

I tried deleting the docker container and then recreating it, but I still get the same problem.

As a workaround, you could try delete the user's record in two_factor and webauthn_credential table.


 Something we'll have to address later.

@Palleas ready for review

@Palleas ready for a second round of review, do you prefer the generic strings Im using for FileSpecFixture.txt or would you rather having some simili content in there?

👍


Bug fix for conflicting request paths in DeviceCodeCredential

This PR fixes a problem where the request path for a refresh token was in conflict with the previous request path set in the DeviceCodeCredential flow. Changes request creation to make a copy of the authority host in all of the requests related to DeviceCodeCredential, instead of changing the value on the credential.

Can one of the admins verify this patch?


[Bug]: Evaluate agent: Error response from daemon: No such image: ros:noetic

Current Behavior
https://github.com/una-auxme/paf/actions/runs/11812431084/job/32907626973#step:7:23
Expected Behavior
Find image ros:noetic successfully
Steps to Reproduce
Unclear. Re-running the job sometimes fixes the problem.
Definition of Done
No response
Effort Estimate
No response
Testability
No response
Dependencies
No response

https://github.com/una-auxme/paf/actions/runs/11914553619/job/33202749644#step:7:23


Implement macOS support

This is a tracking issue for macOS support. More details will be added as that work is scoped out.
Once Linux has reached MVP status, this will be addressed.

HI @patrickfreed, I was looking at this quickly and was wondering what's needed for this:

Update Package.swift
Implement MacPlatform.swift and struct Mac: Platform (or would you prefer Darwin) as the name here?

I'd be keen to look at an existing branch, if one exists.

https://github.com/swiftlang/swiftly/blob/364b02bb2904cff62a604bfa4a0ef0d1d9164cd5/DESIGN.md?plain=1#L57
Please honor XDG conventions on MacOS also—Mac users prefer uncluttered home directories too 😉

This has been implemented in #121


Repair archive extraction

At the moment, JDownloader is not able to extract any archive, because the used sevenzipjbinding-Library depends on pre-compiled shared objects, which have been compiled against glibc / libstdc++.
At least one of the binaries works with musl libc, by installing libstdc++ we can solve this problem.
Second, Java seems not to use the system linker to load depending shared objects - we need to give the load path in the environment (LD_LIBRARY_PATH).
With these two changes, JDownloader is able to load the 7zip-bindings and extract archives (tested on a Raspberry Pi 3 + Raspbian Lite).

Thank you very much for your contribution. I'll recompile the latest image for your code to be available ASAP


doc review

[x] currently missing jump from http://msmbuilder.org/osprey/development/config_file.html#search-space
[x] include grid search strategy
[x] typos (found some on the index page, parser_currentbest.py#L14, config.py#L11)

done in #155


Using net.Buffers.WriteTo send multiple RTP packets to reduce system calls to improve performance

Describe the feature
Description
Each RTP packet sent invokes the io.Write function once, and a frame of video generates many RTP packets. From the pprof, it can be observed that RTP transmission consumes a significant amount of CPU resources.

Hello, thank you very much for bringing to attention the existence of net.Buffers and the fact that multiple UDP or TCP buffers can be sent with a single call. Using net.Buffers.WriteTo() instead of net.Conn.Write() can surely improve performance in case all RTP packets of a video frames are available in advance, and this happens with the following cases:

RTMP to RTSP
HLS to RTSP
SRT/MPEG-TS to RTSP
RTSP to WebRTC (since RTP packets are decoded and re-encoded with a lower MTU)

However this approach won't bring any benefit when RTP packets are received singularly and sent out as soon as possible, and this happens with:

RTSP to RTSP
WebRTC to RTSP

Therefore: in the future we can add to gortsplib a new method, WritePacketsRTP(pkts []*rtp.Packet), that allows to send out multiple packets at once.


Tests seem to expect a default point size

dEQP-VK.tessellation.geometry_interaction.point_size.vertex_set_control_set
dEQP-VK.tessellation.geometry_interaction.point_size.vertex_set_eval_default
dEQP-VK.tessellation.geometry_interaction.point_size.vertex_set_evaluation_set_geometry_default
appear to expect a point size of 1.0 to be used, even though the last enabled shader stage doesn't write PointSize.  That's correct in GL/GLES, but in Vulkan, the spec says: "if no value was written to PointSize, results are undefined" - I don't see any mention of a default point size.
So I think these three tests are broken, and probably just need to be removed.

PointSize is a bit tricky, but I agree, in this case the tests follow GLES rules too far. These cases should probably be removed as you suggest. This will be resolved internally and the issue updated once a fix is available.
Vulkan does mention a "default" point size (i.e. an implicit 1.0 size) in tessellation and geometry stages, but only if an implementation doesn't support shaderTessellationAndGeometryPointSize, which doesn't apply in this case as the test specifically checks for this feature and uses it.

Fixed by 7424a79323977f2b3b00609765e0d98783ac7abb


problem during training

@neccam Hi,I also have this problem during training,what wrong with the code ,how can I do?
the problem is:
tensorflow.python.framework.errors_impl.InvalidArgumentError: TypeError: bad argument type for built-in operation
[[Node: PyFunc = PyFunc[Tin=[DT_STRING, DT_BOOL], Tout=[DT_FLOAT], token="pyfunc_5"](arg0, PyFunc/input_1)]]
[[Node: IteratorGetNext = IteratorGetNextoutput_shapes=[[300,227,227,3], [1]], output_types=[DT_FLOAT, DT_INT32], _device="/job:localhost/replica:0/task:0/cpu:0"]]
[[Node: dynamic_seq2seq/decoder/decoder/while/TensorArrayWrite_2/TensorArrayWriteV3/_169 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/gpu:0", send_device="/job:localhost/replica:0/task:0

I only have one GPU,which is GTX1060.
I've already resized the images ，change the image path of the Data and downloades alexnet wieghts.
I have seen some issues that have been closed before, but still have not found the answer to the this problem, I hope the author can help answer.

Hi,
See the closed issue #11 for the solution of the problem.
One thing I must point out is that, the network allocates 9 GB of memory on a Titan X Maxwell.
So you might not be able to train it with a GTX1060 without changing hard coded number of frames in a single batch, which is 300 by default.


Dragging it to 2016

There are bazillion updates and fixes to minor notices and warnings. I tried to replace all depreciated code except the mysql (maybe later). This will require modules to update minor things like using "__construct" instead of php 4 style, so maybe 7.4 release? I have replaced all preg_replace call with "/e"  modifier (issue) with preg_replace_callback (check BxDolTemplate).
In theory, if you can install mysql extension on php7 (how to) then this should run fine. With notices and strict warnings disabled of course. There are way too many notices to deal with, so I admitted defeat :cry:
Edit: Forgot to mention, it drops support for php 5.3, min 5.4 required.

Thank you @Prashank25 for such great efforts!

It's definitely for 7.4 milestone

some php 7 benchmark
https://www.boonex.com/forums/topic/Dolphin-benchmark-on-php-7.htm

Very nice Prashank!

@AlexTr
Check out the BxDolDb class, I replaced mysql with PDO. I tired to maintain backward compatibility by not changing the methods signature, so all old code which used the methods on this class should work fine without realising that underline implementation has changed.
Except for cases where they used mysql functions directly.
like these cases, ofc
while ($row = mysql_fetch_assoc($stmt)) {
will have to be replaced with
while ($row = $stmt->fetch()) {

I used regex in my editor (PHPStorm) to search and replace
mysql_fetch_assoc\((.*?)\)
$1->fetch()

This is very much a work in progress, a lot of things still need replacements but it runs as is.
Would you mind creating a separate branch for whatever version release Boonex wants this in (if at all), and merge this?

Thank you @Prashank25 !

Would you mind creating a separate branch for whatever version release Boonex wants this in (if at all), and merge this?
Yes, we've created 7.3 branch and merged all these changes.


DevMan error: Opt in disabled. Please opt in manually.

DELETE_FAILED_INTERNAL_ERROR
Error while Uploading and registering Instant App

Please provide more context to this issue.


Message signature header byte

As I see every time I sign the message I get  last byte of signature as 01 or 00.
According to documentation last byte of signature is ### The header byte: should be used as validator like this
        int header = signatureData.getV() & 0xFF;
        // The header byte: 0x1B = first key with even y, 0x1C = first key with odd y,
        //                  0x1D = second key with even y, 0x1E = second key with odd y

So I must use code like that in case of using JAVA org.web3j.crypto
if (header < 27 || header > 34) {
            throw new SignatureException("Header byte out of range: " + header);
        }

As I saw You are implementing method signHash as bellow:
ResultCode Signer::signHash(const uint8_t hash[IOTEX_HASH_SIZE],
							const uint8_t private_key[IOTEX_PRIVATE_KEY_SIZE],
							uint8_t signature[IOTEX_SIGNATURE_SIZE])
{
	IOTEX_TRACE_F(logModule, "Signer::signHash()");
	if(ecdsa_sign_digest(&secp256k1, private_key, hash, signature, signature + 64, **### NULL**) != 0)
	{
		IOTEX_ERROR_F(logModule, "Error signing hash");
		return ResultCode::ERROR_SIGNATURE;
	}
	return ResultCode::SUCCESS;
}

Where last parameter of:
ecdsa_sign_digest(&secp256k1, private_key, hash, signature, signature + 64, ### NULL)
is NULL.
It looks like there is no option to get correct header byte.
Am I wrong?
it is limited by extern/crypto/ecdsa.h
I can make something like that
   // Version of signature should be 27 or 28, but 0 and 1 are also possible versions
    if (v < 27) {
      v += 27;
    }

but not sure if it will impact the results in some cases.

Hi @Nortberg
Could you elaborate on the problem you are seeing, and what you are trying to achieve?
It would be helpful if you can add some example code and the value you are getting vs the expected value

According to documentation last byte of signature is ### The header byte: should be used as validator like this

Can you post a link to the documentation where this is mentioned?
Regards

Hi we are using spring gateway as a proxy to check consistency of incoming message (java)
As in that case we use docs from here https://www.tabnine.com/code/java/classes/java.security.SignatureException
As We see the (v)ersion of signature is 01.
To accept that parameter in verification function We do that
 // Version of signature should be 27 or 28, but 0 and 1 are also possible versions
    if (v < 27) {
      v += 27;
    }

Then we can use implemented functions in org.web3j.crypto
Point is - is if it it is secure to do so.
Mean to get public key from signature R and S is important.
what about V - is it impact results or not?

Could you share a minimum reproducible example of your embedded device program, and also the error log you are getting from the Java server?
May I ask you to do another test and check if you get the same error if you try to verify a message signed with the ioctl command line tool?
Here are the docs for using it:

Installation: https://docs.iotex.io/reference/ioctl-cli-reference/installation
Signing a message: https://docs.iotex.io/reference/ioctl-cli-reference/accounts#sign-a-message

Thanks


Refresh track2 autorest31

[ ] The purpose of this PR is explained in this or a referenced issue.
[ ] The PR does not update generated files.

These files are managed by the codegen framework at Azure/autorest.go.

[ ] Tests are included and/or updated for code changes.
[ ] Updates to CHANGELOG.md are included.
[ ] MIT license headers are included in each file.

/azp run go - armdatabricks - ci

/azp run go - armprivatedns - ci

/azp run go - armredis - ci

go - armresources - ci

/azp run go - armresources - ci

/azp run go - armscheduler - ci


Can you please remove -U__APPLE__ from meson.build?

https://github.com/sctplab/usrsctp/blob/547d3b46c64876c0336b9eef297fda58dbe1adaf/meson.build#L190
That ridiculousness in usrsctp to undef platform defines was finally removed. However, some projects (notably webrtc) still link to usrsctp versions before it was removed. Because of that I'm getting weird compilation errors with latest iOS toolchain and the errors are somewhere deep inside system headers. Most likely due to internal checks for APPLE in these headers which results in broken builds now. When I removed -U__APPLE__ these errors disappeared. When I check usrsctp I still see this -U__APPLE__ in the project and this should be removed

I think that's an oversight, so thanks for reporting it.
But: Language. Be respectful. Thank you.

I think that's an oversight, so thanks for reporting it.

By the way, webrtc was updated to usrsctp bee946a606752a443bd70bca1cb296527fed706d that doesn't have the fix for platform defines. They didn't update to latest for these reasons (from their commit log):
Update usrsctp to bee946a606752a443bd70bca1cb296527fed706d.

This incorporates over a year and a half of changes, including
several fixes for security vulnerabilities.

Had been prevented from updating it due to a deadlock issue,
however the commits that introduced that issue have been reverted.

Intentionally not updating to tip-of-tree since there are changes
in progress; will roll again when more confident things are stable.

Commit log since last roll:
https://chromium.googlesource.com/external/github.com/sctplab/usrsctp/+log/7a8bc9a90ca9..bee946a60675

Bug: chromium:1025302

And @taylor-b is/was actively working on resolving a couple of issues, so I suppose they're on it.

The fix the webrtc was waiting for is https://github.com/sctplab/usrsctp/commit/939d48f9632d69bf170c7a84514b312b6b42257d. It seems to work, since I haven't heard any issue regarding that change.


test / pkg_resources crashes on native (init.py-less) namespace package

setup.py test fails with a confusing exception if the test suite is a "py3 native" namespace package (no __init__.py).
Reproducer
setup.py:
from setuptools import setup

setup(name='reproducer',
      version='0.0',
      test_suite='tests',
)

tests is an empty directory (it might have some tests, but no __init__.py)
Run python setup.py test
Result
Traceback (most recent call last):
  File ".../setup.py", line 3, in <module>
    setup(name='reproducer',
  ...
  File ".../unittest/loader.py", line 220, in loadTestsFromNames
    suites = [self.loadTestsFromName(name, module) for name in names]
  ...
  File ".../setuptools/command/test.py", line 47, in loadTestsFromModule
    for file in resource_listdir(module.__name__, ''):
  File ".../pkg_resources/__init__.py", line 1162, in resource_listdir
    return get_provider(package_or_requirement).resource_listdir(
  File ".../pkg_resources/__init__.py", line 364, in get_provider
    return _find_adapter(_provider_factories, loader)(module)
  File ".../site-packages/pkg_resources/__init__.py", line 1392, in __init__
    self.module_path = os.path.dirname(getattr(module, '__file__', ''))
  File ".../posixpath.py", line 152, in dirname
    p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType

I know pkg_resources is being deprecated in favor of importlib.resources, but ... this is setuptools itself using it.
I'm also aware there are better alternatives to setup.py test (but if the official position is "don't use it",  I'd welcome a statement from setuptools maintainers saying that, so I can link people to it).
Filing this mostly to let you know. I don't really mind if this isn't fixed.

I'm also aware there are better alternatives to setup.py test (but if the official position is "don't use it", I'd welcome a statement from setuptools maintainers saying that, so I can link people to it).

The official position is "don't use it", we just need to implement the "statement" part. For now you can link to #931 and #1684.


Package Requested

[X] I would like someone else to build the manifest.
[X] I would like help so I can submit the manifest.
[X] I have performed a search and couldn't find this package.
[X] I have checked that the installer for this package is not a standalone or portable executable or a .zip file
[ ] I think there is a new version available and I have provided the URL.

Please provide the following information
Publisher: WinSCP.net
Publisher Url: https://winscp.net
Package Name: WinSCP-5.19.6-Setup.exe
Description: WinSCP is a popular SFTP client and FTP client for Microsoft Windows!
Package Version: 5.19
Installer URL: https://winscp.net/download/WinSCP-5.19.6-Setup.exe
Current Package Identifier (for new versions):
Checksums
MD5: 5f2ba7a3b97574f2462420370092df75
SHA-1: d12f9d76678708b657af3cd4b4a1822afefa5fc6
SHA-256: d5402b38b60099335e091c6d6b8143eb64a6eb02f24bf014edbd598313440463

WinSCP.WinSCP have been in the repo since 2020-05-19.
Duplicate of #307


Iptables mode. Slow adding rules with many pods on one node

Expected Behavior
Adding iptables rules takes no more than 5-10 secs after interface creation
Current Behavior
It can takes for minutes
Context
Hi,
I'm trying to run 1500 pods on one node in our k8s cluster.
After running about 500 pods we faced an issue with deploying more applications - pods run, but very often can't access any other pods in cluster (even on the same node). Eventually, they come up but takes too much time.
An investigation led to a big difference in iptables rule creation time - from a few seconds to minutes.
I gathered debug logs (pretty big) of calico-node for slow and relatively fast cases:
Fast case:
assigned IP - <IP_ADDRESS>, interface - cali4a0ad8f57d9
fast_case.log.tar.gz
Slow case:
assigned IP - <IP_ADDRESS>, interface - calib9077a5262c
2022-12-07 14:15:33.822 [DEBUG][79] felix/update_filter.go 115: Route update route={Ifindex: 3807 Dst: <IP_ADDRESS>/32 Src: <nil> Gw: <nil> Flags: [] Table: 254 Realm: 0}
2022-12-07 14:16:18.689 [DEBUG][79] felix/route_table.go 880: Processing route: 254 3807 <IP_ADDRESS>/32 ifaceName="calib9077a5262c" ifaceRegex="^cali.*" ipVersion=0x4 tableIndex=0
2022-12-07 14:16:18.689 [INFO][79] felix/route_table.go 927: Syncing routes: found unexpected route; ignoring due to grace period. dest=<IP_ADDRESS>/32 ifaceName="calib9077a5262c" ifaceRegex="^cali.*" ipVersion=0x4 tableIndex=0
2022-12-07 14:16:21.088 [INFO][79] felix/route_table.go 927: Syncing routes: found unexpected route; ignoring due to grace period. dest=<IP_ADDRESS>/32 ifaceName="calib9077a5262c" ifaceRegex="^cali.*" ipVersion=0x4 tableIndex=0
2022-12-07 14:16:21.088 [INFO][79] felix/route_table.go 627: Interface in cleanup grace period, will retry after. ifaceName="calib9077a5262c" ifaceRegex="^cali.*" ipVersion=0x4 tableIndex=0
2022-12-07 14:16:21.088 [DEBUG][79] felix/int_dataplane.go 2081: Asked to reschedule. delay=1m27.684659904s
2022-12-07 14:16:21.088 [INFO][79] felix/summary.go 100: Summarising 1 dataplane reconciliation loops over 200ms: avg=161ms longest=161ms ()
2022-12-07 14:16:21.088 [INFO][79] felix/int_dataplane.go 1680: Received *proto.WorkloadEndpointUpdate update from calculation graph msg=id:<orchestrator_id:"k8s" workload_id:"stage-70/net-deployment-57bbfbb98-fvqgq" endpoint_id:"eth0" > endpoint:<state:"active" name:"calib9077a5262c" mac:"56:fc:a0:b6:16:91" profile_ids:"kns.stage-70" profile_ids:"ksa.stage-70.default" ipv4_nets:"<IP_ADDRESS>/32" >
2022-12-07 14:16:21.088 [DEBUG][79] felix/xdp_state.go 134: Received message msg=id:<orchestrator_id:"k8s" workload_id:"stage-70/net-deployment-57bbfbb98-fvqgq" endpoint_id:"eth0" > endpoint:<state:"active" name:"calib9077a5262c" mac:"56:fc:a0:b6:16:91" profile_ids:"kns.stage-70" profile_ids:"ksa.stage-70.default" ipv4_nets:"<IP_ADDRESS>/32" >
2022-12-07 14:16:21.088 [DEBUG][79] felix/endpoint_mgr.go 329: Received message msg=id:<orchestrator_id:"k8s" workload_id:"stage-70/net-deployment-57bbfbb98-fvqgq" endpoint_id:"eth0" > endpoint:<state:"active" name:"calib9077a5262c" mac:"56:fc:a0:b6:16:91" profile_ids:"kns.stage-70" profile_ids:"ksa.stage-70.default" ipv4_nets:"<IP_ADDRESS>/32" >
2022-12-07 14:16:21.088 [DEBUG][79] felix/wireguard_mgr.go 64: Received message ipVersion=0x4 msg=id:<orchestrator_id:"k8s" workload_id:"stage-70/net-deployment-57bbfbb98-fvqgq" endpoint_id:"eth0" > endpoint:<state:"active" name:"calib9077a5262c" mac:"56:fc:a0:b6:16:91" profile_ids:"kns.stage-70" profile_ids:"ksa.stage-70.default" ipv4_nets:"<IP_ADDRESS>/32" >
2022-12-07 14:16:21.088 [DEBUG][79] felix/int_dataplane.go 1808: Applying dataplane updates
2022-12-07 14:16:21.088 [INFO][79] felix/endpoint_mgr.go 600: Updating per-endpoint chains. id=proto.WorkloadEndpointID{OrchestratorId:"k8s", WorkloadId:"stage-70/net-deployment-57bbfbb98-fvqgq", EndpointId:"eth0"}
2022-12-07 14:16:21.088 [INFO][79] felix/table.go 508: Queueing update of chain. chainName="cali-tw-calib9077a5262c" ipVersion=0x4 table="filter"
2022-12-07 14:16:21.089 [DEBUG][79] felix/table.go 579: Incref chain chainName="cali-pri-_ZJUJvcxCEUAt65SFmU"
2022-12-07 14:16:21.089 [DEBUG][79] felix/table.go 579: Incref chain chainName="cali-pri-_aqg5iMU8ujZu3bdH66"
2022-12-07 14:16:21.089 [DEBUG][79] felix/table.go 944: Invalidating dataplane cache ipVersion=0x4 reason="chain update" table="filter"
2022-12-07 14:16:21.089 [INFO][79] felix/table.go 508: Queueing update of chain. chainName="cali-fw-calib9077a5262c" ipVersion=0x4 table="filter"
2022-12-07 14:16:21.089 [DEBUG][79] felix/table.go 579: Incref chain chainName="cali-pro-_ZJUJvcxCEUAt65SFmU"
2022-12-07 14:16:21.089 [DEBUG][79] felix/table.go 579: Incref chain chainName="cali-pro-_aqg5iMU8ujZu3bdH66"

slow_case.log.tar.gz
As you see it took 49 secs before adding iptables rules.
Can we tune this mechanism in iptables mode?
I also look at ebpf mode, but want to understand the reason for slow adding in the current env.
I really appreciate any help you can provide.
Your Environment

Calico version 3.24.5
Orchestrator version (e.g. kubernetes, mesos, rkt): k8s 1.21.5
Operating System and version: Ubuntu 20.04.5, 5.4.0-131-generic kernel

I'm trying to run 1500 pods on one node in our k8s cluster.

That's a lot of pods! Kubernetes itself is design to run at most 110 pods per node: https://kubernetes.io/docs/setup/best-practices/cluster-large/
That said, we certainly have some users running slightly more than that - order 250 pods / node. It's not that surprising to me that 1500 causes problems, that's well outside the design parameters of either Calico or Kubernetes.
The amount of time programming iptables is proportional to the total number of iptables rules on the node, so for a large number of pods that means substantially more rules (and this is complicated by things like kube-proxy and other iptables users who may be attempting to program iptables at the same time, thus blocking Calico).
That said, you might have better luck with Calico's eBPF data plane, or with switching kube-proxy to IPVS mode to prevent contention with Calico's dataplane programming.

@fasaxc reminded me that 1500 pods probably isn't very many iptables rules unless your network policy is fairly complex, or unless you have a lot of services in the cluster selecting those pods as well.
There is also apparently a known issue with netlink.GetRoutes performing in N^2 with the number of routes on a node, which may also be related to performance issues here.

@caseydavenport thanks for the explanation!
Actually, we already use kube-proxy in IPVS mode, and we have a few rules from k8s itself, all others are from Calico.
And the interesting thing is the difference in time to insert rules for one pod by Calico on the same node for the same count of pods. There would have been no question if this time was always in close range.
But we have cases when it takes 5 seconds (it's acceptable) and 45 (not good). And I'm trying to find a reason behind this. And it gives hope that we can get more from iptables mode (and probably it can improve eBPF performance as well).
Also, I noticed if I try to deploy 10-20 pods at one time on this big node - in most cases, it will take more time per pod than I would have deployed one by one.

Scheduling 45 pods to one node is very aggressive; there are various bottlenecks:

IIRC, the kernel throttles creation of veth devices
IPAM requires datastore transactions and they'll all try to hit the same block and get queued up.

Actually programming the rules etc is trivial and can be done in a single update.

@dmitrytretyakov Possible that the fix for Felix's slow route programming will help here, but you may be hitting a CNI  bottleneck too.  The routing tbale fix is in this nightly release: https://2023-02-23-master-sudoku.docs.eng.tigera.net/

v3.25.1 has now shipped with the fix.

This fix helped to deploy ~1200 pods on 1 node without switching to eBPF mode, just with iptables
Thanks a lot! Have a great day!


add pathSegment to BeamPage

This will hopefully clear any bugs when doing backward parse from pages to URI, on pop.

uri will be constructed by combining path segments from pages, where currently delegate tries to match pages

uri will be constructed by combining path segments from pages, where currently delegate tries to match pages


Epochs

Co-authored with @dabrahams
This PR introduces the new API that aim to replace the current Dataset in swift-apis and Batcher in swift-models. It fully takes advantage of the power of collections in swift and introduces three kinds of API:

two adapters on Collection, to lazily transform any collection. The first one is inBatches, will group consecutive samples together to produce a collectio of batch samples. The second one (which is internal for now since we haven't found the best name for it, but we intend to make it public at some point) is selecting, which allows you to reindex a collection without
accessing its elements (for instance, it can lazily shuffle any collection).
a new protocol Collatable that represents types where you can stack a collection of instances of the type into a higher-rank instance of that type ( like Tensors, pairsof tensors...). Coupled with extensions on collection of elements conforming to Collatable, it allows the user to build a batch from batch samples with let batch = batchSamples.collated. The conformance of Tensor to it uses parallelism to compute the samples it batches together.
classes called with names ending in Epochs that are infinite generator of collection of batch samples. TrainingEpochs shuffles lazily the underlying dataset at each new epoch. NonuniformTrainingEpochs should be uses when the dataset is not uniformly (the samples are not all of the same sizes) It shuffles the base dataset lazily and groups samples of similar sizes in batches.

Examples of use:
At inference, there is no need for shuffling, so we can simply use the following:
// Some raw items, like filenames
let rawItems = 0..<512
// A heavy-compute function lazily mapped on it (for instance, opening the images)
let dataset = rawItems.lazy.map { _ in Tensor<Float>(randomNormal: [224, 224, 3]) }
// We split this dataset in batch samples like this:
let batches = dataset.inBatches(of: 64)
// Then we iterate through it like this:
for batchSamples in batches {
  let batch = batchSamples.collated
  ... // inference computation
}

For training, where we need a reshuffle at each epoch, we use TrainingEpochs
// With a dataset built as before
let epochs = TrainingEpochs(samples: dataset, batchSize: 64)
for epoch in epochs.prefix(5) {
  for batchSamples in epoch {
    let batch = batchSamples.collated
    ... // rest of the training loop
  }
}

On top of reshuffling at each epochs, TrainingEpochs automatically drops the remainder (the last batch if it’s not of  batchSize in each epoch).
The TrainingEpochs classes provide good default implementations and are intended as reference examples for users who want a slightly different behavior. A class suitable for language modeling will also be added in a follow-up PR.
Those are the bases needed to build  input pipelines. It's not necessarily as easy to use a Batcher or Dataset in the easy cases, but it is more swift-idiomatic and is more flexible. A higher level API more usable in the easy cases will be added in the future.

I think this looks good to go (no need to hold up the v0.9 release), a few comments (mostly actionable, but not entirely):

Can you run swift-format against this PR? (I can do it as I have a pre-build swift-format binary easily available; LMK if you'd like me to.)
Along with the design review this Friday, it'd be great to have the docs merged & made available somewhere. (I don't want this PR description to be the best documentation we have available!)
(Not actionable for now) I suspect that the underlying abstraction we will want is not Collection but rather a lazy (parallel) stream. It will be good to revisit this in the future (but not before the v0.9 release is out), and irrespective, I suspect we'll be able to get a huge amount of mileage out of this. Thank you!

Thanks @dabrahams & @sgugger for your hard work on this!

If it's easier for you to run swift-format, please go ahead as I don't have it setup and it would probably take me a long time to figure this out (but maybe for @dabrahams approval since he might request some changes).
I have no idea how to action on 2.
For 3, this is going to be in a follow-up work. Batcher did not have that either and Dataset was not using parallelism at all ;)

We finally settled on the name sampled(at: ) instead of selecting with @dabrahams .
sampled(at: ) carries a bit less the idea that you take each element at most once (you can select them as many times as you want with the API) as in "oversampling".

@googlebot I fixed it (or rather dave fixed it). :-)


Impact Summit 2020 is done

@Holben888 thanks for the suggestions, made the changes! my original intent was to preserve some stuff I anticipated we'd need again pretty soon and save a split second but you're right, not worth setting undesirable precedents.


Change Contacts to "About"

Remove the Contacts field from the dataset form ( but leave it in the dataset model) and add a new text field for "About" to both the form and the model.

requires migration.


use Go templates in manifests

after #72 is done, render templates instead of doing string replaces

#115 obsoletes this

Closed by #133


custom API Variable

Need a variable to customize what server the API request gets pointed to.   we have a dedicated api node to offload all the API traffic from our other nodes and would love to point super’s API calls other than using the local config.

This is a good idea. I'll try to squeeze it into one of the 3.0 releases.

https://github.com/Macjutsu/super/releases/tag/v4.0.0-beta1


Add GTON Network

Website
https://gton.capital
https://docs.gton.capital/learn/gton-network
ChainId
Mainnet: 1000
Testnet: 50021
GasPrice: 1000000
GasLimit: 100000

Duplicated of https://github.com/safe-global/safe-singleton-factory/issues/99


fix traffic_monitor compile issue

What does this PR do?
fixes compile issue on traffic_monitor
Fixes #(issue_number)
Which TC components are affected by this PR?

[ ] Documentation
[ ] Grove
[ ] Traffic Analytics
[x] Traffic Monitor
[ ] Traffic Ops
[ ] Traffic Ops ORT
[ ] Traffic Portal
[ ] Traffic Router
[ ] Traffic Stats
[ ] Traffic Vault
[ ] Other _________

What is the best way to verify this PR?
compile traffic_monitor
Check all that apply

[ ] This PR includes tests
[ ] This PR includes documentation updates
[ ] This PR includes an update to CHANGELOG.md
[ ] This PR includes all required license headers
[ ] This PR includes a database migration (ensure that migration sequence is correct)
[ ] This PR fixes a serious security flaw. Read more: www.apache.org/security

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/trafficcontrol-PR/2395/
Test FAILed.


Flags enum support for some select-related classes (see #3977)

Intended to build upon #3995, although that commit is not included in this PR.

Allow use of GetEnumSelectList helpers with Flags enums

The test data for the related tests was very strange, as all of the test methods were accepting three parameters but only using one. I discerned which tests were using which parameters and split the test data out to make things a little more straightforward.

Make DefaultHtmlGenerator detect multiple values for Flags enums

I did reorder a small handful of test data parameters related to this just because they were coded to expect a trimmed value first before an untrimmed value. I am not sure if this is anything significant or not.
This is using the old private static readonly IDictionary<Type,Delegate> trick to cache the delegates used to squeeze the current values out of an enum value. I'm not sure how friendly everyone is towards that pattern.

Remove EnumNamesAndValues from metadata classes

Though this was technically a public item, the only place it was used was during GetCurrentValues in the DefaultHtmlGenerator. It was kind of an awkward property and the one place it was used did not seem performance-friendly. At first I thought maybe it held the [Display] text for the enum values but that did not seem to be the case.

Make <select> tag helper behave as <select multiple> with Flags enums

Perhaps the tag helper should only behave this way with a Flags enum if the 'multiple' attribute is actually present? Or maybe the tag helper should strictly require the 'multiple' attribute to function as a multi-select and throw an exception if the model type is invalid?

Hi @tuespetre, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

@tuespetre at this time we are not planning to take this feature because we are working on stabilizing the RC2 release. We will revisit this in the next release.

Thanks @Eilon; question for you and probably @rynowak / @dougbu: what's up with the EnumNamesAndValues property on the metadata? As it stands it seems to be part of the 'public API' but as I mentioned in this PR it doesn't seem to be used anywhere besides one place, and in that one place it seems like it would have an unnecessary performance impact (uses LINQ when it doesn't need to, etc.)
In my mind, that is closely related to #3953; I was just curious about this and wondering if you had some other reason for it to be part of the 'public API'.

As it stands it seems to be part of the 'public API' but as I mentioned in this PR it doesn't seem to be used anywhere besides one place

I seem to recall this was added to support that one place it's used :+1: The ModelMetadata is a cache of stuff that could be derived from reflection + attributes. The list of display-names for enum values is really independent of how we render HTML for an enum, hence the layering.

it seems like it would have an unnecessary performance impact

What code are you talking about specifically? Our approach with perf is to measure first. Lot's of code has an 'unnecessary' cost - but generally we're looking for the right tradeoffs.
Is this code much more readable as is? This method used to be about 5 lines before we ran into the need to optimize it :+1:
Does this code have an impact in the big picture (in a real application)?
If it's something trivial like turning a linq into the equivalent looping construct and it runs on every request, and it's not a big decrease in readability, then it seems like a good idea.

... it runs on every request ...

The Linq in question runs once per type, not on every request. See this block in the DataAnnotationsMetadataProvider.

@rynowak:

What code are you talking about specifically?
@dougbu:
The Linq in question runs once per type, not on every request.

This is the code I am talking about; it will run every time the DefaultHtmlGenerator gets the current values for a given model expression:
https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.ViewFeatures/ViewFeatures/DefaultHtmlGenerator.cs#L1023

If it's something trivial like turning a linq into the equivalent looping construct and it runs on every request, and it's not a big decrease in readability, then it seems like a good idea.

That's about what it would be; if EnumNamesAndValues was also a IReadOnlyDictionary<string, Enum> instead, it would eliminate the need to compare string values.

I seem to recall this was added to support that one place it's used :+1: The ModelMetadata is a cache of stuff that could be derived from reflection + attributes. The list of display-names for enum values is really independent of how we render HTML for an enum, hence the layering.

Thanks for the explanation. There's also this guy here, maybe it could be a cached delegate stored in the ModelMetadata:
https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.ViewFeatures/ViewFeatures/DefaultHtmlGenerator.cs#L1007

@tuespetre are you seeing any of this Linq in performance measurements? Separately we'd have to be very careful about caching at either site you linked to: Values change per request.

@tuespetre are you seeing any of this Linq in performance measurements? Separately we'd have to be very careful about caching at either site you linked to: Values change per request.

To be honest I haven't; I have had issues with trying to get the performance benchmarks going like we discussed on #3953. I may try that again sometime today or tonight depending on how things go. As for the caching bit, it would just be caching a delegate instead of generating one with MakeGenericMethod() each time.
I think I will try to get those benchmarks going again later and pick up this discussion back over on #3953. Thanks!

Re-opening because we are still considering this.

Hi @tuespetre. Sorry for our late response on this.
As a lot of time has passed since this PR has been opened, there are a lot of conflicts already, so we're going to close this PR.


Filter by location is broken

Steps

Filter by location: Moz Community Space Manila
Observe the result

Expected
Should only contain events for Manila.
Actual
Some of the events from India creeps in.

It turns out that the "Mozilla Community Space Manila" is called mozilla-community-space in the database. So when we do a search in the DB, both mozilla-community-space and mozilla-community-space-bangalore` will match.
I guess I need to access the DB to fix this, can anyone tell me how to get the access right to the admin console?


Overflowing Method Names

Description

Do something for overflowing text
may be add it to next line or
decrease the size of text
Live Demo
https://modelviewer.dev/
Browser Affected

[x] Chrome
[ ] Edge
[ ] Firefox
[ ] Helios
[ ] IE
[ ] Safari

OS

[ ] Android
[ ] iOS
[ ] Linux
[x] MacOS
[ ] Windows

Versions

model-viewer: latest
three.js: latest

Thanks for reporting @karanganesan , and good catch! I'm actually working on revising our whole docs page right now, so I think we will have this fixed when #970 lands.

Fixed.


fixes issue with sending PWM signals to ESCs in passthrough mode

It looks like PWM_DISARMED isn't set at that point. Where should that be set?
While we're at it, it should probably also be -c $PWM_OUT?

I would like to avoid that any parameters are needed on the Pixfalcon/Pixracer side except SYS_AUTOSTART. PWM_DISARMED/PWM_MIN/PWM_MAX are already used on the Snapdragon side.

I agree. But then how can we avoid hardcoding there?

Rebased and applied

Why did you apply jt? I thougt we didn't want the hard-coded value in there?

Because the disarmed pulse is irrelevant during operation and we have by far more important things to work on.

Ok, I just thought it wasn't required for @ndepal.


Fails to load hammerjs

during install in an Ember addon ...
ember install ember-gestures

I get the following:

Failed to execute "git clone https://github.com/hammerjs/hammer.js.git -b v2.0.6 --progress . --depth 1", exit code of #128
Cloning into '.'...
fatal: unknown error occured while reading the configuration files

I tried to reproduce this and couldn't so am closing.


Explorer UI Shifts in the Middle of a Double-Click

Issue Type: Bug
Repro steps:

Ensure the Open Editors list is visible and expanded.
Pausing as long as your system allows between clicks, double-click an unopened file in the Explorer.

Actual result:
With the first click, the file is opened in preview mode and added to the Open Editors list. This shifts the entire Explorer UI down one row, moving the target of your double-click. The second click lands on the incorrect item.
Expected result:
The UI should never shift in the middle of a single interaction like a double-click.
Potential solutions:

Don't show previewed files in the Open Editors list.
Introduce a delay before single-click triggers a file preview.
When updating the Open Editors list, also shift the Explorer scroll position to avoid moving items on the screen.

Workaround:
Collapse the Open Editors panel.
VS Code version: Code 1.43.2 (0ba0ca52957102ca3527cf479571617f0de6ed50, 2020-03-24T07:38:38.248Z)
OS version: Windows_NT x64 10.0.18363

Thanks for filling this, we are aware of this limiation, however I could not find an older issue which caputres this.
Maybe just try disabling preview editors as workaround?
We tried some of your potential solutions and each caused some other issue.

What does out-of-scope mean? Whose scope is this, if not the VS Code's?


subpixel antialiasing

Support subpixel antialiasing. This should be straightforward.
What do you mean by this this?
Zoomed text looks fine in pathfinder. You want to create more smoothness or it's something different.
Congratulations for writing such a wonderful and researched  library.
Thank you for work!

This is implemented now.


Registered App Domain will Throw Error when No Subscription Services

Details of the scenario you try and problem that is occurring:
We've recently had a case where the extraction was throwing an error at the AppDomain extraction phase, with error message: The Microsoft Sharepoint Foundation Subscription Setting Service must be configured to complete this operation. The server somehow had App Domains registered, but had no Subscription Services Service Application. SPDSC.Reverse was trying to obtain information for the app domain from the Get-TargetResource and was throwing the error. Still unsure if this should be handled at the resource level (SPDSC) or at the Reverse level. Will need to investigate further.
The DSC configuration that is using the resource:
N/A
Version of the Operating System and PowerShell the DSC Target Node is running:
N/A
Version of the DSC module you're using:
<IP_ADDRESS>

Hello Nick,
That might be related, i always getting exceptions with appdomain extraction, see the example below:
PS C:\Users\spfarm> SharePointDSC.Reverse.ps1
To execute the same extraction process unattended, run the following command:
.\SharePointDSC.Reverse.ps1 -ComponentsToExtract @("SPWebApplicationAppDomain","SPWebApplication")
Scanning Operating System Version...
Scanning SQL Server Version...
Scanning Patch Levels...
Configuring Dependencies...
[ SP ] Generating the SharePoint Prerequisites Installation...
[ SP ] Generating the SharePoint Binary Installation...
[ SP ] Scanning Web Application(s)...
Scanning SPWebApplication [1/2] {mysite - 8888}
VERBOSE: Executing as the local run as user SKY\spfarm
VERBOSE: Leaving BeginProcessing Method of Get-SPWebApplication.
VERBOSE: Leaving ProcessRecord Method of Get-SPWebApplication.
VERBOSE: Leaving EndProcessing Method of Get-SPWebApplication.
VERBOSE: Leaving BeginProcessing Method of Get-SPAuthenticationProvider.
VERBOSE: Leaving ProcessRecord Method of Get-SPAuthenticationProvider.
VERBOSE: Leaving EndProcessing Method of Get-SPAuthenticationProvider.
-> Scanning SharePoint Designer Settings
VERBOSE: Executing as the local run as user SKY\spfarm
VERBOSE: Leaving BeginProcessing Method of Get-SPFarm.
VERBOSE: Leaving ProcessRecord Method of Get-SPFarm.
VERBOSE: Leaving EndProcessing Method of Get-SPFarm.
VERBOSE: Leaving BeginProcessing Method of Get-SPWebApplication.
VERBOSE: Leaving ProcessRecord Method of Get-SPWebApplication.
VERBOSE: Leaving EndProcessing Method of Get-SPWebApplication.
VERBOSE: Leaving BeginProcessing Method of Get-SPDesignerSettings.
VERBOSE: Leaving ProcessRecord Method of Get-SPDesignerSettings.
VERBOSE: Leaving EndProcessing Method of Get-SPDesignerSettings.
VERBOSE: Executing as the local run as user SKY\spfarm
VERBOSE: Leaving BeginProcessing Method of Get-SPWebApplication.
VERBOSE: Leaving ProcessRecord Method of Get-SPWebApplication.
VERBOSE: Leaving EndProcessing Method of Get-SPWebApplication.
-> Scanning Outgoing Email Settings
Scanning SPWebApplication [2/2] {SharePoint - 80}
VERBOSE: Executing as the local run as user SKY\spfarm
VERBOSE: Leaving BeginProcessing Method of Get-SPWebApplication.
VERBOSE: Leaving ProcessRecord Method of Get-SPWebApplication.
VERBOSE: Leaving EndProcessing Method of Get-SPWebApplication.
VERBOSE: Leaving BeginProcessing Method of Get-SPAuthenticationProvider.
VERBOSE: Leaving ProcessRecord Method of Get-SPAuthenticationProvider.
VERBOSE: Leaving EndProcessing Method of Get-SPAuthenticationProvider.
-> Scanning SharePoint Designer Settings
VERBOSE: Executing as the local run as user SKY\spfarm
VERBOSE: Leaving BeginProcessing Method of Get-SPFarm.
VERBOSE: Leaving ProcessRecord Method of Get-SPFarm.
VERBOSE: Leaving EndProcessing Method of Get-SPFarm.
VERBOSE: Leaving BeginProcessing Method of Get-SPWebApplication.
VERBOSE: Leaving ProcessRecord Method of Get-SPWebApplication.
VERBOSE: Leaving EndProcessing Method of Get-SPWebApplication.
VERBOSE: Leaving BeginProcessing Method of Get-SPDesignerSettings.
VERBOSE: Leaving ProcessRecord Method of Get-SPDesignerSettings.
VERBOSE: Leaving EndProcessing Method of Get-SPDesignerSettings.
VERBOSE: Executing as the local run as user SKY\spfarm
VERBOSE: Leaving BeginProcessing Method of Get-SPWebApplication.
VERBOSE: Leaving ProcessRecord Method of Get-SPWebApplication.
VERBOSE: Leaving EndProcessing Method of Get-SPWebApplication.
-> Scanning Outgoing Email Settings
[ SP ] Scanning Web Applications App Domain(s)...
Get-TargetResource : A parameter cannot be found that matches parameter name 'WebApplication'.
At C:\Program Files\WindowsPowerShell\Scripts\SharePointDSC.Reverse.ps1:4341 char:43

        $results = Get-TargetResource @params

                                      ~~~~~~~

CategoryInfo          : InvalidArgument: (:) [Get-TargetResource], ParameterBindingException
FullyQualifiedErrorId : NamedParameterNotFound,Get-TargetResource

Cannot index into a null array.
At C:\Program Files\WindowsPowerShell\Modules\ReverseDSC\<IP_ADDRESS>\ReverseDSC.Core.psm1:257 char:17

        if ($null -eq $Params[$_])

            ~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [], RuntimeException
FullyQualifiedErrorId : NullArray

Get-TargetResource : A parameter cannot be found that matches parameter name 'WebApplication'.
At C:\Program Files\WindowsPowerShell\Scripts\SharePointDSC.Reverse.ps1:4341 char:43

        $results = Get-TargetResource @params

                                      ~~~~~~~

CategoryInfo          : InvalidArgument: (:) [Get-TargetResource], ParameterBindingException
FullyQualifiedErrorId : NamedParameterNotFound,Get-TargetResource

Cannot index into a null array.
At C:\Program Files\WindowsPowerShell\Modules\ReverseDSC\<IP_ADDRESS>\ReverseDSC.Core.psm1:257 char:17

        if ($null -eq $Params[$_])

            ~~~~~~~~~~~~~~~~~~~~~

CategoryInfo          : InvalidOperation: (:) [], RuntimeException
FullyQualifiedErrorId : NullArray

[ SP ] Configuring Local Configuration Manager (LCM)...
Configuring Credentials...
Please enter the full path of the output folder for DSC Configuration (will be created as necessary):
Having the same exception on both my 2016 and 2019 test environment. Subscription settings service is provisioned in both environment.

@xenophobentx Can you try using the latest PR from this GitHub Repo. I believe we've identified the source of the issue. Thanks

Working now! Great!


Return exit code 1 if sonobuoy can't pull all images required

What this PR does / why we need it:
This PR ensures that sonobuoy images pull will return an exit code 1 if it can't pull all required images for the e2e tests. This is a follow up on https://github.com/heptio/sonobuoy/pull/781 and allows users to integrate a CI test in their pipelines to check if all images are present in the Docker registry (without any grep).
Which issue(s) this PR fixes

Fixes #

Special notes for your reviewer:
Release note:
sonobuoy images pull will return an exit code 1 if some images are not available.

Codecov Report

Merging #786 into master will decrease coverage by 0.02%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master    #786      +/-   ##
=========================================
- Coverage   42.92%   42.9%   -0.03%
=========================================
  Files          71      71
  Lines        4163    4165       +2
=========================================
  Hits         1787    1787
- Misses       2270    2272       +2
  Partials      106     106

Impacted Files
Coverage Δ

cmd/sonobuoy/app/images.go
25.13% <0%> (-0.29%)
:arrow_down:

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 fd7722d...e82ac10. Read the comment docs.

Thanks for the submission!


Language update

Purpose
Update with POT file from 03/09/2020
Checklist

[x] I have performed a self-review of my own code
[ ] I have added relevant logging with appropriate levels to my code
[ ] I have updated documentation (Confluence/GitHub wiki/tech debt doc) where relevant
[ ] I have added tests to prove my work
[ ] The product team have tested these changes

good to go!


Failure to resolve

Describe the bug
Unable to resolve the library using gradle.
To Reproduce
Add dependancy build gradle kts
val androidMain by getting {
            dependencies {
                implementation("com.github.segmentio.analytics-kotlin:android:1.2.0")
            }
        }

I even tried with
maven("https://repository-master.mulesoft.org/nexus/content/groups/public/")

Shows: Failed to resolve: com.github.segmentio.analytics-kotlin:android:1.2.0
Expected behavior
Able to fetch lib
Do you have a working example where it is fetching from maven central or mulesoft?

The documentation is wrong, the correct package name is:
implementation("com.segmentio.analytics.kotlin:android:1.2.0")

The documentation should be updated to reflect this.

Actually scrap that, it still doesn't work.
Its actually quite strange because when publishing locally the folder structure is as above.

@Reedyuk please try the following:
com.github.segmentio:analytics-kotlin:1.2.0

thanks for reporting the issue. we'll get the documentation fixed. we're migrating to maven central, you'll soon be able to use it in the way you suggested.

@wenxi-zeng this still doesn't work :/

@tagrudev you should be able to use it in the following way for version 1.3.0 and older
com.github.segmentio:analytics-kotlin:1.2.0

can you share your usage, so we have a better idea?

Sorry @wenxi-zeng I should have added more information, so in my build.gradle.kts I have the following
implementation("com.github.segmentio:analytics-kotlin:1.3.0")

I have added the jitpack to my repositories as well
maven(url = "https://jitpack.io")

This still results in

hey @tagrudev sorry for the late response. I have no idea why your setup doesn't work. it seems right to me. but we have just released our new version 1.4.2 to maven and it is ready to be used. our public doc has been updated as well. please check out the doc to see if the new maven setup works for you. thanks!

Using 1.4.2 and only mavenCentral works now. Thank you.


Waterline custom validator

Could not add custom waterline validator. I have next model: http://pastebin.com/6zj9vcxn, and after Payment2.create().then(console.log, console.log), i recieve only 1 field error message: "Invalid attributes sent to Payment2: userId", but i should have error for RUBLES field also. Looks like waterline ignores my validation rules.
BUT if i uncomment required: true rule for rubles-field. Waterline starts use my custom validators also. Looks like waterline bug? Or i do something wrong?
Here is pastebin of examples: http://pastebin.com/HgBcGaD8

Same issue here - it's ignoring my custom validation types - not even calling invitation_field function:
  types: {
    invitation_field: function(value) {
      sails.log.info(value);
      return (this.status == 'invited') ? Boolean(value) : true;
    },
  },
  attributes: {
    ...
    inviteEmail: {
      type: "string",
      invitation_field: true
    },
}

Thanks @particlebanana. I see, it makes sense now, because in my case value was empty.
Is there a way then to check if value is empty based on other value? In other words set field as required if another field is set - similar to #579?

I just pushed out bd5152416753d035086825e021e8b11eeb2e0f78 which should work for #579

@particlebanana thanks for answer, for now i set defaultsTo rule so waterline apply custom validators.
But in case if i want leave value as null or undefined i add next function with validation
  beforeCreate: function (values, next) {
    // validator
    if (values.rubles <= 0 && values.bonuses <= 0) {
      return next({err: ["Amount of payment should not be zero."]});
    }
    next();
  },

It works good also, but is there any way to make same type as native waterline error (Error (E_VALIDATION))? So i could be able filter all errors by same error code.
For example:
			.fail(function(err) {
				if (err.code === "E_VALIDATION") {
					res.status(400)
					return res.json(err);
				}
				return next(err);
			});

@slyder you can get that error constructor by requiring from the waterline package:
var WLValidationError = require('project_root/node_modules/waterline/lib/waterline/error/WLValidationError');

Then you can use it as it's used here: https://github.com/balderdashy/waterline/blob/master/lib/waterline/query/validate.js#L43-L48
I'm going to close this out, but if you still feel unanswered, we can open this issue up again.


Feed names truncated incorrectly

Expected behavior: Any truncation should be done at least on a codepoint boundary; preferably on a grapheme cluster boundary.
Observed behavior: Some feed names are truncated after the first code unit of a multi-byte codepoint.

This bug also hints that truncation is done by byte count. I see English/Latin names truncated at 34 characters, but Russian/Cyrillic names at 18–20 characters.
Perhaps ideally truncation should be done on the client side, using the text-overflow: ellipsis property.

+1 as this bug also exists on Chinese characters.


Query: Implement inheritance support for relational layer

Add discriminator predicate in SelectExpression (filed #15808 to remove redundant)
Add TPH support in materializer. This happens at core level now
Add translation for is operator inside lambda
Add translation for OfType method

@roji - This involves some breaking changes or disabled tests which has overlap with FromSql.

@roji @maumar - Anything apart from nit? Approach looks fine?

Will try to do a more in-depth review tomorrow, but the little I saw made total sense..

I will rebase on master then.


PX4 v1.10 Mavros offboard landing confusion

We have a quad with quite good EV feedback from a mocap system, have EKF2_AID_MASK set to decimal 24, and by publishing to setpoint_position/local while in OFFBOARD mode, we have pretty good in-air position control over the drone.
We've tried using the LAND mode, but found that it's too harsh and not precise enough. We're trying a velocity-based approach, publishing to setpoint_velocity/cmd_vel_unstamped while still in offboard mode to command the drone to move straight down. This will land the drone (and activate the landing detector), but it's not very precise. Something weird happens where it seems that PX4 starts to ignore yaw commands?

Should I be publishing to setpoint_raw rather than setpoint_velocity/cmd_vel_unstamped?
Should we be using mocap for velocity feedback as well?
Is there a way to do something like the precision landing mode using mocap position feedback?
Seems like I'm missing something here; I feel like landing accurately with an EV system should be somewhat straightforward.

Please add a log to logs.px4.io and link it here.

Here's the flight log: https://review.px4.io/plot_app?log=c290d0d7-f02a-446d-b2c5-07a31582ed99
Also, I've opened up a mavros issue related to this: https://github.com/mavlink/mavros/issues/1440

Any updates on this ?


git.modified_files also includes "renaming indicators"

Report
What did you do?
Have a rule that checks for spaces in filenames:
# Warn on spaces in file names
####################################
files_with_spaces = git.modified_files.select { |file| (file =~ /\s/) != nil }
spaces_warning_text = ""
if files_with_spaces.length > 0 then
  spaces_warning_text += ""
  warn("Found filenames containing spaces, files should not contain spaces. See below for a list of files.", sticky: false)

  # Markdown below the list of failures
  markdown("##### Files with spaces")
  files_with_spaces.each { |file| markdown("- #{file}") }
end

What did you expect to happen?
Should warn only when a file is added or modified with a space in the filename.
What happened instead?

Works well most of the time, I get correct warnings, but on a rename to fix the warning, modified files also includes the rename:

{Sub-projects/Source files => Modules/src}/UtilsTests/NSStringTemplateMakeTests.m

Is there a way to only get the final filenames of modified files (without the renaming indication)?

Your Environment
Jenkins, danger 3.1.0

Hrm, I think we should probably do some work in Danger to convert those to be usable file paths of the after in git.modified_files

https://github.com/danger/danger/pull/566 should fix this 👍

I hit this problem today. Danger 4.0.4.

thanks @barakwei, I recently ran into this issue again on version 4.2.2. @orta should there be a similar approach within Danger for git.modified_files ?

I think that makes sense, please do some tests to make sure that doesn't accidentally create a breaking change for most people also :D

Since the last comment i've upgraded it:
modified_files = git.modified_files.map { |path| path.gsub(/{(.*) => (.*)}/, '\2') }
changed_files = (git.added_files + modified_files - git.deleted_files).uniq

Then I use changd_files with my plugins.

This got updated in 5.0.0

Thanks @orta I can confirm that this works great for me, thanks!


Handle redundant connections

[2022-02-21 13:25:48,539: ERROR/ForkPoolWorker-5] ERROR --> The request failed with code 400 Bad Request: {'non_field_errors': ['The fields termination_a_type, termination_a_id must make a unique set.']}

Open again if this still happens.


TypeError in useAction Hook: finally is not a function

Issue Summary
A TypeError occurs within the useAction hook of the Blinks SDK when attempting to use a finally block after a promise chain.
Steps to Reproduce

Integrate the Blinks SDK within a React component using the useAction hook.
Trigger the component that executes the useAction hook.
Observe the console for any errors during the action fetching process.

Error Message
ERROR TypeError: _chunk3VHJSHHRcjs.Action.fetch(a(...)", e); setAction(null); }).finally is not a function (it is undefined)

Code Snippet
useEffect(() => {
  setIsLoading(true);
  if (!isRegistryLoaded || !actionApiUrl) {
    return;
  }
  let ignore = false;
  _chunk3VHJSHHRcjs.Action.fetch(actionApiUrl, void 0, supportStrategy).then((action2) => {
    if (ignore) {
      return;
    }
    setAction(action2);
  }).catch((e) => {
    console.error("[@dialectlabs/blinks] Failed to fetch action", e);
    setAction(null);
  }).finally(() => {
    if (!ignore) {
      setIsLoading(false);
    }
  });
  return () => {
    ignore = true;
  };
}, [actionApiUrl, isRegistryLoaded]);

Suggested Fix
Removing the finally block resolves the error and allows the component to function, but this is not ideal. A better fix would be to ensure that the Promise implementation in the environment includes finally or to add a polyfill.
Environment

React Native version: 0.74.3
react-native-picker-select version: ^9.1.3
@dialectlabs/blinks version: ^0.8.0
@dialectlabs/blinks-react-native version: ^0.2.0

Hmm, that sounds strange.
I wasn’t able to reproduce it using Hermes and the specified version of React Native (0.74.3).
Could you provide more details about your environment? Specifically, which engine you’re using, the Node version, and so on?

@prsvic I will try to provide you with a minimal reproducible example asap. For now we patched it like so:
@dialectlabs+blinks-core+0.12.1.patch
diff --git<EMAIL_ADDRESS><EMAIL_ADDRESS>index 12ad4e1..9d395d3 100644
---<EMAIL_ADDRESS>+++<EMAIL_ADDRESS>@@ -1493,11 +1493,7 @@ function useAction({
     }).catch((e) => {
       console.error("[@dialectlabs/blinks-core] Failed to fetch action", e);
       setAction(null);
-    }).finally(() => {
-      if (!ignore) {
-        setIsLoading(false);
-      }
-    });
+    })
     return () => {
       ignore = true;
     };

Will provide you with more info soon.


Disabling auto-send on sparkle auto-run command

In relation to https://github.com/microsoft/vscode/issues/199452

Following the review discussions, the args variable is set in a more concise manner as follows:
args = [{ ...args[0], autoSend: false }];


A few legend + color questions

Is there a way to suppress the legend resulting from style(color = ...)?
Also, I've got something like (plot1 + plot2) |> draw and each has a style(color = ...), and the colors are repeated in the legend. Anyway to get plot1 and plot2 to draw from the same pool of colors to avoid conflicts?
Or to specify the colors manually (so I can ensure they don't conflict)?

The legend and "scales" need a little rework, so at the moment:

No, not really, but maybe this is less of an issue once 2. and 3. are fixed. Otherwise, I guess one could start thing of an API for that as well.
Mhm, in theory that should work, but I see now that maybe some of the assumptions of CategoricalArrays fail if you use them from different datasets, do you have a MWE (with a screenshot of the plot, so I can see what legend exactly you get?)
You can pass a whole new set of colors to use, say visual(color = ["red", "blue", "green"]), but not an explicit value => color mapping. OTOH, this should never really be needed if 2. is fixed I guess.

Here is an example that is pretty close to what I'm actually doing...
let
	n = 10
	cats = [rand('a':'c') for i = 1:n]

	table = [(idx = i, cat1 = cats[i], val = i*rand()) for _ = 1:30 for i = 1:n]

	s = data(table) * style(:val, :idx) * style(color = :cat1) * spec(Scatter, markersize=5, strokewidth=0)

	e = data((; idx=1:n, endpoint=1:n, cat2 = [string(iseven(i)) for i = 1:n])) * style(:endpoint, :idx) * style(color = :cat2) * spec(Scatter, markersize=10, strokewidth=0)

	(s + e) |> draw
end

On 0.1.2 of AlgebraOfGraphics.
Something is very weird: if I take away the string call around iseven, I get this:

I'll update to master to get the fixes from #105 and see if these results change

Yep, same strange behavior on master; update code is just style -> mapping and spec -> visual:
let
	n = 10
	cats = [rand('a':'c') for i = 1:n]

	table = [(idx = i, cat1 = cats[i], val = i*rand()) for _ = 1:30 for i = 1:n]

	s = data(table) * mapping(:val, :idx) * mapping(color = :cat1) * visual(Scatter, markersize=5, strokewidth=0)

	e = data((; idx=1:n, endpoint=1:n, cat2 = [string(iseven(i)) for i = 1:n])) * mapping(:endpoint, :idx) * mapping(color = :cat2) * visual(Scatter, markersize=10, strokewidth=0)

	(s + e) |> draw
end

What about layoutplot! returning both the scene and the layout, and then draw just returns the scene? That way |> draw will still work, but for advanced use, you can easily get the layout (to, say, remove the legend). Not as good as an API but way more hackable in the meantime.

edit: style should be deprecated to mapping, not visual, right?

Ups, yes, fixed!

let
	n = 10
	cats = [rand('a':'c') for i = 1:n]

	table = [(idx = i, cat1 = cats[i], val = i*rand()) for _ = 1:30 for i = 1:n]

	s = data(table) * mapping(:val, :idx) * mapping(color = :cat1) * visual(Scatter, markersize=5, strokewidth=0)

	e = data((; idx=1:n, endpoint=1:n, cat2 = [string(iseven(i)) for i = 1:n])) * mapping(:endpoint, :idx) * mapping(color = :cat2) * visual(Scatter, markersize=10, strokewidth=0)

	(s + e) |> draw
end

Mhm, I'd never thought of this type of use case, so you want to somehow match colors from groupings with different variables, which take different values? Would you expect this to go on looping colors and list false, true in the same legend but continuing to cycle colors? That is, use 5 distinct colors in total? This could definitely be done, and it makes sense to me (compute the scales using all the data).

Something is very weird: if I take away the string call around iseven, I get this...

This is intended. There is an "auto-detection" mechanism to figure out if a variable is categorical (find distinct colors) or continuous (use a colorbar). Booleans subtype numbers (for better or for worse), so you get the continuous version. color = :myvar => categorical would force the continuous version. This could probably be a bit more prominent in the docs.

Also, if I try passing explict colors, they all end up the second one

That is somewhat intended, to pass it to both you should do something like
(s + e) * visual(color = [:red, :green, :blue])

What about layoutplot! returning both the scene and the layout, and then draw just returns the scene? That way |> draw will still work, but for advanced use, you can easily get the layout (to, say, remove the legend). Not as good as an API but way more hackable in the meantime.

Yes, that makes sense, to have layoutplot to return both. Your are not the first one to ask for this, and I guess it makes sense to have a high-level interface and then return a tweakable object.

Mhm, I'd never thought of this type of use case, so you want to somehow match colors from groupings with different variables, which take different values?

Yeah, essentially I've got two categories, and I want to color the data by one of them, and I also happen to want to indicate the end of the data, which I was using black dots for. But then I wanted to also show the second category somehow, and since layouting wasn't working (fixed by #105), I decided to color the end-marker by the second category.

Would you expect this to go on looping colors and list false, true in the same legend but continuing to cycle colors? That is, use 5 distinct colors in total? This could definitely be done, and it makes sense to me (compute the scales using all the data).

Yeah, that's what I wanted to happen, five distinct colors. I actually wanted to also remove the first category from the legend (since there's a lot of them, and it matters more that you can tell groups apart rather than specifically which group is which). Now I'm using layouting for the first category and deleting the legend by hand, so I don't have a legend at all.

This is intended. There is an "auto-detection" mechanism to figure out if a variable is categorical (find distinct colors) or continuous (use a colorbar). Booleans subtype numbers (for better or for worse), so you get the continuous version. color = :myvar => categorical would force the continuous version. This could probably be a bit more prominent in the docs.

Ah ok, good to know! I did see the => categorical bits in the tutorial, but when I omitted it (on my string categories) nothing changed, so I kind of forgot about it.

That is somewhat intended, to pass it to both you should do something like (s + e) * visual(color = [:red, :green, :blue])

Ah ok, makes sense.

Closing this since I don't think there's anything concrete to do here :). Thanks very much for the quick answers @piever!


fix: issues sonar warnings

:tada: This PR is included in version 0.104.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[SUBMARINE-211] Integrated Submarine team manager web & server

What is this PR for?
The submarine team manager is independently developed.
Integration of front-end pages and back-end services is required.
What type of PR is it?
[Refactoring]
What is the Jira issue?

https://issues.apache.org/jira/browse/SUBMARINE-211

How should this be tested?

CI Pass

Screenshots (if appropriate)

Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? No

@LinhaoZhu Please help me review the code, Thanks!

thank you commit！


Add --template flag to melange build

I'm thinking this will make it easier to build and release multiple versions of the same package  (e.g. nginx:1.20.3, nginx:1.20).
My plan is that in CI, we can use the Github actions matrix strategy to run the melange/apko jobs for different versions of the same package. The specific version can passed in via the flag, and will be applied to melange.yaml in code:
So, melange.yaml could look like this:
package:
  name: nginx
  version: {{ .Version }}

and we'd pass in
melange build --template '{"Version": "1.20.3"}'

Signed-off-by: Priya Wadhwa<EMAIL_ADDRESS>

this is super cool, i like how it composes similar to kubectl
go ahead and merge it!


Release flowey as a separate project?

Flowey seems like it could be a hugely useful crate for the community.  Any chance this can get released?
From the openvmm documentation:
To implement various developer workflows (both locally, as well as in CI), the OpenVMM project relies on flowey: a custom, in-house Rust library/framework for writing maintainable, cross-platform automation.

Howdy - I'm the lead dev and original author of the flowey infrastructure within OpenVMM.
Long term,  it would be awesome to see flowey become its own standalone project that folks outside the OpenVMM project can use. In fact, if you peek under-the-hood, you'll find that the "core" of flowey is already entirely decoupled from any OpenVMM-specific crates / pipeline scenarios. In that sense, it is already possible to hoist flowey crates out of the OpenVMM repo and use them within other projects.
That being said, the project is still very much in its "active evolution" phase, and currently offers:

Zero "guide" level documentation

No user-facing docs to explain how to write pipelines with flowey (both APIs, and mental-model)
No dev-facing docs to explain the underlying flowey "architecture"

Unstable APIs, and missing API documentation
Little polish around user-facing error messages and workflow debugging

For these reasons and more, we expect to keep "incubating" the flowey project within OpenVMM for the foreseeable future, and continuing to evolve flowey's internal and external feature-sets and APIs to better suit the needs of the OpenVMM project.

Thank you for the explanation and roadmap!  I'm so excited to start digging through the code and watching this project grow!


Feedback for this page.

Feedback:

CA Personas framework needs to be expanded. This use case needs to be added as it is just one example.
The Personas Framework needs to be a bit more granular. It needs to be extended to include the 6 types of guest and external users.
Will be good to have a diagram that describes visually all of the types of users. It should be a set of concentric circles along the lines of set theory

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

ID: 14c806ae-ffb3-c2db-b1d9-017a2d2f32ba
Version Independent ID: a8a32962-098a-b767-f413-c467f776dc0d
Content: Authentication and Conditional Access for B2B users - Microsoft Entra
Content Source: articles/active-directory/external-identities/authentication-conditional-access.md
Service: active-directory
Sub-service: b2b
GitHub Login: @msmimart
Microsoft Alias: mimart

Feedback:

CA Personas framework needs to be expanded. This use case needs to be added as it is just one example.
The Personas Framework needs to be a bit more granular. It needs to be extended to include the 6 types of guest and external users.
Will be good to have a diagram that describes visually all of the types of users. It should be a set of concentric circles along the lines of set theory

@joibarr
Thanks for your feedback! We will investigate and update as appropriate.

@joibarr
Thank you for bringing this to our attention.
I've delegated this to content author @msmimart, who will review it and offer their insightful opinions.

@msmimart
Could you please review add comments on this, update as appropriate.

Hi @joibarr, please feel free to add more info here if you'd like to. I'll go ahead and close this issue for now.
#please-close


Consumption Improvements

I was getting "broker not connected" errors frequently when starting up that end up being a race between requesting partition information and having the broker's connection established.  This implements a simply retry+backoff so that it can hopefully succeed.
I was also having issues with the output being interleaved on account of the multiple goroutines writing to same writer without synchronization (in some places).  I fixed that with a single channel which handles all the writing.  This is mentioned in #23
I wonder if we can use sarama's newer ConsumerGroup interface which might simplify this -- I have to dig a bit more into that one...

Thoughts welcome... :-)

I think it's a bad idea to retry like this. We should rather try to make sarama fetch broker metadata before we do our own logic

so instead of wrapping GetOffsets, we should do this wayy before, not tied to GetOffset itself. i'm not sure how we can do that, but i should be possible.

about interleaved output: there was a recent PR on this, using a mutex - can you elaborate why this is still problematic?

Hi @birdayz -- thanks for your reply.

I agree, but I was unable to find a way to block until the connection was fully established.  If you have any suggestions, I'm happy to discuss them.  Again, my initial thought is that the ConsumerGroup interface seems to be easier to use for this purpose as there are interface methods that are called throughout the setup lifecycle.  Checkout the example implementation here.
For interleaved output, the lock was only held at the end when writing out the payload, but not when writing the headers or errors -- for instance in this block.  So the headers and errors would be written without having acquired the mutex and thus be interleaved.  To fix this with mutexes, you'd essentially have to hold the lock for the duration of the loop iteration within the goroutine meaning that only one of the inner loops would be running at a time, negating the parallelism of the multiple goroutines consuming partitions.  Channels seem like a cleaner solution to me (with the exception of @mafredri's comment above that should be addressed).

I'll continue to look into the ConsumerGroup interface as that might clean things up significantly.

For interleaved output, the lock was only held at the end when writing out the payload, but not when writing the headers or errors -- for instance in this block. So the headers and errors would be written without having acquired the mutex and thus be interleaved. [...]

That should not be the case, in the section you linked to, the tabwriter is writing to stderr (a bytes.Buffer) and as such any output should be delayed until we acquire the mutex lock.

@mafredri -- I think you're right -- I was just misreading the output.  :-(

i'll try to look into it the evening, maybe there's a way to block so long. Regarding the consumer groups: i'd rather not use it, otherwise we have to create new consumer groups every time the application is started. some CLIs do this (actually just one shitty GUI tool i saw, i dont remember the name), but this pollutes the broker with lots of useless consumer groups. consumer groups are the tool of choice if you want to (persistently) let the broker control partition assignment & offsets..which is not the case here.

Closing this for now...


Search by title / project

Hi
great that you built this redmine workflow.
I'd suggest to move the id based search to a text based search, because I would never remember all the ids of the issues.

Probably a good idea. I built this for work, where searching by IDs was super useful. Maybe a good weekend project... :grinning:


Order clusters in pl.dotplot

I have been using sc.pl.dotplot to summarize marker gene expression patterns. But it seems that this function always sorts the cell clusters in alphabetical order. Is there a way for me to specify the order of cell clusters? I'm using scanpy 1.5.0

You can use the categories_order argument, though would have to check which version that was added in.
Are you having issues with newer releases of scanpy?

OK Thanks. I was using 1.5.0 which probably didn't have that option.


Add cache busting header & improve image validation time when import

Description
Cache Busting
Same logic as #312
Image Validation Time Improvement
Same logic as #339 with changes made as per request by @codenamewei
Fixes # (issue)
Type of change
Please delete options that are not relevant.

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

Tested on?

[ ] Windows
[x] Linux Ubuntu
[ ] Centos
[ ] Mac
[ ] Others  (State here -> xxx )

Checklist:

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

changes made from the last commit:

Merged with the latest v2_alpha branch
JpegImageData getWidth() and getHeight() methods style changed to conform with others ImageData
Moved Exceptions class to util/exception
Refactor add "no-cache" into a helper method to keep code clean

@codenamewei
kindly review it whenever you are free. Thanks!

@YCCertifai,
Tried a folder of 564 images on Mac and faced errors as below
https://gist.github.com/codenamewei/efa168868269c51f399c4496fe65f2d0

I've tested on 1k images and also some "fake image"(random file with ".jpg" extension)
still do not fall into this exception...
the link to the images is here
If possible please provide the images you have tested on, so I could debug it...
thanks

@YCCertifai
Did a brief look into
Local path of image: /Users/chiawei/Desktop/sample-data/Education/stationery/ruler.jpg
Path of image in application: /Users/chiawei/Desktop/sample-data/Education/ruler.jpg
Dataset Folder: access by company email
How to reproduce:
Import Education folder or any folder which contains subfolder of images
Environment: tried on Mac & Windows

bug fixed.
Tested with cases:

import folder with subfolders
import/export
reload
import/export with data (including cross-platform project importing)