Use reqwest for mint service, which supports system wide proxy

Motivation
Use reqwest for connecting to mint service, instead of Hyper, in order to support systemwide proxy settings.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
account mintb 0 1000

I removed TLS support (because we don't use it), which removed all the new dependencies.

Thanks for removing the dep on TLS, we definitely don't want to bring that in atm and if we did we could also use rusttls instead of depending on openssl itself

:pushpin: Commit 03c2f53 has been approved by bmwill

@bors-libra r+

:hourglass: Testing commit 03c2f531367c0e9c9a72fc9959b0d1d5d1475455 with merge 6de660e742850fa55e285b87d6cab0bfcc057c70...

:sunny: Test successful - checks-circle_commit_workflow
Approved by: bmwill
Pushing 6de660e742850fa55e285b87d6cab0bfcc057c70 to master...


xliffmerge removes trailing line break when there is an update

Hi and thanks for xliffmerge!
When xliffmerge changes a translation file, the trailing line break is removed. This is a bit annoying in the workflow because you need to revert the change manually.

The first diff is expected, the second is not.
The problem does not occur if there is no change in the translation.

You are right. It is at least unexpected.
Will try to fix it soon.


Investigation:Missing Queued token -Reappeared

User was testing:#1747
This was on Testnet
Transfered Stella token to account 2,saw the token being queued.
I selected the refresh button and suddenly there were no queued token.
Todays transaction in activity was all of sudden empty as well
Also attaching the error message which I saw in console
Note:Will try to reproduce it again.Believe it happened as the first tx of the day
Then I resend another Stella token and saw it being queued and when I refreshed it ,it went to confirmed state quickly
All of sudden am seeing the missing Stella token reappeared in Todays activity

cc @beguene @fbwoolf

I transffered 3.9 and its showing

https://user-images.githubusercontent.com/38872890/136467393-68c47055-f85f-413c-a6d3-cb0b2149dafa.mov
Adding video for perusal
cc @fbwoolf @beguene


feat: community landing page

Community landing page implementation
Link to preview https://deploy-preview-1119--asyncapi-website.netlify.app/community

The spacing is fixed in mobile, great job! 🌟 🌟 🌟

looks awesome to me. I only suggest, in ambassador section, put avatar of one of current ambassadors, not some random person. @alequetzalli is one of first ambassadors so is she only agrees, use her avatar there

looks awesome to me. I only suggest, in ambassador section, put avatar of one of current ambassadors, not some random person. @alequetzalli is one of first ambassadors so is she only agrees, use her avatar there

omg this is soooo cool and nice, I would NEVER have expected or suggested this!! but also wow and thank you! 😂😄✌🏽

This one is merging to the community branch and still we get 3 merge approvals 🤩

/rtm


Update LibLog.

Thanks, could you please also push nupkg to nuget.org?

Done ;)

Thank you for the update


Replace setTimeout deletion/update in sessions and cache items with "lastAccessed" date

Cache items using the lifespan and resetOnAccess options currently have their setTimeouts deleted and recreated with every touch using cache.get(). User sessions operate similarly. Since this happens with every cache item retrieval or every request in the case of user sessions, it might have a performance impact during heavy traffic.
Instead, add a "lastAccessed" timestamp (in milliseconds) to each item and update that with every touch. When the setTimeout runs out, check to see if lastAccessed + lifespan > now. If so, reset the timer to lastAccessed + lifespan - now. This means that timers will only be created when the initial timer expires.

Implemented in 0d086fa9b2a26fdb13c10d51bbff173a93a7e3e7.


XSS

It's an assumption of the tool used within an internal organization, so I did not validate strictly.
However, there is no reason to allow the script tag, so we've fixed.
Thanks


Flexible Vina Docking for Cyclodextrins

Hi @diogomart,
I'm trying to optimize Vina parameters to get better agreement with experiment for docked binding energies of small molecules to cyclodextrins. To do this, I'd like to be able to take a cyclodextrin derivative and keep its main sugar ring rigid but customize the flexibility of substitutions along the ring. I'm able to use obabel to successfully dock small molecules to a rigid 6-phenyl substituted $\beta$-cyclodextrin but I need help in setting up flexibility. There is a flexible receptor setup script at example/autodock_scripts/prepare_flexreceptor.py, but I think this only works for proteins.
The host and ligand files I am using can be found in this gist. The file called bcd_deriv_flex.pdbqt was an attempt at creating a flexible 6-phenyl substitution via obabel translation of the substitution's isolated pdb to rotatable pdb. It did not work; it didn't give an error, just crashed my Jupyter notebook when I tried to run it.
The code I am using to test docking these structures is this:
from vina import Vina

v = Vina(
    sf_name='vina',
    seed=42,
    cpu=1,
    verbosity=2
)

# weights = [-0.035579, -0.005156,  0.840245, -0.035069, -0.587439, 0.05846]
# v.set_weights(weights)

v.set_receptor(rigid_pdbqt_filename="bcd_deriv.pdbqt", flex_pdbqt_filename="bcd_deriv_flex.pdbqt")
v.compute_vina_maps(center=[0.,0.,0.], box_size=[25, 25, 25])
v.set_ligand_from_file("hex.pdbqt")
v.dock(exhaustiveness=2, n_poses=1)
scores = v.score()
print(scores[0])
print(v.info())
v.write_poses('output_pose.pdbqt', n_poses=1, overwrite=True)

