jadx-next issues

Two issues/regressions I found in the jadx-next branch:

While testing the latest commit, I noticed that JADX renamed almost every class to "PG". No idea why, this didn't happen four days ago. Happens regardless of whether or not deobfuscation is enabled or mappings are loaded.

Example screenshot

Exporting mappings doesn't include the currently open mappings.

renamed almost every class to "PG"

Do these classes contains /* compiled from: PG */? If yes, just disable Use source file name as class name alias option in preferences. Anyway, looks like I need to check other classes names before applying source file name.

Exporting mappings doesn't include the currently open mappings.

This is weird. I will check this.
And thanks for report these issues :+1:

Do these classes contain /* compiled from: PG */?

No, see this class for example:

Weirdly enough, turning off Use source file name as class name alias fixed it anyway. Thanks! The APK I use is YouTube 17.45.36, but I don't think this should really matter.
By the way, turning off the above mentioned option also fixes the mapping export issue!

@skylot Re:

Exporting mappings doesn't include the currently open mappings.

I have a fix more or less ready locally, so if you don't rebase in the meantime, hopfully I can submit a PR later today :)

Hmm, I'm not quite sure how do adjust my changes to your recent changes.
The root issue is as follows: During your initial refactor, you got rid of the persistent MemoryMappingTree instance (formerly in RootNode); now it's just a local variable that can't be accessed from the MappingExporter.
This creates two problems:

The original mapping namespaces get lost. My PR vs jadx-next
Currently open mappings aren't exported. My PR vs jadx-next

This can only be solved by passing the MappingExporter the currently open MappingTree instance, but I'm not sure how to best approach this

@NebelNidas oh, thanks for spot this issue!
I commit a fix to save mapping tree in root attributes storage and return missing code lines :slightly_smiling_face:

Thank you very much, seems to be fixed :)
Unfortunately though, now that I could test it properly, I've found two other issues:

Every time you save mappings via "Save mappings as...", a project reload happens. Not sure if this can be done in a nicer way, but to be fair it's a just a minor inconvenience I can live with.
When you rename package-moved classes, the new name doesn't get picked up by the MappingExporter (it won't get saved). Members work correctly though, it's just the class new name that doesn't get saved. I'll investigate what's happening here and comment my findings once I'm done

@NebelNidas I fixed first issue and merged jadx-next branch into master :slightly_smiling_face:
Also, I have a question about mapping-io library jar currently used in jadx: is it possible to get it from maven repo anyhow? Because it is inconvenient to have libs as dependencies :cry:
I see that your PR https://github.com/FabricMC/mapping-io/pull/19 not yet merged and looks like mapping-io project not active anymore.
So can we switch to your fork, or I can create my own and upload it to maven ?

I fixed first issue and merged jadx-next branch into master 🙂

Nice, this means the plugin API is more or less stable now, right? Because we've been looking forward to integrating some auto-naming scripts/plugins into our mapping project 😄

I see that your PR not yet merged and looks like mapping-io project not active anymore

I'm actively in touch with the maintainers almost everyday on Discord (because of their other projects I'm contributing to), it's just that the guy responsible for mapping-io has been on an extended hiatus for quite a while now. I'm going to poke him again, hopefully he'll merge it. If he does, we can simply use the FabricMC maven, if not, we can fork it, of course :)
Btw, you seem to have introduced another issue recently (unrelated to mappings): When you rename classes, some error seems to happen and the "Rename" context menu entry remains greyed out thereafter (keybind doesn't work either):

Screenshot

Log
ERROR: [369] JadxRuntimeException in pass: IfRegionVisitor in method: aaxv.g(int, int, java.lang.String, java.lang.String, com.google.android.libraries.youtube.innertube.model.media.VideoStreamingData, com.google.android.libraries.youtube.innertube.model.media.PlayerConfigModel, aams):aari, file: classes.dex
jadx.core.utils.exceptions.JadxRuntimeException: Can't remove SSA var: r7v24 com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel, still in use, count: 2, list:
  (r7v24 com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel) from 0x003f: IF  (r7v24 com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel) == (null com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel)  -> B:26:0x0057 A[HIDDEN]
  (r7v24 com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel) from 0x0043: PHI (r7v23 com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel) =
  (r7v22 com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel)
  (r7v24 com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel)
 binds: [B:18:0x0042, B:16:0x003f] A[DONT_GENERATE, DONT_INLINE]
	at jadx.core.utils.InsnRemover.removeSsaVar(InsnRemover.java:152)
	at jadx.core.utils.InsnRemover.unbindResult(InsnRemover.java:117)
	at jadx.core.dex.visitors.regions.TernaryMod.makeTernaryInsn(TernaryMod.java:114)
	at jadx.core.dex.visitors.regions.TernaryMod.processRegion(TernaryMod.java:62)
	at jadx.core.dex.visitors.regions.TernaryMod.enterRegion(TernaryMod.java:45)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseInternal(DepthRegionTraversal.java:67)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.lambda$traverseInternal$0(DepthRegionTraversal.java:68)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseInternal(DepthRegionTraversal.java:68)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.lambda$traverseInternal$0(DepthRegionTraversal.java:68)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1092)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseInternal(DepthRegionTraversal.java:68)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.lambda$traverseInternal$0(DepthRegionTraversal.java:68)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseInternal(DepthRegionTraversal.java:68)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverse(DepthRegionTraversal.java:19)
	at jadx.core.dex.visitors.regions.TernaryMod.process(TernaryMod.java:35)
	at jadx.core.dex.visitors.regions.IfRegionVisitor.process(IfRegionVisitor.java:33)
	at jadx.core.dex.visitors.regions.IfRegionVisitor.visit(IfRegionVisitor.java:29)
	at jadx.core.dex.visitors.DepthTraversal.visit(DepthTraversal.java:26)
	at jadx.core.dex.visitors.DepthTraversal.lambda$visit$1(DepthTraversal.java:14)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at jadx.core.dex.visitors.DepthTraversal.visit(DepthTraversal.java:14)
	at jadx.core.ProcessClass.process(ProcessClass.java:72)
	at jadx.core.ProcessClass.generateCode(ProcessClass.java:107)
	at jadx.core.dex.nodes.ClassNode.decompile(ClassNode.java:375)
	at jadx.core.dex.nodes.ClassNode.decompile(ClassNode.java:299)
	at jadx.api.JavaClass.load(JavaClass.java:127)
	at jadx.api.JavaClass.getMethods(JavaClass.java:308)
	at jadx.gui.utils.JNodeCache.removeWholeClass(JNodeCache.java:53)
	at jadx.gui.treemodel.JClass.unload(JClass.java:88)
	at jadx.gui.ui.dialog.RenameDialog.refreshClasses(RenameDialog.java:198)
	at jadx.gui.ui.dialog.RenameDialog.lambda$refreshState$4(RenameDialog.java:171)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
ERROR: [304] JadxRuntimeException in pass: BlockProcessor in method: admg.f():adlr, file: classes.dex
jadx.core.utils.exceptions.JadxRuntimeException: Found unreachable blocks
	at jadx.core.dex.visitors.blocks.DominatorTree.sortBlocks(DominatorTree.java:35)
	at jadx.core.dex.visitors.blocks.DominatorTree.compute(DominatorTree.java:25)
	at jadx.core.dex.visitors.blocks.BlockProcessor.computeDominators(BlockProcessor.java:202)
	at jadx.core.dex.visitors.blocks.BlockProcessor.processBlocksTree(BlockProcessor.java:45)
	at jadx.core.dex.visitors.blocks.BlockProcessor.visit(BlockProcessor.java:39)
	at jadx.core.dex.visitors.DepthTraversal.visit(DepthTraversal.java:26)
	at jadx.core.dex.visitors.DepthTraversal.lambda$visit$1(DepthTraversal.java:14)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at jadx.core.dex.visitors.DepthTraversal.visit(DepthTraversal.java:14)
	at jadx.core.ProcessClass.process(ProcessClass.java:72)
	at jadx.core.ProcessClass.generateCode(ProcessClass.java:107)
	at jadx.core.dex.nodes.ClassNode.decompile(ClassNode.java:375)
	at jadx.core.dex.nodes.ClassNode.decompile(ClassNode.java:299)
	at jadx.api.JavaClass.load(JavaClass.java:127)
	at jadx.api.JavaClass.getMethods(JavaClass.java:308)
	at jadx.gui.utils.JNodeCache.removeWholeClass(JNodeCache.java:53)
	at jadx.gui.treemodel.JClass.unload(JClass.java:88)
	at jadx.gui.ui.dialog.RenameDialog.refreshClasses(RenameDialog.java:198)
	at jadx.gui.ui.dialog.RenameDialog.lambda$refreshState$4(RenameDialog.java:171)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
ERROR: [369] JadxRuntimeException in pass: IfRegionVisitor in method: aaxv.g(int, int, java.lang.String, java.lang.String, com.google.android.libraries.youtube.innertube.model.media.VideoStreamingData, com.google.android.libraries.youtube.innertube.model.media.PlayerConfigModel, aams):aari, file: classes.dex
jadx.core.utils.exceptions.JadxRuntimeException: Can't remove SSA var: r7v24 com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel, still in use, count: 2, list:
  (r7v24 com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel) from 0x003f: IF  (r7v24 com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel) == (null com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel)  -> B:26:0x0057 A[HIDDEN]
  (r7v24 com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel) from 0x0043: PHI (r7v23 com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel) =
  (r7v22 com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel)
  (r7v24 com.google.android.libraries.youtube.innertube.model.media.FormatStreamModel)
 binds: [B:18:0x0042, B:16:0x003f] A[DONT_GENERATE, DONT_INLINE]
	at jadx.core.utils.InsnRemover.removeSsaVar(InsnRemover.java:152)
	at jadx.core.utils.InsnRemover.unbindResult(InsnRemover.java:117)
	at jadx.core.dex.visitors.regions.TernaryMod.makeTernaryInsn(TernaryMod.java:114)
	at jadx.core.dex.visitors.regions.TernaryMod.processRegion(TernaryMod.java:62)
	at jadx.core.dex.visitors.regions.TernaryMod.enterRegion(TernaryMod.java:45)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseInternal(DepthRegionTraversal.java:67)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.lambda$traverseInternal$0(DepthRegionTraversal.java:68)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseInternal(DepthRegionTraversal.java:68)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.lambda$traverseInternal$0(DepthRegionTraversal.java:68)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1092)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseInternal(DepthRegionTraversal.java:68)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.lambda$traverseInternal$0(DepthRegionTraversal.java:68)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverseInternal(DepthRegionTraversal.java:68)
	at jadx.core.dex.visitors.regions.DepthRegionTraversal.traverse(DepthRegionTraversal.java:19)
	at jadx.core.dex.visitors.regions.TernaryMod.process(TernaryMod.java:35)
	at jadx.core.dex.visitors.regions.IfRegionVisitor.process(IfRegionVisitor.java:33)
	at jadx.core.dex.visitors.regions.IfRegionVisitor.visit(IfRegionVisitor.java:29)
	at jadx.core.dex.visitors.DepthTraversal.visit(DepthTraversal.java:26)
	at jadx.core.dex.visitors.DepthTraversal.lambda$visit$1(DepthTraversal.java:14)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at jadx.core.dex.visitors.DepthTraversal.visit(DepthTraversal.java:14)
	at jadx.core.ProcessClass.process(ProcessClass.java:72)
	at jadx.core.ProcessClass.generateCode(ProcessClass.java:107)
	at jadx.core.dex.nodes.ClassNode.decompile(ClassNode.java:375)
	at jadx.core.dex.nodes.ClassNode.decompile(ClassNode.java:299)
	at jadx.api.JavaClass.load(JavaClass.java:127)
	at jadx.api.JavaClass.getMethods(JavaClass.java:308)
	at jadx.gui.utils.JNodeCache.removeWholeClass(JNodeCache.java:53)
	at jadx.gui.treemodel.JClass.unload(JClass.java:88)
	at jadx.gui.ui.dialog.RenameDialog.refreshClasses(RenameDialog.java:198)
	at jadx.gui.ui.dialog.RenameDialog.lambda$refreshState$4(RenameDialog.java:171)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)

