License terms

I think the README needs some discussion of the pyqt license terms, since if the user doesn't have a commercial license (and is using pyqt under GPL v3 instead) they will need to update the license for their own project to match.

PyQt5 is released under the GPL v3 license and under a commercial license that allows for the development of proprietary applications.
https://pypi.org/project/PyQt5/

https://www.riverbankcomputing.com/commercial/license-faq

Hi @GenevieveBuckley! Thanks for bringing this up. I agree that the PyQt5 license can be tricky so I'll update the project README to include license details.

Yeah, I've just been trying to wrap my head around it too.  I'll chime in with a couple of thoughts on your open PR.

@GenevieveBuckley Oops! I went ahead and merged it once the checks passed. Feel free to add more comments here if you would like me to add more details in the README. You are more than welcome to submit a PR if you wish.

I must have been midway through typing. Comment:
https://github.com/mandeep/cookiecutter-pyqt5/pull/4/files#r272882021
tl;dr
There needs to be a sentence that says "If you do not have a commercial license for PyQt, you must update the license for your project to GPL v3 (a copyleft license) as required by the  licensing terms of PyQt5."


Very small thing - Create a blob container #6

In my version of VS there was already a blob folder so there was no need to create a new one.

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

ID: e04001d4-d217-ca0c-e57f-da721ebee268
Version Independent ID: 3d49b777-6953-c0e5-3f30-8feefb22fa14
Content: Get started with Azure Blob storage and Visual Studio connected services (ASP.NET)
Content Source: articles/visual-studio/vs-storage-aspnet-getting-started-blobs.md
Product: visual-studio-dev15
GitHub Login: @ghogen
Microsoft Alias: ghogen

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

#in-progress

We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


High TCP timeout and retry values

Is this a request for help?:

Is this an ISSUE or FEATURE REQUEST? (choose one): ISSUE

Because the Kubelet does not perform application-layer heartbeating, the only way it knows the connection has been lost is when the kernel decides so. As mentioned above, Kubernetes does configure keepalives but these aren't at play here since they are only sent after 2 hours of inactivity by default (net.ipv4.tcp_keepalive_time).
Instead, TCP retransmissions account for the 15 minute delay. The default value for net.ipv4.tcp_retries2 means that with exponential backoff, it takes ≈15m25s before the kernel kills the connection. Kubernetes places no timeout on its HTTP requests so the "update node status" request hangs for this time. When the 15 minutes expire, all the requests fail and Kubernetes reconnects. This situation is not entirely specific to the use of an ELB – if a directly-connected apiserver becomes partitioned or dies ungracefully, it will take 15 minutes before the Kubelet attempts to reconnect.
AC

Lower net.ipv4.tcp_keepalive_time and net.ipv4.tcp_retries2 on agents to more aggressive values.
Important: research what these should be

https://github.com/kubernetes/kubernetes/issues/41916#issuecomment-312428731

Hello,
Just a concerned soul who is facing the NodeNotReady issue intermittently on our Kubernetes cluster ( v1.5.3)
Since the upstream issue is fixed, do we have a fix for this yet? (apart from the partial mitigation)


RFC: Refine sdsmvtonvm(...) function to return more information when nvm_malloc failed.

https://github.com/pmem/pmem-redis/blob/cc54b5516d5106336a016cc36135141319a97690/src/sds.c#L106
 106 sds sdsmvtonvm(const sds s)
 107 {
 108     if(server.nvm_base && !is_nvm_addr(s))
 109     {
 110         size_t header_size = sdsheadersize(s);
 111         size_t total_size = header_size + sdsalloc(s) + 1;
 112         if(total_size >= server.sdsmv_threshold)
 113         {
 114             void* new_sh = nvm_malloc(total_size);
 115             if(!new_sh)
 116             {
 117                 //serverLog(LL_WARNING, "Can't allocate on NVM. Keep data in memory.");
 118                 return s;
 119             }
 120             void* sh = s - header_size;
 121             size_t used_size = header_size + sdslen(s) + 1;
 122             pmem_memcpy_persist(new_sh, sh, used_size);
 123             zfree(sh);
 124             return (char*)new_sh + header_size;
 125         }
 126     }
 127     return s;
 128 }

I would like to change the sdsmvtonvm() signature to return an error message when nvm_malloc failed. Otherwise, users who calls sdsmvtonvm() have no chance to check if it succeed or not.
Would you like to shed a light on that?

Hi, BrytonLee
One alternative way is to check whether the return address belongs to nvm or not by calling is_nvm_addr().


4D semantic segmentation annotations

I was wondering if you could help me with some questions regarding the dataset, precisely the 4D semantic segmentation benchmark.
I followed the instructions in the README.md in the HOID4D-Instructions repository. But I'm having some issues generating the 4D semantic segmentation annotations.

what is the data_2Dseg_dir used in prepare_4Dseg/prepare_4Dseg_dataset.py (lines 12 & 88)? I downloaded the data from here and organized it as established in the README.MD file. However, I do not know where is the refine_2Dseg folder. I changed the refine_2Dseg for the 2Dseg folder that contains the shift_mask folder instead of the mask folder. Is that correct?

In prepare_4Dseg/scene2frame.py (line 137), the code reads label3d_path. However, those label.txt files are not inside the 3Dseg folder. So I'm having an error because I can't find those files. Where I can find those files to generate the 4D semantic segmentation annotations.

Thank you very much for your time and collaboration.

We are sorry for the trouble caused by the missing files. Could you please download the 4D semantic segnemtation data from the link SemSeg Challenge Data on our HOI4D Challenge website directly?


NPE in DartUnitOutlineComputer._newGenericTypeAliasOutline

Analyzer Feedback from IntelliJ
Version information

IDEA 183.54<IP_ADDRESS>10756
2.2.0-edge.0a7dcf17eb5f2450480527d6ad1e201fb47f1e36
AI-183.54<IP_ADDRESS>10756, JRE 1.8.0_152-release-1248-b01x64 JetBrains s.r.o, OS Linux(amd64) v4.18.0-15-generic, screens 1366x768

Exception
Dart analysis server, SDK version 2.2.0-edge.0a7dcf17eb5f2450480527d6ad1e201fb47f1e36, server version 1.23.0, error: Failed to send notification
NoSuchMethodError: The getter 'returnType' was called on null.
Receiver: null
Tried calling: returnType
#0      Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:50:5)
#1      DartUnitOutlineComputer._newGenericTypeAliasOutline (package:analysis_server/src/computer/computer_outline.dart:232:46)
#2      DartUnitOutlineComputer.compute (package:analysis_server/src/computer/computer_outline.dart:68:26)
#3      sendAnalysisNotificationOutline.<anonymous closure> (package:analysis_server/src/operation/operation_analysis.dart:134:41)
#4      _sendNotification.<anonymous closure> (package:analysis_server/src/operation/operation_analysis.dart:171:8)
#5      _PerformanceTagImpl.makeCurrentWhile (package:analyzer/src/generated/utilities_general.dart:258:15)
#6      _sendNotification (package:analysis_server/src/operation/operation_analysis.dart:169:39)
#7      sendAnalysisNotificationOutline (package:analysis_server/src/operation/operation_analysis.dart:121:3)
#8      ServerContextManagerCallbacks.addAnalysisDriver.<anonymous closure>.<anonymous closure> (package:analysis_server/src/analysis_server.dart:905:13)
#9      new Future.<anonymous closure> (dart:async/future.dart:176:37)
#10     _rootRun (dart:async/zone.dart:1120:38)
#11     _CustomZone.run (dart:async/zone.dart:1021:19)
#12     _CustomZone.runGuarded (dart:async/zone.dart:923:7)
#13     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:963:23)
#14     _rootRun (dart:async/zone.dart:1124:13)
#15     _CustomZone.run (dart:async/zone.dart:1021:19)
#16     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:947:23)
#17     Timer._createTimer.<anonymous closure> (dart:async/runtime/libtimer_patch.dart:21:15)
#18     _Timer._runTimers (dart:isolate/runtime/libtimer_impl.dart:382:19)
#19     _Timer._handleMessage (dart:isolate/runtime/libtimer_impl.dart:416:5)
#20     _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)

For additional log information, please append the contents of
file:///tmp/report.txt.

Classifying as P1 due to two duplicate issues being found independently in very fast succession.

https://dart-review.googlesource.com/c/sdk/+/95080


⚠ Quirk Club Argentina (API endpoint) has degraded performance