If I choose flex_pdbqt_filename=None I can dock without issue. (Note that I've also changed np.int to np.int64 as a fix for #196)
Would you be willing to brainstorm ways to solve this problem with me? I'd be nice if there were a way to easily make flexible any sidechain in any structure, just like there's currently a way to easily make any residue flexible in any protein using example/autodock_scripts/prepare_flexreceptor.py.
Best,
Jake Anderson

Hi @jaketanderson
I added an example script here: https://github.com/forlilab/Meeko/tree/reactive/example/cyclodextrin_flexible
It is in branch "reactive" that will be merged soon and released as v0.5. This will change the API and I wanted to write the script for the new API. To install it you'll need to clone the repository, switch to the "reactive" branch, and install from the local repository, e.g. with pip install -e .
The run.py script loads .mol files instead of PDB because PDBs often don't have bond orders, but for the PDB files you posted RDKit seemed to be reading the connect records and keeping correct bond orders.
RDkit has functions to add bonds between molecules, so it is possible to merge the flexible sidechain back with the cyclodextrin core, if needed.
Hope this helps

Thank you so much for putting this together @diogomart! In the next week or so I will test it out and adopt it into my workflow 🙂


[theming] Make contrastActiveBorder around text optional/themeable

VSCode Version: 1.20.1
OS Version: Linux

I like contrastActiveBorder and think it is very useful around UI elements such as buttons, list elements, active tabs etc.
However around text in the editor I think it is extremely counterproductive. It makes things harder to read. I find the borders around text so unbearable that I set contrastActiveBorder to transparent because I would rather lose all the benefits than deal with this (after all, I stare at text all day). It would be way more useful to expand the selectionForeground feature to more parts, so that e.g. Find locations (such as the one in the screenshot below) could be made more visible that way. A more general approach that would not require themeing would be to either invert the colors or swap background/foreground similar to what terminals do.
Anyway, until a better solution is implemented I would like to see an independent "contrastActiveTextBorder" color that is used around editor text. It can fall back to contrastActiveBorder so that backwards compatibility would be maintained (for whatever weird person finds this useful), but themes could independently set it to transparent to make it disappear while keeping the contrastActiveBorder around UI elements.

I added a new color id 'editor.rangeHighlightBorder' that controls the border color you mention.
No change of out-of-the box behaviour. It's only set in highContrast and it is the contrastActiveBorder color by default (you can change it...)

The name seems suboptimal as it sounds similar to editor.findRangeHighlightBackground and would suggest it only affects the same text. We're talking about at least 3 things here whose background colors are  editor.findMatchBackground, editor.findMatchHighlightBackground and editor.findRangeHighlightBackground.
If individual border colors were created for all 3, then there would be an editor.findRangeHighlightBorder which sounds very similar to your name. If indeed your new color affects all 3, it should have a more generic name (such as editor.contrastActiveTexBorder).

Just to make sure we're on the same page. Aside from the findRange... there are other occurrences, such as peekViewResult.*
So prefixing the name with "editor." would not be wise. I think my original suggestion contrastActiveTextBorder would work really well as a generic name and it would be easy to notice in the suggestions box while editing the user settings, because it would pop up while you're entering "contrastActive..." to set the contrastActiveBorder.

Good point, there are more uses of contrastActiveBorder that I missed. I added more border settings as having border settings for the decorations was a request from others as well.
Agree that range highlight and 'findRange highlight' 'findMatchRange highlight' might be confusing, but I want to stick with the terminology that we started.

The border around the identifier name in "Peek Definition" is still not themeable.


Remove extra back-tick to fix formating

See screenshot from https://mapzen.com/documentation/tangram/yaml/

Thank you!


[Bug] Adding Node to Galera cluster fails

Documentation

[x] I acknowledge that I have read the relevant documentation.

Describe the bug
When scaling up an existing cluster that is running Galera, the node fails to join and then goes into a crash loop.
Expected behaviour

Steps to reproduce the bug

Create a new Galera cluster
Add some data to it
Scale it up, or delete the PVCs associated with one of the nodes

New node in Galera cluster just crashing

2024-04-23 19:48:02+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.3.2+maria~ubu2204 started.
2024-04-23 19:48:02+00:00 [Warn] [Entrypoint]: /sys/fs/cgroup///memory.pressure not writable, functionality unavailable to MariaDB
2024-04-23 19:48:02+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2024-04-23 19:48:02+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.3.2+maria~ubu2204 started.
2024-04-23 19:48:03+00:00 [Note] [Entrypoint]: MariaDB upgrade information missing, assuming required
2024-04-23 19:48:03+00:00 [Note] [Entrypoint]: MariaDB upgrade (mariadb-upgrade or creating healthcheck users) required, but skipped due to $MARIADB_AUTO_UPGRADE setting
2024-04-23 19:48:03 0 [Note] Starting MariaDB 11.3.2-MariaDB-1:11.3.2+maria~ubu2204 source revision 068a6819eb63bcb01fdfa037c9bf3bf63c33ee42 as process 1
2024-04-23 19:48:03 0 [Note] WSREP: Loading provider /usr/lib/galera/libgalera_smm.so initial position: 00000000-0000-0000-0000-000000000000:-1
2024-04-23 19:48:03 0 [Note] WSREP: wsrep_load(): loading provider library '/usr/lib/galera/libgalera_smm.so'
2024-04-23 19:48:03 0 [Note] WSREP: wsrep_load(): Galera 26.4.16(r7dce5149) by Codership Oy<EMAIL_ADDRESS>loaded successfully.
2024-04-23 19:48:03 0 [Note] WSREP: Initializing allowlist service v1
2024-04-23 19:48:03 0 [Note] WSREP: Initializing event service v1
2024-04-23 19:48:03 0 [Note] WSREP: CRC-32C: using 64-bit x86 acceleration.
2024-04-23 19:48:03 0 [Note] WSREP: Found saved state: 00000000-0000-0000-0000-000000000000:-1, safe_to_bootstrap: 0
2024-04-23 19:48:03 0 [Note] WSREP: GCache DEBUG: opened preamble:
Version: 2
UUID: 003b272f-01a9-11ef-beba-026f3aace78f
Seqno: -1 - -1
Offset: -1
Synced: 0
2024-04-23 19:48:03 0 [Note] WSREP: Recovering GCache ring buffer: version: 2, UUID: 003b272f-01a9-11ef-beba-026f3aace78f, offset: -1
2024-04-23 19:48:03 0 [Note] WSREP: GCache::RingBuffer initial scan...  0.0% (        0/134217752 bytes) complete.
2024-04-23 19:48:03 0 [Note] WSREP: GCache::RingBuffer initial scan...100.0% (134217752/134217752 bytes) complete.
2024-04-23 19:48:03 0 [Note] WSREP: Recovering GCache ring buffer: found gapless sequence 675-1409
2024-04-23 19:48:03 0 [Note] WSREP: GCache::RingBuffer unused buffers scan...  0.0% (        0/132302552 bytes) complete.
2024-04-23 19:48:03 0 [Note] WSREP: Recovering GCache ring buffer: found 7/742 locked buffers
2024-04-23 19:48:03 0 [Note] WSREP: Recovering GCache ring buffer: free space: 1916680/134217728
2024-04-23 19:48:03 0 [Note] WSREP: GCache::RingBuffer unused buffers scan...100.0% (132302552/132302552 bytes) complete.
2024-04-23 19:48:03 0 [Note] WSREP: Passing config to GCS: base_dir = /var/lib/mysql/; base_host = <IP_ADDRESS>; base_port = 4567; cert.log_conflicts = no; cert.optimistic_pa = yes; debug = no; evs.auto_evict = 0; evs.delay_margin = PT1S; evs.delayed_keep_period = PT30S; evs.inactive_check_period = PT0.5S; evs.inactive_timeout = PT15S; evs.join_retrans_period = PT1S; evs.max_install_timeouts = 3; evs.send_window = 4; evs.stats_report_period = PT1M; evs.suspect_timeout = PT5S; evs.user_send_window = 2; evs.view_forget_timeout = PT24H; gcache.dir = /var/lib/mysql/; gcache.keep_pages_size = 0; gcache.keep_plaintext_size = 128M; gcache.mem_size = 0; gcache.name = galera.cache; gcache.page_size = 128M; gcache.recover = yes; gcache.size = 128M; gcomm.thread_prio = ; gcs.fc_debug = 0; gcs.fc_factor = 1.0; gcs.fc_limit = 16; gcs.fc_master_slave = no; gcs.fc_single_primary = no; gcs.max_packet_size = 64500; gcs.max_throttle = 0.25; gcs.recv_q_hard_limit =<PHONE_NUMBER>854775807; gcs.recv_q_soft_limit = 0.25; gcs.sync_donor = no; gmcast.segment = 0
2024-04-23 19:48:03 0 [Note] WSREP: Start replication
2024-04-23 19:48:03 0 [Note] WSREP: Connecting with bootstrap option: 0
2024-04-23 19:48:03 0 [Note] WSREP: Setting GCS initial position to 00000000-0000-0000-0000-000000000000:-1
2024-04-23 19:48:03 0 [Note] WSREP: protonet asio version 0
2024-04-23 19:48:03 0 [Note] WSREP: Using CRC-32C for message checksums.
2024-04-23 19:48:03 0 [Note] WSREP: backend: asio
2024-04-23 19:48:03 0 [Note] WSREP: gcomm thread scheduling priority set to other:0
2024-04-23 19:48:03 0 [Note] WSREP: access file(/var/lib/mysql//gvwstate.dat) failed(No such file or directory)
2024-04-23 19:48:03 0 [Note] WSREP: restore pc from disk failed
2024-04-23 19:48:03 0 [Note] WSREP: GMCast version 0
2024-04-23 19:48:03 0 [Note] WSREP: (65c7b769-a4b9, 'tcp://<IP_ADDRESS>:4567') listening at tcp://<IP_ADDRESS>:4567
2024-04-23 19:48:03 0 [Note] WSREP: (65c7b769-a4b9, 'tcp://<IP_ADDRESS>:4567') multicast: , ttl: 1
2024-04-23 19:48:03 0 [Note] WSREP: EVS version 1
2024-04-23 19:48:03 0 [Note] WSREP: gcomm: connecting to group 'mariadb-operator', peer 'mariadb-gnew-0.mariadb-gnew-internal.mariadb.svc.newcluster.local:,mariadb-gnew-1.mariadb-gnew-internal.mariadb.svc.newcluster.local:,mariadb-gnew-2.mariadb-gnew-internal.mariadb.svc.newcluster.local:'
2024-04-23 19:48:03 0 [Note] WSREP: (65c7b769-a4b9, 'tcp://<IP_ADDRESS>:4567') Found matching local endpoint for a connection, blacklisting address tcp://<IP_ADDRESS>:4567
2024-04-23 19:48:03 0 [Note] WSREP: (65c7b769-a4b9, 'tcp://<IP_ADDRESS>:4567') connection established to 1f792853-896d tcp://<IP_ADDRESS>:4567
2024-04-23 19:48:03 0 [Note] WSREP: (65c7b769-a4b9, 'tcp://<IP_ADDRESS>:4567') turning message relay requesting on, nonlive peers:
2024-04-23 19:48:04 0 [Note] WSREP: EVS version upgrade 0 -> 1
2024-04-23 19:48:04 0 [Note] WSREP: declaring 1f792853-896d at tcp://<IP_ADDRESS>:4567 stable
2024-04-23 19:48:04 0 [Note] WSREP: PC protocol upgrade 0 -> 1
2024-04-23 19:48:04 0 [Note] WSREP: Node 1f792853-896d state prim
2024-04-23 19:48:04 0 [Note] WSREP: view(view_id(PRIM,1f792853-896d,22) memb {
	1f792853-896d,0
	65c7b769-a4b9,0
} joined {
} left {
} partitioned {
})
2024-04-23 19:48:04 0 [Note] WSREP: save pc into disk
2024-04-23 19:48:04 0 [Note] WSREP: discarding pending addr without UUID: tcp://<IP_ADDRESS>:4567
2024-04-23 19:48:04 0 [Note] WSREP: gcomm: connected
2024-04-23 19:48:04 0 [Note] WSREP: Changing maximum packet size to 64500, resulting msg size: 32636
2024-04-23 19:48:04 0 [Note] WSREP: Shifting CLOSED -> OPEN (TO: 0)
2024-04-23 19:48:04 0 [Note] WSREP: Opened channel 'mariadb-operator'
2024-04-23 19:48:04 0 [Note] WSREP: New COMPONENT: primary = yes, bootstrap = no, my_idx = 1, memb_num = 2
2024-04-23 19:48:04 0 [Note] WSREP: STATE EXCHANGE: Waiting for state UUID.
2024-04-23 19:48:04 0 [Note] WSREP: STATE EXCHANGE: sent state msg: 66165298-01aa-11ef-91b2-43347ae01c3b
2024-04-23 19:48:04 0 [Note] WSREP: STATE EXCHANGE: got state msg: 66165298-01aa-11ef-91b2-43347ae01c3b from 0 (mariadb-gnew-2)
2024-04-23 19:48:04 0 [Note] WSREP: Initializing config service v1
2024-04-23 19:48:04 1 [Note] WSREP: Starting rollbacker thread 1
2024-04-23 19:48:04 2 [Note] WSREP: Starting applier thread 2
2024-04-23 19:48:04 0 [Note] WSREP: STATE EXCHANGE: got state msg: 66165298-01aa-11ef-91b2-43347ae01c3b from 1 (mariadb-gnew-1)
2024-04-23 19:48:04 0 [Note] WSREP: Quorum results:
	version    = 6,
	component  = PRIMARY,
	conf_id    = 20,
	members    = 1/2 (joined/total),
	act_id     = 1416,
	last_appl. = 1284,
	protocols  = 2/10/4 (gcs/repl/appl),
	vote policy= 0,
	group UUID = 003b272f-01a9-11ef-beba-026f3aace78f
2024-04-23 19:48:04 0 [Note] WSREP: Flow-control interval: [23, 23]
2024-04-23 19:48:04 0 [Note] WSREP: Shifting OPEN -> PRIMARY (TO: 1417)
2024-04-23 19:48:04 0 [Note] WSREP: Deinitializing config service v1
2024-04-23 19:48:04 2 [Note] WSREP: ####### processing CC 1417, local, ordered
2024-04-23 19:48:04 2 [Note] WSREP: Process first view: 003b272f-01a9-11ef-beba-026f3aace78f my uuid: 65c7b769-01aa-11ef-a4b9-4fcbab8908cb
2024-04-23 19:48:04 2 [Note] WSREP: Server mariadb-gnew-1 connected to cluster at position 003b272f-01a9-11ef-beba-026f3aace78f:1417 with ID 65c7b769-01aa-11ef-a4b9-4fcbab8908cb
2024-04-23 19:48:04 2 [Note] WSREP: Server status change disconnected -> connected
2024-04-23 19:48:04 2 [Note] WSREP: ####### My UUID: 65c7b769-01aa-11ef-a4b9-4fcbab8908cb
2024-04-23 19:48:04 2 [Note] WSREP: Cert index reset to 00000000-0000-0000-0000-000000000000:-1 (proto: 10), state transfer needed: yes
2024-04-23 19:48:04 0 [Note] WSREP: Service thread queue flushed.
2024-04-23 19:48:04 2 [Note] WSREP: ####### Assign initial position for certification: 00000000-0000-0000-0000-000000000000:-1, protocol version: -1
2024-04-23 19:48:04 2 [Note] WSREP: State transfer required:
	Group state: 003b272f-01a9-11ef-beba-026f3aace78f:1417
	Local state: 00000000-0000-0000-0000-000000000000:-1
2024-04-23 19:48:04 2 [Note] WSREP: Server status change connected -> joiner
2024-04-23 19:48:04 0 [Note] WSREP: Joiner monitor thread started to monitor
2024-04-23 19:48:04 0 [Note] WSREP: Running: 'wsrep_sst_mariabackup --role 'joiner' --address '<IP_ADDRESS>' --datadir '/var/lib/mysql/' --parent 1 --progress 0'
WSREP_SST: [INFO] mariabackup SST started on joiner (20240423 19:48:04.639)
WSREP_SST: [INFO] SSL configuration: CA='', CAPATH='', CERT='', KEY='', MODE='DISABLED', encrypt='0' (20240423 19:48:04.791)
WSREP_SST: [INFO] Progress reporting tool pv not found in path: /usr//bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin:/sbin:/bin (20240423 19:48:05.150)
WSREP_SST: [INFO] Disabling all progress/rate-limiting (20240423 19:48:05.154)
WSREP_SST: [INFO] Streaming with mbstream (20240423 19:48:05.187)
WSREP_SST: [INFO] Using socat as streamer (20240423 19:48:05.191)
WSREP_SST: [INFO] Stale sst_in_progress file: /var/lib/mysql/sst_in_progress (20240423 19:48:05.197)
WSREP_SST: [INFO] previous SST is not completed, waiting for it to exit (20240423 19:48:05.252)
WSREP_SST: [INFO] previous SST is not completed, waiting for it to exit (20240423 19:48:06.283)
2024-04-23 19:48:07 0 [Note] WSREP: (65c7b769-a4b9, 'tcp://<IP_ADDRESS>:4567') turning message relay requesting off
WSREP_SST: [INFO] previous SST is not completed, waiting for it to exit (20240423 19:48:07.315)
WSREP_SST: [INFO] previous SST is not completed, waiting for it to exit (20240423 19:48:08.350)
WSREP_SST: [INFO] previous SST is not completed, waiting for it to exit (20240423 19:48:09.381)
WSREP_SST: [INFO] previous SST is not completed, waiting for it to exit (20240423 19:48:10.423)
WSREP_SST: [INFO] previous SST is not completed, waiting for it to exit (20240423 19:48:11.458)
WSREP_SST: [INFO] previous SST is not completed, waiting for it to exit (20240423 19:48:12.500)
WSREP_SST: [INFO] previous SST is not completed, waiting for it to exit (20240423 19:48:13.536)
WSREP_SST: [INFO] previous SST is not completed, waiting for it to exit (20240423 19:48:14.574)
WSREP_SST: [ERROR] previous SST script still running. (20240423 19:48:14.584)
2024-04-23 19:48:14 0 [ERROR] WSREP: Failed to read 'ready <addr>' from: wsrep_sst_mariabackup --role 'joiner' --address '<IP_ADDRESS>' --datadir '/var/lib/mysql/' --parent 1 --progress 0
	Read: '(null)'
2024-04-23 19:48:14 0 [ERROR] WSREP: Process completed with error: wsrep_sst_mariabackup --role 'joiner' --address '<IP_ADDRESS>' --datadir '/var/lib/mysql/' --parent 1 --progress 0: 114 (Operation already in progress)
2024-04-23 19:48:14 2 [ERROR] WSREP: Failed to prepare for 'mariabackup' SST. Unrecoverable.
2024-04-23 19:48:14 2 [ERROR] WSREP: SST request callback failed. This is unrecoverable, restart required.
2024-04-23 19:48:14 2 [Note] WSREP: ReplicatorSMM::abort()
2024-04-23 19:48:14 2 [Note] WSREP: Closing send monitor...
2024-04-23 19:48:14 2 [Note] WSREP: Closed send monitor.
2024-04-23 19:48:14 2 [Note] WSREP: gcomm: terminating thread
2024-04-23 19:48:14 2 [Note] WSREP: gcomm: joining thread
2024-04-23 19:48:14 2 [Note] WSREP: gcomm: closing backend
2024-04-23 19:48:15 2 [Note] WSREP: view(view_id(NON_PRIM,1f792853-896d,22) memb {
	65c7b769-a4b9,0
} joined {
} left {
} partitioned {
	1f792853-896d,0
})
2024-04-23 19:48:15 2 [Note] WSREP: PC protocol downgrade 1 -> 0
2024-04-23 19:48:15 2 [Note] WSREP: view((empty))
2024-04-23 19:48:15 2 [Note] WSREP: gcomm: closed
2024-04-23 19:48:15 0 [Note] WSREP: New COMPONENT: primary = no, bootstrap = no, my_idx = 0, memb_num = 1
2024-04-23 19:48:15 0 [Note] WSREP: Flow-control interval: [16, 16]
2024-04-23 19:48:15 0 [Note] WSREP: Received NON-PRIMARY.
2024-04-23 19:48:15 0 [Note] WSREP: Shifting PRIMARY -> OPEN (TO: 1417)
2024-04-23 19:48:15 0 [Note] WSREP: New SELF-LEAVE.
2024-04-23 19:48:15 0 [Note] WSREP: Flow-control interval: [0, 0]
2024-04-23 19:48:15 0 [Note] WSREP: Received SELF-LEAVE. Closing connection.
2024-04-23 19:48:15 0 [Note] WSREP: Shifting OPEN -> CLOSED (TO: 1417)
2024-04-23 19:48:15 0 [Note] WSREP: RECV thread exiting 0: Success
2024-04-23 19:48:15 2 [Note] WSREP: recv_thread() joined.
2024-04-23 19:48:15 2 [Note] WSREP: Closing replication queue.
2024-04-23 19:48:15 2 [Note] WSREP: Closing slave action queue.
2024-04-23 19:48:15 2 [Note] WSREP: mariadbd: Terminated.
240423 19:48:15 [ERROR] mysqld got signal 11 ;
Sorry, we probably made a mistake, and this is a bug.

Your assistance in bug reporting will enable us to fix this for the next release.
To report this bug, see https://mariadb.com/kb/en/reporting-bugs

We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.

Server version: 11.3.2-MariaDB-1:11.3.2+maria~ubu2204 source revision: 068a6819eb63bcb01fdfa037c9bf3bf63c33ee42
key_buffer_size=0
read_buffer_size=131072
max_used_connections=0
max_threads=153
thread_count=3
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 336992 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x7f6f5c000c68
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x7f6f81425c68 thread_stack 0x49000
Printing to addr2line failed
mariadbd(my_print_stacktrace+0x32)[0x55a1a86358a2]
mariadbd(handle_fatal_signal+0x478)[0x55a1a8106488]
/lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7f6f83bef520]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x178)[0x7f6f83bd5898]
/usr/lib/galera/libgalera_smm.so(+0x157602)[0x7f6f83671602]
/usr/lib/galera/libgalera_smm.so(+0x700e1)[0x7f6f8358a0e1]
/usr/lib/galera/libgalera_smm.so(+0x6cc94)[0x7f6f83586c94]
/usr/lib/galera/libgalera_smm.so(+0x8b311)[0x7f6f835a5311]
/usr/lib/galera/libgalera_smm.so(+0x604a0)[0x7f6f8357a4a0]
/usr/lib/galera/libgalera_smm.so(+0x48261)[0x7f6f83562261]
mariadbd(_ZN5wsrep18wsrep_provider_v2611run_applierEPNS_21high_priority_serviceE+0x12)[0x55a1a86f5592]
mariadbd(+0xd93e31)[0x55a1a83c5e31]
mariadbd(_Z15start_wsrep_THDPv+0x26b)[0x55a1a83b3a7b]
mariadbd(+0xd05f86)[0x55a1a8337f86]
/lib/x86_64-linux-gnu/libc.so.6(+0x94ac3)[0x7f6f83c41ac3]
/lib/x86_64-linux-gnu/libc.so.6(+0x126850)[0x7f6f83cd3850]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x0): (null)
Connection ID (thread ID): 2
Status: NOT_KILLED

Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off,hash_join_cardinality=on,cset_narrowing=off,sargable_casefold=on