Btw, I've been keeping the code from my initial PR up-to-date with latest upstream (pre-jadx-next-merge), if you need something to compare against: https://github.com/NebelNidas/jadx/tree/upstream-with-mappingio-import

Nice, this means the plugin API is more or less stable now, right?

Right. I will focus on extending API (mostly for gui) and will try to keep current one unchanged.

If he does, we can simply use the FabricMC maven, if not, we can fork it, of course :)

Great :+1:

you seem to have introduced another issue

Thanks! I changed a lot of code related to renames, like package renames, deobfuscator split and changes to simplify api for scripts, so this was expected :rofl:
Will try to resolve that issue. Also, next time, please open new issue for new regressions :slightly_smiling_face:

I did a git bisect, and it turns out the bad commit is d4927db5. All versions before worked fine

After some investigation, this is what I found out. After you've performed a rename, the following happens when right-clicking on a class name:

jadx.gui.ui.codearea.RenameAction#isActionEnabled returns false, which is because node is null. That is because
the JNode instance passed from jadx.gui.ui.codearea.JNodeAction#changeNode is null. That is because
the JNode instance passed from jadx.gui.ui.codearea.JNodePopupListener#updateNode is null. That is because
the JNode instance passed from jadx.gui.ui.codearea.JNodePopupListener#popupMenuWillBecomeVisible is null. That is because
jadx.gui.ui.codearea.CodeArea#getNodeUnderMouse is null. That is because
jadx.gui.ui.codearea.CodeArea#getJNodeAtOffset is null. That is because
jadx.gui.ui.codearea.CodeArea#getJavaNodeAtOffset is null. That is because
jadx.api.JadxDecompiler#getJavaNodeAtPosition is null. That is because
jadx.api.metadata.impl.CodeMetadataStorage#getAtisnull`. That is because
position isn't a valid key for the navMap:

Before the rename, position does point to a valid entry. After the rename, position is incremented by one (I guess because of the added renamed from: ... comment?), but entries in the navMap are shifted by three for whatever reason, leading to this issue. I hope this digestion makes it easier for you to find the culprit.

@NebelNidas thanks a lot :+1:
Actually here two issues:

If code have first empty line it got removed, this cause code shift and annotations positions became incorrect and rename not working. This occurs only for default (empty) package, because package statements omitted.
Renaming a class in default package resets assigned defpackage alias, so package became empty and cause first issue

I commit a fix for the first issue. Second looks harder, I will try to fix it tomorrow
P.S. In most cases bad commit found by bisecting not very helpful for me, so please don't waste your time on bisect :slightly_smiling_face:

Thank you for the explanation and the quick fix! :)
Since jadx-next is merged into master now, I'm going to create separate issues for the remaining problems. Feel free to close this one once you've found a solution for the second issue you mentioned.

Second issue fixed, so package will not reset on class rename.


Unable to share map since updating to 1.2.3

Trying to share a corporation map with a second corp, when you enter the corp name in the input box it just says "No Results Found" no matter what is entered.  This has only happened since the update to 1.2.3, it worked fine on 1.2.2.

I can confirm that not much corps show up, but some actually do. Checking my sql database I found out, that only the names from the corp table which have the shared attribute set to 1, although I have no clue what that setting is actually doing.

1 member of the corp must set share Corp maps to allow from the Corp you are attempting to add. You must also set this to allow. if you dont and no member of the corp  you are attempting to add has it set to allow the list will not populate

Menu(Top Left) -> Account -> Share -> Corp Maps - Enable

Awesome that fixed it, thanks heaps!

This is actually in the documentation.  Click Map -> Manual and the scroll down to 'Sharing maps'.

Yeah this is some kind of "spam protection" on public servers. Corps/Allies have a "MAX_COUNT" for maps (pathfinder.ini).
It could be annoying if a hostile group send "share invites". Ship locations will be shared as well...

maybe remove corp share option from all users and add it to the new admin page so only those with corp director roles can enable. to prevent Spy activity. as most people won't notice an additional map.


Customizable blog post URLs using ResourceMapper

This change makes it possible to customize the blog post URLs while maintaining the existing functionality of ResourceMapper. For instance, it makes it possible to change the URLs to "/articles/${resource.title.encodeAsSlug()}", (which is what I did), without breaking features such as the post pagination.
Usage
By default, the ResourceMapper is configured to be backwards compatible, so the output remains the same. But two configuration properties are available: String postUrlBasePath and Closure createPostUrl. Here's an example configuration:
SiteConfig.groovy
...
resource_mapper = new ResourceMapper(site).with {
    postUrlBasePath = '/articles/'
    createPostUrl = { Map resource -> "${resource.title.encodeAsSlug()}/" }
    delegate
}.map
...

postUrlBasePath is used in place of the hard-coded path /blog/. It's real purpose however is to allow the customizeModels closure to detect post resources. The createPostUrl closure is called by getPostUrl(String basePath, Map resource). The new closure does the bulk of the work previously done by getPostUrl(), which now merely prepends the postUrlBasePath.
Duplicate URLs
I realize that changing the blog post URLs as I did has the potential to create duplicate URLs if I happen to have two posts with the same title. So I added checkForDuplicateUrls as the last resource processor in the chain. The closure throws an exception when it detects a duplicate URL, so there's no way for one to sneak by unnoticed.

Thanks Emmanuel, nicely done. Looking forward for more contributions from you.


Automated cherry pick of #6558: fix: 避免openstack以镜像做系统盘创建失败

Cherry pick of #6558 on release/2.13.
#6558: fix: 避免openstack以镜像做系统盘创建失败

Codecov Report

Merging #6562 into release/2.13 will increase coverage by 0.01%.
The diff coverage is 6.15%.

@@               Coverage Diff               @@
##           release/2.13   #6562      +/-   ##
===============================================
+ Coverage          6.85%   6.87%   +0.01%
===============================================
  Files               536     536
  Lines             90596   90621      +25
===============================================
+ Hits               6213    6226      +13
- Misses            83874   83886      +12
  Partials            509     509

Flag
Coverage Δ

#aFlag
6.87% <6.15%> (+0.01%)
:arrow_up:

Impacted Files
Coverage Δ

pkg/cloudcommon/db/rbac.go
0.00% <0.00%> (ø)

pkg/cloudcommon/db/tenantcache.go
1.31% <0.00%> (ø)

pkg/cloudcommon/policy/policy.go
1.58% <0.00%> (ø)

pkg/cloudprovider/cloudprovider.go
1.57% <0.00%> (ø)

pkg/compute/guestdrivers/managedvirtual.go
0.00% <0.00%> (ø)

pkg/compute/models/cloudaccounts.go
0.80% <0.00%> (ø)

pkg/compute/models/guest_actions.go
0.00% <0.00%> (ø)

pkg/compute/models/guests.go
0.56% <0.00%> (-0.01%)
:arrow_down:

pkg/compute/models/hosts.go
0.33% <0.00%> (-0.01%)
:arrow_down:

pkg/compute/models/networks.go
0.53% <0.00%> (ø)

... and 7 more

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 7a0dd41...574cb3c. Read the comment docs.


Scheduling erasure coding on another thread

Image of this branch passes dist-tests. 👍

The reason is because the internal work buffers are shared by the same thread, as are the internal tables (but those are read only, so that should be fine).

Ah that'd be a problem. That'd be for the Encoder and Decoder backend?

There are a few trics one can use to ensure this, for example holding an object in a closure, if the stack is going to vanish too soon.

Chronos v4 has a nice noCancel which would prevent the async closure from being GCed in the event of a cancellation.

I think we can still avoid the copies all together when passing data to encode/decode and only copy the results. Also, deep copy will be quite expensive and it isn't even enabled in 2.0 by default, so I would take a closer look at that.

There are some sleepAsync that can be removed now in https://github.com/codex-storage/nim-codex/blob/master/codex/erasure/erasure.nim#L291 and https://github.com/codex-storage/nim-codex/blob/master/codex/erasure/erasure.nim#L396


KAFKA-12648: handle MissingSourceTopicException for named topologies

Another source of flakiness we found in the NamedTopologyIntegrationTest was an ocasional MissingSourceTopicException that was causing the application to shut down. We created all source topics ahead of time in the tests, leading us to discover this race condition in the consumer client which can lead to spurious MissingSourceTopicExceptions when the metadata hasn't finished updating after a change in the consumer's subscription.
In addition to finding a workaround for this bug, throwing this MissingSourceTopicException and shutting down the entire app is itself a bug in the NamedTopology feature -- we should not stop all clients and prevent any further processing of the completely valid topologies just because one (or more) topologies were added that are missing their source topics. We can just remove those topologies from the assignment for the time being, and wait until the metadata has finished updating or the user has created the input topics to start assigning tasks from them.
So, this PR does two things:
a) Avoid throwing a MissingSourceTopicException inside the #assign method when named topologies are used, and just remove those topologies which are missing any of their input topics from the assignment.
b) (still TODO) Trigger the uncaught exception handler with a MissingSourceTopicException for each of the topologies that are missing topics, but don't shut down the thread -- we just want to make sure this issue is made visible to the user.
The following pieces of this PR are still a WIP:

part (b) above
unit/integration tests

@ableegoldman There are checkstyle errors in the builds.

Test failures are unrelated, will address @cadonna 's remaining feedback in the followup PR https://github.com/apache/kafka/pull/11686 -- going to merge
failures:

kafka.server.ReplicaManagerTest.[1] usesTopicIds=true
kafka.server.LogDirFailureTest.testProduceErrorFromFailureOnLogRoll()


Submitting a manifest fails with ERROR: Value cannot be null. (Parameter 'source')

Brief description of your issue
Cannot submit packages using wingetcreate
Steps to reproduce
wingetcreate submit -p "Tgstation.Server version 5.13.5" -t $Env:WINGET_PUSH_TOKEN .

Manifest files in .:
Tgstation.Server.installer.yaml:
# Created using wingetcreate <IP_ADDRESS>
# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.4.0.schema.json

PackageIdentifier: Tgstation.Server
PackageVersion: 5.13.5 # Do not change. Set before publish by push_manifest.ps1
Installers:
- InstallerUrl: https://github.com/tgstation/tgstation-server/releases/download/tgstation-server-v5.13.5/tgstation-server-installer.exe # Do not change. Set before publish by push_manifest.ps1
  InstallerLocale: en-US
  Architecture: x86
  InstallerType: burn
  Scope: machine
  InstallerSha256: AF9C71F6D08F5A1ED5F749A09E778F3E925C678721B94D1F23D71AD661CB2DBA # Do not change. Set before publish by push_manifest.ps1
  InstallModes:
  - interactive
  - silent
  - silentWithProgress
  ProductCode: '{D24887FA-3228-4509-B5F3-4E07E349F278}'
  UnsupportedOSArchitectures:
  - arm
  - arm64
  ElevationRequirement: elevatesSelf
  AppsAndFeaturesEntries:
  - DisplayName: tgstation-server
    DisplayVersion: 5.13.5 # Do not change. Set before publish by push_manifest.ps1
    Publisher: /tg/station 13
  Dependencies:
    PackageDependencies:
    - PackageIdentifier: Microsoft.DotNet.HostingBundle.6
  ReleaseDate: 2023-08-12 # Do not change. Set before publish by push_manifest.ps1
ManifestType: installer
ManifestVersion: 1.4.0

Tgstation.Server.locale.en-US.yaml:
# Created using wingetcreate <IP_ADDRESS>
# yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.4.0.schema.json

PackageIdentifier: Tgstation.Server
PackageVersion: 5.13.5 # Do not change. Set before publish by push_manifest.ps1
PackageLocale: en-US
Publisher: /tg/station 13
PublisherUrl: https://github.com/tgstation/tgstation-server
PublisherSupportUrl: https://github.com/tgstation/tgstation-server/discussions/categories/q-a
Author: Dominion/Cyberboss
PackageName: tgstation-server
License: AGPL-3.0
ShortDescription: A production scale tool for BYOND server management
Moniker: tgstation-server
Documentations:
  - DocumentLabel: README.md
    DocumentUrl: https://github.com/tgstation/tgstation-server/blob/tgstation-server-v5.13.5/README.md # Do not change. Set before publish by push_manifest.ps1
ReleaseNotesUrl: https://github.com/tgstation/tgstation-server/releases/tag/tgstation-server-v5.13.5
PurchaseUrl: https://github.com/sponsors/Cyberboss
ManifestType: defaultLocale
ManifestVersion: 1.4.0

Tgstation.Server.yaml
# Created using wingetcreate <IP_ADDRESS>
# yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.4.0.schema.json

PackageIdentifier: Tgstation.Server
PackageVersion: 5.13.5 # Do not change. Set before publish by push_manifest.ps1
DefaultLocale: en-US
ManifestType: version
ManifestVersion: 1.4.0

Expected behavior
Package submits successfully
Actual behavior
PS S:\workspace\tgstation-server\build\package\winget\manifest> wingetcreate submit -p "Tgstation.Server version 5.13.5" -t $Env:WINGET_PUSH_TOKEN .
Manifest validation succeeded: True

Submitting pull request for manifest...

ERROR: Value cannot be null. (Parameter 'source')

Environment
PS S:\workspace\tgstation-server\build\package\winget\manifest> wingetcreate --help
Windows Package Manager Manifest Creator v<IP_ADDRESS>

Copyright (c) Microsoft Corporation. All rights reserved.

The manifest creation command line utility generates manifest for submitting
apps to the Windows Package Manager repo.

  new         Launches a series of questions to help generate a new manifest
  update      Updates fields of an existing manifest
  submit      Submits a valid manifest directly to the Windows Package Manager repo
  settings    Open settings
  token       Modifies the GitHub auth token cache
  cache       Manage downloaded installers stored in cache

More help can be found at: https://aka.ms/winget-create
Privacy statement: https://aka.ms/privacy

PS S:\workspace\tgstation-server\build\package\winget\manifest> winget --info
Windows Package Manager (Preview) v1.6.1573-preview
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.19045.3324
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.21.1573.0

Winget Directories
-------------------------------------------------------------------------------------------------------------------------------
Logs                               %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
User Settings                      %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
Portable Links Directory (User)    %LOCALAPPDATA%\Microsoft\WinGet\Links
Portable Links Directory (Machine) C:\Program Files\WinGet\Links
Portable Package Root (User)       %LOCALAPPDATA%\Microsoft\WinGet\Packages
Portable Package Root              C:\Program Files\WinGet\Packages
Portable Package Root (x86)        C:\Program Files (x86)\WinGet\Packages

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

Admin Setting                             State
--------------------------------------------------
LocalManifestFiles                        Disabled
BypassCertificatePinningForMicrosoftStore Disabled
InstallerHashOverride                     Disabled
LocalArchiveMalwareScanOverride           Disabled

<IP_ADDRESS> works fine


Table of contents

Automatically inject a table of contents at the top of a post, based on markdown headings. This probably isn't always desired, so it should somehow be configurable.

I like this idea!

I got the idea from https://github.com/lumeland/markdown-plugins and I plan on heavily borrowing from this implementation.


Integration Test - Release - 2018/07/18 08:02:15

Auto create for integration test. AnotherAuthorUpdatedArticleFlow

@PRMergerTest1 : Thanks for your contribution! The author, @v-caxian, has been notified to review your proposed change.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

csidevdocs-public/IntegrationTest/BuildIntegartionTestFiles/ChangeSentToAuthor.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Post to Quicksilver API for User Registration

Members who register via mobile app aren't getting added to Mailchimp / Mobilecommons.
Currently blocked by not having production Quicksilver API endpoints.

@DeeZone @sergii-tkachenko I assume the user registration endpoint is what we'll want to use here. Is that responsible for adding users to MailChimp/MobileCommons or only sending the transactional? What's the ETA on it being production ready?

First, ETA for the quicksilver to be on production and support user registration is 3 sprints.
Second, as I understand, it shouldn't be too difficult to implement an option in Phoenix to issue a transactional message to Rabbit for users, created through API.

FWIW re: my comment about blocked by Quicksilver API endpoints -- @DeeZone had suggested using the endpoints as the ideal solution.
@DFurnes, @angaither and I were chatting yesterday about how a quick fix could potentially be to move the post to Message Broker out of the register form submit and instead to an insert User hook... though I'd imagine we'd still want Northstar posting to the Quicksilver API endpoints long-term...

if we set the create_drupal_user param from here, we should be able to call _dosomething_user_send_to_message_broker after a user is created, my only thought there is I'm not sure if global $user would be the northstar user that is authenticated, or the user that was created.

@DFurnes

Is that responsible for adding users to MailChimp/MobileCommons or only sending the transactional?

A request to the User Register endpoint will result in:

Mobile Commons signup if mobile number is present in request
MailChimp signups

Endpoint notes: "mailchimp_list_id determined in API based on user_county collected from Northstar."

This solution would be to handle future registrations, which is a low-volume problem (~200 per day). I don't think it's worth investing engineering beyond the Quicksilver API.
These two pieces seem adequate:

Finish & deploy Quicksilver API.
Run batch process to subscribe all past mobile registrants.

Thoughts?

@mshmsh5000 That seems like a good solution. 👍

@mshmsh5000 Sounds good.
To double clarify, once the Quicksilver-API Register User endpoint is in use by other DS applications in addition to Phoenix all MailChimp and Mobile Commons user registrations will be handled.

@mshmsh5000 this sounds good to me. Not sure when the Quicksilver API work is going to be done, but may want to run this process a few times so that people don't sit without being added to MailChimp/Mobile Commons for too long.
Doesn't seem like product has been added to this repository so can't mention folks on the team, but @mshmsh5000 if you're coordinating this batch process work can you please make sure to loop in Freddie/Kika for any welcome messaging we want to send to these app users?

@mikefantini I just added the product group to the repo so they should autocomplete now.

@justkika Let's discuss this in the next sprint planning.


Fix Clang builds failing due to a missing include

Fixes build errors encountered in https://github.com/conan-io/conan-center-index/pull/18739 with Clang and AppleClang.

@valgur I've just created a new version v1.1.3 just in case you want to update the conan recipe without the patch. Thank you very much for your contribution!


Fix Nix build header: F* and krml versions empty

Use fstar.exe --version instead of git rev-parse HEAD in $FSTAR_HOME directory. Indeed, when building the F*+KaRaMeL toolchain in a Nix environment, $FSTAR_HOME does not point to a git repository.
I foresee a few discussions.

This is perhaps a convoluted way to retrieve the git revision (List.nth (...) 5), I was unsure about the portability of grep usage, for example when using MacOS. As a consequence, we rely on the current output pattern of fstar.exe --version, should this be documented somewhere ? Does this choice seem reasonable?
Additionally, this adds a git_rev_length variable to control the length of F*/KaRaMeL revisions that are present in the KaRaMeL default header and raise it from 8 to 10. Perhaps this could/should be raised further, e.g. to 40, to be future-proof without any need to bump it?
Do you think any of this should be wrapped within an exception handler?

Additionally, this adds a git_rev_length variable to control the length of F*/KaRaMeL revisions that are present in the KaRaMeL default header and raise it from 8 to 10. Perhaps this could/should be raised further, e.g. to 40, to be future-proof without any need to bump it?

What problem are you trying to solve? Have you seen hash collisions?

This is perhaps a convoluted way to retrieve the git revision (List.nth (...) 5), I was unsure about the portability of grep usage, for example when using MacOS. As a consequence, we rely on the current output pattern of fstar.exe --version, should this be documented somewhere ? Does this choice seem reasonable?

@mtzguido @tahina-pro is this output expected to be stable?