In fbeaae7, Quirk Club Argentina (API endpoint) (https://us-central1-quirkclub-dev.cloudfunctions.net/api/check/api) experienced degraded performance:

HTTP code: 200
Response time: 7471 ms

Resolved: Quirk Club Argentina (API endpoint) performance has improved in 84bfc74.


'dict' object has no attribute 'lower'

Getting this 500 error on a deployment of the plugin.

I think this error is unique to that environment.


Enemy Pathway

Enemy should have a pathway internally which it traverses each time its move method is called at its given speed

Hello, we tried to solve the issue.
This is what we did:
Added a pathway to the Enemy interface and implemented movement logic in a new BasicEnemy class. Updated EnemyFactory to create BasicEnemy instances.
You can review changes in this commit: https://github.com/mnmnk43434/TheDeadXGamer-SmurfTowerDefense-59/commit/d860d29c79a232514a46c39f8e00a4d0aea4f1bc.

[!CAUTION]
Disclaimer: The concept of solution was created by AI and you should never copy paste this code before you check the correctness of generated code. Solution might not be complete, you should use this code as an inspiration only.

If you no longer want Latta AI to attempt solving issues on your repository, you can block this account.


feat: Expose other kqueue filters

This PR uses extension traits to expose other kqueue filters, like signals and child processes.
Supercedes #72
Closes #68

suggestion: also uhh it's suboptimal that you put 2 independent changes into the last commit (one which moved the file, and a fixup), that makes it harder to review, would be nice if you could avoid that in the future...
looks otherwise pretty ok now. thx

Sorry about that, and thanks for the review!
Regarding the pub changes: I originally wanted to do this, but then I realize that would force us into a corner if new features are added to the kqueue API. For instance, if a new fflags option is added to a filter (this has happened relatively recently in NetBSD), we wouldn't be able to express it, since adding a new field to that structure would be a breaking change. Having the structs have private fields future-proofs us for future changes to kqueue.

oh btw the reason I suggested pub is that if new features would be added, it would make sense that the API would need to adjusted anyways (although a builder-like pattern would be possible, it might make the current interface awkward).

if new features would be added, it would make sense that the API would need to adjusted anyways

Good point. I've updated it so the fields are pub, except for the Process filter, since that one is slightly more complex than the others.


Crash when deleting lost device

I am using MoltenVK on iOS, and I get a lot of VK_ERROR_DEVICE_LOST during work of application. I am trying to add support of this error code and recreate logical device when this happens. The problem is that I can't use vkDeviceWaitIdle to wait for stop of all work. Due to specs vkDeviceWaitIdle can and will return VK_ERROR_DEVICE_LOST if device is lost. And according to code of MoltenVK it is doing nothing on lost device.
So it seems to me that I don't have any way to wait until all command buffer submissions are finished. Without this wait I get a lot of crashes with this trace in thread that is managed by MoltenVK (or Metal) just after deletion of device:
SIGABRT 0x0000000000000000
Pure virtual function called!
abort() called
SWIFT TASK CONTINUATION MISUSE: navigate(to:) leaked its continuation!

Crashed: com.Metal.CompletionQueueDispatch
0  libsystem_kernel.dylib   __pthread_kill + 8
1  libsystem_pthread.dylib  pthread_kill + 208
2  libsystem_c.dylib        abort + 124
3  libc++abi.dylib          __cxxabiv1::__aligned_malloc_with_fallback(unsigned long) + 0
4  libc++abi.dylib          __cxa_deleted_virtual + 0
5  MyApp                    ___ZN13MVKBaseObject13reportMessageEPS_17MVKConfigLogLevelPKcPc + 100
6  MyApp                    ___ZN13MVKBaseObject11reportErrorEPS_8VkResultPKcPc + 180
7  MyApp                    ___ZN13MVKBaseObject11reportErrorE8VkResultPKcz + 36
8  MyApp                    ___ZN31MVKQueueCommandBufferSubmission28commitActiveMTLCommandBufferEb_block_invoke + 196
9  Metal                    MTLDispatchListApply + 44
10 Metal                    -[_MTLCommandBuffer didCompleteWithStartTime:endTime:error:] + 596
11 IOGPU                    -[IOGPUMetalCommandBuffer didCompleteWithStartTime:endTime:error:] + 216
12 Metal                    -[_MTLCommandQueue commandBufferDidComplete:startTime:completionTime:error:] + 132
13 IOGPU                    __54-[IOGPUMetalCommandQueue _submitCommandBuffers:count:]_block_invoke.22 + 164
14 IOGPU                    __IOGPUNotificationQueueSetDispatchQueue_block_invoke + 156

Any update about this problem?

It looks like there's an object lifetime issue here, where an object has been destroyed, but Metal still has an outstanding command buffer out for it, so when the completion handler tries to report the failure, the app crashes.
I wonder if, once the device is lost, completion handlers for any remaining outstanding command buffers should just exit as quickly as possible, without even trying to report the error to the log. Regardless, we're definitely missing a call to MVKBaseObject::retain() somewhere in MVKQueueCommandBufferSubmission.


Ways to customize check results to address user's diverging checking criteria

In the past we've identified and discussed that it could be desirable to have a way to customize the check-results (such as FAIL versus WARN) based on user preferences. But it is unclear at this moment how could that feature be implemented.
We currently have ways to craft custom specifications by cherry-picking checks and adding custom checks, but we still have no "check-inheritance" techniques in place to allow customizing an existing check without duplicating code.
I am not even sure that would be good to have. But it is an issue that has already surfaced a few times.
Note: This was originally mentioned at issue #1881

There are already ways to implement such a thing, but without a good description I wouldn't bother to give a complete example. In short, e.g. a dictionary or just the plain  status value could be put into the DI-namespace and required by the checks. The DI namespace can be overridden by a spec, we do this overriding already e.g. in
https://github.com/googlefonts/fontbakery/blob/21b51ae72653b57b61dd6402ded30c0e48289e82/Lib/fontbakery/specifications/googlefonts.py#L197-L198
note the force=True
Other ways (not implemented )could be to add some transformation function directly to the spec, checkrunner or reporters …
Changing specs is not always cool, so we should be careful. I.e. the opentype spec should not not override any other spec it included. The googlefonts spec could however be considered like a end-point spec, so overriding there is OK, we do it to set our defaults. Also, an end user can do so, when it's obviously not influencing other users of the same spec. (This is a typical side-effects issue.)

what does DI stand for?

dependency injection

I think the configuration files (particularly the override key), together with custom profiles, allow this kind of behaviour.


refactor tls init for reuse

was previously included as part of #8882, broken out as a separate PR here as per requested by @thockin
/cc @guenter @davidopp

ok to test

LGTM


feat(rust): support additional types for partition values

Description
We currently only support integers and strings for partition values. We should support the remaining types described at:
https://github.com/delta-io/delta/blob/master/PROTOCOL.md#partition-value-serialization
This is currently implemented in this function: https://github.com/delta-io/delta-rs/blob/fac6566a2c7f167db68a3723db20c54974164281/rust/src/writer/utils.rs#L122-L152
Use Case
Related Issue(s)

We should make sure to test this well to avoid issues like those in #1146.


Correction for raw affiliation CIRAD UPR BioWooEB 34398 Montpellier France  --- BioWooEB Univ Montpellier CIRAD Montpellier France

Correction needed for raw affiliation CIRAD UPR BioWooEB 34398 Montpellier France  --- BioWooEB Univ Montpellier CIRAD Montpellier France
raw_affiliation_name: CIRAD UPR BioWooEB 34398 Montpellier France  --- BioWooEB Univ Montpellier CIRAD Montpellier France
new_rors: 05kpkpg04;051escj72;054ktxw16
previous_rors: 05kpkpg04;051escj72
works_examples: W4392702808
contact: 9957630b7e7b7945b685c88c82115682:ea6757b1b4371633757f1e91d2bf @ cirad.fr

This issue was accepted and ingested by the OpenAlex team on 2024-12-19. The new affiliations should be visible within the next 7 days.


Peer-to-peer code review

Your code looks well structured and sleek. However, there are a few issues that we suggest you have a look at:
-The title should not be editable. You might want to use a paragraph tag and don't give it any focus.
-When you click outside the list items, the background color of the list item should be changed. You might want to disable focus whenever a list item loses focus.

Thank you


MDX v2 support

Description

Changed the a tag in the createContactInfo markdown function to follow the markdown link syntax of [text](url).
Removed the mdx-code-block code blocks in the markdown templates for the generateApiDocs function.
Added a new line before and after every tag in the create markdown util function.

Motivation and Context

I am upgrading my Docusaurus site to use MDX v2 and Code Hike and ran into several errors associated with the changes that this PR makes.

Without adding a new line before and after every tag in the create function, I get an error like this when spinning up the development server:

# Lots of these errors
Expected a closing tag for `<div>` (16:686-16:691) before the end of `paragraph`

# And then lots of these errors
[webpack.cache.PackFileCacheStrategy] Skipped not serializable cache item 'Compilation/modules|/Users/janessa.garrow/dev/openapi-docusaurus/node_modules/babel-loader/lib/index.js??ruleSet[1].rules[8].use[0]!/Users/janessa.garrow/dev/openapi-docusaurus/node_modules/docusaurus-mdx-loader-v2/lib/index.js??ruleSet[1].rules[8].use[1]!/Users/janessa.garrow/dev/openapi-docusaurus/node_modules/@docusaurus/plugin-content-docs/lib/markdown/index.js??ruleSet[1].rules[8].use[2]!/Users/janessa.garrow/dev/openapi-docusaurus/docs/platform-api/aggregate-member.api.mdx': No serializer registered for VFileMessage
<w> while serializing webpack/lib/cache/PackFileCacheStrategy.PackContentItems -> webpack/lib/NormalModule -> webpack/lib/ModuleBuildError -> VFileMessage

After updating the create markdown util to add a new line in between the tags, I ran into this error:

Error: Unknown language: mdx-code-block

Since the blocks flagged with mdx-code-block are just importing other components and using the JSX in the generated MDX files, I removed the code block syntax entirely and the components rendered as expected.

Finally, after making the above 2 changes, I get an error with the a tag in the contact info:

Expected a closing tag for `</a>` (54:1-54:7) before the end of `paragraph`

Changing that a tag to use markdown link syntax resolved the error.

How Has This Been Tested?

Screenshots (if appropriate)

Types of changes

Bug fix (non-breaking change which fixes an issue)

Checklist

[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes if appropriate.
[x] All new and existing tests passed.

I am not sure if this is related. docusarus doesn't support MDX v2. https://github.com/facebook/docusaurus/pull/8288

Ok, I think I was able to reproduce some or all of what you encountered @jgarrow, by followed the docs here: https://codehike.org/docs/installation/docusaurus
Still debugging the errors but I'll use your changes in this PR as a guide.

@jgarrow I think we're on the same page now although I reproduced on v2.3.1 and might be seeing something slightly different.
Here's what I am seeing:
Unexpected character `=` (U+003D) before name, expected a character that can start a name, such as a letter, `$`, or `_`
Expected a closing tag for `</a>` (241:1-241:7) before the end of `paragraph`

I think we could work toward escaping the comparison operators but replacing  tags with []() doesn't seem to work currently. I wonder if the markdown just needs to be on a separate line from the inline HTML.

Yup, confirmed that this allows the markdown URL to render:

 URL: [https://github.com/Redocly/redoc](https://github.com/Redocly/redoc)

@sserrata I do know with MDX v2, any inline content inside of a JSX tag that would be turned into an inline HTML element will still be interpreted as markdown (see this section on their docs)

We might need additional leading and trailing new lines to allow the markdown to render:

Yeah, MDX v1 will need it in order to render. MDX v2 knows how to handle it inline.

Thanks @jgarrow - in your opinion, do you see a way for both MDXv1 and v2 to be supported with a common MDX output/format from this plugin?

@sserrata as much as I hate having a p tag inside of a span, this might be the only way to have it work with both MDX v1 and v2. Maybe we an add some inline styling to the span so that it removes the bottom margin from the child p tag that ends up wrapping around the text?

 URL: [https://github.com/Redocly/redoc](https://github.com/Redocly/redoc)

Just wanted to mention that afaik it is planned to support MDX 2 with Docusaurus 3.0, which should be the next release


Change title text on "Add a dataset dialog"

The fact that it's a dialog box is redundant in the title text of the dialog box.  Drop the word dialog from the title text.

changed


[WIP] Add list.cpp unit tests

N.B. This is a WIP, as I am a new contributor, any additional detail on the related issue would be helpful.
Per Issue https://github.com/iovisor/bpftrace/issues/603 @ajor has stated that unit tests are needed for list.cpp. The API for list.h consists of a single function
void list_probes(const BPFtrace &bpftrace, const std::string &search = "");.
The list_probes function returns void and outputs to stdout, so these unit tests rely on   testing::internal::CaptureStdout(); Additionally, it should be noted there were no FRIEND_TEST declarations in any of the unit tests, so rather than attempting to test private functions, we've only tested the public API in this PR.
This PR provides a few tests for the two statically defined std::vector<ProbeListItems> in lists.h named SW_PROBE_LIST and HW_PROBE_LIST. Additionally we check for expected empty results when querying for an expected empty set (xxxx). Finally we include a test for any probes with *cpu* which span both the SW/HW probe vectors. I suspect we'll want extend testing to include more list calls including things like kprobe:* and tracepoints:* but it isn't entirely clear to me whether that is desirable at the unit tests level vs. runtime.
Finally, it should be noted that there are runtime tests for listing probes in https://github.com/iovisor/bpftrace/blob/master/tests/runtime/basic#L21-L64, however @ajor has specifically called out the need for unit tests.

@ajor. I agree, I think we should probably stop and land this, then later refactor lists.cpp so it can be properly mocked and unit tested without runtime complications. Just a note, I noticed that list.find_cpu unit tests fails if run with sudo, i.e. sudo ./tests/bpftrace_test as the runtime is results are altered
[  FAILED  ] 1 test, listed below:
[  FAILED  ] list.find_cpu

Should we back out this test before landing?

Ah yeah, guess we shouldn't add find_cpu yet either. Doesn't that mean that the software or hardware test will fail on root/non-root then too?

Closing due to inactivity. Please let me know if you want this reopened.


Add SArray.hash() and SArray.random_integers()

These are very useful for things like exact subsampling, sorting, etc.

URGH. git oddities. going to re-create this PR


[CMake] Make it possible to set the RPATH in add_lldb_exectable.

Make it possible to pass a build and install RPATH to
add_lldb_executable instead of having to call lldb_setup_rpaths after
the fact.
This fixes a real issue where setting an install RPATH with
lldb_setup_rpaths would only affect the symroot installation component.
Given that lldb_setup_rpaths sets a target property I would expect this
to be orthogonal to installation components. Regardless, it makes sense
to integrate this functionality in add_lldb_exectable.
git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@375068 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit 0f53352cb22da3e0bd5e4d4272e9849e9883f11e)

@swift-ci please test and merge


[case] Load json data with enable_simdjson_reader=false (#26601)

Proposed changes
cherry-pick #26601

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Should once functions be marked as such, so libraries can throw them away?

One common technique for using once is with the Event pattern, which allows for subscription to an event as a one-time acknowledgement, as opposed to seeing every event. Node.js has EventEmitter.prototype.once, and the DOM Standard has once as an option to addEventListener.
With regard to the event listener pattern, exposing to the listeners that this function is only desired to run once allows these implementations to cleanup after the initial event. For example NodeJS calls removeListener before dispatching to the function, ensuring the given function won't be called subsequent times, but also freeing up memory for weakly held references to the function:
function onceWrapper() {
  if (!this.fired) {
    this.target.removeListener(this.type, this.wrapFn);
    this.fired = true;
    if (arguments.length === 0)
      return this.listener.call(this.target);
    return this.listener.apply(this.target, arguments);
  }
}

If Function.prototype.once is exposed to developers, I imagine a preference may emerge that rather than using .once(foo), instead .on(foo.once()) is used. In this case, without a marker to determine this function is a "once function", implementation like Node's will not be able to remove the event listener.
I believe implementations should be able to tell a "once function" apart from a regular function.
Some possible ideas:

Function.isOnce(fn: Function): boolean
Function.prototype[Symbol.isOnce]: boolean

Functions produced by .bind, arrows, classes, async functions, generator function, etc. - why they haven't a such (at least simple) way, but functions produced by .once should? I think that it should be resolved in the scope another proposal like https://github.com/caitp/TC39-Proposals/blob/trunk/tc39-reflect-isconstructor-iscallable.md / https://github.com/caitp/TC39-Proposals/issues/3

I suppose one may view once functions as a state machine with two states—uncalled and already-called. In that sense, once functions are different from bound functions, async functions, etc. It may be reasonable to mark them and not the other sorts of function for that reason.

Although that is true, there is no way to determine the state of a once function without an extra property. With generators, you can at least use check generator.next().done.
There is some precedent in some userland libraries, too; for example, onetime has a callCount method.
I’m personally neutral about this myself, personally, but it’s worth at least considering.

you can at least use check generator.next().done

That mean calling of the the generator if it's not .done - no big difference with calling of function.
Another precedent is the state of promises.
I'm not against of this - I'm just for following the same design in the language everywhere without changing this design each new proposal (for the same reason I'm for the prototype method). If it will be added here - it should be added to other parts of the language, but this is wider than the scope of the current proposal.

you can at least use check generator.next().done

That mean calling of the the generator if it's not .done - no big difference with calling of function.

Note that, although it is true that generator.next().done requires calling generator.next(), which may cause a side effect, at least its result’s done property definitively indicates the state of the generator.
In contrast, when you call a function ƒ(), no matter how many times you call it, there is no generic way to tell whether the ƒ() is doing anything, because you don’t know what ƒ is supposed to be doing. When you call ƒ(), it might or might not be printing something to console.log; it might or might not be changing a variable or property somewhere; it might or might not be sending a network request—there’s no way for a Node EventEmitter or DOM EventTarget to tell whether anything is happening when it calls an event handler.
In order to tell whether ƒ() is doing anything, you have some a preexisting contract with the creator of ƒ—some standard variable or property of which you and ƒ’s author are both aware.

…Having said that, it may be the case that we don’t even want to design this once function for “once” Node EventEmitters or DOM EventTargets anyway. We might end up designing this proposal specifically for nullary callbacks. See https://github.com/tc39/proposal-function-once/issues/5#issuecomment-1084689159 and https://github.com/tc39/proposal-function-once/issues/2#issuecomment-1088024615.

@keithamus: If we do end up supporting argument passing to callbacks (maybe using the approach in https://github.com/tc39/proposal-function-once/issues/5#issuecomment-1179775264), then I think that it would be good to allow any function—not just functions created by Function.once to expose to others whether it has become a side-effect-free “no-op”.
Maybe something like this:
const ƒOnce = ƒ.once();
ƒOnce.noop; // This is false.
fOnce(5);
ƒOnce.true; // This is now true.

An event system could check a callback’s noop property after every time it activates the callback. If the noop property has become true, then it the event system would remove the callback for garbage collection. Any function that sets its noop property would participate in this contract. Here’s a naïve example:
class EventEmitter {
  // This is a Set of event handlers.
  #handlerSet;

  addHandler (callback) {
    const handler = event => {
      callback(event);
      // Note that the callback is expected to set its noop property before it
      // returns, even if the callback is asynchronous.
      if (callback.noop) {
        this.#handlerSet.remove(handler);
      }
    });

    this.#handlerSet.add(handler);
  }

  emit (event) {
    for (const handler of this.#handlerSet) {
      handler(event);
    }
  }
}

imo this is a nonstarter. In the same way as we don't have an "is this an async function" idiom in the language - because async function is not the only way you can have a promise-returning function - we shouldn't have an "is this a one-use function", because Function.once isn't the only way you can have a one-use function.

@ljharb: The idea of my snippet above was that any function—not just functions created by once—could participate in the system by marking itself as a “I am no-op from now on” with a .noop boolean property. That way, functions created by once would not be special; any function can mark itself.
For example, the function below does not use once at all:
let n = 0;
function printUpToThreeTimes () {
  if (n < 3) {
    console.log(n);
    n ++;
  } else {
    printUpToFiveTimes.noop = true;
  }
}

Adding this to an event system would allow the event system to know when the function will no longer do anything and remove the function from itself for garbage collection.
eventSystem.addHandler(printUpToThreeTimes);
eventSystem.emit(); // Prints 0.
eventSystem.emit(); // Prints 1.
eventSystem.emit(); // Prints 2.
eventSystem.emit(); // Does nothing *and* `printUpToThreeTimes` is removed from handlers.

Sure, but then a function could lie - a multi-use function could claim to be "once", and a one-use function could fail to mark itself as "once".

Indeed, the function can lie; the contract would be an honor system between the creators of the function and the event system.
If once sets the noop property, then community libraries might organically start to check noop, and other libraries might start to set noop, but honoring the contract correctly is the libraries’ responsibility, not once’s. All once would do is set .noop to true.
The question here is whether we want functions created by once to implicitly encourage such a contract by taking the lead in setting a noop property itself.

What’s the point of standardizing an honor system?

I suppose it’s not really an “honor system” either. That is to say, the meaning of the noop flag would be relative to the author of the function. Nothing would stop a developer from writing this:
let n = 0, arr = [];
function addToArrUpToThreeTimes () {
  // This side effect occurs even if .noop is true, because the author chose to write it that way.
  console.log(n);
  if (n < 3) {
    n ++;
  } else {
    addToArrUpToThreeTimes.noop = true;
  }
}
addToArrUpToThreeTimes(0); // Prints 0; arr is now [0]; function’s noop is false.
addToArrUpToThreeTimes(1); // Prints 1; arr is now [0, 1]; function’s noop is still false.
addToArrUpToThreeTimes(2); // Prints 2; arr is now [0, 1, 2]; function’s noop is true.
addToArrUpToThreeTimes(3); // Prints 3; arr is still [0, 1, 2]; function’s noop is still true.

The meaning of the “noop” flag would be in the eye of the function’s author. A function can choose to set the flag on itself at any time, whether or not subsequent calls will cause literally no side effects. All the flag actually means is that the author considers any side effects by further function calls to be insignificant, and that the function is ready to be removed by any handler.
But although I do find this to be an interesting idea, I don’t feel super strongly about this.
Developers can write .once(Function.once(fn)) instead of .on(Function.once(fn)), and it probably will be fine, if not clunkier.
And we could always add this property in the future in a follow-up proposal.


Use the latest Rubies on Travis CI

These Ruby versions has been released, and these are available on Travis CI.

Thanks!
@bundlerbot r+


Fix typo in README file

hotkey for saving a replay is f8, not f9

signed CLA
Thanks

Fixed in 21c44008d379269e0caa7479f7ebab82d553ea04


How to autostart without Autostart?

I am running maestral-dropbox on ArchLinux + i3 (without a desktop environment; hence lacks native Autostart support), but I'd like to autostart the maestral daemon without needing to enter my keyring password every time.  If I decide to use maestral-dropbox without a desktop environment (or alternatives like dapper, fbautostart, dex, ...), what would be a sensible way to autostart the maestral daemon?
̶T̶L̶D̶R̶;̶
̶I̶'̶v̶e̶ ̶l̶o̶o̶k̶e̶d̶ ̶a̶t̶ ̶y̶o̶u̶r̶ ̶c̶o̶d̶e̶ ̶t̶o̶ ̶u̶n̶d̶e̶r̶s̶t̶a̶n̶d̶ ̶h̶o̶w̶ ̶a̶u̶t̶h̶e̶n̶t̶i̶c̶a̶t̶i̶o̶n̶ ̶i̶s̶ ̶i̶m̶p̶l̶e̶m̶e̶n̶t̶e̶d̶ ̶a̶n̶d̶ ̶I̶ ̶b̶e̶l̶i̶e̶v̶e̶ ̶a̶ ̶q̶u̶i̶c̶k̶-̶a̶n̶d̶-̶d̶i̶r̶t̶y̶ ̶w̶a̶y̶ ̶w̶o̶u̶l̶d̶ ̶b̶e̶ ̶t̶o̶ ̶h̶a̶r̶d̶c̶o̶d̶e̶ ̶̶a̶c̶c̶e̶s̶s̶_̶t̶o̶k̶e̶n̶̶;̶ ̶ ̶b̶u̶t̶ ̶l̶e̶t̶'̶s̶ ̶f̶o̶r̶g̶e̶t̶ ̶t̶h̶i̶s̶ ̶i̶d̶e̶a̶ ̶f̶o̶r̶ ̶n̶o̶w̶.̶

Maybe through a systemd service? Check the wiki entry: https://github.com/SamSchott/maestral-dropbox/wiki/Systemd-Integration

It depends a bit your setup. Are you using the Gnome keyring or KWallet as your default keyring? In either case, maestral needs a dbus-session to communicate with the keyring and the keyring to be unlocked inside the session. If none of those keyrings are installed, it will fall back to an encrypted file.
You can check which backend it is using by setting the log level to debug maestral log level DEBUG and checking in the logs. Alternatively, you can start the daemon in the foreground with maestral start -f. One of the first log outputs should be something like:
2020-03-20 14:03:10 maestral.oauth DEBUG: Using keyring: keyring.backends.SecretService.Keyring (priority: 5)

@coxackie I've followed the instructions at the wiki entry on Systemd-integration and it doesn't start the daemon automatically on login.
@SamSchott
[fkl@DigitalRealm ~]$ maestral start -f Please enter password for encrypted keyring:  2020-03-23 19:36:53 maestral.oauth DEBUG: Using keyring: keyrings.alt.file.EncryptedKeyring (priority: 0.6)
Which keyring am I using?  Does the above output suggests that I am using an encrypted file as the keyring, and if so where might that file be located? What do I need to do in order to configure maestral to auto start on login?

@D12EA177E12 it could be that the systemd service fails to start because of the keyring issue. Can you check and provide the output of systemctl --user status maestral.service?

Does the above output suggests that I am using an encrypted file as the keyring, and if so where might that file be located?

Yes, it is falling back to an encrypted file. The file should be located at ~/.local/share/python_keyring/crypted_pass.cfg and unfortunately there is no way to unlock it automatically on user login, unlike the keyrings provided by desktop environments.
The only way to autostart the daemon in this case would indeed require storing the Dropbox key in a plain text file. This is not too bad if your home directory is encrypted. But Maestral currently does not have an interface to choose how Dropbox credentials are stored, it simply chooses the most secure method it can find and sticks with that.
So for the time being, you will have to stick with entering the password manually. I also expect that the daemon may not start at all, since maestral start spawns a separate process which does not have access to the decrypted credentials anymore. So you may be stuck with maestral start -f.
I'll see if this can be improved, or if indeed a plain text file together with a warning message may be the better fallback option.

I've pushed a pre-release version to PyPI wich does exactly the above: It falls back to a plain text file if neither Gnome Keyring nor KWallet are available but issues a warning to the user. The encrypted file had several safety issues in the first place.
The dev release also allows selecting a (possibly custom) keyring backend in the config file. I've been using it for testing and the option may not end up in the final release.
You can try it out with:
pip3 install maestral==0.6.4.dev2

Pip will print a warning about maestral-qt (the GUI) requiring maestral v0.6.3 which you can safely ignore. Also, Maestral will prompt you to relink your Dropbox and select a Dropbox folder location. If you select the old location and merge, it will simply reindex the existing folder without downloading any files.

@D12EA177E12 it could be that the systemd service fails to start because of the keyring issue. Can you check and provide the output of systemctl --user status maestral.service?

[fkl@DigitalRealm ~]$ sudo systemctl --user status maestral.service
[sudo] password for fkl:
Failed to connect to bus: No such file or directory

ok, you clearly need to follow what @SamSchott suggests.

I've pushed a pre-release version to PyPI wich does exactly the above: It falls back to a plain text file if neither Gnome Keyring nor KWallet are available

@SamSchott Thanks for making a pre-release version available on PyPI.  Before I give it a try I'd like to familiarize with the format of crypted_pass.cfg (assuming that's the "plain text file").
Under the [Maestral] section of the crypted_pass.cfg file I can find a key/value pair that looks like the following:
dbid_<id_string> = <280-character-char-string>
whereas the access_token retrieved via  keyring.get_password('Maestral', account_id)
is a 64-character string.
Could you tell me why they are different?

The 280-character string is the encrypted token. The plain text token would be stored in a file keyring_pass.cfg at the same location.

I see.  Now, do I have to manually prepare keyring_pass.cfg myself or will it be taken care of by version 0.6.4.dev2 ?

Well, keyring_pass.cfg will be created by 0.6.4.dev2 but it will be empty. Maestral will prompt you to relink your account and trigger a reindexing. That may take some time, depending on the size of your Dropbox...
If you would like a seamless transition, you can copy the decrypted token over to keyring_pass.cfg before restarting Maestral. The following Python commands should do the job:
import keyrings.alt

ring_old = keyrings.alt.file.EncryptedKeyring()
ring_new = keyrings.alt.file.PlaintextKeyring()

creds = ring_old.get_credential('Maestral', 'dbid:1234')
ring_new.set_password('Maestral',  creds.username,  creds.password)

'dbid:1234' should be replaced with your Dropbox ID as returned by maestral account-info and not the value listed in the crypted_pass.cfg file.

The following Python commands should do the job:
Yes indeed. Thanks for the support!


Panic when attempting to extract public key from a secret key with no signed user ID.

I have exported a private key from deltachat REPL.
Then I have split the key into packets with sq packet dump private-key-default.asc and got these files:
private-key-default.asc-0--SecretKey
private-key-default.asc-1--UserID
private-key-default.asc-2--Signature
private-key-default.asc-3--SecretSubkey
private-key-default.asc-4--Signature

As I tried to reproduce another bug reported on the forum https://support.delta.chat/t/cannot-import-private-key-from-text-file/2846 I removed Signature packets, both 2 (UserID signature) and 4 (key signature) by joining the key back without these packets: sq packet join private-key-default.asc-0--SecretKey private-key-default.asc-1--UserID private-key-default.asc-3--SecretSubkey > key-no-sig.asc.
Here is the resulting key-no-sig.asc file:
-----BEGIN PGP PRIVATE KEY BLOCK-----

xVgEZW54txYJKwYBBAHaRw8BAQdAoIDgbWP13wiTcuiKTRirVG58XW3QN2UMI0Ln
SytfW/AAAP9qJ5LQJ6gopHFi5PEBoBY3Ed0h36gSUoKmitEGHmH1sQ/LzRo8ZW4w
aGljaHIwQGMyLnRlc3RydW4ub3JnPsddBGVueLcSCisGAQQBl1UBBQEBB0DC+eIr
ii3UjrLpYFHQJZ8pBJINbVipYnImn9KmnfJrIgMBCAcAAP908j1t4uqix/JzMTxv
NWV2DIWfmju7JVWqha3/jsYNsBG7
=DrFT
-----END PGP PRIVATE KEY BLOCK-----

Attempting to import it into Delta Chat results in a panic.
Minimal test reproducing the panic in rPGP:
#[test]
fn test_key_no_signature() {
    let p = Path::new("./tests/key-no-sig.asc");
    let mut file = read_file(p.to_path_buf());

    let mut buf = vec![];
    file.read_to_end(&mut buf).unwrap();

    let input = ::std::str::from_utf8(buf.as_slice()).expect("failed to convert to string");
    let (key, _headers) = SignedSecretKey::from_string(input).expect("failed to parse key");
    key.verify().expect("invalid key");
    key.public_key();
}

.public_key() panics:
thread 'test_key_no_signature' panicked at 'missing user ids', src/composed/signed_key/shared.rs:119:35
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
test test_key_no_signature ... FAILED

failures:

failures:
    test_key_no_signature

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 55 filtered out; finished in 0.00s

Panic happens here:
https://github.com/rpgp/rpgp/blob/63f55a72d04c5cb81ab0fc56eac82c87e015ac12/src/composed/signed_key/shared.rs#L116-L118
All unsigned user IDs are removed here:
https://github.com/rpgp/rpgp/blob/63f55a72d04c5cb81ab0fc56eac82c87e015ac12/src/composed/signed_key/shared.rs#L32-L38

this shouldn’t panic, but is certainly not a valid key

I think the reason for this problem is that, historically, the metadata for the primary key lives on the binding signature of the "primary User ID". The attempt to extract an unsigned KeyDetails involves attempting to gather information from disparate places in the source SignedKeyDetails.
This kind of operation is very hairy, because OpenPGP certificates/public keys are complex, and it's not very rigorously defined what the semantics of a given set of key, signature and identity packets are supposed to be.
I'm not sure how to proceed with this problem, and wonder what the practical application is - in what context(s) is SignedKeyDetails::as_unsigned used?

we should just fail when reading this key, or return an error, I don’t think this is a format rpgp needs to support, just because the rfc is too vague

I got convinced that we will need to add proper support for this…


The command can be used to mention everyone

The command can be used to mention everyone.
If a person changes nickname in a server and puts for example: g @ everyone
The bot can mention everyone

Hello @loulou133, It appears that its a case that I forgot when working on that problem before.. See more here: #23
I will try to work on a fix which will resolve this annoying bug.. maybe by removing characters ``` and @ from player nicknames?

I have used method from Discord.js library to remove mentions from a message. I have also removed characters "`" from names. Here is the final result with the fix (linked commit):

I think that its enough to avoid all problems with mentions and special characters.

Thank you ! Did you release the new version of your module to correct this?

Hello @utarwyn ! Thank you ! Did you release the new version of your module to correct this?

I have just released version 2.1.1 with the fix! Check the full changelog here:
https://github.com/utarwyn/discord-tictactoe/releases/tag/v2.1.1
Update the package with npm update discord-tictactoe and you should good to go! 🥳


Lists Do Not Have Scroll-Bars

None of the lists in the application have scroll bars. This means that vertical scrolling must be done using a mouse/trackpad. Horizontal scrolling does not work at all.
This is a problem with Compose Desktop and not really something I can do anything about. As such, this will probably be something I will not fix until Compose Desktop releases a version with scroll-bar support.

Actually, it looks like Compose Desktop might already have support for this. See https://github.com/JetBrains/compose-jb/tree/master/tutorials/Desktop_Components#scrollbars

I have added scrollbars to the currently-existing lists, like those in the FileChooser in 390b0b291177a130d20de311a27b343d375cc192. I am using the mechanism suggested above. This works well.


When side menu is presented, the status bar turns black (except for green charging batter)

New Issue Checklist

I have read the guidelines for contributing and I understand:

[x ] My issue is happening in the latest version of SideMenu.
[ x] My issue was not solved in the README.
[?] My issue can not be answered on stackoverflow.com.
[x] My issue is not a request for new functionality that I am unwilling to build and contribute with a pull request.
[?] My issue is reproducible in the demo project.

Issue Description

When I modally present (programmatically) the side menu, the status turns completely black, until the side menu is hidden again. However the green battery icon still shows)

I too am facing the same problem.

Please read the README. SideMenuManager. menuFadeStatusBar = false.

This worked.

Works like a charm

Woking well.

perfect!

Thanks for this!

Please read the README. SideMenuManager.menuFadeStatusBar = false.

SideMenuManager.default.menuFadeStatusBar = false

it is saying this property is moved to SidemenuNavigationController class but its not showing up as property

it is saying this property is moved to SidemenuNavigationController class but its not showing up as property

statusBarEndAlpha = 0

it is saying this property is moved to SidemenuNavigationController class but its not showing up as property

statusBarEndAlpha = 0

This didn't work for me, still having the black satatusBar.

Which one is black? The text or the background of the status bar?

Which one is black? The text or the background of the status bar?

Both are black, I have also a custom navigation bar color, I am still trying to figure out a better look.

I am also facing same issue

I am also facing same issue

I think this is a known issue, ignore the black background and change status bar color to white.

Could you please share a screenshot?

Could you please share a screenshot?

You can download the demo project

I am still facing the issue despite using statusBarEndAlpha = 0 in Xcode 11.3

I am also facing same issue

I think this is a known issue, ignore the black background and change status bar color to white.

I just resolved the issue
Just use
func intializeSideMenu()
{
    let menuLeftNavigationController = storyboard!.instantiateViewController(withIdentifier: "LeftMenuViewController") as! SideMenuNavigationController
    SideMenuManager.default.leftMenuNavigationController = menuLeftNavigationController
    menuLeftNavigationController.statusBarEndAlpha = 0
    menuLeftNavigationController.alwaysAnimate = true
    menuLeftNavigationController.presentationStyle = SideMenuPresentationStyle.menuSlideIn;
    menuLeftNavigationController.presentationStyle.presentingEndAlpha = 0.8
    menuLeftNavigationController.presentationStyle.onTopShadowOpacity = 0.5
    menuLeftNavigationController.presentationStyle.onTopShadowRadius = 5
    menuLeftNavigationController.presentationStyle.onTopShadowColor = .black
    menuLeftNavigationController.pushStyle = .popWhenPossible;
    menuLeftNavigationController.menuWidth = view.frame.width * 0.75;
    SideMenuManager.default.rightMenuNavigationController = nil
    SideMenuManager.default.addPanGestureToPresent(toView: view)

}

to initialise the drawer.
Happy coding! :)

I am also facing same issue

I think this is a known issue, ignore the black background and change status bar color to white.

I just resolved the issue
Just use
func intializeSideMenu()
{
    let menuLeftNavigationController = storyboard!.instantiateViewController(withIdentifier: "LeftMenuViewController") as! SideMenuNavigationController
    SideMenuManager.default.leftMenuNavigationController = menuLeftNavigationController
    menuLeftNavigationController.statusBarEndAlpha = 0
    menuLeftNavigationController.alwaysAnimate = true
    menuLeftNavigationController.presentationStyle = SideMenuPresentationStyle.menuSlideIn;
    menuLeftNavigationController.presentationStyle.presentingEndAlpha = 0.8
    menuLeftNavigationController.presentationStyle.onTopShadowOpacity = 0.5
    menuLeftNavigationController.presentationStyle.onTopShadowRadius = 5
    menuLeftNavigationController.presentationStyle.onTopShadowColor = .black
    menuLeftNavigationController.pushStyle = .popWhenPossible;
    menuLeftNavigationController.menuWidth = view.frame.width * 0.75;
    SideMenuManager.default.rightMenuNavigationController = nil
    SideMenuManager.default.addPanGestureToPresent(toView: view)

}

to initialise the drawer.
Happy coding! :)

Thannxxx...Saved my day.

I am also facing same issue

I think this is a known issue, ignore the black background and change status bar color to white.

I just resolved the issue
Just use
func intializeSideMenu()
{
    let menuLeftNavigationController = storyboard!.instantiateViewController(withIdentifier: "LeftMenuViewController") as! SideMenuNavigationController
    SideMenuManager.default.leftMenuNavigationController = menuLeftNavigationController
    menuLeftNavigationController.statusBarEndAlpha = 0
    menuLeftNavigationController.alwaysAnimate = true
    menuLeftNavigationController.presentationStyle = SideMenuPresentationStyle.menuSlideIn;
    menuLeftNavigationController.presentationStyle.presentingEndAlpha = 0.8
    menuLeftNavigationController.presentationStyle.onTopShadowOpacity = 0.5
    menuLeftNavigationController.presentationStyle.onTopShadowRadius = 5
    menuLeftNavigationController.presentationStyle.onTopShadowColor = .black
    menuLeftNavigationController.pushStyle = .popWhenPossible;
    menuLeftNavigationController.menuWidth = view.frame.width * 0.75;
    SideMenuManager.default.rightMenuNavigationController = nil
    SideMenuManager.default.addPanGestureToPresent(toView: view)

}

to initialise the drawer.
Happy coding! :)