The manual page at https://mariadb.com/kb/en/how-to-produce-a-full-stack-trace-for-mariadbd/ contains
information that should help you find out what is causing the crash.

We think the query pointer is invalid, but we will try to print it anyway.
Query:

Writing a core file...
Working directory at /var/lib/mysql
Resource Limits:
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        0                    0                    bytes
Max resident set          unlimited            unlimited            bytes
Max processes             unlimited            unlimited            processes
Max open files            65535                65535                files
Max locked memory         unlimited            unlimited            bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       192953               192953               signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us
Core pattern: core

Kernel version: Linux version 5.10.0-28-amd64<EMAIL_ADDRESS>(gcc-10 (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #1 SMP Debian 5.10.209-2 (2024-01-31)
2024-04-23T12:48:15.638369254-07:00

I'm not sure if I'm doing something insanely wrong, or if my MariaDB cluster is just broke lol.

I've just tested this locally and managed to upscale a cluster with 1GB of data generated with sybench.

[INFO] previous SST is not completed, waiting for it to exit (20240423 19:48:14.574)

The issue is that your node has a pending SST, and it will keep restarting until it succeeds. The operator still doesn't manage this situation, but it is in our radar:
https://github.com/mariadb-operator/mariadb-operator/issues/425
If you are sure that you want to cancel the SST, you can:

Exec into the node and delete /var/lib/mysql/wsrep_sst.pid
Restart the Pod

If that works, let's close this issue and track everything related to SST recovery in https://github.com/mariadb-operator/mariadb-operator/issues/425
Thanks!

Gotchya, well I'll be sure to give those a shot when I use Galera next. Currently I just scaled down my DB to 1 node so that it would at least work for the time being.


Feature/cleanup rawdata

Reopening #26 on new master.

Well I was going to get rid of the string use all together but this works as well.

I was a little surprised about the std::string use at some places, but the author uses it as a general container for data at some places. The advantage is that you do not have to think about allocation, destruction, reallocation, etc. Haven't seen it before and had to get used to it, but why not?

It's a nice quick way of doing allocation, but it depends on the implementation of stdlib as to how much data it actually uses. I think this one will reallocate 1.5x the amount needed but it could be 2x or more.

I think this one will reallocate 1.5x the amount needed but it could be 2x or more.

I didn't know that...

It's not a big deal as most of the time the data will be less than the 20 bytes so it probably won't reallocate up to that point. It's just when you add say another 20 bytes it will allocate 30 or more so it has space to use if you add more data, prevents too many allocations happening.

Merging this soon, waiting for testing with semaphore changes (might need to alter code here).

Okay, let me know if you need some changes (although this change is very straight forward)

Been thinking about this and #49, if combined creates the possibility of a segfault.
Scenario:
Two tasks running 1 updates a display with periodic information with the notified value, the other acts on immediate information and perhaps controls a relay or some other device. Now if the notifications happen every 60 seconds but the second thread needs to know the immediate value and calls a read() operation, say at the 59.99 second mark, using rawData() it will get a pointer to data that is about to be invalidated in 0.01 seconds and segfault while accessing it.
That scenario might seem unlikely and preventable with the timestamp idea (thank you, it's great) but would require the user to properly implement the handling of it (check before reading, etc.). Also, since there is no way to know how the user application will use the pointer to std::string.data() we cannot implement a semaphore type protection mechanism.
From here there are 2 solutions I can see. 1 we can use a semaphore to protect the data and instead of a pointer we return a copy of the value (std::vector<uint8_t> preferably). 2 we do as already exists in master and malloc/copy the data and return a pointer to it, but implement a semaphore protection mechanism as well.
Option 1 is my preference but breaks compatibility, however it also takes care of the malloc/free issue and lets the application do the work. Option 2 already exists but needs protection added.
I'm open to any other solutions, this is just my current thoughts. As far as this library is concerned stability is my #1 priority, better to use some extra resources than crash an application IMHO.

stability is my top priority, better to use some extra resources than crash an application IMHO

I fully agree with you!
I have a third option. Completely remove readRawData(). It is a bad idea to return pointers to volatile internal data. Yes this breaks the API, but the alternative is easy: the user can safely use std::string value = ... readValue(); const char *rawData = value.data(). This gives the same semantics freeing the library of keeping an unnecessary copy of the data.

Yes I believe this would be the correct option. I prefer not to break the api but in this case it seems necessary, at least for now.
I think in the future the read results should be changed to something else. Perhaps we could use the NimBLEValue class to provide safe data access. Then the value could be stored however and provide methods for type conversion.

Removed getRawData() and changed readValue() back to return a std::string value again instead of a reference, just to be sure.
I think getDataLength() could be removed as well, since the user can change this to sdt::string value = pCharacteristic->readValue(); size_t dataLength = value.size(); which seems more logical to me.

Perhaps we could use the NimBLEValue class to provide safe data access.

Yes that seems a valid option, pro: this is consistent with the server side of the library (although I do not like the incrementing of the value there, I think the main program should prepare the value and pass it in one time to the library), con: an extra layer of abstraction that is not really necessary.

I think getDataLength() could be removed as well,
@Jeroen88 agreed!

Thanks for removing the reference as well, that would have been problematic, the copy is a necessity in this case.

@h2zero Updated to latest master and removed getDataLength()

Great, thanks!


Update sbt-bloop to 1032048a

Updates ch.epfl.scala:sbt-bloop from 1.4.12 to 1032048a.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "ch.epfl.scala", artifactId = "sbt-bloop" } ]

labels: sbt-plugin-update, commit-count:1

Codecov Report

Merging #895 (efa5c58) into main (dc0d80f) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #895   +/-   ##
=======================================
  Coverage   53.40%   53.40%
=======================================
  Files          73       73
  Lines        2159     2159
  Branches       54       54
=======================================
  Hits         1153     1153
  Misses       1006     1006

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 dc0d80f...efa5c58. Read the comment docs.

This is Scala steward PR, might be issue on bloop side closing this


[WIP] Book example with media

this fails with this error...

which also appears in the browser, when I do this
RUST_LOG=info cargo run -- --book -i examples/book-media/source/ -t examples/book-media/book-template
unzip book.epub -d epub
open epub/OEBPS/credits.xhtml

this is the line in question:

Cover Image by Augusto Ordóñez from Pixabay

column 115 appears to be the = directly after utm_medium

initial commit caused failure with this error...

which also appears in the browser, when I do this
RUST_LOG=info cargo run -- --book -i examples/book-media/source/ -t examples/book-media/book-template
unzip book.epub -d epub
open epub/OEBPS/credits.xhtml

this is the line in question:

Cover Image by Augusto Ordóñez from Pixabay

column 115 appears to be the = directly after utm_medium

ampersand is correctly escaped when link is implemented as pure markdown


Return http response instead of body

In order to do some kind of error handling or status code checking i propose to return the whole Response object instead of just the body
We had some issues with our auth key and would love to do something like this:
$response = Larafirebase::withTitle('Test Push from laravel command')
            ->withBody('Fingers crossed the device is getting this notification!')
            ->sendMessage($fcm);

if($response->statusCode() == 401){
  $this->info('Your auth key seems to be invalid');
}

Would be good to have documentation on Readme.


Added support for SecureString + bug fix for issue 179

NOTE: The commit history is completely irrelevant and should be squashed.
Two changes here:

Added a constructor for DefaultDevicePortalConnection that will support using a SecureString
Fixed UpdateConnection so that it will use the address from the IpConfig. In the original implementation it was just ignoring it. This change fixes issue #179 because it guarantees that the connection will have a valid IP address after UpdateConnection is called.

Hi @GregPettyjohn, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Greg Pettyjohn). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;