Do you think any of this should be wrapped within an exception handler?

unless you can show me a situation where an exception will be raised, no

What problem are you trying to solve? Have you seen hash collisions?

No, I haven't, and it remains very unlikely, even the Linux kernel keeps revision of length 12 without any ambiguity issue, afaik. I think that the header purpose is to provide one with information about the toolchain that has been used to produce the corresponding file, possibly long after the extraction. As I don't think the header would be less readable/practical with full git revisions, why shouldn't it be changed to use full git revisions? By the way, krml -version already yields the full git revision.

@mtzguido @tahina-pro is this output expected to be stable?

Do you think any of this should be wrapped within an exception handler?

unless you can show me a situation where an exception will be raised, no

I guess it depends on the previous question (thanks for cc-ing).

Good suggestion, Guido -- thanks.
Regarding the commit hash: for the sake of keeping things readable, let's hardcode 12 as the length (what is good for Linux is good for us). Do not use a global variable, just leave 12 in the code, and let's not bikeshed on this -- this is entirely opinion-driven, unrelated to the goal of this PR, and does not solve any problem encountered in the wild.

@cmovcc: KString.starts_with is the helper you want here, something like
KList.filter_some (fun l -> if KString.starts_with l "commit=" then Some (String.sub ... l ...) else None) lines (sketch)

Thanks for the hint!


Input dropout

Proposed changes:

add dropout before ffnn

Status (please check what you already did):

[ ] added some tests for the functionality
[ ] updated the documentation
[ ] updated the changelog (please check changelog for instructions)
[x] reformat files using black (please check Readme for instructions)

@dakshvar22 @tabergma do we want to merge this one?

@Ghostvv As discussed, can you test it on a couple of datasets and configs before merging it?

This also requires retraining of models, doesn't it? Should we increase the minimum model version number and add a note to the changelog entry? Or should we push it to master so that we release it with the next minor?

this one doesn't because dropout is turned of during prediction so prediction graph is the same

but maybe merging it into master is safer bet

let's merge 1.9.x in a separate PR first: https://github.com/RasaHQ/rasa/pull/5659

I added a parameter use_dense_input_dropout (similar to sparse one) and set it to False by default in EmbeddingIntentClassifier just to avoid surprises

it needs to increase anyhow, since master is not compatible with 1.9, but I don't think it requires here, since dropout doesn't affect prediction graph


[Feat]: Add gvm use option and support for .gvm file like nvm

Possible commands
gvm init => adds .gvm or .gvmrc file with current go version
gvm use => installs and switches to go version in .gvm/.gvmrc file


Greatest mod

will u make this mod available for 1.18 or 1.18.1 would realy love to see it

It's now available on CurseForge


Solve ROI width issue

Some ROIs (e.g. Brazil Nuts) are not wide enough to cover the peak.
How to solve this problem is to be discussed.

In most spectra, if you look at the K-40 peak (1460) you can see the problem. Of course the plotter is showing log scale so it isn't as bad as it may look. But it is still significant.

Issue #41 should be completed first, to make it easier to adjust.


add types

Added strong typings for @dominative/vue. Related PR https://github.com/SudoMaker/dominative/pull/2

I am wondering we we need to declare any other globals other than document?

I think it’s fine for now


Allow creation of effects without setting them

While Colore is great cause of the many Helper Methods (like SetCustom...) I think the base Methods of the SDK should be public and similar to the C++ implementation to not confuse people. This allows for easier porting of existing C++ or C# code to the other language.
It also allows more advantage use of storing and retriving frames with CreateEffect and SetEffect(guid).
That means:

Create(Device)Effect should be made available to the public as a method under each Device and have a way to pass NULL as ref which seems to directly apply the effect after creation as seen in the Chroma Sample SDK App.
SetEffect should accept a GUID instead of an Effect(Type).
... more(?)

Your thoughts about this?
Possible implementation 1. Guid passed as out as in the Chroma SDK.:
# Get GUID and Apply
var custom = Custom.Create();
custom.Set(Color.Red);
Guid guid;
Chroma.Instance.Keyboard.CreateEffect(Corale.Colore.Razer.Keyboard.Effects.Effect.Custom, custom, out guid);
if (guid != Guid.Empty) Chroma.Instance.Keyboard.SetEffect(guid);

# Apply directly
var custom2 = Custom.Create();
custom2.Set(Color.Blue);
Chroma.Instance.Keyboard.CreateEffect(Corale.Colore.Razer.Keyboard.Effects.Effect.Custom, custom2);

Possible implementation 2.  CreateEffect with additional parameter for applying instead of returning Guid:
# Get GUID and Apply
var custom = Custom.Create();
custom.Set(Color.Red);
var guid = Chroma.Instance.Keyboard.CreateEffect(Corale.Colore.Razer.Keyboard.Effects.Effect.Custom, custom);
if (guid != Guid.Empty) Chroma.Instance.Keyboard.SetEffect(guid);

# Apply directly
var custom2 = Custom.Create();
custom2.Set(Color.Blue);
Chroma.Instance.Keyboard.CreateEffect(Corale.Colore.Razer.Keyboard.Effects.Effect.Custom, custom2, true);

For setting a GUID, we already have the method SetGuid for that (IDevice). Maybe it's worth adding an overload to SetEffect that takes a Guid to mimic the SDK endpoints.
For directly applying the effect, we already have the normal methods which do just that (and the GUID of the created effect can be retrieved with the CurrentEffectId property of IDevice).
As for how to do effect creation while not actually setting the effect, we'll need some discussion on how to best implement it.
The most sensible might be to add Create* methods alongside the existing Set* methods that will create the effect and return its GUID, but not actually pass them to the internal SetEffect SDK endpoint.
The only worry is that we'd be effectively doubling the amount of methods for every device class, making them quite large. Maybe it's possible to put the creation logic in the effect struct themselves, meaning it would be something like: new Static(Color.Blue).Id.

If we want to mimic the SDK Endpoints then having a CreateEffect for each Device like that should be enough to just forward everything to the Native Method:
        public Guid CreateEffect<T>(Effect effect, T @struct) where T : struct
        {
            return NativeWrapper.CreateKeyboardEffect(effect, @struct);
        }