statusBarEndAlpha only fixes the issue when side menu is opened with that gesture. I'm still getting the same black status bar error when I open the menu via bar button. Help pls

I am also facing same issue

I think this is a known issue, ignore the black background and change status bar color to white.

I just resolved the issue
Just use
func intializeSideMenu()
{
    let menuLeftNavigationController = storyboard!.instantiateViewController(withIdentifier: "LeftMenuViewController") as! SideMenuNavigationController
    SideMenuManager.default.leftMenuNavigationController = menuLeftNavigationController
    menuLeftNavigationController.statusBarEndAlpha = 0
    menuLeftNavigationController.alwaysAnimate = true
    menuLeftNavigationController.presentationStyle = SideMenuPresentationStyle.menuSlideIn;
    menuLeftNavigationController.presentationStyle.presentingEndAlpha = 0.8
    menuLeftNavigationController.presentationStyle.onTopShadowOpacity = 0.5
    menuLeftNavigationController.presentationStyle.onTopShadowRadius = 5
    menuLeftNavigationController.presentationStyle.onTopShadowColor = .black
    menuLeftNavigationController.pushStyle = .popWhenPossible;
    menuLeftNavigationController.menuWidth = view.frame.width * 0.75;
    SideMenuManager.default.rightMenuNavigationController = nil
    SideMenuManager.default.addPanGestureToPresent(toView: view)

}