Add Espressive to list of who is using Fela

Description
@rofrischmann I just now saw your message asking for me to add Espressive to the list.

:)


🐛 Flyout can no longer be used in conjunction with PaneItemAction

Describe the bug
Before upgrading to a version with #714, I was successfully using a Flyout menu in conjunction with PaneItemAction. When I attempt to do this now, when attempting to open the flyout menu in the onTap callback of the PaneItemAction, the flyout controller throws an exception saying that it's not currently attached to a flyout target.
To Reproduce
An edit of the example app that reproduces this is here:
https://github.com/klondikedragon/fluent_ui/tree/reproduce-navbar-flyout-issue
Essentially, edit the example app, editing main.dart as follows:

Add final testFlyoutController = FlyoutController(); to the _MyHomePageState class definition.
In the build method of the same class, instead of using footerItems: footerItems, we extend the footer items with a test PaneActionItem that demonstrates the problem:

        footerItems: footerItems
          ..addAll([
            PaneItemAction(
              icon: FlyoutTarget(
                controller: testFlyoutController,
                child: const Icon(FluentIcons.questionnaire),
              ),
              title: const Text('test flyout action'),
              onTap: () async {
                testFlyoutController.showFlyout(
                  builder: (context) => const Text('some flyout content!'),
                );
              },
            ),
          ]),

Now if you click the pane action item, it throws an assertion:
_AssertionError ('package:fluent_ui/src/controls/flyouts/flyout.dart': Failed assertion: line 473 pos 12: 'isAttached': This controller must be attached to a FlyoutTarget)

Expected behavior
It should show a flyout (e.g. could be a popup menu with additional choices).
Additional context
I'm running Flutter 3.7.3 on stable channel in case it matters.

@bdlukaa thanks the fix works!


Ranger doesn't get ctrl+h event

Which operating system does the issue occur on?
Archlinux
If on linux, are you using X11 or Wayland?
X11
Issue:
I'm not completely sure if this is a issue with alacritty(scrollback branch & master) or ranger(1.8.1 & 1.9.0b5). I noticed that ctrl+h does not show the hidden files when I use ranger in alacritty - when I use termite and ranger ctrl+h works as expected. Now the suspicious thing is, that this is seems to affect only h- if I remap the combination to "anything" else (randomly picked a few keys eg ctrl+eorctrl+y...) the key combination works.
For now I will fallback to another mapping but it would be nice if this will be fixed.

Oddly enough, ctrl+h does not work with xterm, konsole, terminology, cool-retro-term or gnome-terminal either. It does work with urxvt, termite, st
Scrap that. I'm not exactly sure why this is happening, but ranger doesn't work if $TERM is xterm or xterm-256color. Do export TERM=xterm-termine, which is the TERM variable termite uses, and ranger will work as expected. So, this is obviously not a problem with alacritty, but it is also not a problem with ranger, and that was discussed here in a ranger bug report with a detailed explanation found in the linked stackexchange thread.
From what I've gathered, there are a few solutions to this problem. Either: you can change your TERM variable, Archlinux can fix the terminfo files for xterm~~, or alacritty can ship its own terminfo file like urxvt, termite, and st (among others) are doing.~~
A custom terminfo for alacritty would be the most consistent solution, but that can cause problems when using ncurses applications over ssh because those applications will need that custom terminfo file to function correctly. I think the custom terminfo would be the best solution if alacritty enjoyed widespread usage like urxvt, but it would likely cause even more issues at the moment.
So, apparently alacritty does have a custom terminfo but still uses xterm-256color as the base, so a good solution might be to overwrite the specific parts needed for C-h to work correctly on all distros, which seems to be simply adding kbs=\177.
Of course, this won't fix the issue if you don't install the terminfo file into /usr/share/terminfo, so you would have to either manually copy the file or use makepkg (or an AUR helper) to install alacritty. And of course, you would have to install the terminfo file on any server you use.

Sounds like we should just update our terminfo file as you've suggested.

Of course, this won't fix the issue if you don't install the terminfo file into /usr/share/terminfo, so you would have to either manually copy the file or use makepkg (or an AUR helper) to install alacritty. And of course, you would have to install the terminfo file on any server you use.

I don't think there's much we can do about that.

It happens to gnome-termin 3.28 as well. When I set "export TERM=xterm-termine" the  works but when I exit ranger, the screen is not refreshed and I have to do it myself.
@PyroLagus

which seems to be simply adding kbs=\177.

Where, also what it does? I've tried to put it in ~/.terminfo but nothing happened.

Any update on this? I installed the alacritty-terminfo package and tried running export TERM=alacritty before opening ranger and it still doesn't work. If I do export TERM=st in alacritty, it does work as intended.