The current Set* methods all retrieve the GUID, delete the old Effect and apply the new one.
By just setting the Effect without a GUID this reduces the amounts of SDK calls needed.
In nearly all cases the GUID isn't actually needed.
We might just need to ask Razer if an Effect set like that still needs cleanup (I don't think it needs) as their Sample SDK doesn't do any cleanup, or if the Device (or SDK) handles the cleanup itself. If no cleanup is needed we can save two SDK calls (SetEffect, DeleteEffect) by changing the way the current effects are applied.

Reworking the Create methods to be able to pass NULL for the Guid parameter would be quite a bit of work if they also need to be able to return a Guid for other methods, so unless there is a significant performance gain to be had from doing that, I don't think we will pursue that path right now.
Last time we contacted Razer about some issue related to endpoints they said that DeleteEffect must always be called before a new one is set. But it's not present anywhere in the sample app as you say, so maybe this has changed recently.

Possibly related to #31.

As much as I hate seeing people write this:
+1

GitHub added reactions for just that purpose you know.
On Tue, 5 Jul 2016, 10:40 Nico<EMAIL_ADDRESS>wrote:

As much as I hate seeing people write this:
+1
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/CoraleStudios/Colore/issues/183#issuecomment-230419713,
or mute the thread
https://github.com/notifications/unsubscribe/AAhott6_EpTlnXgzY1mJGBXDHTMCUDDcks5qShhogaJpZM4JEjqj
.

Moving this to v6.1 milestone. We'll probably put in the Create* methods on each device for obtaining effect GUIDs without setting them, at least to begin with.


[components-autocomplete--default] Search term disappeared from Autocomplete input field when switching browser tabs.

Describe the bug:
When Searching any term in Autocomplete input field then switching browser tabs causing the input term disappeared.
To Reproduce:
Steps to reproduce the behavior:

Go to https://forge.tylerdev.io/main/?path=/docs/components-autocomplete--default
Click on "Choose State" AutoComplete input field and Enter the text "xyz".
When switch to next tab in Same browser and came back to Auto Complete forge tyler component tab.
Then the term "xyz" disappeared.

Expected behavior:
Can we preserve the input field text?
Screenshots:

Please complete the following information:

Forge version: [e.g. v2.0.0]
I have searched existing issues before creating this report? [Y/N]
Browser: [e.g. Chrome, Firefox, Safari, All]
Platform: [e.g. desktop, mobile, All]
OS: [e.g. Windows, Mac, Linux, iOS, Android, All]

@rafiqdeen The autocomplete has an allowUnmatched property that can be applied to preserve any text after the input is blurred (the field is being blurred when you switch browser tabs). This should be what you're looking for. I'll go ahead and close this, but let me know if we need to reopen.


Unexpected upload response when running locally

I'm attempting to use doveralls locally (on OSX) by running dub run doveralls -- -t MY_COVERALLS_KEY as per the README but am getting the following error:
Building package doveralls in ~/.dub/packages/doveralls-1.3.1/doveralls/
Performing "debug" build using dmd for x86_64.
doveralls 1.3.1: building configuration "application"...
Linking...
Running ../../../.dub/packages/doveralls-1.3.1/doveralls/doveralls -p . -t ***********************
Unexpected upload response: {
    "error": true,
    "message": "Couldn't find a repository matching this job."
}
Program exited with code 1

am trying locally as on travis-ci.org I get undefined reference to __coverage all over the place

ignore this. I had put the token in wrong. perhaps a better error message would help though.
now I just need to get it working with travis-ci.org


Add Jupyter integration to the docs

Let's add a section to "Configuration" and a question to the "FAQ".

@dhruvmanila - I know this came up on Discord. I don't consider it "blocking" for a release since it'll go in the release notes, but definitely worth doing.

Yeah, I think it would be useful as well.


containerd-rootless-setuptool.sh uninstall does not uninstall ${CONTAINERD_NAMESPACE}-buildkit.service and stargz-snapshotter.service

containerd-rootless-setuptool.sh uninstall uninstalls buildkit.service (non-containerd OCI worker) and containerd-fuse-overlayfs.service, but does not uninstall other relevant services:
$ containerd-rootless-setuptool.sh uninstall
[INFO] Unit buildkit.service is not installed
[INFO] Unit containerd-fuse-overlayfs.service is not installed
+ systemctl --user stop containerd.service
+ systemctl --user disable containerd.service
Removed "/home/suda.linux/.config/systemd/user/default.target.wants/containerd.service".
[INFO] Uninstalled "containerd.service"
[INFO] This uninstallation tool does NOT remove containerd binaries and data.
[INFO] To remove data, run: `/usr/local/bin/rootlesskit rm -rf /home/suda.linux/.local/share/containerd`

$ ls ~/.config/systemd/user/
default-buildkit.service  default.target.wants  stargz-snapshotter.service

Tested with v2.0.0-beta.0

I would like to work on this @AkihiroSuda

please go ahead @roman-kiselenko . Thanks


pullapprove: remove it

We are moving off pullapprove. remove its config file.
Fixes: #331
Signed-off-by: Graham Whaley<EMAIL_ADDRESS>

Merging...

Webhook deleted.


Add bottomOffset option

useful if you want to disable stickyness after activating.
basically having a range where you can show the component, instead of all the way to the bottom.
fixes #30

I think your commit will make a lot of people happy, but we can't be sure until there is a test to confirm it, hint hint :)

I've taken some more time to think about this... How do you (and anyone else) feel about a new interface entirely as part of a major release of react-sticky. Here is what I'm thinking:
...
at least "from" or "to" is required, and "of" would either be a parent component, or the window by default. I think this would give the same functionality you've developed with a simplified interface, as well as easier to implement. Thoughts?

@captivationsoftware Hi, Sorry for the late reply.  I just been sick these past few days.
reply on comments:

Sure, I'll be happy to add tests.
For <Sticky from={y1} to={y2} of={element} >...</Sticky> . That sounds a great idea.  I think at least on our use case we always base on window by default.  On the current implementation, this.origin is always based on the placement of the component.

If you could point me to the right direction, I'll gladly update my PR.

@captivationsoftware follow up with this, what is required to have this PR merged? just unit tests?  Or are we to refactor the api with a from and to ?

Unit tests and documentation for the feature in the readme will do the trick. I will be on the lookout for your changes.

Also, I would prefer to hold off on a major rewrite anytime soon due to time constraints with client projects, but I'm happy to get some dialogue started  with any interested users.

With this implementation sticky element will simply disappear at some point. I think it would be better if it could freeze relatively to document rather then jump to the original position. Not sure how to actually implement it. Just some thoughts on UX.

@captivationsoftware The new interface mentioned seems handy. Although, I would add that perhaps the to could be optional as well. Given a use case where something needs to be stick from y1 onwards. I have subscribed to this thread and will try to help with a refactor if and when it comes to it.


More unit tests needed for kevlar localize

I'm suspicious that the delta is not being calculated or applied correctly on one end of each cut-out sequence.

It turns out that my suspicions were based on unexpected CIGAR strings, which are not due to incorrect sequence retrieval but alignment artifacts. I will close this issue and wait for specific examples demonstrating incorrect behavior.


fix: Failed to capture structured binding

I fixed a compilation error that failed to capture structural bindings.
I also added a part that specifies the typename for template-dependent members.
In my build environment (ubuntu 22.04, clang18) an error occurs when using the original code.

Thank you for developing a useful library.

I just tested on Debian 12, clagn 18, and there are no errors.Hasn't the warning been reported as an error?
Can you share the errors you've seen with the command you use?

However it is correct to add typename. Thanks for fix.

The following error occurs when testing with the build script you provided.
FAILED: CMakeFiles/vfs.dir/src/copy.cpp.o

/usr/bin/cmake -E __run_co_compile --tidy="/usr/bin/clang-tidy;--extra-arg-before=--driver-mode=g++" --source=/home/sdk/repos/vfs/src/copy.cpp -- /usr/bin/clang++-18 -Dvfs_EXPORTS -I/home/sdk/repos/vfs/include -I/home/sdk/repos/vfs/internal -g -fPIC -g --coverage -std=gnu++20 -MD -MT CMakeFiles/vfs.dir/src/copy.cpp.o -MF CMakeFiles/vfs.dir/src/copy.cpp.o.d -o CMakeFiles/vfs.dir/src/copy.cpp.o -c /home/sdk/repos/vfs/src/copy.cpp

/home/sdk/repos/vfs/src/copy.cpp:35:27: error: reference to local binding 'dst_r' declared in enclosing function 'vfs::impl::(anonymous namespace)::emplace_regular_file_into' [clang-diagnostic-error]
        assert(nullptr != dst_r.get());
                          ^
/home/sdk/repos/vfs/src/copy.cpp:32:14: note: 'dst_r' declared here
        auto const [dst_r, ok] = dst_prev.emplace_regular_file(dst_p.filename());

When I searched for related issues, I found the following.
stackoverflow: Lambda implicit capture fails with variable declared from structured binding
[Core issue 2313](https://wg21.link/CWG2313) changed the standard so that structured bindings are never names of variables, making them never capturable.
Based on the above, there is no compilation error even when modified as below.
// src/copy.cpp
auto const [dst_r, ok] = dst_prev.emplace_regular_file(dst_p.filename());
auto const commit      = [&, &dst_r=dst_r]() -> bool { // Only &dst_r(structures bindings) specified separately.
      // NOLINTNEXTLINE
      assert(nullptr != dst_r.get());
      dst_r->copy_from(*src_r);
      return true;
};

Thank you for testing the problem yourself.


Use smaller integer field types for GTFS entity classes

GTFS enums usually fit into one byte, so we don't need an int. GTFS tables usually less than 16 fields, so we need a byte or a short int for storing a bitmask of assigned fields.
Smaller fields allow us to save memory for the largest table - stop_times.txt that may have 30 M lines.
Instead of:
class GtfsStopTime {
  // ...
  private int pickupType;
  private int dropOffType;
  private int continuousPickup;
  private int continuousDropOff;
  private int timepoint;
  private int bitField0_;
}

we have now:
class GtfsStopTime {
  // ...
  private byte pickupType;
  private byte dropOffType;
  private byte continuousPickup;
  private byte continuousDropOff;
  private byte timepoint;
  private short bitField0_;
}

which is 5 * (4 - 1) + 2 = 17 bytes smaller. Java aligns classes by 8 bytes, so we actually save 16 bytes per line.
Total save: 0.5 GiB for 30 M lines in stop_times.txt

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

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

Nice

Nice

Thanks!

wave Welcome back!

I missed GTFS Validator :)


Some Bower dependencies are checked into version control

Not sure if this is intended or not but just thought that I would bring it up.

jekyll doesn't installs deps, so they are checked in. I updated list.js as well until my pr gets accepted. It's not awesome but its how it has to work for the gh-pages branch setup to work.

Understood.


Fix Test connector plugin

Description
Update the connector name in scenario multi-ksql-connect-rhel to VerifiableSinkConnector
Fixes # (issue)
Type of change

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

How Has This Been Tested?
molecule --debug converge -s multi-ksql-connect-rhel
Test Configuration:
Local docker environment
Checklist:

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

LGTM.
Also tested on 6.0.x branch.


[clusteragent/clusterchecks] Add isolate check command to datadog cluster agent

What does this PR do?

This PR adds a new command datadog-cluster-agent clusterchecks isolate --checkID=<check ID> that allows users to isolate a check onto a certain runner
Motivation

Cluster check runners can be running several checks--to make it easier to debug which check is causing issues with high CPU/memory usage, this isolate command can be used to pinpoint the cause of the errors.
Additional Notes

Pending verification of behavior with endpoint checks that are run in the cluster check runners and not node agent
Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Set up your agent deployment with cluster check runners enabled

datadog:
  clusterChecks:
    enabled: true
...
clusterChecksRunner:
  enabled: true
  replicas: 2
...

Ensure you have a few checks running in the cluster check runners
In the datadog-cluster-agent pod, see which checks are running in which runners:

❯ kubectl exec -it datadog-cluster-agent-... -- /bin/bash
❯ datadog-cluster-agent clusterchecks

...
=== 2 agents reporting ===

Name                                                 Running checks
datadog-agent-linux-clusterchecks-859dc995db-8b796   2
datadog-agent-linux-clusterchecks-859dc995db-s5v6t   1

===== Checks on datadog-agent-linux-clusterchecks-859dc995db-8b796 =====

=== http_check check ===
Configuration provider: kubernetes-services
Configuration source: kube_services:kube_service://workload-nginx/nginx
Config for instance ID: http_check:My Nginx:adfe5660481031e8
empty_default_hostname: true
name: My Nginx
tags:
- kube_namespace:workload-nginx
- kube_service:nginx
- cluster_name:jenn-test
- kube_cluster_name:jenn-test
timeout: 1
url: http://<IP_ADDRESS>
~
Init Config:
{}
===

=== helm check ===
Configuration provider: file
Configuration source: file:/etc/datadog-agent/conf.d/helm.yaml
Config for instance ID: helm:caf894718bffb4e9
collect_events: true
empty_default_hostname: true
helm_values_as_tags: {}
tags:
- cluster_name:jenn-test
- kube_cluster_name:jenn-test
~
===

===== Checks on datadog-agent-linux-clusterchecks-859dc995db-s5v6t =====

=== openmetrics check ===
Configuration provider: prometheus-services
Configuration source: prometheus_services:kube_service://kube-system/kube-dns
Config for instance ID: openmetrics:76c92cf0e839d7
empty_default_hostname: true
metrics:
- .*
namespace: ""
openmetrics_endpoint: http://<IP_ADDRESS>:9153/metrics
tags:
- cluster_name:jenn-test
- kube_cluster_name:jenn-test
- kube_namespace:kube-system
- kube_service:kube-dns
~
Init Config:
{}
===

Find a runner with >1 check running, and copy one of the check IDs (labelled Config for instance ID)
Run the isolate command

❯ datadog-cluster-agent clusterchecks isolate --checkID="http_check:My Nginx:adfe5660481031e8"

...
Check http_check:My Nginx:adfe5660481031e8 isolated successfully on node datadog-agent-linux-clusterchecks-859dc995db-8b796

Verify that this check is now the only one running on the cluster check

❯ datadog-cluster-agent clusterchecks

...
=== 2 agents reporting ===

Name                                                 Running checks
datadog-agent-linux-clusterchecks-859dc995db-8b796   2
datadog-agent-linux-clusterchecks-859dc995db-s5v6t   1

===== Checks on datadog-agent-linux-clusterchecks-859dc995db-8b796 =====

=== http_check check ===
Configuration provider: kubernetes-services
Configuration source: kube_services:kube_service://workload-nginx/nginx
Config for instance ID: http_check:My Nginx:adfe5660481031e8
empty_default_hostname: true
name: My Nginx
tags:
- kube_namespace:workload-nginx
- kube_service:nginx
- cluster_name:jenn-test
- kube_cluster_name:jenn-test
timeout: 1
url: http://<IP_ADDRESS>
~
Init Config:
{}
===

===== Checks on datadog-agent-linux-clusterchecks-859dc995db-s5v6t =====

=== helm check ===
Configuration provider: file
Configuration source: file:/etc/datadog-agent/conf.d/helm.yaml
Config for instance ID: helm:caf894718bffb4e9
collect_events: true
empty_default_hostname: true
helm_values_as_tags: {}
tags:
- cluster_name:jenn-test
- kube_cluster_name:jenn-test
~
===

=== openmetrics check ===
Configuration provider: prometheus-services
Configuration source: prometheus_services:kube_service://kube-system/kube-dns
Config for instance ID: openmetrics:76c92cf0e839d7
empty_default_hostname: true
metrics:
- .*
namespace: ""
openmetrics_endpoint: http://<IP_ADDRESS>:9153/metrics
tags:
- cluster_name:jenn-test
- kube_cluster_name:jenn-test
- kube_namespace:kube-system
- kube_service:kube-dns
~
Init Config:
{}
===

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

This fix temporarily isolates the check until the next check rebalance occurs. I think it's good for now, but in the future we could:

Change the rebalance algorithm to take into account isolated checks. We might need a CLI command to revert the change. In this case, the change will persist until a restart.
To keep the change even after a restart we could introduce a new configuration option with the list of checks that we want to isolate.


Dartanalyzer, part 2

@jelbourn  Please review as your convenience.
This implements all the code for dartanalyzer to run successfully. There are too many errors in Dart files right now for me to run the analyzer on Travis (it would break, a lot). I will make a separate PR to fix errors and enable it on travis.
Also, please note there was a bug in Broccoli-Dest-Copy which this fixes.

Can you make the dart travis build optional temporarily so that it isn't red for PRs?

The travis build is not runnin g the dartanalyzer yet, so it should pass. I think I fixed it.

LGTM


Issue when to run it!! Help me, thanks.

Traceback (most recent call last):
File "/home/Jan/tools/SocialFish/SocialFish.py", line 14, in
from core.report import generate_unique #>> new line
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/Jan/tools/SocialFish/core/report.py", line 2, in
from pylatex import Document, PageStyle, Head, Foot, MiniPage,
ModuleNotFoundError: No module named 'pylatex'

im new to phishing and couldnt find a community so i made one on discord add me at usertenthousand or join the server here https://discord.gg/REujkWET

**Hi 👽 ! If you are interested in ⚙Advanced Phishing⚙ and the ✨Evilginx3✨ tool then I offer you Google Gmail and Custom Phishlets (Paypal, Cryptos...) with a ✅Free Tutorial✅ which arrives if the 📈Telegram reaches 50 Subscribers📈
⏳ GOOGLE GMAIL PHISHLET 2024 WITH PROOF ⏳
->
⛔https://www.youtube.com/watch?v=nA47UknIE6A⛔
🔓 Ask your questions and a free tutorial from 50 subs on telegram !!!
->
📩https://t.me/Noremorse1011📩**


Increase star expiration length

Sorry I know this is old, I have seen this. I just haven't had time lately to check other things related to this. I think this makes more sense than using 60 min considering how long stars approx. last on the ground. The only issues are

I believe I need to change what the server currently returns. It has a hard limit on its end to avoid sending back too much data.
If 1 is true, I'm not sure if the time that the server has been capped it is an assumption that people have been working with. As in, will the server returning more data break people's current usages? I don't think it will but I would like to check.

I'll try to do some research on that over this week and release this once leagues ends if all seems well. I have to remove a few toggles once leagues ends so I can get them both in one release.

I checked over the weekend and it seems to be fine with several of the people that I know use the endpoints or their own. I will try to get this out by the end of this weekend with Leagues reverts. I may just do 120 as the max instead, so if this doesn't get merged I will tag you in the PR to plugin hub.


[Bug] "Applied Visual Design: Change an Element's Relative Position" challenge in Beta curriculum does not work

Challenge Name
Applied Visual Design: Change an Element's Relative Position
Issue Description
The correct solution isn't accepted, giving the output:
// running test
"message: The h2 element should have a position property set to relative."
"b is null"
// tests completed

Browser Information

Browser Name, Version: Firefox Nightly 57.0a1 (2017-09-08) 64-bit
Operating System: Debian GNU/Linux 9.3, 64-bit
Mobile, Desktop, or Tablet: Desktop

Your Code

On Being Well-Positioned

Move me!

I still think the h2 is where it normally sits.

Additional Information
The "Bug" button to report an issue also doesn't work on that page. I've tried refreshing, but the issue persists.

@yrahul3910 I tried to reproduce the error but I was unable to do so. I think it's a browser specific error(the beta version is highly unstable with Edge), have you tried the challenge in any other browser?

Tested on Opera latest release.

I've tried and had the same issue on Firefox 54.0.1 32-bit (stable) running on Windows 7. And yes, it gets stuck on // running test in Edge. Sigh.

It works on Chromium too (kinda obvious since it works on Opera I guess). I'm not sure if this is a bug with other browsers or with FCC's beta.

Thanks for reporting this issue and looking into it @yrahul3910 @vkWeb!
This is a known issue we had with CSS tests in Firefox. This has been fixed recently with https://github.com/freeCodeCamp/freeCodeCamp/pull/15775
This change isn't on the beta site yet, but I can confirm that this work fine on the latest staging. Hopefully it'll go up soon!
I'm closing this as resolved. Happy coding!


Does Autocomplete (TextFields) support endAdornment?

I want to use AutoComplete for my search bar and want to have a search button as the
endAdornment of the textfield. Is it supported?

Please use gitter or SO for how to questions. This helps us keep issues for... issues. :smile: Thanks!


have to wss ?

Error reading filesSecurityError: Failed to construct 'WebSocket': An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.

Where are you getting this error? You shouldn't be doing wss if you're running this locally.

I started running directly in github's codespaces, using docker compose，You can go directly to https://curly-fortnight-vwqv456759p36xwj-5173.app.github.dev/

“I am using it on the server, so I also encountered this problem. How can I solve it?”
index-0b095b1d.js:225  Mixed Content: The page at 'https://XXX.XXX.XXX/' was loaded over HTTPS, but attempted to connect to the insecure WebSocket endpoint 'ws://stc.wenqian.space/generate-code'. This request has been blocked; this endpoint must be available over WSS.

@etfromchina you need to configure the environment variable in the frontend/.env.local
VITE_WS_BACKEND_URL=wss://stc.wenqian.space

Closing this since the solutions suggested above should work for people.


Add Booking Options in Public site

This will allow users to book new visit thrue our public site to choosen cabinet, after that assignet doctors will recieve email and will directly see the  new user
This will require user registrations, and history for booked visits, but in the nearest feature we can use this information to share something from clario admin to casual users

This will be major improvment and we need to define clear criterias like design, options for booking, payments and so on @ipbg

We can be even more creative than that:
Clinics already have possibilities to change theyr theme, theyr logo, name and so on, we can integrate this into theyr custom public site that will be created by the system with adding new domain before myclario.com
Example: Svetlio's Clinic decide to use this enhancement, they buy the addon from us and we give them to use with www.svetlioclinic.myclario.com
The patient Vasil decide to reserve a visit, he goes to the url and see simple site with reservation form and first is to choose cabinet, than doctor, and see the doctor's calendar , than he click and drag for his visit time, and it gets form for payment.
when the payment is done, doctor recieve email, calendar is auto reloaded if the doctor is online and every one is happy 🥇 👍

we can add payments by visa or mastercard and payment on the visit

What do you mean? Payment by patient?

Yea, payments from patients, like for visit reservation, but this is included in some of the wordpress and joomla plugins so we dont need to support it

Yeap, it will be a very deep water if we go in payment by patient.


the network signal is too slow

the wifi and bluetooth AR8485 is work ,but the signal is too slow(in Big Sur）,have you encountered the same situations ?

Hi, No the speed is ok with AR9485.


Docker info and fix markup on base README

created Dockerfile and README that shows how to use it

looks great!


Don't expand command substitution in debug

This should make sure command substitution isn't being expanded when
printing the debug messages, causing some command to be executed twice.
Signed-off-by: Mike Kolesnik<EMAIL_ADDRESS>

I might be missing something, but can’t we handle this by protecting $BASH_COMMAND directly with @Q in all cases in the existing code?
    trap '! [[ "$BASH_COMMAND" =~ ^(echo|read|\[|while|for|local) ]] &&
          ctxt="${cluster:+[${cluster}]}" &&
          cmd=`eval echo "[${PWD##*/}]\$ $ctxt ${BASH_COMMAND@Q}" 2>/dev/null` &&
          echo "${CYAN_COLOR}$cmd${NO_COLOR}" >&2; true' DEBUG

I tried that but then everything is escaped and debugging is much harder :/
This at least presereves most of the vars but avoids the "double running" problem

I tried that but then everything is escaped and debugging is much harder :/

Right, the reader needs to track all the assignments manually — it’s useful in some cases, but not so much in many others, and changes the behaviour compared to what we have currently.

This at least presereves most of the vars but avoids the "double running" problem

+1

I disabled the helm / globalnet combination while it's broken. (helm missing some RBAC)

Backport in https://github.com/submariner-io/shipyard/pull/589


fix all CVEs in the repo

JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/CCD-1559
https://tools.hmcts.net/jira/browse/CCD-1628
https://tools.hmcts.net/jira/browse/CCD-1629
https://tools.hmcts.net/jira/browse/CCD-1630
https://tools.hmcts.net/jira/browse/CCD-1631
Change description
fix all CVEs
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[X] No

@hemantt / @VamshiRudrabhatlaHMCTS - It turned out hmi inbound adapter had 5 CVEs, not just 1. I raised 4 new tickets and asked Kaan to implement all of them in one PR. I think the PR is well safe to go with reliance on green build.
CC: @danlysiak  - Please advice otherwise if you feel there should be additional verifications on this one.


Feat/bind plus

support like:
hotkeys('ctrl-y, ctrl-a', {splitKey: '-'}, function(e){
console.log('you press bind keys')
})

Codecov Report

Merging #105 into master will increase coverage by 2.29%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master    #105      +/-   ##
=========================================
+ Coverage    83.9%   86.2%   +2.29%
=========================================
  Files           1       1
  Lines         174     174
=========================================
+ Hits          146     150       +4
+ Misses         28      24       -4

Impacted Files
Coverage Δ

dist/hotkeys.js
86.2% <0%> (+2.29%)
:arrow_up:

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 753f581...ee65f3f. Read the comment docs.

Pull Request Test Coverage Report for Build 174

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+2.4%) to 73.298%

Totals

Change from base Build 173:
2.4%

Covered Lines:
150

Relevant Lines:
174

💛  - Coveralls

@yyjjqq94 thx!

Great, thanks!


added support for xsiam

Status
Ready/In Progress/In Hold (Reason for hold)
Related Issues
fixes: https://github.com/demisto/etc/issues/46625
Description
A few sentences describing the overall goals of the pull request's commits.
Must have

[ ] Unit Test or Example Code
[ ] Changelog entry

Need to also update release notes and main README.


Try to change Birthdate in personal-information to 03/10/2017 not work

Which area(s) of Podkrepi.bg are affected?
Desktop layout
Describe the Bug
Try to change Birthdate in personal-information to 03/10/2017 not work
To Reproduce

Open https://podkrepi.bg/en/profile/personal-information on English
Click edit on Birthday
Add date 03/10/2017
Click button Send
Noting happen

https://github.com/user-attachments/assets/7051c91b-e299-4943-a2c3-a6cdd084983c
Expected Behavior
Show some message that user need to be more than 18 years or not possible to add dates in future
Which browser are you using? (if relevant)
Vivaldi

@Tuscann I tried to reproduce it with normal login and I was able to change it.
Can you please confirm that the user is not allowed to change the date only when logged with Google?

https://youtu.be/AKGD3JYSwjU  This is with abv mail.


pipe fails in xv6

How to reproduce in xv6.
$ cat README | wc

Error message.
Unknown Instruction type.
Pc:00000000000004f0, Opcode:0000000, Word:0000000000000000
thread 'main' panicked at 'explicit panic', src\cpu.rs:1022:17
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: process didn't exit successfully: `target\release\standalone.exe xv6/kernel -f xv6/fs.img` (exit code: 101)

I don't know why but it's working noe.


Support calendar events with a duration

The current implementation only supports instants (i.e. a single point in time). This is great for events like due dates of todo items. It should also provide an interface to visualize timespans (like for appointments).
e.g.
via start (datetime) + end (datetime)
or start (datetime) + duration

moved to https://github.com/incodehq/incode-platform/issues/34


VSCode extension indexes files which are ignored by git

Before submitting your bug report

[X] I believe this is a bug. I'll try to join the Continue Discord for questions
[X] I'm not able to find an open issue that reports the same bug
[X] I've seen the troubleshooting guide on the Continue Docs

Relevant environment info
- OS:Linux (Pop_OS! 22.04)
- Continue: v0.9.28 (pre-release version)
- IDE: VSCode 1.85.2

Description
This is a followup issue to discussion from https://github.com/continuedev/continue/issues/778#issuecomment-1909375599 where it was indicated that files ignored by git via .gitignore files should be ignored during project indexing.
I got curious and looked at the lance_db_cache table in the ~/.continue/index/index.sqlite and filtered down for a path that should be ignored (as it's present in my project .gitignore) but it is indeed found in the index:
.gitignore

Note that per my .gitignore rules, any directory called .app (and thus its children) inside of a section of my tree should be ignored, but files from these directories are present in the Continue index:

index.sqlite

Here we see that there are many paths in the index data which shouldn't have been included (if .gitignore files are used as a source of ignores for Continue).
From https://github.com/continuedev/continue/issues/603 it seems like perhaps only the .continueignore is being used to define files which should be ignored in indexing? Depending on whether or not this is true means the difference between this issue being a bug report (i.e. .gitignore is supposed to supply "index ignored" paths in addition the paths found in any .continueignore) or a feature request (i.e. I would love it if my already existing .gitignore could be used as a source of "index ignored" paths which could be augmented by a .continueignore).
To reproduce
Open any project with a .gitignore that specifies files contained in the workspace folder, then check for the existence of git ignored paths in the Continue index database.
Log output
No response

@andrewbrey Thanks for opening this and documenting well. Double-check showed we do seem to be making a few mistakes, so I'll try to iron these out before end of the week. Definitely a bug and not a feature request!

@sestinj thank you very much, and from one OSS contributor to another, I promise to not be mad if life happens and that quick of a turnaround (or any turnaround at all) doesn't happen :)

I appreciate it : ) It's bothering me quite a bit now that I know about it...so this may be the primary driving force

I had this incredibly informative conversation with Continue to find the cause of this bug:

This is a session transcript from Continue on 1/25/2024, 3:30:26 PM.
User
what are the rules of the .gitignore spec? For example, if I write ".env" does this mean all .env files even in nested folders get ignored?
Continue
The .gitignore file allows you to specify intentionally untracked files to ignore in Git projects. Rules in the .gitignore file determine which files and directories Git should ignore. Here are some common rules and behaviors regarding .gitignore specifications:

Blank Lines: These are ignored and can be used for spacing.

Comments: Lines starting with # are treated as comments.

Standard Glob Patterns: Git respects simple glob patterns.

* matches any number of characters, but does not match /.
? matches a single character.
[abc] matches any one character listed.
[0-9] matches any character in the range.

Directories: You can ignore a directory by appending a / to the end of the directory name.

Negation: You can negate a rule by prefixing it with an exclamation mark (!), which will re-include any files that were excluded by earlier rules.

When you specify a pattern in the .gitignore file:

Writing .env in your .gitignore file will indeed ignore .env files at the root directory and in all subdirectories. The pattern .env matches files or directories named .env anywhere in the repository.

If you want to specify .env files only at the root level and not in any subdirectory, you would prefix it with a slash (/.env), indicating that it is rooted in the directory where the .gitignore file resides.

Conversely, to ignore .env files in a specific subdirectory only, you would prefix it with the path to that directory (e.g., subdirectory/.env).

Special Cases and Additional Rules:

Trailing Spaces: A space character at the end of the line is ignored unless it is escaped with a backslash (\).

Directory vs File: If a pattern does not contain a slash (/), Git treats it as a glob pattern that can match files or directories anywhere in the repository. If a pattern ends with a slash, it is considered a directory only.

Leading Double Asterisks (**): Patterns starting with **/ will match files in all directories. For example, **/.env will match a .env file anywhere in your project.

Internal Double Asterisks (**): Using ** in the middle of a pattern (e.g., a/**/b) can match zero or more directories. For instance, this would match a/b, a/x/b, a/x/y/b, and so on.

Understanding these rules helps you fine-tune which files and directories Git should ignore in your projects, thereby keeping your repository clean and avoiding the inclusion of unwanted or sensitive files.
User
what if I want to match a directory anywhere in my project, can I just write "node_modules"?
Continue
Yes, if you want to ignore a directory named node_modules anywhere in your project, you can simply add node_modules to your .gitignore file without leading or trailing slashes. This pattern tells Git to ignore node_modules directories wherever they may appear in the project structure—whether at the root level or nested within other directories.
Here's how it works:

node_modules: This entry will match and ignore a directory named node_modules located anywhere in your repository. It applies to the root level as well as any subdirectories. Git will ignore the directory itself and all files and subdirectories contained within any node_modules directory.

This is a typical use case in projects that use Node.js, where dependencies installed via npm are placed in a node_modules directory. Given the large number of files usually contained in node_modules and the fact that these dependencies can be installed via npm based on the project’s package.json file, it’s common practice to ignore this directory in Git repositories.
To reiterate, specifying node_modules in your .gitignore file without any slashes is the best practice for ignoring this directory no matter where it's located within your project.
User
What if I said "node_modules/vsce". Would this ignore "vsce" in any node_modules folder, or just the top-level one?
Continue
When you specify node_modules/vsce in your .gitignore file, it will ignore the vsce directory within a node_modules directory at the root of your Git repository. It does not apply to node_modules/vsce located in subdirectories deeper than the root level.
Here is how it works:

node_modules/vsce: This pattern is relative to the location of the .gitignore file. If your .gitignore file is at the root of your repository, then node_modules/vsce will match a vsce directory that is directly inside a node_modules directory at the root level of your repository. It will not match a vsce directory located in a node_modules directory that is itself nested within another directory (e.g., someotherdir/node_modules/vsce).

If you want to ignore a vsce directory within node_modules directories wherever they might be found in your project, you should prepend the pattern with a double asterisk like this:

**/node_modules/vsce: This pattern will match and ignore any vsce directory located within any node_modules directory at any level of your project's directory structure. The double asterisk (**) serves as a wildcard that matches any number of directories, including nested ones. So, whether node_modules/vsce is at the root, one level deep, or several levels deep, this pattern ensures it will be ignored by Git.

Remember, the specificity of your .gitignore entries is crucial for achieving the desired behavior in terms of which files and directories Git ignores in your project.
User
so is it correct to say there is an implicit "**/" prepended to a line only if there are no slashes in the entry?
Continue
Yes, your understanding is essentially correct. When you specify a pattern in the .gitignore file without any slashes /, Git applies that pattern to directory names and filenames across the entire repository, which behaves as though there's an implicit **/ prepended to the pattern. This means the pattern will match files or directories at any level of the project's directory hierarchy.
Here are a few examples to illustrate this behavior:

target: This will ignore files or directories named target anywhere in the repository. It's as if you had written **/target, matching target at the root, as well as in any nested directories.

*.log: This pattern will match and ignore all files with the .log extension, regardless of where they are in the directory structure. This behavior is akin to having **/*.log, applying it to any .log file in any directory.

However, introducing slashes into the pattern alters how the pattern is matched:

Patterns containing a leading slash (/), e.g., /logs, are anchored to the root directory of the repository and do not have an implicit **/. So, /logs would match a logs directory only at the root.

Patterns with a slash in the middle specify a particular directory structure that must be matched. For example, docs/internal matches a specific path but doesn't have an implicit leading **/, meaning it only matches docs/internal relative to the location of the .gitignore file, not at any level.

Patterns ending with a slash (/) are used to exclusively match directories, as opposed to files or symbolic links.

So, while there's an implicit **/ for patterns without slashes, indicating they can match at any level of the directory structure, any inclusion of a slash in a pattern specifies more precise matching behavior and locations within the repository.
User
will "node_modules/" match in any nested directory?
Continue
Yes, specifying node_modules/ in your .gitignore file will match and ignore node_modules directories located anywhere within the repository, not just in the root directory. The trailing slash (/) indicates that node_modules is a directory. Without any leading path component or asterisk (* or **), this pattern effectively ignores directories named node_modules at any level of your project's directory structure.
So, when you use:

node_modules/: This pattern will cause Git to ignore all directories named node_modules, along with their contents, no matter where they are found within your project.

This usage is common in projects that use npm for managing JavaScript dependencies because node_modules directories can become quite large, and the dependencies can easily be restored using npm install. Omitting these directories from the repository improves performance and reduces clutter.
The implicit behavior where Git applies this pattern to directory names across the entire repository hierarchy makes .gitignore rules both powerful and flexible, allowing developers to exclude specific files, directories, or patterns of filenames from being tracked by Git with concise syntax.

@andrewbrey It should now be solved in pre-release. There were 2 distinct problems that I found:

We weren't matching patterns that ended in a '/', which is why things like your script/lib/apps/**/.app weren't working
We weren't checking for .gitignores in parent folders of the directory. Now we do, up to the root of the repository


clang-format

Can one of the admins verify this patch?

For #5032.

Can one of the admins verify this patch?


[CLI] dask config set and dask config find updates.

[x] Closes https://github.com/dask/dask/issues/9746

follow-up to #10921

[x] Tests added / passed
[x] Passes pre-commit run --all-files

Example of dask config set new features:
❯ ls ~/.config/dask/
coiled.yaml  labextension.yaml

# default writing to ~/.config/dask/dask.yaml
❯ dask config set foo.bar False
Updated [foo.bar] to [False], config saved to /home/milesg/.config/dask/dask.yaml

# specific file location
❯ dask config set fizz.buzz True --file ~/.config/dask/custom-conf.yaml
Updated [fizz.buzz] to [True], config saved to /home/milesg/.config/dask/custom-conf.yaml

# Locate and update file that contains 'fizz.buzz' key.
❯ dask config set fizz.buzz False
Updated [fizz.buzz] to [False], config saved to /home/milesg/.config/dask/custom-conf.yaml

Example of new dask config find:
❯ ls ~/.config/dask/
coiled.yaml  labextension.yaml

# default saving to ~/.config/dask/dask.yaml
❯ dask config set fizz.buzz True
Updated [fizz.buzz] to [True], config saved to /home/milesg/.config/dask/dask.yaml

# explicit file specification
❯ dask config set fizz.buzz False --file ~/.config/dask/custom-conf.yaml
Updated [fizz.buzz] to [False], config saved to /home/milesg/.config/dask/custom-conf.yaml

# find config files specifying fizz.buzz
❯ dask config find fizz.buzz
Found [fizz.buzz] in the following files:
/home/milesg/.config/dask/custom-conf.yaml  [fizz.buzz=False]
/home/milesg/.config/dask/dask.yaml         [fizz.buzz=True]

# and when no config key is found:
❯ dask config find does.not.exist
Unable to find [does.not.exist] in any of the following paths:
/etc/dask
/home/milesg/mambaforge/envs/dask/etc/dask
/home/milesg/.config/dask

cc @ntabris


Demo: Min date later than max date improper behavior

Bug
Improper behavior when the max date selected is earlier than the min date selected.
What is the expected behavior?
If the min date is later than the max date, then after selecting the improper max date, the max date should automatically change to the min date value and everything in the calendar should be disabled in the result.
What is the current behavior?
If the min date is later than the max date, then after selecting improper max date, the max date doesn't automatically change to the min date and the calendar header component isn't disabled, allowing the user to scroll next and previous arrow keys to other months, even though all of the dates are disabled in the result.
https://user-images.githubusercontent.com/15025941/40395029-f90babd2-5dda-11e8-974a-373007197722.png.
What are the steps to reproduce?

Run gulp serve:devapp and go to the Datepicker component.
Choose a min date and then choose a max date that is earlier than the min date.
Open the result, and note the calendar arrows that aren't disabled and the max date doesn't change to the min date.

What is the use-case or motivation for changing an existing behavior?
Changing existing behavior so that min date will always be earlier than max date for efficient user usability.
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Material 2.

I'd call this more of a bug with the demo than the datepicker itself. The demo should prevent people from setting a max earlier than the min


Ignore only root target directory

r? @alexcrichton

@bors: r+

:pushpin: Commit 06267a7 has been approved by alexcrichton

:hourglass: Testing commit 06267a7 with merge b96038c...

:sunny: Test successful - status-appveyor, status-travis
Approved by: alexcrichton
Pushing b96038c418df0f28839997b1577ecc8ad550de74 to master...


Autocomplete order/priority?

Is there any way I can lower the priority of the intellisense suggestions from the extension?
It is very annoying that they always show up at the top, when pressing CTRL+Space.
If not, could this be added?

Awesome. :)
Just got the update.
Quick work!
Thank you. :) Closing the issue now.