to initialise the drawer.
Happy coding! :)

I used this method, but the background is still all black.

Make sure in the storyboard under Attributes Inspector also the StatusBarEndAlpha is set to 0

I am also facing same issue

I think this is a known issue, ignore the black background and change status bar color to white.

I just resolved the issue
Just use
func intializeSideMenu()
{

|> }

to initialise the drawer.
Happy coding! :)

Thanks. This solved my issue.


Refactor FlyoutMenu

Changes

Get rid of deferred collapse and halt transition in progress instead.
Refactor FlyoutMenu to have states to make it easier to figure out what state it is in.
Set MaxHeightTransition duration based one content height.
Optimize some code with function guards, etc.
Downcase event types.
Add event log to transitions examples.

Testing

Transitions page on PR preview should still work as before.

Merging in @wpears absence


Consider class-level hook support

What might be nice is to be able to define hooks on a class level like so:
from lakefs_spec import LakeFSFileSystem

LakeFSFileSystem.register_hook("put_file", ...)

fs = LakeFSFileSystem()

print(fs.hooks) # <- prints {FSEvent.PUT_FILE: <function ...>}

Now the acrobatic part of this would be to still retain instance-level hooks side by side. That is, registering a hook on fs in the above example should not make it into the LakeFSFileSystem hook registry.
This would require some fiddling with dict objects, classmethods, and a global hook registry. Also, as a potential side effect, if a file system inherits hooks from its class, and then has one registered, the is check (memory address equality) between it and an equally constructed file system class will likely fail:
fs = LakeFSFileSystem()