It works. Issue can be closed :)


ffmpeg not found

I have tried installing ffmpeg but its still not getting installed

That's strange. Doesn't sudo apt install ffmpeg work for you?
Here are the instructions: https://phoenixnap.com/kb/install-ffmpeg-ubuntu


UTF-8 mode

Nuitka version

0.6.2
Python: 3.6.8 (default, Feb 19 2019, 16:00:46)
Executable: /home/tiger-222/projects/ven36/bin/python
OS: Linux
Arch: x86_64

How did you install Nuitka and Python? Via pip.

SSCCE (Short, Self Contained, Correct, Example):

import sys

print("stderr", sys.stderr)
print("stdin", sys.stdin)
print("stdout", sys.stdout)

Outputs

Call 1:
$ python3 test.py
stderr <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>
stdin <_io.TextIOWrapper name='<stdin>' mode='r' encoding='UTF-8'>
stdout <_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>

Call 2:
$ ./test.dist/test
stderr <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>
stdin <_io.TextIOWrapper name='<stdin>' mode='r' encoding='UTF-8'>
stdout <_io.TextIOWrapper name='<stdout>' mode='w' encoding='ascii'>

Check the last line showing ascii.
Call 3:
$ PYTHONUTF8 ./test.dist/test
stderr <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>
stdin <_io.TextIOWrapper name='<stdin>' mode='r' encoding='UTF-8'>
stdout <_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>

This is OK actually.

Compilation

I read #243 and tried both commands with the same result:
$ python3 -m nuitka --standalone test.py
$ python3 -X utf8 -m nuitka --standalone test.py

Questions

My needs are to enable the UTF-8 mode when running the compiled version, without asking a user to set the PYTHONUTF8=1 envar. I was hoping to use the --python-flag=utf8 option, but it is not (yet?) implemented.
If we do not consider the question 1, I think there is a bug somewhere, right? In Call 3, sys.stdout should use UTF-8 encoding rather than ascii as this is what is in use by default as seen in Call 1.

@BoboTiG Did you try the develop version? I sort of recall that there was an issue that the utf8_mode was implemented, but during re-execution it was forgotten. So normally your commands ought to work, but I consider it's probably not yet released due to this being relatively unimportant.

Oh you are totally right. The develop version works like a charm!
Thank you and sorry for missing that easy idea :)


Initiated channels do not show total fees for closing txs in getTransactions

Background
Channels that I create (initiate) show opening tx fees, but do not show closing tx fees in either getTransactions or lncli listchaintxns
Your environment

v0.5.1-beta
Darwin (Mac OS Majave)
bitcoind 0.17

Steps to reproduce
When a user requests to open a channel with another node, a call to getTransactions returns the opening transaction with the correct total_fees for the opening transaction. Once you close the channel, the transaction shows up under getTransactions however total_fees remains 0 (possibly due to the way we would calculate the fee based on the multisig from the channel)
NOTE This sample data is on regtest but was also performed on mainnet, please reach out directly if you'd like tx information/logs for mainnet
{ amount: '-0.16786002',
  transaction: '8254ecc786633551d2ca5ae32f75629fd6d7940e9c284229b33edd264997910b',
  blockNumber: 6097,
  timestamp: '1555022291',
  fees: '0.00008787' },
{ amount: '0.16768165',
  transaction: '4cbef435eba3370451c53738e3acb35c4bf575877ad05286150649814d548a4c',
  blockNumber: 6127,
  timestamp: '1555022591',
  fees: '0' } ]

Expected behaviour
total_fees contains the amount of fees for the channel close transaction in getTransactions
Actual behaviour
total_fees is 0 in the closing transaction of the channel from the intiator

can I help with this one?

I found out what the problem is.
Here on btcwallet https://github.com/btcsuite/btcwallet/blob/master/wallet/notifications.go#L110 the details.Debits is an empty array, therefore, not calculating the fee.
I could think on 2 fixes for that. Calculate it properly on btcwallet, what makes most sense for me.
Or we can calculate the fee at lnd's wallet at https://github.com/lightningnetwork/lnd/blob/master/lnwallet/btcwallet/btcwallet.go#L576
What do you guys suggest?

@vctt94 Sounds like fixing it in btcwallet is the most correct fix. What do you think? :)

@vctt94 thanks a ton for grabbing this.
@halseth et.al I wanted to make sure that this was actually a bug. Technically, the transaction that comes back from LND in getTransactions is correct, because the funds are taken out of the inputs from the commitment transactions (multi-sig). At that point, your wallet is just receiving a balance cause the multi-sig paid the fees. Do you think this change would be confusing to users?

IMO there needs to be a way that a user can see what fees were paid from channel opening, for accounting purposes, however I had a change of heart RE what getTransactions should be returning

Related issue: https://github.com/lightningnetwork/lnd/issues/2594

IMO there needs to be a way that a user can see what fees were paid from channel opening, for accounting purposes

#3961 now displays channel initiator in the close summary, which allows you to determine which party paid the opening fees. Opening fees aren't specifically listed in CloseSummary, but I think it's reasonable to get this value from the channel while it's open/ examining the opening tx to determine fees?

At that point, your wallet is just receiving a balance cause the multi-sig paid the fees. Do you think this change would be confusing to users?

I'm not sure whether it makes sense for us to extract fees on lnd level, since listchaintxns is more of an on-chain api, and should remain ignorant of lightning level use cases. My vote would be for making the change in BtcWallet as @matheusd suggests.