minor doc fixes

Coverage remained the same at 80.108% when pulling 67a370ea4eabdf475c70f9d80fd7c068c10a75ac on erictu:docfix2 into 1d8731580319fd2216a9ebd02210e225c9d9b761 on bigdatagenomics:master.

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

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

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

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

Jenkins, retest this please.

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

Thanks @erictu!


TOC entries links are bold

After https://github.com/Qiskit/qiskit_sphinx_theme/pull/138, the TOC entries links become bold, presumably because it has the same style as the sidebar section. I personally don't think it's a big deal, just want to record it here.
Before

Now

I don't think this is an existing issue anymore, TOC entries are not bold in latest main branch

Good find. Thank you! One issue closer to a 1.12 release :)


Added new pick 8.13~2021.09

This PR adds a new pick for Coq 8.13 with all packages updates to the latest working / compatible version. The original 2021.02 pick is kept as a different version.

Included in #143.


Add Form Control Focus Indication

Currently form-control components have their outline suppressed but do not provide an alternative style using the :focus pseudo-selector, the result of which is a usability issue.
Without outline or :focus, it's not possible to tell where the cursor is while navigating form elements using switch-based peripherals such as tab, or when shifting contextual frames of reference such as navigating through browser history.
Here's what a focused button looks like using a standard outline:

And here's what that same button looks like with focus in<EMAIL_ADDRESS>
This usability issue is exacerbated when using button groups and/or groups of form controls. It is not currently a problem for a elements, which maintain their focus when navigating using a

Proposal is to add :focus with a slight change in alpha transparency on focus, the value of which may be driven by the amount of WCAG 2.0 compliance desired by the library.


[Feature]: Include nanoid as a default dependency

Is there an existing issue for this?

[X] I have searched the existing issues

Summary
Generating unique IDs is a common use case developers come across while building apps on Appsmith. Although workarounds exist, they are not as elegant as using a well-tested, performant, and feature-packed library like nanoID.
Why should this be worked on?
"Generating unique IDs" is a frequently discussed topic on our community channels. https://community.appsmith.com/search?q=unique id
Given the strong use case for unique ID generation, a UUID package should be included as a part of our default dependencies irrespective of rolling out support for Custom JS Libs

Adding support for UUIDJS as a part of Custom JS Libs
Closing this now.


Garden: Tests for rendering sensors failing on Windows

Environment

OS Version: Windows CI machine (beefy)
Source or binary build? source of gz-sensors7

Description

Expected behavior: tests that aren't disabled should pass
Actual behavior: 14 tests are failing https://build.osrfoundation.org/view/ign-garden/job/ign_sensors-gz-7-win/13/testReport/