fs.register_hook("put_file", ...)

fs2 = LakeFSFileSystem()

fs is fs2  # False

Opinions welcome!

Closing, as hooks were removed in #139.


Stylus files makes code lens freak out

Code lens freaks out in .styl files, same problem is not present i CSS files.

GitLens Version: 4.3.1
VSCode Version: 1.13.1
OS Version: macOS 10.12.5

Steps to Reproduce:

Install and enable gitlens
Open .styl file
When writing in the file the inline annotations "code lens" text will hide and show itself repeatedly which makes the file contents jump around.

@lindskogen sorry for the delay on getting back to you (I'm currently on vacation). Is this still an issue with vscode 1.14?

Yes!

@lindskogen do you have a public repo, or an example file I could use to see this in action?

@lindskogen if I can get a reproducible case I'm hopeful that I could fix the issue

@lindskogen sorry to bug you, but I'd love to get this fixed. :)

Been unable to reproduce it on my non-work computer, only had this issue on my laptop from a previous job. Maybe it is fixed now, since I cannot reproduce it anymore :)

@lindskogen ok thanks! I'm going to close this then -- please feel free to reopen it if it comes back.

This is actually happening to me as well. Here's how it looks.

GitLens version: 4.4.0
VSCode version: 1.15.1
macOS version: 10.12.6

I have the language-stylus extension installed (version 1.7.3).
Typically what happens is that each block of styles (nested or top-level) each gets its own Code Lens annotation (whether it's "Cannot determine recent change or authors (unsaved changes)" or the actual author/change information). When you make changes to the file, all of those annotations appear and disappear frequently, which makes the file jump around.
This happens with every stylus file, but here's a sample of a file where I've been working on recently:
.promo-code__button--delete
	&:hover
		border-color bootstrap-color("danger", "hover")
		background-color bootstrap-color("danger", "hover")
.promo-code__button--edit
	&:hover
		border-color bootstrap-color("primary", "hover")
		background-color bootstrap-color("primary", "hover")
.promo-code__button--confirm
	&:hover
		border-color bootstrap-color("success", "hover")
		background-color bootstrap-color("success", "hover")
		&:disabled
			cursor not-allowed
			background-color brand-color("grey", "darker")
			border-color brand-color("grey", "darker")
.add-employer-form
	display flex
	button
		margin-left 5px

@cwhenderson20 Thank you for the GIF, I think I see what is happening. Can you try adding the following setting:
"gitlens.codeLens.perLanguageLocations": [
    {
        "language": "css",
        "locations": [
            "document"
        ]
    },
    {
        "language": "html",
        "locations": [
            "document"
        ]
    },
    {
        "language": "json",
        "locations": [
            "document"
        ]
    },
    {
        "language": "less",
        "locations": [
            "document"
        ]
    },
    {
        "language": "scss",
        "locations": [
            "document"
        ]
    },
    {
        "language": "vue",
        "locations": [
            "document"
        ]
    },
    {
        "language": "styl",
        "locations": [
            "document"
        ]
    }
]

Sure thing! Just added it and restarted VSCode (just to be sure). Same behavior, unfortunately.

As in the gif do you still see the codelens at the top of every class definition?

Yes, I do

Hrm, now I'm a bit confused :) -- Do you have a public repo that I can try this on myself?

Maybe the language server uses the full name stylus rather than the extension -- Can you try changing the setting to use "language": "stylus"?

Yep, that fixed it!

So does this setting have to stay in the settings.json file or is this a bug?

Great! I'll get a release together that adds that to the GitLens defaults. Thank you for your time and patience!

Once I get the update out, you'll be able to remove the setting.

Great! Thank you for your quick response time and excellent extension!


Have a d6 with values from 0 to 5

Hello there! First of all, thanks for sharing your work :)
I wonder if there's an easy way to roll a d6 with custom faces that starts at zero and ends at five.
I know that I can do 1d6-1 but I really have to display the zero.
Thanks for your help!

Ok I found how to make a custom theme, I guess that this is my only option here.
I tried to edit the models.json as I just need the d6 but it seems that the code forces you to implement every single type of dice (except d10 or d100?). So I wonder if there's a way to just have a d6 model to have the most lightweight implementation of the dice-box.


anchor pgp inline message matching to beginning of message

simple workaround fix for #807. this behavior will be redone sooner or later so I just fixed the method in OpenPgpUtils.