It wasn't me but @vctt94 that suggested the fix :P
I haven't looked very closely at this but IIRC the underlying issue for fixing this on btcwallet is that the wallet doesn't consider the input of the closing transaction (i.e. the multisig output) as a wallet-owned address.
For the wallet to do that (and count the input as a debit) you'd have to import the multisig script into the wallet. Which comes with its own set of issues (the wallet would account for the input as wallet owned, it would scan for it, you'd need to be able to remove the script to reduce the watched set, etc).
There's also the larger issue of who is actually paying the closing tx's fee (was it the local wallet or the remote wallet or was it split among the two?). Unconditionally importing the script into the wallet would lead both wallets to consider as if they paid the fee.
Seems to me all accounting for ln-related operations should only happen in lnd (and getTransactions shouldn't be expected to produce correct fee information for non-completely-wallet-created transactions).

I wanted to see if this issue has made any progress as it seems to be getting on the older side.
The only accounting hole in LND is the closure data, currently it seems LND is providing no fee data on any closures, even the ones I have initiated.
As a developer building on LND and using accounting to drive metrics, missing this data is not ideal. Needing to integrate with an external service or all the possible backend chain wallets to fill such a small gap seems like the wrong approach.

@cryptosharks131 have you seen https://github.com/lightninglabs/faraday? It has accounting features that use a backend node to fill in the missing fee closure information.

Thanks @Roasbeef I am aware of this tool, however, few users have this installed and adding this as a dependency to run LNDg seems like a poor approach to the solution, especially for those using Umbrel type setups.  I still believe it would be best if LND was aware of all of its accounting numbers. The closures dataset all seems to populate after the closure has fully confirmed and sweep txs are listed, a poll to the backend at this time should fill in this dataset? Alternatively, a gRPC available to poll txs manually from which ever backend is configured in LND already could also serve the purpose for developers to access without needing to deploy outside solutions.
In the mean time, I have started to add API integration to LNDg in v1.3.0 to attempt to get closure fees from a mempool type block explorer. Although it is not the best solution as it still can fail in some cases, it seems to be the best solution currently to get around this missing data.


Cote not working with AWS Autoscalling instances.

We were using cote with our microservices, each of the service is running on a seperate instance. For the cote discovery we are using AWS elastic cache redis cluster  and it works as expected for the single microservice instance. After that we applied the AWS Autoscalling group to the EC2, which scales based on the usage. The issue happens when one service is autoscalled to a new EC2 instance using the same redis cluster, but the cote connection crashes.
The behaviour we want is when one of the service is autoscalled to a new EC2 instance, but using the same redis cluster for discovery, corrurently listens to the events triggered for the cote and only one of them respond at a time.
Below is the screenshot when our EC2 Autoscales to a new one and services start to run. Also feel free to advice over the architecture design for the microservices autoscalling running in parallel over a single control tower source of truth like redis.

I am also facing the issue and trying to figure it out for the last 10 days @dashersw

Im working with cote js in AWS Kubernetes cluster already for a year or even more. It works like a charm even with AWS Lambdas. But ti reach it I had to dance with drums a lot. The solution helps me is prelaunch special script which evaluates discovery host name before actual node scrip is running with command  node -r setDiscoveryHostname index.js /* eslint-disable no-restricted-syntax */
const { networkInterfaces } = require('os');
const network    = networkInterfaces();
function getExternalIPv4() {
const results = Object.create(null); // Or just '{}', an empty object
for (const name of Object.keys(network)) {
for (const net of network[ name ]) {
// Skip over non-IPv4 and internal (i.e. <IP_ADDRESS>) addresses
if (net.family === 'IPv4' && !net.internal) {
if (!results[ name ]) {
results[ name ] = [];
}
results[ name ].push(net.address);
}
}
}
const [ myIp ] = Object.values(results)[ 0 ];
return myIp;
}
process.env.DISCOVERY_HOSTNAME = network.getExternalIPv4();
`
As a service discovery I`m using Redis as well

Just make it worked with AWS Autoscalling group and codedeploy by adding DISCOVERY_HOSTNAME in the .env file.
You can use this script in after_install.sh to add var in the .env file during the after_install hook for codedeploy
var=$(curl ifconfig.me)
echo >> .env
echo DISCOVERY_HOSTNAME=$var >> .env


[WIP] Containers storage

This is a quick POC that updates the containers resolver to also check containers-storage when a container has been provided locally.

I've made it possible to configure the image store to which the containers get saved, given the following blueprint:
{
  "name": "embed-containers",
  "blueprint": {
    "packages": [
      {
        "name": "podman",
        "version": "*"
      }
    ],
    "containers": [
      {
        "source": "registry.gitlab.com/redhat/services/products/image-builder/ci/osbuild-composer/fedora-minimal"
      },
      {
        "source": "localhost/hello",
        "containers-transport": "containers-storage"
      }
    ],
    "customizations": {
      "containers-storage": {
        "storage-path": "/ostree/container-storage"
      }
    }
  }
}

We get the following output from the image-info tool:
[
  {
    "Created": "2023-12-12T12:54:40.001637346Z",
    "Digest": "sha256:d8bac64df06e506dd2e285a9e52ea86ee276637d1ad1cf1c89bb1f3b80b0d5ad",
    "Id": "5dc7f15873a23033de66f8734cb61969a9c749ded0cfb56300e785bfaf5ef528",
    "Names": [
      "localhost/hello:latest"
    ]
  },
  {
    "Created": "2022-07-11T13:16:13Z",
    "Digest": "sha256:4d76a7480ce1861c95975945633dc9d03807ffb45c64b664ef22e673798d414b",
    "Id": "d4ee87dab8193afad523b1042b9d3f5ec887555a704e5aaec2876798ebb585a6",
    "Names": [
      "registry.gitlab.com/redhat/services/products/image-builder/ci/osbuild-composer/fedora-minimal:latest"
    ]
  }
]

Does the ContainersStorage customization in the blueprint control both where to get containers from and where to install them?
I think we need to separate two things here:

The path to the local container storage on the host where a container source will be pulled from.
The path where a container will be stored in the image when it's embedded during a build.

The customization in the blueprint is, I think, good for 2., configuring the container storage path for the image itself.
But this path should be the same for both.  For example, it should be possible to have containers on the host at /var/lib/containers, pull them from there, and then install them into the image at /usr/share/containers, if you're building an ostree-based image from a non-ostree host.
But for 1. I think the option should be separate for each container.  I'm imagining a scenario where we're building an image (of any type) and we want to pull several containers, some from a registry and others from the local storage, and then we also want to control where they're stored in the image.  In that case, I'm imagining the blueprint looking like this:
{
  "name": "embed-containers",
  "blueprint": {
    "packages": [
      {
        "name": "podman",
        "version": "*"
      }
    ],
    "containers": [
      {
        "source": "registry.gitlab.com/redhat/services/products/image-builder/ci/osbuild-composer/fedora-minimal"
      },
      {
        "source": "localhost/hello",
        "containers-transport": "containers-storage",
        "storage-location": "/var/lib/containers/storage"
      }
    ],
    "customizations": {
      "containers-storage": {
        "storage-path": "/data/containers/storage"
      }
    }
  }
}

Does the ContainersStorage customization in the blueprint control both where to get containers from and where to install them?
I think we need to separate two things here:

The path to the local container storage on the host where a container source will be pulled from.

The path where a container will be stored in the image when it's embedded during a build.

The customization in the blueprint is, I think, good for 2., configuring the container storage path for the image itself.
But this path should be the same for both.  For example, it should be possible to have containers on the host at /var/lib/containers, pull them from there, and then install them into the image at /usr/share/containers, if you're building an ostree-based image from a non-ostree host.
But for 1. I think the option should be separate for each container.  I'm imagining a scenario where we're building an image (of any type) and we want to pull several containers, some from a registry and others from the local storage, and then we also want to control where they're stored in the image.  In that case, I'm imagining the blueprint looking like this:

{

  "name": "embed-containers",

  "blueprint": {

    "packages": [

      {

        "name": "podman",

        "version": "*"

      }

    ],

    "containers": [

      {

        "source": "registry.gitlab.com/redhat/services/products/image-builder/ci/osbuild-composer/fedora-minimal"

      },

      {

        "source": "localhost/hello",

        "containers-transport": "containers-storage",

        "storage-location": "/var/lib/containers/storage"

      }

    ],

    "customizations": {

      "containers-storage": {

        "storage-path": "/data/containers/storage"

      }

    }

  }

}

Yeah spot on. The customisation is for the destination so that answers #2.
And your suggestion for number #1 (the storage path) will work, it was only checking /var/lib/containers/storage. Maybe we could leave that as a sane default?

Maybe we could leave that as a sane default?

Definitely yeah.  Unless it's more correct to read the storage.conf file.

Maybe we could leave that as a sane default?

Definitely yeah. Unless it's more correct to read the storage.conf file.

Ah you're right, skopeo reads the the storage.conf file. So makes more sense to use that.

This is needed: https://github.com/osbuild/osbuild/pull/1504

    {
        "source": "localhost/hello",
        "containers-transport": "containers-storage",
        "storage-location": "/var/lib/containers/storage"
      }

This is the source storage location, right? It seems mildly confusing to call it storage-location instead of something like source-location.

    {
        "source": "localhost/hello",
        "containers-transport": "containers-storage",
        "storage-location": "/var/lib/containers/storage"
      }

This is the source storage location, right? It seems mildly confusing to call it storage-location instead of something like source-location.

Yeah this is a great point. Maybe we could flip this on it's head a bit? Rename the customization to destination-path or dest-storage? And then rename the source to storage-path (or even be more explicit and go with source-path?). Location seems a bit too vague.
{
    "source": "localhost/hello",
    "containers-transport": "containers-storage",
    "source-path": "/var/lib/containers/storage"
}

and
{
    "customizations": {
        "containers-storage": {
            "destination-path": "/data/containers/storage"
        }
    }
}

I like that! It's consistent between the two related parts with *-path and I don't have to read it twice to understand what it's supposed to be doing.

Oh, the CI runners need btrfs-tools installed now too.  It's a build dependency of the project.  Can you update the test configs to install it?

.gitlab-ci.yml
test/scripts/configure-generators
test/scripts/generate-build-config
test/scripts/generate-ostree-build-config

Also update the contribution guides (docs/developer/README.md and CONTRIBUTING.md.
Now that I'm listing it all I realise this should all probably be defined in one location.  A script or some equivalent to a Python package's requirements.txt that we can point to and read from every other location.

Now that I'm listing it all I realise this should all probably be defined in one location. A script or some equivalent to a Python package's requirements.txt that we can point to and read from every other location.

Sounds like a good idea. Since we're referencing it in multiple places. I will update the PR


Update entitlement-management-process.md

Adding note to highlight that we don't send email notifications for admin assignment

@sponnada : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#label:"aq-pr-triaged"

#sign-off

@ktoliver : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Change col(), lit() and when() to pl.col(), pl.lit() and pl.when() re…

…spectively.

Thanks @ghuls. I agree, its better to be consistent.


Hosted service Analysis_Zones_in_Daraa_Syria/FeatureServer does not have a service definition item

The hosted service "Analysis Zones in Dar'a Syria" item exists id:c2074b8556a2416d88e7549446717cda but does not have an associated service definition portal item. Without the service definition item the service won't be published to any user conference machines.
NOTE: Only hosted services published from ArcGIS Desktop or ArcGIS Pro, which upload a service definition item to portal, will be published to the UC servers.
Service owned by Sarah S.

This was fixed as part of the release process I assisted @nfeuerstein with.


loadPlops() method

This PR introduces a backwards-compatible feature - the loadPlops() method. The concept is similar to that of Grunt's loadTasks() method. This feature allows you to decompose your plop structure into a series of multiple files, instead of one monolithic config file.
Example:
// plopfile.js
module.exports = function(plop) {
	plop.loadPlops('./plops');
};

// ./plops/my-generator.js
module.exports = function(plop) {
	plop.setGenerator('my-generator', {
		// ...
	});
};

Hi Tim, thanks for getting involved with plop!
Because plopfiles are just node modules, isn't this basically possible today by doing something like the following?
module.exports = function (plop) {
  require('./plops/my-generator')(plop);
}

Using something like loadPlops is an interesting idea, and I see how it may make it easier to add new generators in the future as you develop. But I don't think it gets you any isolation that is not possible now through normal node development practices. Is that correct or am I missing something here?

@amwmedia You're right - you can use the approach you describe. In fact, this is what one of my plop files currently looks like:
module.exports = function(plop) {

    const glob = require('glob');
    glob.sync('./plops/*.js').forEach((p) => {
        require(p)(plop);
    });

};

The advantage provided by loadPlops() is that you don't have to update your plopfile every time you add or remove a module, and you don't have to write the boilerplate that you see above - it's just taken care of for you. The process of adding or removing a module is as simple as just adding or removing the module itself.

@amwmedia You are correct, you could accomplish the same thing via require() as shown in your example. This is merely a nicety, but one that I've found to be very useful. I've found that it becomes more useful over time as you start adding more plops.
This is what one of my plopfiles currently looks like:
module.exports = function(plop) {

    const glob = require('glob');
    glob.sync('./plops/*.js').forEach((p) => {
        require(p)(plop);
    });

};

The loadPlops() method prevents you from having to write this boilerplate. Following the pattern shown in your example, it would look more like this:
module.exports = function (plop) {
    require('./plops/my-generator1')(plop);
    require('./plops/my-generator2')(plop);
    require('./plops/my-generator3')(plop);
    require('./plops/my-generator4')(plop);
    require('./plops/my-generator5')(plop);
    require('./plops/my-generator6')(plop);
    require('./plops/my-generator7')(plop);
    require('./plops/my-generator8')(plop);
    require('./plops/my-generator9')(plop);
    require('./plops/my-generator10')(plop);
}

I wonder if this would be better served as an npm module that I could reference in the readme? My concern is that by adding to the core plop code, it may give the impression that this is "the way" that plop generators are to be structured. If it's kept as an external library it is then a handy tool to help you structure your plop generators.
I'd probably use this myself as I think there's a lot of benefit to your approach. What do you think about that?

If you want my two cents, it would be this (not trying to be snarky here): you'd be better off not doing it at all. I think the idea of creating a special "load-plop-tasks" module (see example below) exemplifies so much of what is wrong with npm right now. Modularization has been taken to a ridiculous extreme, and as a result, we've wound up with this massive pile of modules, many of which do some silly little thing that hardly justifies the module's existence in the first place.
// ./node_modules/load-plop-tasks/index.js - A new npm module for this - really?
module.exports = (plop, plopsPath) => {
    const glob = require('glob');
    glob.sync('*.js', {
        'cwd': plopsPath
    }).forEach((p) => {
        require(p)(plop);
    });
};

// ./plopfile.js
module.exports = function(plop) {
    require('load-plop-tasks')(plop, './plops');
};

Totally up to you, but IMO, the better approach would be to use the more basic require('...') approach in all of this library's core examples, thereby setting a simple, baseline approach by which all others can be judged. Then, in the documentation, simply make reference to the loadPlops() task. I believe that's what Grunt did, and it worked out fine for them IMO.

I'll give it some thought, thanks for your input and time 😄 . Please don't take my hesitancy as a slight on what you've done here, just trying to be cautious about how much is put into the base tool. I think one of plops biggest strengths is its simplicity. You don't lose simplicity overnight, it's lost one feature at a time. So I try to keep asking myself, does this belong as part of plop's core competency? Maybe the answer is "yes", I'm just not sure yet.
Sorry if that got a little overly cerebral haha.

@amwmedia I totally know what you mean.

I've seen too many great, simple, tools that have become bloated with features that are only used by 10% of the users. But a newcomer has to weed through this huge API to find the pieces that they need.

I think this is a great idea, I for one would like this feature :+1:

Still thinking this one through, eh? ;)

leaning toward implementing it, just thinking it through a little more because long term the goal is to have npm installable "packs" of generators that you could pull into your plop file. I want to position this so that it could support that as well without changing the interface much or at all.
Also just been busy with work/life 😉

hang in there, I haven't forgotten about this. The release of node-plop has complicated this a bit though because this really needs to be implemented over there. I'm soon going to be pulling node-plop in as a dependency on this project so that the core logic only exists in one place.

I'll be shortly releasing a new version of plop that updates to the latest inquirer and also implements the core logic using node-plop. This will be a huge step forward for the project and will open up the door for a lot of features I've been wanting to implement.
This PR represents one of those features, the ability to separate sets of generators into different files. Another part of that (as I see it) is being able to publish sets of generators as a node module and share them with others. This will be the first feature I add in after this next release, and I'm planning to complete it within the coming weeks (not months).
Thanks for your patients, I'm going to close this PR because the logic will need to live in node-plop. If you're interested with helping out on that project, please feel free to start an issue and we can discuss implementation ideas.

take a look at plop.load


use cross-env for webpack

Worked for me in Windows!!  Give it a whirl..

Let me know if you want me to merge the other cross-env PR #1313
I'm playing around with git today.... rebase, squash, merge... fun, fun..

Did the same in React Redux. Thank you for submitting this. Made my life easier!

Glad to help!


Is it possible to dump all incoming packets? I want to do packet analysis. I didn't see any code related to this.

Use WireShark?

@samueljaydan generally speaking, the OS abstract away packet information from user program.
So I don't think it's possible in the general sense, with or without goproxy.


Question about docker compose stop_infra

In the Taskfile.yml I saw that the stop task is written in this way:
https://github.com/sivaprasadreddy/spring-boot-microservices-course/blob/bf938a40bb817828547a47b9c27e701a61deae27/Taskfile.yml#L32-L35
Is there any reason not to use docker compose down?
I did some research and only difference was that rm -f doesn't remove the created network, while down does.

The same network is shared by infra and apps. So, I am just removing the containers leaving the network to continue.

Oh, I didn't know about the network being shared. Good point.

I've experimented a bit by using compose profiles: https://docs.docker.com/compose/profiles/
It might be a good approach too. What do you think?
https://github.com/azdanov/bookstore/blob/e4cf6edc48685e1ce287f105ad64b30f074c660a/deployment/compose.yml#L6-L7
https://github.com/azdanov/bookstore/blob/e4cf6edc48685e1ce287f105ad64b30f074c660a/deployment/compose.yml#L26-L27
https://github.com/azdanov/bookstore/blob/e4cf6edc48685e1ce287f105ad64b30f074c660a/Taskfile.yml#L31-L37


add authz for survey/gradebook

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

9 of 58 (15.52%)  changed or added relevant lines in 3 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-1.06%) to 37.879%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