Steps to reproduce

Run https://build.osrfoundation.org/view/ign-garden/job/ign_sensors-gz-7-win/ build

Output
From https://build.osrfoundation.org/view/ign-garden/job/ign_sensors-gz-7-win/13/consoleText
The following tests FAILED:
	 17 - INTEGRATION_camera (Failed)
	 19 - INTEGRATION_depth_camera (Failed)
	 21 - INTEGRATION_distortion_camera (Failed)
	 23 - INTEGRATION_gpu_lidar_sensor (Failed)
	 25 - INTEGRATION_rgbd_camera (Failed)
	 29 - INTEGRATION_thermal_camera (Failed)
	 31 - INTEGRATION_triggered_camera (Failed)
	 33 - INTEGRATION_wide_angle_camera (Failed)

A representative sample of the console output containing Ogre/ShadowExtrudePointLight not found:
31: [ RUN      ] CameraSensor/TriggeredCameraTest.ImagesWithBuiltinSDF/ogre
31: No HOME defined in the environment. Will not log.
31: [Msg] Loading plugin [gz-rendering-ogre]
31: [Dbg] [C:\Jenkins\workspace\ign_sensors-gz-7-win\ws\gz-sensors\src\CameraSensor.cc:296] Camera images for [camera1] advertised on [/test/integration/TriggeredCameraPlugin_imagesWithBuiltinSDF]
31: [Dbg] [C:\Jenkins\workspace\ign_sensors-gz-7-win\ws\gz-sensors\src\CameraSensor.cc:320] Camera trigger messages for [camera1] subscribed on [/test/integration/TriggeredCameraPlugin_imagesWithBuiltinSDF/trigger]
31: [Dbg] [C:\Jenkins\workspace\ign_sensors-gz-7-win\ws\gz-sensors\src\CameraSensor.cc:601] Camera info for [camera1] advertised on [/test/integration/camera_info]
31: [Dbg] [C:\Jenkins\workspace\ign_sensors-gz-7-win\ws\gz-sensors\src\CameraSensor.cc:414] Enabling camera sensor: 'camera1' data generation.
31: unknown file: error: C++ exception with description "Ogre::RuntimeAssertionException::RuntimeAssertionException: Ogre/ShadowExtrudePointLight not found. Verify that you referenced the 'ShadowVolume' folder in your resources.cfg in Ogre::ShadowVolumeExtrudeProgram::initialise at C:\vcpkg\buildtrees\ogre\src\eddf310f0b-6ab1152694.clean\OgreMain\src\OgreShadowVolumeExtrudeProgram.cpp (line 71)" thrown in the test body.
31: [  FAILED  ] CameraSensor/TriggeredCameraTest.ImagesWithBuiltinSDF/ogre, where GetParam() = "ogre" (1779 ms)

Errors from CI:
21: unknown file: error: C++ exception with description "Ogre::RuntimeAssertionException::RuntimeAssertionException: Ogre/ShadowExtrudePointLight not found. Verify that you referenced the 'ShadowVolume' folder in your resources.cfg in Ogre::ShadowVolumeExtrudeProgram::initialise at C:\vcpkg\buildtrees\ogre\src\eddf310f0b-6ab1152694.clean\OgreMain\src\OgreShadowVolumeExtrudeProgram.cpp (line 71)" thrown in the test body.

Related issue: https://github.com/gazebosim/gazebo-classic/issues/2700 that suggests something to do with ogre 1.12.x version from conda-forge

Related issue: https://github.com/gazebosim/gazebo-classic/issues/2700 that suggests something to do with ogre 1.12.x version from conda-forge

We currently don't use conda in our CI though.

For the ShadowVolume issue, i think we just need to add the correct folder to the right env variable (OGRE_RESOURCE_PATH?)  as done for Gazebo Classic at the start of https://github.com/gazebosim/gazebo-classic/issues/2700#issuecomment-949706595 .

Let's disable these tests for now.