Using the ternary operator inside of an if clause is pretty hardcore. But since you want to redo this anyway I'll just pretend I never saw it ;)


What needs to be done to remove Windows version 10.0 detected

Haven't had any issues on Windows 10
julia> using PyPlot
Qt: Untested Windows version 10.0 detected!

This error message is coming from Qt, not from PyPlot.


Symbol outline doesn't work properly in python files and C files

Version confirmation

[X] Confirm

Following prerequisites

[X] Confirm

Not a user config issue

[X] Confirm

Neovim version
nvim0.9.4
Operating system/version
win10
Terminal name/version
Windows terminal
$TERM environment variable
No response
Branch info
main (Default/Latest)
Fetch Preferences
SSH (use_ssh = true)
How to reproduce the issue
Symbol outline doesn't work properly in python files and C files，I wonder where to start with this problem

Expected behavior
In a lua file, the symbol outline correctly displays the hierarchical structure of the content

Actual behavior
In python files and C files, everything is displayed on the same level when navigating with symbol outline

Additional information
No response

I changed python's lsp and now it works correctly.
Change python-lsp-server to pyright in lua/modules/configs/completion/mason.lua
However, there is still no way to solve the c file.Do you have any recommended c language server?

ys, the syntax tree is generate from treesitter and lsp. glad to see u try out different lsp on python.
for c/c++ part, what c lsp r u using now? what c lsp have u tried?

Hmm, I think this is more of an "upstream support" issue. Below are some results of trying to communicate with pylsp and clangd via json-rpc (correct me if im wrong 😃):

Consider the following code for pylsp (taken from here):

class NlAttr:
    def __init__(self, raw, offset):
        self._len, self._type = struct.unpack("HH", raw[offset:offset + 4])
        self.type = self._type & ~Netlink.NLA_TYPE_MASK
        self.payload_len = self._len
        self.full_len = (self.payload_len + 3) & ~3
        self.raw = raw[offset + 4:offset + self.payload_len]

    def as_u8(self):
        return struct.unpack("B", self.raw)[0]

    def as_u16(self):
        return struct.unpack("H", self.raw)[0]

    def as_u32(self):
        return struct.unpack("I", self.raw)[0]

    def as_u64(self):
        return struct.unpack("Q", self.raw)[0]

    def as_strz(self):
        return self.raw.decode('ascii')[:-1]

    def as_bin(self):
        return self.raw

    def __repr__(self):
        return f"[type:{self.type} len:{self._len}] {self.raw}"

This is the (formatted) result returned when pylsp accepted textDocument/documentSymbol request:
pylsp.config.config -   finish pylsp_document_symbols
--> [[{'name': 'struct', 'containerName': None, 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 0, 'character': 0}, 'end': {'line': 0, 'character': 13}}}, 'kind': 2},
	{'name': 'NlAttr', 'containerName': None, 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 2, 'character': 0}, 'end': {'line': 30, 'character': 0}}}, 'kind': 5},
	{'name': '__init__', 'containerName': 'NlAttr', 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 3, 'character': 4}, 'end': {'line': 9, 'character': 0}}}, 'kind': 6},
	{'name': 'as_u8', 'containerName': 'NlAttr', 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 10, 'character': 4}, 'end': {'line': 12, 'character': 0}}}, 'kind': 6},
	{'name': 'as_u16', 'containerName': 'NlAttr', 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 13, 'character': 4}, 'end': {'line': 15, 'character': 0}}}, 'kind': 6},
	{'name': 'as_u32', 'containerName': 'NlAttr', 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 16, 'character': 4}, 'end': {'line': 18, 'character': 0}}}, 'kind': 6},
	{'name': 'as_u64', 'containerName': 'NlAttr', 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 19, 'character': 4}, 'end': {'line': 21, 'character': 0}}}, 'kind': 6},
	{'name': 'as_strz', 'containerName': 'NlAttr', 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 22, 'character': 4}, 'end': {'line': 24, 'character': 0}}}, 'kind': 6},
	{'name': 'as_bin', 'containerName': 'NlAttr', 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 25, 'character': 4}, 'end': {'line': 27, 'character': 0}}}, 'kind': 6},
	{'name': '__repr__', 'containerName': 'NlAttr', 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 28, 'character': 4}, 'end': {'line': 30, 'character': 0}}}, 'kind': 6},
	{'name': '_len', 'containerName': '__init__', 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 4, 'character': 8}, 'end': {'line': 4, 'character': 77}}}, 'kind': 8},
	{'name': '_type', 'containerName': '__init__', 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 4, 'character': 8}, 'end': {'line': 4, 'character': 77}}}, 'kind': 8},
	{'name': 'type', 'containerName': '__init__', 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 5, 'character': 8}, 'end': {'line': 5, 'character': 55}}}, 'kind': 8},
	{'name': 'payload_len', 'containerName': '__init__', 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 6, 'character': 8}, 'end': {'line': 6, 'character': 36}}}, 'kind': 8},
	{'name': 'full_len', 'containerName': '__init__', 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 7, 'character': 8}, 'end': {'line': 7, 'character': 51}}}, 'kind': 8},
	{'name': 'raw', 'containerName': '__init__', 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 8, 'character': 8}, 'end': {'line': 8, 'character': 62}}}, 'kind': 8}]]

And consider the following code for clangd (adapted from the Lua programming language):

/*
 * WARNING: if you change the order of this enumeration,
 * grep "ORDER RESERVED"
 */
enum RESERVED {
	/* terminal symbols denoted by reserved words */
	TK_AND = FIRST_RESERVED,
	TK_BREAK,
	TK_DO,
	TK_ELSE,
	TK_ELSEIF,
	TK_END,
	TK_FALSE,
	TK_FOR,
	TK_FUNCTION,
	TK_GOTO,
	TK_IF,
	TK_IN,
	TK_LOCAL,
	TK_NIL,
	TK_NOT,
	TK_OR,
	TK_REPEAT,
	TK_RETURN,
	TK_THEN,
	TK_TRUE,
	TK_UNTIL,
	TK_WHILE,
	/* other terminal symbols */
	TK_IDIV,
	TK_CONCAT,
	TK_DOTS,
	TK_EQ,
	TK_GE,
	TK_LE,
	TK_NE,
	TK_SHL,
	TK_SHR,
	TK_DBCOLON,
	TK_EOS,
	TK_FLT,
	TK_INT,
	TK_NAME,
	TK_STRING
};

This is what clangd returned when it accepted the same request (formatted):
--> reply:textDocument/documentSymbol(14) 0 ms
>>> [[{"id":14, "jsonrpc":"2.0", "result":
	[{"children":
		[{"detail":"int","kind":22,"name":"TK_AND","range":{"end":{"character":24,"line":8},"start":{"character":1,"line":8}},"selectionRange":{"end":{"character":7,"line":8},"start":{"character":1,"line":8}}},
		{"detail":"int","kind":22,"name":"TK_BREAK","range":{"end":{"character":9,"line":9},"start":{"character":1,"line":9}},"selectionRange":{"end":{"character":9,"line":9},"start":{"character":1,"line":9}}},
		{"detail":"int","kind":22,"name":"TK_DO","range":{"end":{"character":6,"line":10},"start":{"character":1,"line":10}},"selectionRange":{"end":{"character":6,"line":10},"start":{"character":1,"line":10}}},
		{"detail":"int","kind":22,"name":"TK_ELSE","range":{"end":{"character":8,"line":11},"start":{"character":1,"line":11}},"selectionRange":{"end":{"character":8,"line":11},"start":{"character":1,"line":11}}},
		{"detail":"int","kind":22,"name":"TK_ELSEIF","range":{"end":{"character":10,"line":12},"start":{"character":1,"line":12}},"selectionRange":{"end":{"character":10,"line":12},"start":{"character":1,"line":12}}},
		{"detail":"int","kind":22,"name":"TK_END","range":{"end":{"character":7,"line":13},"start":{"character":1,"line":13}},"selectionRange":{"end":{"character":7,"line":13},"start":{"character":1,"line":13}}},
		{"detail":"int","kind":22,"name":"TK_FALSE","range":{"end":{"character":9,"line":14},"start":{"character":1,"line":14}},"selectionRange":{"end":{"character":9,"line":14},"start":{"character":1,"line":14}}},
		{"detail":"int","kind":22,"name":"TK_FOR","range":{"end":{"character":7,"line":15},"start":{"character":1,"line":15}},"selectionRange":{"end":{"character":7,"line":15},"start":{"character":1,"line":15}}},
		{"detail":"int","kind":22,"name":"TK_FUNCTION","range":{"end":{"character":12,"line":16},"start":{"character":1,"line":16}},"selectionRange":{"end":{"character":12,"line":16},"start":{"character":1,"line":16}}},
		{"detail":"int","kind":22,"name":"TK_GOTO","range":{"end":{"character":8,"line":17},"start":{"character":1,"line":17}},"selectionRange":{"end":{"character":8,"line":17},"start":{"character":1,"line":17}}},
		{"detail":"int","kind":22,"name":"TK_IF","range":{"end":{"character":6,"line":18},"start":{"character":1,"line":18}},"selectionRange":{"end":{"character":6,"line":18},"start":{"character":1,"line":18}}},
		{"detail":"int","kind":22,"name":"TK_IN","range":{"end":{"character":6,"line":19},"start":{"character":1,"line":19}},"selectionRange":{"end":{"character":6,"line":19},"start":{"character":1,"line":19}}},
		{"detail":"int","kind":22,"name":"TK_LOCAL","range":{"end":{"character":9,"line":20},"start":{"character":1,"line":20}},"selectionRange":{"end":{"character":9,"line":20},"start":{"character":1,"line":20}}},
		{"detail":"int","kind":22,"name":"TK_NIL","range":{"end":{"character":7,"line":21},"start":{"character":1,"line":21}},"selectionRange":{"end":{"character":7,"line":21},"start":{"character":1,"line":21}}},
		{"detail":"int","kind":22,"name":"TK_NOT","range":{"end":{"character":7,"line":22},"start":{"character":1,"line":22}},"selectionRange":{"end":{"character":7,"line":22},"start":{"character":1,"line":22}}},
		{"detail":"int","kind":22,"name":"TK_OR","range":{"end":{"character":6,"line":23},"start":{"character":1,"line":23}},"selectionRange":{"end":{"character":6,"line":23},"start":{"character":1,"line":23}}},
		{"detail":"int","kind":22,"name":"TK_REPEAT","range":{"end":{"character":10,"line":24},"start":{"character":1,"line":24}},"selectionRange":{"end":{"character":10,"line":24},"start":{"character":1,"line":24}}},
		{"detail":"int","kind":22,"name":"TK_RETURN","range":{"end":{"character":10,"line":25},"start":{"character":1,"line":25}},"selectionRange":{"end":{"character":10,"line":25},"start":{"character":1,"line":25}}},
		{"detail":"int","kind":22,"name":"TK_THEN","range":{"end":{"character":8,"line":26},"start":{"character":1,"line":26}},"selectionRange":{"end":{"character":8,"line":26},"start":{"character":1,"line":26}}},
		{"detail":"int","kind":22,"name":"TK_TRUE","range":{"end":{"character":8,"line":27},"start":{"character":1,"line":27}},"selectionRange":{"end":{"character":8,"line":27},"start":{"character":1,"line":27}}},
		{"detail":"int","kind":22,"name":"TK_UNTIL","range":{"end":{"character":9,"line":28},"start":{"character":1,"line":28}},"selectionRange":{"end":{"character":9,"line":28},"start":{"character":1,"line":28}}},
		{"detail":"int","kind":22,"name":"TK_WHILE","range":{"end":{"character":9,"line":29},"start":{"character":1,"line":29}},"selectionRange":{"end":{"character":9,"line":29},"start":{"character":1,"line":29}}},
		{"detail":"int","kind":22,"name":"TK_IDIV","range":{"end":{"character":8,"line":31},"start":{"character":1,"line":31}},"selectionRange":{"end":{"character":8,"line":31},"start":{"character":1,"line":31}}},
		{"detail":"int","kind":22,"name":"TK_CONCAT","range":{"end":{"character":10,"line":32},"start":{"character":1,"line":32}},"selectionRange":{"end":{"character":10,"line":32},"start":{"character":1,"line":32}}},
		{"detail":"int","kind":22,"name":"TK_DOTS","range":{"end":{"character":8,"line":33},"start":{"character":1,"line":33}},"selectionRange":{"end":{"character":8,"line":33},"start":{"character":1,"line":33}}},
		{"detail":"int","kind":22,"name":"TK_EQ","range":{"end":{"character":6,"line":34},"start":{"character":1,"line":34}},"selectionRange":{"end":{"character":6,"line":34},"start":{"character":1,"line":34}}},
		{"detail":"int","kind":22,"name":"TK_GE","range":{"end":{"character":6,"line":35},"start":{"character":1,"line":35}},"selectionRange":{"end":{"character":6,"line":35},"start":{"character":1,"line":35}}},
		{"detail":"int","kind":22,"name":"TK_LE","range":{"end":{"character":6,"line":36},"start":{"character":1,"line":36}},"selectionRange":{"end":{"character":6,"line":36},"start":{"character":1,"line":36}}},
		{"detail":"int","kind":22,"name":"TK_NE","range":{"end":{"character":6,"line":37},"start":{"character":1,"line":37}},"selectionRange":{"end":{"character":6,"line":37},"start":{"character":1,"line":37}}},
		{"detail":"int","kind":22,"name":"TK_SHL","range":{"end":{"character":7,"line":38},"start":{"character":1,"line":38}},"selectionRange":{"end":{"character":7,"line":38},"start":{"character":1,"line":38}}},
		{"detail":"int","kind":22,"name":"TK_SHR","range":{"end":{"character":7,"line":39},"start":{"character":1,"line":39}},"selectionRange":{"end":{"character":7,"line":39},"start":{"character":1,"line":39}}},
		{"detail":"int","kind":22,"name":"TK_DBCOLON","range":{"end":{"character":11,"line":40},"start":{"character":1,"line":40}},"selectionRange":{"end":{"character":11,"line":40},"start":{"character":1,"line":40}}},
		{"detail":"int","kind":22,"name":"TK_EOS","range":{"end":{"character":7,"line":41},"start":{"character":1,"line":41}},"selectionRange":{"end":{"character":7,"line":41},"start":{"character":1,"line":41}}},
		{"detail":"int","kind":22,"name":"TK_FLT","range":{"end":{"character":7,"line":42},"start":{"character":1,"line":42}},"selectionRange":{"end":{"character":7,"line":42},"start":{"character":1,"line":42}}},
		{"detail":"int","kind":22,"name":"TK_INT","range":{"end":{"character":7,"line":43},"start":{"character":1,"line":43}},"selectionRange":{"end":{"character":7,"line":43},"start":{"character":1,"line":43}}},
		{"detail":"int","kind":22,"name":"TK_NAME","range":{"end":{"character":8,"line":44},"start":{"character":1,"line":44}},"selectionRange":{"end":{"character":8,"line":44},"start":{"character":1,"line":44}}},
		{"detail":"int","kind":22,"name":"TK_STRING","range":{"end":{"character":10,"line":45},"start":{"character":1,"line":45}},"selectionRange":{"end":{"character":10,"line":45},"start":{"character":1,"line":45}}}
	], "detail":"enum","kind":10,"name":"RESERVED","range":{"end":{"character":1,"line":46},"start":{"character":0,"line":6}},"selectionRange":{"end":{"character":13,"line":6},"start":{"character":5,"line":6}}}]}]]