catalyst_utils/dao/group.py
2
10
20.0%

catalyst_utils/management/commands/generate_mailing_lists.py
0
10
0.0%

catalyst_utils/models.py
7
38
18.42%

Files with Coverage Reduction
New Missed Lines
%

catalyst_utils/management/commands/generate_mailing_lists.py
1
0%

Totals

Change from base Build<PHONE_NUMBER>:
-1.06%

Covered Lines:
100

Relevant Lines:
264

💛  - Coveralls


Polacode doesn't work after VSCode 1.47, replace it with CodeSnap?

As we know, Polacode doesn't work on VSCode 1.47.0 and later version (#https://github.com/octref/polacode/issues/143).
However, CodeSnap does works, would you replace Polacode with CodeSnap?

Hi, sorry for the delay in answering you, currently I am not actively using VSC as I used to, I checked the problem you are talking about, there is a version of MrRefactorin (Polacode (fixed edition)) that has the integrated fix, but I don't know if it will be maintained, so the change to CodeSnap seems correct. (fixed with this Release)


Add support for Gradle Kotlin DSL

This PR resolves #140548. It's based on my work in #118067.
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

I talked to the android team and here is what they said
I would want an error to be raised that we don't know whether or not build.gradle or build.gradle.kts should be used and for the user to be prompted to specify the specific file that should be used on the command line

Alternatively, a giant warning being printed with a clear indication of which file we are using and how the user could override that behaviour if desired

I am trying to find documentation for what gradle does if you have both build.gradle and build.gradle.kts. I believe it errors. If I cant find documentation then I will just try it and update here.
I think we should lean towards mirroring the behavior of gradle, The flutter android team thinks we should stop and error out or have a configuration option and default behavior (which I understand is significantly more work to land the pr).

I would want an error to be raised that we don't know whether or not build.gradle or build.gradle.kts should be used and for the user to be prompted to specify the specific file that should be used on the command line

I agree. I think that doing sth like logger.error("duplicate gradle files detected") when Gradle file exists in both Kotlin and Groovy is enough for this PR. I can create an issue if we decide to tack on that problem later on.

I would want an error to be raised that we don't know whether or not build.gradle or build.gradle.kts should be used and for the user to be prompted to specify the specific file that should be used on the command line

I agree. I think that doing sth like logger.error("duplicate gradle files detected") when Gradle file exists in both Kotlin and Groovy is enough for this PR. I can create an issue if we decide to tack on that problem later on.

That sounds reasonable to me.


ASGI mount

Hi, I'm really glad to see Falcon supporting ASGI - great job!
In some other ASGI frameworks (for example FastAPI, Starlette and BlackSheep) there is the ability to mount other ASGI apps at a certain route. For example:
asgi_app = falcon.asgi.App()
asgi_app.mount('/admin/', some_other_asgi_app)

It's nice because you can include third party ASGI apps within your own app - in my case it's Piccolo admin. It also lets you compose your app in interesting ways, by making it consist of smaller sub apps.
I wonder if you'd consider this in a future version of Falcon? Or if it's currently possible, and I'm unaware.
If you feel it's out of scope, please feel free to close this issue. Thanks.

Hi @dantownsend !
Yes, we have already been discussing the ability to mount other WSGI/ASGI apps, partially to address a common feature request to emulate "blueprints" with Falcon's own apps, as well as mounting any generic app.
See also the routing discussion: https://github.com/falconry/falcon/discussions/1818, as well as https://github.com/falconry/falcon/issues/1894.
I don't think we have a dedicated issue for this feature, so yours could serve as its ASGI flavour :wink:


Translated base_blocks.json to es-es.

Created es_es translations for base_blocks.json

Well done, and thank you for adding to the CREDITS as well!


mending accessibility

I love this mod I'm just only concerned about how theoretically easy it is to get mending very early on since it seems to use materials that are all obtainable in the overworld. Personally I'd like to see it as more of an endgame enchantment (especially with the buffs to repairing) needing some materials from the nether or even end but I understand this might just be my opinion.
If you could let me know if this would be considered that would be great. Thanks

The idea behing mending is that's it "lock" behinde the asuisition of XP Bottle. And the fact that you need to have gone to the Nether to craft Magic Shards.
I agree that Mending should be a bit difficult to craft (hence Mending Essence beehing the only essence with another essence as ingredient), but it's a way too popular enchant for me to make it too diffucult.
Most player consider their game to start when the get Mending Tools and armor, and i don't fill confortable locking it too far in the progression of the game.
You could technicaly modifie the recipe for Mending Essence with a simple datapack, i you personaly whant to make it arder to acquire, but it's unlikly that i would drasticly change this particular recipe.
If you have a recipe in mind that could work, feel free to share with me here. Perhaps one with Two Essence Of Experience ?

I guess I overlooked the magic shards being nether-locked as I thought they were sold by villagers but I might have been mistaken. In that case I'll have to play around with the mod more to really see how long it takes to farm up enough for a full mending set. I just liked the changes to repairing and thought it would be nice to see that feature more utilized and make mending feel less necessary than it is currently while still being a great reward.
Also I would love to see a discord server for this mod as it's my favorite enchanting mod by far but either way great job and I'll keep testing how it feels balance-wise.

I agree that Mending is not that hard to get, but you have to factor in the XP cost.
As it is a Treasure enchant, the cost of it is double. Nothing too problematic is you have an XP famr, but then you are not realy "early game" anymore.
As for the Discord, i'm not realy active with the app, so i'm reluctant to create a server that i would then have to moderate etc ...
But i might look into it some day.


fix cri runners

Signed-off-by: Shyam Jesal<EMAIL_ADDRESS>Summary
fix CRI runners
Implementation Notes :hammer_and_pick:

update max_conntrack limit for runner host. ref: here

TODO:
fix actions-runner download link in setup_runner_cri.sh.

Please merge when tests pass


Collab with PolicyEngine on SNAP utility deduction

this issue was created just so we can see it on our sprint board. for the work, you will need to contribute to this github issue = https://github.com/PolicyEngine/policyengine-us/issues/887

Some Context/Background info
The way CO and NC calculate utility deductions is different.
These are the utility deduction updates that need to be in the SNAP code for the NC screener:
In NC, the standard utility deductions vary by household size, and households can only claim the highest applicable deduction.
Per the SNAP screener info for NC:
Households can only receive one utility allowance. If a household qualifies for multiple allowances, choose the highest allowance.
Heating and Cooling: If a household pays utility bills for heating and cooling, or receives over $20 in heating assistance from LIHEAP, this allowance can be claimed.
Basic Utility Allowance: If a household pays for two or more utility bills (including electricity, gas, water, sewage, trash, or telephone), this allowance can be claimed.
Single Utilities: If a household pays for the utility, this allowance can be claimed.
Heating and Cooling Utility Allowance (HCSUA):
1 member $585
2 members $643
3 members $707
4 members $770
5 or more members $839
Basic/ Limited Utility Allowance (BUA/LUA):
1 - $371
2 - $408
3 - $448
4 - $488
5 - $532
There is a $41 standard deduction for Phone expense regardless of household size.
These deduction amounts may be updated at the end of the federal fiscal year, September 30, 2024.