Note this line (L3) from clangd:
	[{"children":
           ^^^^^^^^

And a single entry returned by both servers (pylsp then clangd):
{'name': 'struct', 'containerName': None, 'location': {'uri': 'file:///Users/jint/*/.tmp.py', 'range': {'start': {'line': 0, 'character': 0}, 'end': {'line': 0, 'character': 13}}}, 'kind': 2},
* contains: `<name>`, `<kind>`, `<location>`, and `<range>`
                                                    ^^^^^

{"detail":"int","kind":22,"name":"TK_AND","range":{"end":{"character":24,"line":8},"start":{"character":1,"line":8}},"selectionRange":{"end":{"character":7,"line":8},"start":{"character":1,"line":8}}},
* contains: `<detail>`, `<kind>`, `<name>`, `<range>`, and `<selectionRange>`
                                                             ^^^^^^^^^^^^^^

This at least means that only clangd (and only when the compilation database can be located) supports symbol hierarchy for the (v3.10.0) method textDocument/documentSymbol. But since symbols-outline.nvim doesn't implement treesitter integration, it just displayed them as is, resulting in a lack of "hierarchy" between symbols for pylsp. So IMHO maybe a better approach would be to submit an issue upstream instead of changing plugins lol (b/c I think we don't need all those features that aerial.nvim provides :D).

ys, the syntax tree is generated from treesitter and lsp. glad to see u try out different lsp on python first.
for c/c++ part, what c lsp r u using now? what c lsp have u tried?

I'm using clangd now

I'm using clangd now

Have u defined a compilation database in ur project root directory?

I'm using clangd now

Have u defined a compilation database in ur project root directory?

I used compile_flags.txt, in the root directory

clangd can only display function names, not variable names

clangd can only display function names, not variable names

AFAIK this feature hasn't been implemented yet. More info: https://github.com/clangd/clangd/issues/616.

@Qejun can u try out the latest pr to see if it works for u?


How do we get fine_to_coarse_dict.pickle  to train our data sets？

I tested the source code on the coco dataset， But now I want to train own data set，So how to get fine_to_coarse_dict.pickle ？

It's very difficult in general to know how to apply PiCIE to your own datasets I'm finding

I got it, Thank you!
蔡
@.***

------------------ 原始邮件 ------------------
发件人:                                                                                "janghyuncho/PiCIE"                                                                                @.>;
发送时间: 2023年2月21日(星期二) 晚上9:30
@.>;
<EMAIL_ADDRESS>主题: Re: [janghyuncho/PiCIE] How do we get fine_to_coarse_dict.pickle  to train our data sets？ (Issue #34)
Hi,
find_to_coarse_dict is used for COCO-27 evaluation only, following prior work (IIC).
This is used to make the original COCO-Stuff classes coarse, since unsupervised learning on 100+ classes is too difficult.
In general, you need to have your own data loader for your custom data. Starting from here, modifying load_data and _label_transform is a good start. If your own custom data is already coarse and have well-defined label system (labels from 0 to K), you can comment this out.
Hope this helps.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


Add handlers for when the rewriting is finished.

This should enable users to add a handler that is called after the rewriter finishes.

@gabi-250 this requires lol-rebase now

@inikulin done


System keeps saying that there are errors on trajectory overview page

Path: /studies/end/
The system keeps saying that there are errors on trajectory overview page, even if everything is filled in there and saved. Both the circle in the stepper remains yellow and an error is indicated on the submission page.

 It has actually been fixed already in #723. I will deploy the newest version asap.


proposal: testing: expose testing.Verbose() as part of testing.TB

Currently, the testing package exports the package-level Verbose function, which maps to whether or not the -test.v flag was provided.
I'd like to propose that Verbose() bool also be added to testing.TB (and thus be implemented by testing.T and testing.B). AFAICT it would be fine for this to simply call testing.Verbose() under the hood, as the value would not change among tests in a suite or their subtests.
The primary motivation is that it's not possible to mock behavioral changes in libraries (such as test utilities) based on whether -test.v was provided or not. Many libraries provide a pseudo-testing.TB interface for mocking (which intentionally can't be mocked directly due to the unexported TB.private() interface method), but package-level functions cannot be mocked. Thus, to support testing behavior based on testing.Verbose() without a corresponding method on testing.TB, something like the following would be required:
type VerboseReader interface {
  Verbose() bool
}

type verboseReader struct{}

func (verboseReader) Verbose() bool {
  return testing.Verbose()
}

which is, IMO, not ideal. Given that the methods currently on testing.TB are all specific to the currently-running test, testing.Verbose() indirectly influences the output behavior of each test despite being test-agnostic itself, so I think it makes sense to include as part of testing.TB.
Any thoughts, feedback, or suggestions are appreciated!

TB.Verbose would be unlike all other existing methods on TB, in that it would report a static global value rather than do something different depending on what test or benchmark is running. I know that is exactly what you're asking for, but it's worth noting that it would be a somewhat inconsistent API.
I also wonder why should we add TB.Verbose and not also Short, Coverage, CoverMode, or other global "getter" APIs. Potentially we could end up with quite a bit of duplication across four types - the interface and three implementers.
Finally, I'm a bit confused by the purpose of this proposal, which is to mock the testing package. The testing package already has a mechanism to discourage mocking, like you said. It seems to me like if you want to test a testing library or utility, you need to agree on a small interface to abstract away the testing package, just like you already do for TB. Adding Verbose to that mix, for a total of an extra handful of lines, doesn't seem like a big difference to me :)

All fair points - in particular, agreed that just passing a func() bool is a perfectly fine (and simpler) way to address this as well. Closing this due to the proposal being superfluous.
For posterity, the idea was less about "this is difficult/impossible to accomplish right now" and more about "it would be convenient to access this as part of a testing.T/testing.B", ideally avoiding adding a dedicated "verbose getter" (or similar) parameter to testing utility functions/libraries that users need to care about.
In retrospect, there are better ways to inject and mask this from users by default - functional options or unexported var function manipulation being among the more obvious ways.
Thanks for the feedback!


[CWS] fix undetected ebpfless failure in KMT tests

What does this PR do?
This PR fixes an issue where the ebpfless testsuite could fail, but the failure was not detected by the test running infrastructure. This PR:

makes sure the exit code of the testsuite is != 0 when there is a fail. This is important because test2json uses that to guess some pass/fail state for the testsuite
makes sure the testsuite writes to stdout in a format that is suited to test2json, as instructed in the go 1.20 release notes https://tip.golang.org/doc/go1.20

Example job of the issue https://gitlab.ddbuild.io/DataDog/datadog-agent/-/jobs/697843443
Motivation
Describe how to test/QA your changes
Possible Drawbacks / Trade-offs
Additional Notes

/merge