Fixed issues revolving around broken packages.

The prettier plugin hasn't worked for awhile. A fix in the eslintrc file to include prettier as a plugin, and as a rule fixes prettier not working.
tsconfig file was changed to temporarily fix these two issues revolving around volar plugin: https://github.com/johnsoncodehk/volar/issues/1405 && https://github.com/johnsoncodehk/volar/discussions/592
The prepare script was causing too many issues. It was preventing packages from being installed and hurting the development process. It should be added later when not so many breaking "vite build" options cause npm install to not install the required packages to actually develop.
vue-tsc was added for the build command. I'm not sure why this was not already included. But to my understanding it's required for a Vite app using TS to build. In relation to https://github.com/cdmoro/bootstrap-vue-3/issues/403 it fixes the TS compilation issue, however, still running build causes actual issues to appear.

Thanks!


Escaped the wildcard * character properly

It was unescaped, resulting in italicized text, and the character was not visible.

@rcabr : Thanks for your contribution! The author, @DCtheGeek, has been notified to review your proposed change.

@rcabr Thank you for your contribution!  I made the change a different way for readability, but appreciate your contribution and pointing out the issue.  Thank you again!  #please-close


Add support for version intervals for Ivy repositories

Related to https://github.com/alexarchambault/coursier/issues/164.


feat(ci): Initial CI/CD pipeline

Fixes #31
To get a preview click here

Thanks very much for this! Got some things I need to do IRL but i'll take a look at this by the end of the week


FITCount Brazil - All insect types not showing

download.csv
Brazil report that Fitcount data download does not contain all insect types used by Brazil version of app.
As per attached, insect types showing are:
Beetles | Bumblebees | Butterflies moths | Honeybees | Hoverflies | Other flies | Other insects | Small insects | Solitary bees | Wasps
Which matches the UK list of insect types.
Brazil insect types used by the app are below (please let me know if you require the name id as used by the app/developer)
Beetles | 418860
Butterflies and moths | 418859
Honeybees | 419001
Other Insects | 418861
Small insects (<3mm) | 419076
Solitary Bees | 418855
Wasps | 418856
Bats | 538661
Hummingbirds | 538662
Orchid bees | 538656
Stingless bees | 538657
Bumblebees sensu lato | 538658
Flies | 538659
Don't know | 538660
The spreadsheet attached was supplied by the Brazil country coordinator, I have been into FITCount.ceh.ac.uk and masqueraded as the Brazil country coordinator and was able to download the same content.
It does not appear that any counts have been submitted in 2023, data is for 2022 only, however I will verify if they know this to be the case.
Thanks
jim

Hi @JimChiazzese1
I have not looked in detail yet, but there do appear to be samples entered for 2023 looking directly in the Warehouse interface.

Hi @JimChiazzese1 @DavidRoy @kazlauskis @kitenetter
Further to the email earlier, I see the problem.
Those insect types and currently downloaded in fixed SQL columns in a Regional Coordinator report, these do not take into account new additions to the warehouse, the columns are hard coded.
I have to change the report.
I can fix this, although there is a slight difficulty as all Regional Coordinators will see all columns (although the data in the column would be empty) unless we change the way this works.
I think best thing is if I change the report and we live with that problem for the immediate term, then revisit this.
I think Brazil probably hasn't got any samples for 2023, although not checked that in detail, but I think that is likely issue.
If it is a problem, it would be a different problem.

@JimChiazzese1
It looks like there are 22 rows in the "Insect groups (PoMS)" species list (list 221).
However in the download report there are only 10 columns.
So to fix this issue properly we need 12 new columns in the download file.
Is that ok?
I think this problem could potentially affect other regional coordinators too, at least in theory.

Thanks @andrewvanbreda That sounds about right. It could get a little confusing as some countries have butterflies and moths as one category, where others have them seperated. However, each country should know what categories apply to them and should easily be able to filter csv as necessary, so I don't think it will be issue introducing the extra columns. I can also ensure that country coordinators are a bit more thorough when checking, as this is something that they should have picked up on initial testing.

Hi @JimChiazzese1
Fix is live.
I have tested on a sample that used a different abundance number for each of the 22 insect categories and it all looked right in the report.
Close if you are happy, or comment further.

Thanks @andrewvanbreda This looks good to me. I've asked Brazil to download report and confirm it meets with their expecations, but just seeing the number of counts for stingless bees (Brazil only category) indicates all is good. Many thanks


Update docs for using generate_package_description.py

sys.argv[0] is now the language name, so update the synopsis to reflect it.
Description
We need to update the synopsis for generate_package_description.py:
As per what is recorded, it's used like
~/Work/WorkRepos/codeql-coding-standards $ python3.9 scripts/generate_rules/generate_package_description.py Types

However, sys.argv[0] is the language name, so in reality it should be:
~/Work/WorkRepos/codeql-coding-standards $ python3.9 scripts/generate_rules/generate_package_description.py c Types

Change request type

[ ] Release or process automation (GitHub workflows, internal scripts)
[X] Internal documentation
[ ] External documentation
[ ] Query files (.ql, .qll, .qls or unit tests)
[ ] External scripts (analysis report or other code shipped as part of a release)

Rules with added or modified queries

[X] No rules added
[ ] Queries have been added for the following rules:

rule number here

[ ] Queries have been modified for the following rules:

rule number here

Release change checklist
A change note (development_handbook.md#change-notes) is required for any pull request which modifies:

The structure or layout of the release artifacts.
The evaluation performance (memory, execution time) of an existing query.
The results of an existing query in any circumstance.

If you are only adding new rule queries, a change note is not required.
Author: Is a change note required?

[ ] Yes
[X] No

🚨🚨🚨
Reviewer: Confirm that format of shared queries (not the .qll file, the
.ql file that imports it) is valid by running them within VS Code.

[ ] Confirmed

Reviewer: Confirm that either a change note is not required or the change note is required and has been added.

[ ] Confirmed

Query development review checklist
For PRs that add new queries or modify existing queries, the following checklist should be completed by both the author and reviewer:
Author
It's a documentation update after all, so I'm leaving the following items as blank:

[ ] Have all the relevant rule package description files been checked in?
[ ] Have you verified that the metadata properties of each new query is set appropriately?
[ ] Do all the unit tests contain both "COMPLIANT" and "NON_COMPLIANT" cases?
[ ] Are the alert messages properly formatted and consistent with the style guide?
[ ] Have you run the queries on OpenPilot and verified that the performance and results are acceptable?As a rule of thumb, predicates specific to the query should take no more than 1 minute, and for simple queries be under 10 seconds. If this is not the case, this should be highlighted and agreed in the code review process.
[ ] Does the query have an appropriate level of in-query comments/documentation?
[ ] Have you considered/identified possible edge cases?
[ ] Does the query not reinvent features in the standard library?
[ ] Can the query be simplified further (not golfed!)

Reviewer

[ ] Have all the relevant rule package description files been checked in?
[ ] Have you verified that the metadata properties of each new query is set appropriately?
[ ] Do all the unit tests contain both "COMPLIANT" and "NON_COMPLIANT" cases?
[ ] Are the alert messages properly formatted and consistent with the style guide?
[ ] Have you run the queries on OpenPilot and verified that the performance and results are acceptable?As a rule of thumb, predicates specific to the query should take no more than 1 minute, and for simple queries be under 10 seconds. If this is not the case, this should be highlighted and agreed in the code review process.
[ ] Does the query have an appropriate level of in-query comments/documentation?
[ ] Have you considered/identified possible edge cases?
[ ] Does the query not reinvent features in the standard library?
[ ] Can the query be simplified further (not golfed!)

Congrats on your first merge! (I think!) 🎉


which.js: root is allowed to execute files owned by anyone

When running in say, a chroot enviornment, the process UID and GID will be 0,
but the files in the system (like /usr/bin/git) may not be owned by root itself.
This patch modifies the isExe function that tries to determine if a process is
executable and allows root to execute any file that has any executable bit set,
instead of just allowing it if the other executable bit is set.

Ping @isaacs


Get-MgSiteDrive Quota values not correct for Remaining and Used properties

Category

[ ] Question
[ ] Documentation issue
[x] Bug

Expected or Desired Behavior
Exporting accurate Quota values for OneDrive for Business sites that can be used for capacity planning analysis.
For this purpose, I have to use Microsoft Graph.
Observed Behavior
I have used following methods:

Get-MgSiteDrive -SiteId $site.id -Property Quota, WebUrl
Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/v1.0/sites/$($site.id)/drive" -OutputType PSObject
Invoke-WebRequest -Uri "https://graph.microsoft.com/v1.0/sites/$($site.id)/drive" -Headers $authHeader

The values returned for Quota.Used do not match the values from Admin Portal, under User Details Panel > OneDrive.
The differences are not small, they can get to up to 600GB.
Even more, in some cases Quota.Remaining > Quota.Total and this leads to Quota.Used to have a negative value.
I have double checked this using Powershell Module Microsoft.Online.SharePoint.PowerShell.
Cmdlet Get-SPOSite -IncludePersonalSite:$true -Limit All -Filter "Url -like 'https://***-my.sharepoint.com/personal/'" | select Url , StorageUsageCurrent, StorageQuota returns StorageUsageCurrent with the same value as the one displayed in Admin Portal under User Details Panel > OneDrive
Steps to Reproduce
I have not been able to reproduce the issue on another tenant until now, as I do not know the cause.
Thank you.
[ ]: http://aka.ms/onedrive-api-issues
[x]: http://aka.ms/onedrive-api-issues

I can confirm for other tenants that sometimes a negative value is returned for Quota.Used when queried via Graph API:
$Uri = 'https://graph.microsoft.com/v1.0/users/{0}/drive?$select=quota' -f $UserPrincipalName
$Response = Invoke-MgGraphRequest -Uri $Uri

I have not yet verified if the other values are correct.


Fix detailserrorposition

Description
Fixing review comment that was not merged during the fix details PR. Move SendTelemetryEvent to be triggered befor the disconnect in odspDocumentDeltaConnection.

Super!