Update some more benchmarks to use correct evaluation context (PLT-9713) [second attempt]

The previous PR seems to be broken.
This updates the BLS12-381 and Marlowe benchmarks to use the more precise evaluation strategy introduced in https://github.com/IntersectMBO/plutus/pull/5867.

/benchmark validation

/benchmark nofib

/benchmark marlowe

/benchmark bls12-381-benchmarks

/benchmark validation

Also I changed some of the bls12-381 benchmarks in a way that will slow them down a bit, or a lot in the n=0 case.

cabal bench bls12-381-benchmarks

/benchmark bls12-381-benchmarks

/becnhmark marlowe

/benchmark marlowe

/benchmark validation

The origin of this branch has vanished so I'm closing it in favour of #5903.


License badge and info

WHEN I choose a license for my application from a list of options
THEN a badge for that license is added near the top of the README and a notice is added to the section of the README entitled License that explains which license the application is covered under

completed


Playwright: devServerTarget not working with webpack served projects

Current Behavior
When using the devServerTarget with a webpack served application, e2e tests fail as playwright cannot establish a connection with the localhost port hosting the frontend project.
If vite is used as the frontend project bundler, e2e tests work as excepted when using the devServerTarget option.
Also, when using webpack, if the frontend project is served in a separate terminal instance and the e2e tests are run using
--baseUrl http://localhost:4200 --skipServe

the tests work.
Expected Behaviour
E2E tests using the devServerTarget with a webpack served project should work as they do with a vite served project.
Github Repo
No response
Steps to Reproduce

npx create-nx-workspace@latest acme --nx-cloud false
cd acme && npm i -D @nrwl/react @nxkit/playwright
npx nx g @nrwl/react:app myapp --e2eTestRunner none --bundler webpack
npx nx g @nxkit/playwright:proj myapp-e2e --frontendProject myapp
npx nx e2e myapp-e2e

Nx Report
>  NX   Report complete - copy this into the issue template

   Node : 16.17.0
   OS   : darwin arm64
   pnpm : 7.14.2

   nx : 15.4.2
   @nrwl/angular : Not Found
   @nrwl/cypress : 15.4.2
   @nrwl/detox : Not Found
   @nrwl/devkit : 15.4.2
   @nrwl/esbuild : Not Found
   @nrwl/eslint-plugin-nx : 15.4.2
   @nrwl/expo : Not Found
   @nrwl/express : Not Found
   @nrwl/jest : 15.4.2
   @nrwl/js : 15.4.2
   @nrwl/linter : 15.4.2
   @nrwl/nest : Not Found
   @nrwl/next : Not Found
   @nrwl/node : Not Found
   @nrwl/nx-cloud : Not Found
   @nrwl/nx-plugin : Not Found
   @nrwl/react : 15.4.2
   @nrwl/react-native : Not Found
   @nrwl/rollup : 15.4.2
   @nrwl/schematics : Not Found
   @nrwl/storybook : Not Found
   @nrwl/web : 15.4.2
   @nrwl/webpack : 15.4.2
   @nrwl/workspace : 15.4.2
   @nrwl/vite : 15.4.2
   typescript : 4.8.4
   ---------------------------------------
   Local workspace plugins:
   ---------------------------------------
   Community plugins:
         @nxkit/playwright: 1.0.0

Failure Logs
pnpm nx e2e myapp-e2e

> nx run myapp2-e2e:e2e

<i> [webpack-dev-server] Project is running at:
<i> [webpack-dev-server] Loopback: http://localhost:4200/, http://<IP_ADDRESS>:4200/
<i> [webpack-dev-server] 404s will fallback to '/index.html'

>  NX  Web Development Server is listening at http://localhost:4200/

Entrypoint main [big] 1.6 MiB (1.89 MiB) = runtime.js 50.4 KiB vendor.js 1.5 MiB main.js 57.5 KiB 3 auxiliary assets
Entrypoint polyfills [big] 773 KiB (956 KiB) = runtime.js 50.4 KiB polyfills.js 723 KiB 2 auxiliary assets
Entrypoint styles [big] 436 KiB (548 KiB) = runtime.js 50.4 KiB styles.css 399 bytes styles.js 385 KiB 2 auxiliary assets
chunk (runtime: runtime) main.js (main) 49.3 KiB [initial] [rendered]
chunk (runtime: runtime) polyfills.js (polyfills) 674 KiB [initial] [rendered]
chunk (runtime: runtime) runtime.js (runtime) 33.8 KiB [entry] [rendered]
chunk (runtime: runtime) styles.css, styles.js (styles) 367 KiB (javascript) 398 bytes (css/mini-extract) [initial] [rendered]
chunk (runtime: runtime) vendor.js (vendor) (id hint: vendor) 1.48 MiB [initial] [rendered] split chunk (cache group: vendor) (name: vendor)
webpack compiled successfully (33f1f1affff67af0)
running command:  pnpm exec playwright test --output dist/apps/myapp2-e2e/test-results --config apps/myapp2-e2e/playwright.config.ts
No errors found.

Running 3 tests using 3 workers
  1) [webkit] › app.spec.ts:3:5 › myapp2 ===========================================================

    page.goto: Could not connect to the server.
    =========================== logs ===========================
    navigating to "http://localhost:4200/", waiting until "load"
    ============================================================

      2 |
      3 | test('myapp2', async ({ page }) => {
    > 4 |   await page.goto('/');
        |              ^
      5 |
      6 |   const greeting = page.locator('h1');
      7 |   await expect(greeting).toContainText('Welcome  myapp2');

        at /Users/sduque/dev/playground/acme/apps/myapp2-e2e/src/e2e/app.spec.ts:4:14
        at /Users/sduque/dev/playground/acme/node_modules/.pnpm/@playwright+test@1.29.1/node_modules/@playwright/test/lib/workerRunner.js:376:15
        at TestInfoImpl._runFn (/Users/sduque/dev/playground/acme/node_modules/.pnpm/@playwright+test@1.29.1/node_modules/@playwright/test/lib/testInfo.js:144:7)
        at /Users/sduque/dev/playground/acme/node_modules/.pnpm/@playwright+test@1.29.1/node_modules/@playwright/test/lib/workerRunner.js:331:26
        at TimeoutManager.runWithTimeout (/Users/sduque/dev/playground/acme/node_modules/.pnpm/@playwright+test@1.29.1/node_modules/@playwright/test/lib/timeoutManager.js:62:7)
        at TestInfoImpl._runWithTimeout (/Users/sduque/dev/playground/acme/node_modules/.pnpm/@playwright+test@1.29.1/node_modules/@playwright/test/lib/testInfo.js:133:26)
        at WorkerRunner._runTest (/Users/sduque/dev/playground/acme/node_modules/.pnpm/@playwright+test@1.29.1/node_modules/@playwright/test/lib/workerRunner.js:312:5)
        at WorkerRunner.runTestGroup (/Users/sduque/dev/playground/acme/node_modules/.pnpm/@playwright+test@1.29.1/node_modules/@playwright/test/lib/workerRunner.js:192:11)
        at process.<anonymous> (/Users/sduque/dev/playground/acme/node_modules/.pnpm/@playwright+test@1.29.1/node_modules/@playwright/test/lib/worker.js:74:5)

  2) [chromium] › app.spec.ts:3:5 › myapp2 =========================================================

    page.goto: net::ERR_CONNECTION_REFUSED at http://localhost:4200/
    =========================== logs ===========================
    navigating to "http://localhost:4200/", waiting until "load"
    ============================================================

      2 |
      3 | test('myapp2', async ({ page }) => {
    > 4 |   await page.goto('/');
        |              ^
      5 |
      6 |   const greeting = page.locator('h1');
      7 |   await expect(greeting).toContainText('Welcome  myapp2');

        at /Users/sduque/dev/playground/acme/apps/myapp2-e2e/src/e2e/app.spec.ts:4:14
        at /Users/sduque/dev/playground/acme/node_modules/.pnpm/@playwright+test@1.29.1/node_modules/@playwright/test/lib/workerRunner.js:376:15
        at TestInfoImpl._runFn (/Users/sduque/dev/playground/acme/node_modules/.pnpm/@playwright+test@1.29.1/node_modules/@playwright/test/lib/testInfo.js:144:7)
        at /Users/sduque/dev/playground/acme/node_modules/.pnpm/@playwright+test@1.29.1/node_modules/@playwright/test/lib/workerRunner.js:331:26
        at TimeoutManager.runWithTimeout (/Users/sduque/dev/playground/acme/node_modules/.pnpm/@playwright+test@1.29.1/node_modules/@playwright/test/lib/timeoutManager.js:62:7)

Additional Information
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Nx Cypress plugin implementation can give a hint on how to spawn the app's dev server target


Windows installation code ?

@SteveALee
Considering this issue isn't related to EventMachine, I thought I'd add the details here.
One thing that is important is that there are no spaces in the path where gems are installed.

My system defaults are to use a gem install path with a space, and almost everything works fine.  One of Jekyll's gem dependencies on does have a problem.

Unless noted, my normal shell is PowerShell.

'GEM_HOME can redefine where gem install will install gems, assuming one doesn't use the --user-install option.  I often change it when testing installation issues, as it leaves the Ruby install folder alone.

Using a fresh install of Ruby 2.6:
# change GEM_HOME just for testing installation code
$env:GEM_HOME = "<special folder>"

gem install jekyll --platform=ruby
gem install minima tzinfo-data wdm --platform=ruby

jekyll new C:/Greg/jekyll

# cd to  project folder
cd C:/Greg/jekyll

bundle lock --add-platform=x64-mingw32
bundle install

bundle exec jekyll serve --livereload

HTH, Greg

Is there an update on when the fix will be released? Thanks

As to an update to EventMachine, I contribute there, but I don't decide on when to release a new version.
As to the quirks with RubyGems/Bundler, there's a lot of work going on there, but I haven't kept track of the specific issues affecting Jekyll, nor what they've released...
Sorry.  If anything changes, I'll add to this issue.

Thank you!

@elizabethwarden
Not a good day for me to be checking this, but maybe tonite or tomorrow.  What version of Ruby are you using (ruby -v in a console)?

@elizabethwarden
Not a good day for me to be checking this, but maybe tonite or tomorrow.  What version of Ruby are you using (ruby -v in a console)?


fix(auth_service): legacy wallet bip39 validation

Fixes the login issue reported by @naezith
Steps to reproduce:

Register Iguana (legacy) wallet using a seed phrase
Logout
Log in to the Iguana wallet in HD mode.

On dev, logging into an Iguana wallet in HD mode fails with a BIP39 validation error. This is because BIP39 validation was only performed for HD wallet registrations.
Changes:

Perform BIP39 validation for all registrations, but only rethrow AuthException if the current mode is HD.
Remove invalid password validation checks

Looks great. Please see the suggested change, run dart fix --apply . && dart format . and commit any changes (if any) to files touched in this PR.

There were no changes besides the suggested change (format & fix on save to the rescue)


Summary:
Adding some very fundamental utilities to make development smoother, e.g.

safe file I/O
abstracted config class construction from CLi
Result convenience functions
etc.

Accepting to unblock but please fix the CODEOWNERS file before landing

Thanks, good catch