AST view leaks memory addresses

Memory addresses are leaked in the following case:
|-CXXConstructorDecl parent 0x5586d5fabcb0 prev 0x5586d5fac0a8 <line:7:1, line:8:16> col:9 Foo<X> 'void ()'

With this code:

template <typename X>
struct Foo {
    Foo();
};

template <typename X>
Foo<X>::Foo() {}

int main() {
    Foo<int> x;
}

AST:
TranslationUnitDecl
|-ClassTemplateDecl <line:2:1, line:5:1> line:3:8 Foo
| |-TemplateTypeParmDecl <line:2:11, col:20> col:20 typename depth 0 index 0 X
| |-CXXRecordDecl <line:3:1, line:5:1> line:3:8 struct Foo definition
| | |-DefinitionData empty standard_layout trivially_copyable has_user_declared_ctor can_const_default_init
| | | |-DefaultConstructor exists non_trivial user_provided defaulted_is_constexpr
| | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param
| | | |-MoveConstructor exists simple trivial needs_implicit
| | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param
| | | |-MoveAssignment exists simple trivial needs_implicit
| | | `-Destructor simple irrelevant trivial needs_implicit
| | |-CXXRecordDecl <col:1, col:8> col:8 implicit referenced struct Foo
| | `-CXXConstructorDecl <line:4:5, col:9> col:5 Foo<X> 'void ()'
| `-ClassTemplateSpecializationDecl <line:2:1, line:5:1> line:3:8 struct Foo definition
|   |-DefinitionData pass_in_registers empty standard_layout trivially_copyable has_user_declared_ctor can_const_default_init
|   | |-DefaultConstructor exists non_trivial user_provided defaulted_is_constexpr
|   | |-CopyConstructor simple trivial has_const_param implicit_has_const_param
|   | |-MoveConstructor exists simple trivial
|   | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param
|   | |-MoveAssignment exists simple trivial needs_implicit
|   | `-Destructor simple irrelevant trivial needs_implicit
|   |-TemplateArgument type 'int'
|   |-CXXRecordDecl prev 0x5586d5fac5d8 <col:1, col:8> col:8 implicit struct Foo
|   |-CXXConstructorDecl <line:8:1, col:16> line:4:5 used Foo 'void ()'
|   | `-CompoundStmt <line:8:15, col:16>
|   |-CXXConstructorDecl <line:3:8> col:8 implicit constexpr Foo 'void (const Foo<int> &)' inline default trivial noexcept-unevaluated 0x5586d5faca18
|   | `-ParmVarDecl <col:8> col:8 'const Foo<int> &'
|   `-CXXConstructorDecl <col:8> col:8 implicit constexpr Foo 'void (Foo<int> &&)' inline default trivial noexcept-unevaluated 0x5586d5fd9d68
|     `-ParmVarDecl <col:8> col:8 'Foo<int> &&'
|-CXXConstructorDecl parent 0x5586d5fabcb0 prev 0x5586d5fac0a8 <line:7:1, line:8:16> col:9 Foo<X> 'void ()'
| `-CompoundStmt <col:15, col:16>
`-FunctionDecl <line:10:1, line:12:1> line:10:5 main 'int ()'
  `-CompoundStmt <col:12, line:12:1>
    `-DeclStmt <line:11:5, col:15>
      `-VarDecl <col:5, col:14> col:14 x 'Foo<int>':'Foo<int>' callinit
        `-CXXConstructExpr <col:14> 'Foo<int>':'Foo<int>' 'void ()'

Thanks @pgoodman . I don't see this is a huge issue. Presumably you're noting this as it might somehow be used to attack the Compiler Explorer site?
These are memory addresses in a transient process of internal clang data structures. My feeling is that to turn this information into an exploit would require:

a way of accessing the memory of a now-dead process, or a way to guarantee the addresses would be constant across multiple invocations (which perhaps it is, ASLR being on but limited)
something useful that could be exploitable by changing data around where clang's AST view is stored.
a way of modifying that memory somehow. If one can modify that memory I suspect there are much easier attack vectors

Am I understanding you right? If you have some thoughts about how this information could be used other than my super naïve understanding above, then please update here. Or if you feel that sharing more information might cause security issues, please drop me an email (matt@godbolt.org).
Thanks!

Ah so I made a bad assumption. I was looking at what I do decl->dump() in clang and noticed more memory addresses being shown than what was visible in Compiler Explorer, and figured that you'd made an effort to hide those addresses.


Setting up a route handler that returns no data

@samselikoff while working off of the latest beta version of ember-cli-mirage I've run into a scenario where I want to test what happens in my application when a request returns a JSON API document that has no data in it.
My route handler looks like this:
this.get('/segments/:id/assessment', (schema, request) => {
  var segment = schema.segment.find(request.params.id);

  return segment.assessment;
});

Sometimes a segment will have an assessment, other times it won't. When it doesn't, I get this error in my tests:

Assertion Failed: normalizeResponse must return a valid JSON API document:

One or more of the following keys must be present: "data", "errors", "meta".

Is there something I need to do to get the serializer to return the right "no-data" JSON?

For reference, here is what a JSON API payload looks like when there is no data returned (for a single resource):
{
  "data": null
}

No first-class way to do this at the moment. For now you could add a conditional:
if (segment.assessment) {
  return segment.assessment;
} else {
  return { data: null };
}


auto open docs on serve

TODO: please add chinese translation

@QingWei-Li The chinese translation is still missing, as I don't speak it.

@jrappen Done.


Display and Add stuff to Communities

"Hack the source", get the Manifold website to display things and collections, and allow dragging and dropping things and collections into and out of other collections.

the current changes have been made to the pre-build app, we need to migrate those changes to the main app.

What's left for this issue:
When Communities exist, We should be able to do the following:

Add a Thing to Community

Via tab on contained Thing card (Thing > Add to... > [Community name])
Via tab on containing Community card, maybe (Community > Add... > [Thing name])
Via drag & drop onto a Community

How would this be manageable if Things and Communities are on different pages?

Add a Community to Community

Via tab on the contained Community card (Community > Add To... > [Community name])
Like for adding Things, via tab on the containing card (Community > Add... > [Community name])
Via drag & drop onto a Community. This is a big one.

Remove a Thing from a Community

Via some clickable tab or button
Via drag & drop out of a Community

Remove a Community from a Community

Via some clickable tab or button
Via drag & drop out of a Community

Migrated to Manifold github issues. Closing.


Enhancement: Add asset stage

This PR

[x]  adds an asset stage for building client-side assets

Follows #542.

Thank you, @chartjes!


placeholder text should be diff't when there are no kernels

Testing #10590

better yet, should clicking the install python extension button just run that action instead of showing the quickpick?

better yet, should clicking the install python extension button just run that action instead of showing the quickpick?

With the current API we don't have that option. But I know that @greazer was keen on the same suggestion. Maybe we can tweak the core kernel selector code to just perform the action if the one and only thing in the list is a kernel command as opposed to an actual kernel.

@rebornix Assigning to you so it doesn't get lost in the transfer, but I could actually help with this if we think there is some work to do here. I always like the chance to make core changes to get into the code base more.


Gigasecond: Implemented new rollover tests for gigasecond from x-common

See exercism/x-common@1e9e232

Thanks!


Get Cookies from Network tab --> Cookies Tab

Hi,
The Get Cookies gets information from Chrome Application tab:

If there is an API request that uses cookies with not the default / path, how can I get those cookies information, from the Newtork Tab --> Cookies Tab

Thank you.

Hi @erikapapp,
This question maybe related to a library like SeleniumLibrary, or Robot Framework Browser.
But it is not related to Robot Framework itself.
You may want to ask this in one of our community channels:
https://robotframework.org/#community


Channel Mutes & Cleanup Query Options

This is a fork of #60 as @thesyncim had already started down this path. I just took it a step further and did some additional cleanup of query options.
This should also fix #74

Rebased onto master.

@ferhatelmas I think I fixed all the things you pointed out. Can you reapprove?


Icon Request: Servers

I would like to request icons that depict a single server, multiple servers, and a network :)

Added servers and a few options for the other requests.
If you're still looking for something more specific for the other ones can you make a new individual GitHub issue for each please? Thanks for the requests :)


AUI-1169 Add tab key as hide event for the datepicker in active input.

Hey @mairatma
Merry Christmas :)
This is a fix for AUI-1169.
I move instance.set('activeInput', node); before var popover = instance.getPopover(); so that we can get activeInput from instance in method of _setPopover.
But I still have a problem when dealing with AUI-1814.
Changing triggerShowEvent: 'click' to triggerShowEvent: 'focus' only has effect when tabbing to the input at second time.
When focusing on the input at the very first time, the datepicker only pops up for event 'mousedown', but not for event 'focus' event if we delegated both in datepicker-delegate.js.
I need to investigate more.
So let us solve AUI-1169 at first.
Thanks
John

Closing it as sending a new pr to you https://github.com/mairatma/alloy-ui/pull/145
Thanks


What is the magic behind vcpkg_test_cmake()?

I am trying to write a portfile to a new package. Managed to make it build but can't pass the vcpkg_test_cmake(PACKAGE_NAME GMT MODULE) step. No matter what I try
CMake integration test failed; unable to find_package(GMT MODULE REQUIRED)

This should be fixed in https://github.com/microsoft/vcpkg/pull/5574.

vcpkg_test_cmake disabled now, and the error message friendly informed user to remove .exe or debug/include etc. Related to https://github.com/microsoft/vcpkg/blob/master/docs/examples/packaging-zipfiles.md


access denied

I am getting access denied when running locally, and on AWS. I have AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY exported in my env; Any idea why this might not be working?
aws s3 --region eu-west-1 sync s3://ngi-igenomes/igenomes/Homo_sapiens/NCBI/build37.2/Sequence/WholeGenomeFasta/ .
fatal error: An error occurred (AccessDenied) when calling the ListObjects operation: Access Denied

Hi @danielecook,
Sorry to hear that you're having problems with these. I just checked and I can still see the files (which means that I haven't accidentally deleted them or anything stupid):
$ aws s3 --region eu-west-1 ls s3://ngi-igenomes/igenomes/Homo_sapiens/NCBI/build37.2/Sequence/WholeGenomeFasta/

2017-04-13 16:30:35       4237 GenomeSize.xml
2017-04-13 16:30:36       3950 genome.dict
2017-04-13 16:30:36<PHONE_NUMBER> genome.fa
2017-04-13 16:30:40        714 genome.fa.fai

I also tried copying and pasting your command and that worked too.
The bucket is definitely set to allow public read-only access:

Note that the bucket is set to Requester Pays, so that may affect some kind of AWS permissions that you have set up?
What happens when you try to ls that path instead of sync?
I assume that working with your own files on s3 works fine?
Phil

Note that I have my aws permissions set up slightly differently, using ~/.aws instead of environment variables. Though that shouldn't make any difference..
==> .aws/config <==
[default]
region = eu-west-1

==> .aws/credentials <==
[default]
aws_access_key_id = XXXXX
aws_secret_access_key = xxxxxxx

Hmm, other people I've asked here also are having problems accessing the files apparently, so it's probably something I've done wrong. I'll look into it more and get back to you.

Hi @danielecook,
I think that we've figured it out.. It looks like the AWS CLI has a (possibly new?) command line flag called --request-payer:

--request-payer (string) Confirms that the requester knows that she  or
he will be charged for the request. Bucket owners need not specify this
parameter in their requests. Documentation on downloading objects  from
requester       pays       buckets       can      be      found      at
http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html

I don't need this as it's my bucket, however other people had the permission denied error until they added that command line flag:
aws s3 --region eu-west-1 ls --request-payer requester s3://ngi-igenomes/igenomes/Homo_sapiens/NCBI/build37.2/Sequence/WholeGenomeFasta/

I guess the same will be true with the sync command. I'll update the docs / website accordingly. Let me know how you get on!
Phil

Docs and scripts updated in 6953783a7ed9255f5273b9ff857f7dd9c5ade684

I run this and get an error:
aws s3api get-object --region eu-west-1 --request-payer requester --bucket ngi-igenomes --key igenomes/Homo_sapiens/Ensembl/GRCh37/Sequence/WholeGenomeFasta/genome.fa .

An error occurred (AccessDenied) when calling the GetObject operation: Access Denied

Hey @ewels - To summarize:
You need to be sure the 'requester-pays' option is set:

And...I'm not sure if s3 cp works with this bit if it doesn't you can use the aws s3api alternatively. These changes will need to be applied to the nextflow pipelines too. Can you confirm that that option is set correctly?

Hi @danielecook,
Yes, requester pays is set as in the screenshot (except set to "Enabled"). The Nextflow but may be more complicated though as it uses built in s3 support.
Phil

Thanks for testing this by the way - it's surprisingly difficult when all of my amazon accounts have full access!

The other thing you can try is setting up the bucket policy and being sure that it has the  'GetObject'  permission.

I also gave this a try and recieved the following error:
aws s3 sync --region eu-west-1 --request-payer requester  s3://ngi-igenomes/igenomes/Homo_sapiens/UCSC/hg38/Sequence/WholeGenomeFasta/ ./references/Homo_sapiens/UCSC/hg38/Sequence/WholeGenomeFasta/

Unknown options: --request-payer,./references/Homo_sapiens/UCSC/hg38/Sequence/WholeGenomeFasta/

Hi @danielecook,
I got a reply from Jed at AWS who suggested using s3api as you tried above. We still have plenty of Amazon credits left from the grant they gave to support this though, so for now I've just opened up access to everyone and removed the Requester Pays policy. I'll monitor how our costs go for a while and we can go for there. So not a super long-term solution I'm afraid, but it should be available for a few months at least now.
Let me know how you get on!
Phil

Thanks Phil. I’m going to play around with it to and see if I can figure it
out.
On Tue, Oct 17, 2017 at 3:53 AM Phil Ewels<EMAIL_ADDRESS>wrote:

Hi @danielecook https://github.com/danielecook,
I got a reply from Jed at AWS who suggested using s3api as you tried
above. We still have plenty of Amazon credits left from the grant they gave
to support this though, so for now I've just opened up access to everyone
and removed the Requester Pays policy. I'll monitor how our costs go
for a while and we can go for there. So not a super long-term solution I'm
afraid, but it should be available for a few months at least now.
Let me know how you get on!
Phil
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ewels/AWS-iGenomes/issues/1#issuecomment-337163860,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABdzp19wzLgQ74eBHQ76YhffpYV0p39Lks5stGrrgaJpZM4PrmEB
.

Potential better solution suggested by Brendan B - using an access control list to allow full access to anyone in the same region. Transfers within the region should be free (right?) and access would still be easy then.
Phil

Hi Phil,
I am trying to download a gtf file. " ls" works but I get the access error when I try to "cp" or "sync"
aws s3 --region eu-west-1 sync s3://ngi-igenomes/igenomes/Oryza_sativa_japoni
ca/Ensembl/IRGSP-1.0/Annotation/Genes/ /mnt/projects/rpd/devs/lavanya/test/ --exclude "*" --include "genes.gtf"
download failed: s3://ngi-igenomes/igenomes/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Annotation/Genes/genes.gtf to test/genes.gtf An error occurred (AccessDenied) when calling the GetObject operation: Access Denied
Have you given full access to S3 bucket in teh same region? Probably I can try that. Thanks.

Hi @veeravalli,
Thanks for your comment - I had hoped that I wouldn't need to bother with a GetObject policy since I made the bucket public for everyone, this is annoying.
I can confirm that if I try your command with no credentials and --no-sign-request. I'll look into this (much easier when I can replicate / test myself!)
Phil

Hi @veeravalli,
I've just added a new bucket policy which should allow GetObject. I've tested without authentication and it works for me now. Let me know how you get on!
@danielecook - may be worth another go now too!
Thanks,
Phil

Hi @ewels ,
Thanks. It works now :)
Lavanya

Ok brilliant - working at last! Thanks!


Stopped Compiling: error[E0658]: trait bounds other than Sized on const fn parameters are unstable

Just updated my branch to main
And am getting the following
...
   Compiling proc-macro-error v1.0.4
   Compiling form_urlencoded v1.1.0
   Compiling ring v0.16.20
   Compiling backtrace v0.3.66
   Compiling miniz-sys v0.1.12
   Compiling bytes-utils v0.1.3
   Compiling itertools v0.10.3
error[E0658]: trait bounds other than `Sized` on const fn parameters are unstable
   --> /home/kali/.cargo/registry/src/github.com-1ecc6299db9ec823/bytes-utils-0.1.3/src/string/mod.rs:326:6
    |
326 | impl<S: Storage> StrInner<S> {
    |      ^
...
359 |     pub const unsafe fn from_inner_unchecked(s: S) -> Self {
    |     ------------------------------------------------------ function declared as const here
    |
    = note: see issue #93706 <https://github.com/rust-lang/rust/issues/93706> for more information

For more information about this error, try `rustc --explain E0658`.
error: could not compile `bytes-utils` due to previous error
warning: build failed, waiting for other jobs to finish...
error: failed to compile `oura v1.7.0 (/home/kali/workspace/oura)`, intermediate artifacts can be found at `/home/kali/workspace/oura/target`

Hi @ehanoc, the current "Minimum Supported Rust Version" (MSRV) for Oura is 1.58.1. Are you compiling with something older than that?


5to6: Add caution about exec workarounds

"shell and exit" are poor substitutes for exec in some common
situations. Add language to 5to6-perlfunc to explain these situations
and suggest NativeCall if they pertain.
Also note that most Unixes have no single "exec" function exactly (Perl
5 automagically dispatches the right one for the situation).

Thanks.


feature request: region agnostic API input/output

The current API only accepts and uses the Chinese name of items as input and output for item objects, which is troublesome to work around for clients who are region agnostic and work with item IDs internally.
Since many other services use this API as is, I would like to suggest that an optional field, use_item_id, of type boolean indicating that the client wants to have the input and output be item IDs, be added to the API.
Drawbacks:
Since ArkPlanner and penguin-stats uses an item's Chinese name internally, computational work would have to be done to map item IDs to their Chinese name and vice versa. Occasional network traffic would also be incurred to fetch and keep updated the item table for doing so.
I would be happy to put up a PR for this feature if the maintainers are okay with this.

Hi Kyoukaya,
Sorry for the late reply. Please feel free to do so! We greatly appreciate any contributions.
ArkPlanner is currently maintained by @SQRPI . You can work this out with him and please let us know if you need any help from us.


function-component-definition should not match unfixable edge cases (TypeScript generics)

The documentation for the function-component-definition rule helpfully points out, that certain cases in TypeScript code using generics can not be fixed.
For example this:
function Component<T>(props: Props<T>) {
  return <div />;
};

can not be converted into an arrow function as the type parameter conflicts with JSX syntax.
Since that is the case, the rule should not highlight these cases as errors to begin with.
Thanks :)
Also, generally great work on this plugin!
Note: There may be a suggestion to just add some more syntax, like <T extends unknown>, to prevent the syntax collision. However not only does this conflict with other linting rules specifically designed to prevent this ( particularly (@typescript-eslint/no-unnecessary-type-constrain ), it also obscures the fact that code was added to alleviate a deficiency in the linter.
IMHO the only valid way to deal with this currently is to spam eslint-disable-next-line, which is not great.

The patterns that aren't autofixable aren't necessarily un fixable - however, if there is a pattern that has no other possibility, you're right, we shouldn't warn on it.

isn't this generally auto-fixable this way?
- function Component<T>(props: Props<T>) {
+ const Component = <T,>(props: Props<T>) => {
  return <div />;
};

(notice the comma)

Converting a named function to an arrow function would be a harmful fix; components shouldn’t be arrow functions.

@ljharb That's besides the point. The rule offers that option so it should support it. As it stands it's ability to "autofix" some of the components it may encounter stands hindered by an issue that's easily fixable.
Now I'll have a guess that this is a deficiency that enough people run into, given it has that specific example in the documentation for the rule:

function components with one unconstrained type parameter cannot be autofixed to arrow functions because the syntax conflicts with jsx

and seeing how there is a simple enough solution for it, I think it warrants some more consideration than "just don't use the rule that way".

That's not besides the point; autofixes are supposed to be safe, and that wouldn't be one.
See https://github.com/jsx-eslint/eslint-plugin-react/issues/3345#issuecomment-1205885868 for the PR i'm looking for here.


How do I rename previously-downloaded files with nothing but the youtube video ID?

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I remove or skip any mandatory* field

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I'm running yt-dlp version 2022.11.11 (update instructions) or later (specify commit)
[X] I've searched the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
I have already checked #3301 but it references a JSON file I don't have.
I do have a downloaded.txt in addition to each file having the ID in its filename.
How can I use yt-dlp and/or other tools to rename every previously-downloaded video? In particular I'm interested in adding the upload date to every filename.
Provide verbose output that clearly demonstrates the problem

[ ] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
No response

I'm doing this right now to move videos into folders named after the channel, what I'm doing is this, where u is the folder/channel name and url is the channel url:
yt-dlp -s "$url" -P "home:youtube/$u" > "youtube/$u"/videos
for i in $(grep -E "youtube.*Downloading android" "youtube/$u/videos" | awk '{print $2}' | tr -d ":" | sort | uniq ); do mv -iv *"$i"* "$u"; done

The key here is the -s and not passing in --download-archive

Here's a solution using bash and yt-dlp (and no other utils).

It assumes you want to have the youtube ID in the final filename.
If yt-dlp extraction fails, the script will abort renaming that video and add that archive entry to retry_archive.txt in your current working directory.
It will rename ALL files in your download_path whose filenames contain archived youtube IDs (not just videos) to the new output template, but attempt to retain their original extension.
A potential unwanted side effect may be that *.info.json files are renamed to only *.json -- though it sounds like you don't have info JSON files for any of the videos you want renamed

Edit the commented lines as necessary:
#!/usr/bin/env bash

outtmpl="%(upload_date)s-%(id)s-%(title)s.%(ext)s"  # adjust to your desired output template
archive="/path/to/archive/downloaded.txt"  # replace with actual archive file path
download_path="/path/to/downloads/folder"  # replace with actual directory path

pattern='^youtube(:\w+)?\s([A-Za-z0-9_-]{10}[AEIMQUYcgkosw048])$'
downloads=("${download_path}/"*)
while read -r input; do
    [[ "${input}" =~ ${pattern} ]] || continue
    input_id="${BASH_REMATCH[2]}"
    filename=$(yt-dlp -o "${outtmpl}" --get-filename -- "${input_id}")
    [[ "${filename}" =~ ${input_id} ]] || { echo "${input}" >> "retry_archive.txt"; continue; }
    for download in "${downloads[@]}"; do
        [[ "${download}" =~ ${input_id} && -f "${download}" ]] || continue
        mv -- "${download}" "${download_path}/${filename%.*}.${download/#*.}" || break 2
    done
done < "${archive}"

Any idea how to approach this on Windows?

Windows Subsystem for Linux?

My Linux abilities are very limited.
Can i rather put this batch file in a folder where the files that need to be renamed are, edit it, and run it so it will rename all the files in this specific folder?
But i also need to know what to edit to make it work properly..

The top three lines set lines are your configuration, adjust them to your need.
:: Desired output template
set "outtmpl=%%(upload_date)s-%%(id)s-%%(title)s.%%(ext)s"
:: Path to your download archive
set "archivePath=P:\ath\to\archive.txt"
:: Path to the folder containing downloaded files
set "downloadPath=P:\ath\to\download\folder\"

Please be careful when using Batch as it might break easily. prefer the Python or Bash versions if possible.

Can i eliminate archive since i only have a folder with the video files and haven't used archive?

No. None of these scripts will work without a download archive file. Furthermore, any videos without entries in your archive would not be renamed.

Even if i don't want to use the ID in the file name?
Let's just say: "%%(upload_date)s-%%(title)s.%%(ext)s"

Even if i don't want to use the ID in the file name?

The bash solution states that it will only work if you intend to have the ID in the final filename. IMO it's not a good idea to strip the ID from the filename anyways, as that would make it very difficult for you if you wanted to rename them again using metadata values.
In order to have a script that would work without a download archive, all of the youtube videos you want renamed would need to have been originally named with the same output template, or at least a very similar output template (e.g. the youtube ID is always at the end of the filename), and the script would need to be written to handle that specific naming scheme.

Here's a solution using bash and yt-dlp (and no other utils).
* It assumes you want to have the youtube ID in the final filename.

* If yt-dlp extraction fails, the script will abort renaming that video and add that archive entry to `retry_archive.txt` in your current working directory.

* It will rename ALL files in your `download_path` whose filenames contain archived youtube IDs (not just videos) to the new output template, but attempt to retain their original extension.

* A potential unwanted side effect may be that `*.info.json` files are renamed to only `*.json` -- though it sounds like you don't have info JSON files for any of the videos you want renamed

* **IMPORTANT**: The script also assumes you don't have multiple videos with the same youtube ID **and** same file extension (e.g. `abc12345efg-720p.mp4` and `abc12345efg-1080p.mp4`). If you do, running this script would result in all but one of those versions being overwritten.

Edit the commented lines as necessary:
#!/usr/bin/env bash

outtmpl="%(upload_date)s-%(id)s-%(title)s.%(ext)s"  # adjust to your desired output template
archive="/path/to/archive/downloaded.txt"  # replace with actual archive file path
download_path="/path/to/downloads/folder"  # replace with actual directory path

pattern='^youtube(:\w+)?\s([A-Za-z0-9_-]{10}[AEIMQUYcgkosw048])$'
downloads=("${download_path}/"*)
while read -r input; do
    [[ "${input}" =~ ${pattern} ]] || continue
    input_id="${BASH_REMATCH[2]}"
    filename=$(yt-dlp -o "${outtmpl}" --get-filename -- "${input_id}")
    [[ "${filename}" =~ ${input_id} ]] || { echo "${input}" >> "retry_archive.txt"; continue; }
    for download in "${downloads[@]}"; do
        [[ "${download}" =~ ${input_id} && -f "${download}" ]] || continue
        final_path="${download_path}/${filename%.*}.${download/#*.}"
        [[ "${download}" == "${final_path}" ]] && continue
        mv -- "${download}" "${final_path}" || break 2
    done
done < "${archive}"

This is exactly what I had in mind. Should I close the issue since my problem is solved or leave it open for the benefit of windows/mac users?

It's worth mentioning that the bash script silently failed to change the filenames when I had these options in my ~/.config/yt-dlp/config file
#--cookies /home/me/.config/yt-dlp/cookies.txt
#--download-archive downloaded.txt
#-o "%(upload_date)s-%(title).96s-[%(id)s].%(ext)s"

I'm pretty sure only the output line caused trouble since retry_archive.txt was populated appropiately

It's worth mentioning that the bash script silently failed to change the filenames when I had these options in my ~/.config/yt-dlp/config file

The --download-archive arg in your config was what caused the trouble. This was an oversight on my part, I should've added --no-download-archive to the yt-dlp command line in the script. I've edited it in my comment above.

While the question was technically out of scope, this is a frequently asked question - so I have pinned it. If anyone has better/alternate scripts for automating this, feel free to continue posting them here

I wrote a bash script to rename Twitch VODs previously downloaded by yt-dlp and use a new output template. It doesn't require an archive.txt, instead it gets all its information from the existing files.
It's cluttered with features specific to my use-case and it assumes a plex-friendly media library layout but it might be a helpful starting place for someone. It also does timezone conversion from Unix epoch timestamp to localized ISO-8601, which I needed for something else.
https://gist.github.com/rileywbaker/d58dec09e43027d26b95d2a219953a54


Single and Double Clicks Both Trigger if Timing Is Right

Checklist:

[X] I updated to the latest version available
[X] I cleared the cache of my browser

Release with the issue:
v1.4.3
Last working release (if known):
NA
Browser and Operating System:
Windows 11 / Brave, Android / HA app

Description of problem:
If your timing is right, you can trigger both a single and a double click on the touchpad. It should always be one or  the other.

Javascript errors shown in the web inspector (if applicable):

Additional information:
Current single click fire delay when double click is enabled is 200ms. I need to find out what the double click detection delay is for most web browsers (I think it's 500ms?) and see if it can be changed to 200ms. Otherwise I'll have to make the single click delay even longer when double click is enabled.

Fixed in v1.4.4 (I hope).


Remove FunctionScheduler

Since epoch has an arbitrary meaning for PyTorch's schedulers, I believe we don't need the hacky FunctionScheduler if we want to do epoch-based LR changes. Simply step() the scheduler only when an epoch ends.

Fixed in 8b3dbe8


How to run the LM to get the perplexity of indenpendant sentences

Hi,
I'm trying to use the pretrained LM to score a set of independent sentences. I have written the sentences each on a separate line in my test_file.txt which I then binarize using the preprocess.py like this:
python preprocess.py --only-source --testpref data-bin/test/test_file.txt --destdir data-bin/test/--srcdict models/wiki103_fconv_lm/dict.txt
I then pass it through the trained LM:
python eval_lm.py data-bin/test --path '../../fairseq/models/wiki103_fconv_lm/wiki103.pt' --output-word-probs
I notice that the sentences are seen as a consecutive piece of text and not as independent. For example, same sentence will get different scores the second time.
Could you please tell me how can I do to get the perplexities for parallel test data points?
Also, I would like to get conditional perplexities, for example of sentence 2 given sentence 1. I know the index where sentence 2 starts, called it i. I tried using the flag --output-word-probs and manually computed the perplexity taking into account only the words starting from index i. Is there an easier way to do this?
Cheers,
Oana

did you get the solution? I meet the same problem now

I didn't get a solution (besides writing a script that launches the fairseq LM from scratch for each datapoint, i.e. slow) and I moved to another LM for this reason. Would be great to have a solution to this :)

@OanaMariaCamburu  Can you kindly let us know which LM are you using for this and how ?
Thanks :)

@OanaMariaCamburu

I notice that the sentences are seen as a consecutive piece of text and not as independent. For example, same sentence will get different scores the second time.

Use the --sample-break-mode eos option with eval_lm. This ensures that individual sentences are converted into independent samples.

Could you help me with getting the perplexity of a single sentence for the pretrained language model?


[ Algolia's docSearch ] Responsive

Hi,
Lucas Bonomi here, from www.algolia.com
I noticed your implementation of docsearch isn't fully responsive,
Do you need some help to make it perfect :) ?
Cheers!

@LukyVj That would be excellent. @tysongach has been working on some other responsive changes recently that might impact this on: https://github.com/middleman/middlemanapp.com

Hi @LukyVj!
Yes, having the search be responsive would be fantastic. It’s been on my to-do list 😉
I’ve found the current code implementation to be a bit cumbersome and confusing and was hoping to tidy that up while we’re at it. Altogether, the Sass for the search alone is nearly 750 lines of code 👻  Are these styles coming from somewhere, or are they written custom for middlemanapp.com?

Ah, according to the docsearch readme, it appears we dumped in the Sass source so we could customize it.

I’ve found the current code implementation to be a bit cumbersome and confusing and was hoping to tidy that up while we’re at it.

I agree, this version's css is a bit overkilled, we plan to do a release in some time, with better css and better everything.
Meanwhile, I would be glad helping you making it perfect.
Most of the styles are coming from This file
Which is kind of mandatory, that being said, you can customize it easily, if you ever need help, just summon me!


[Markdown] Update hyperlinks to point to contributor stats.

Current Behavior

Desired Behavior
Update the hyperlink for each contributor badge to point to the //graphs/contributors

Contributor Guide

Can i work on this issue?

Go ahead @monalisha31


Random Extra Reach Bug

Ive found a bug where randomly in some rounds people will suddenly get extra reach and will be able to grab/interact with items thru walls/windows/anything solid. At first I thought it was only windows but the last round i also discovered it works with anything but I couldn't finish testing since or screenshot it since my insides became outsides because of a admin and since its random I haven't gotten it since but if it does happen again ill make sure to take screenshot and do further testing to see if I can make it not random it might happen because of certain things happing like having a certain item but currently because it is random I can figure out what causes it to happen but for now I'm putting it out there that there is a random extra reach bug and it can be used to easily break the game like using the chem machines and hops computer etc I was hoping there was a way to report this bug without anyone else being able to see it because its easily gotten you got to be lucky and get the bug to happen but idk what causes it since its random
Anyways I hope this helps also I hope I don't get banned for trying to help by finding bugs and figuring out how they work.

Yeah formatting a bit would be nicer but to actually answer some questions:

The issue is already described in #5119
The randomness is because the station starts with some random initial rotation, and this can happen at multiples of ~45 degrees.
We don't really have a place to privately report bugs. If something is really bad / game breaking I guess use discord DMs?
IMO testing/reproducing (non-disruptive) bugs on servers is fine as long  as you don't actively exploit them. Obviously local servers or empty/sandbox servers would be better.

Also yeah response is a bit late, I think your issue just got buried, thanks for trying to help.


selfdestruction if irc can't connect

Describe the bug
matterbridge quits terminates itself if connection a single irc can't connect.  #1486
matterbridge-1.22.3
Screenshots/debug logs
[0075] ERROR irc:          [doConnect:bridge/irc/irc.go:189] disconnect: error: EOF
[0075] FATAL main:         [main:matterbridge.go:68] Starting gateway failed: Bridge irc.1 failed to start: connection failed EOF

Environment (please complete the following information):

OS: x64
Matterbridge version: output of  matterbridge -version version: 1.22.3 e45bbe45

See https://github.com/42wim/matterbridge/wiki/Settings#ignorefailureonstart

I read the configuration documentation previously to opening the issue.
Ignoring the gateway for connection issues is no solution for this issue, it should reconnect instead.
If I need restart mb for a single connection failure it gets really spammy on for all the other already established connections that need to be closed for no reason.


Unify principal type

Surprisingly, this works out of the box, according to the existing test suite
Relates to #211 #213

Please follow the steps in the contributors section here: https://github.com/demergent-labs/azle#contributing

I'll be very surprised if these tests pass, because Boa doesn't have class support yet. If it doesn't pass I think I'd like to close this issue and implement this later on when I add the version of boa with class support.
I am really trying to keep contributions contained to good first issues and help wanted for now.

So I think I know what's going on here, import type { Principal } from '@dfinity/principal'; is just importing a type declaration, which is compiled away. None of the runtime code has been affected. Does that sound correct to you? I'm pretty sure this is more involved, and I'd preferred Demergent Labs to just take it over from here.

If you're interested in working on this in a bit once Azle is ready let me know, I can prepare an issue with the necessary information once the time comes.


pod from different host can not communicate

I started flanneld service and get a interface flannel.1 I set flannel network by etcd is {"network": "<IP_ADDRESS>/16", "subnetlen":24, "backend":{"type":"vxlan"}} but I use ifconfig to see the interfaces get flannel.1‘s netmask is  netmask <IP_ADDRESS>
I wonder why the netmask is not <IP_ADDRESS>
I think beacuse of this my pod from different host can not communicate.
My flannel version is 0.7.1

after I run this ：iptables -I -s <IP_ADDRESS>/16 FORWARD -j ACCEPT，It work fine


set current date via mach-nix # date is 01.01.1980

How to give mn-python the current date (of the main OS)?
like:
nix-shell --run "unset SOURCE_DATE_EPOCH; "

You don't.
The dates are fixed to 1970/1980 to allow bit wise reproducibility.

I know that dates are issues for reproducibility
never the less after building the mn py env the OS-date should be recognized

I'm not 100% certain what it is that you're doing.
For me 'nix-shell' leaves SOURCE_DATE_EPOCH set,
while 'nix shell'  doesn't.
Either way, that's not mach-nix' doing.

looks to be a nixos issue
https://discourse.nixos.org/t/date-time-changes-between-nixos-bash-shell-and-dolphin-shell-tex-compilation-today-vs-01-jan-1980/22183


module to find representative papers using predictive analytics

https://github.com/ctuning/ck/wiki/Advanced_usage_auto_paper

Moved to ck-analytics repo: https://github.com/ctuning/ck-analytics/issues/2


[BUG]: multiple relations in with operator returns too many rows

What version of drizzle-orm are you using?
0.26.0
What version of drizzle-kit are you using?
0.18/0
Describe the Bug
Using the schema below and a query with multiple relations in the with operator seems to explode the amount of rows in each relation:
db.query.tenant.findFirst({
    where: eq(tenant.id, '...'),
    with: {
      users: true,
      projects: true
    }
  });

Schema:
// schema.ts
import { InferModel, relations } from 'drizzle-orm';
import { date, integer, pgTable, text, timestamp, uuid} from 'drizzle-orm/pg-core';

// Tenant
export const tenant = pgTable('tenant', {
  id: uuid('id').primaryKey().notNull().defaultRandom(),
  name: text('name').notNull(),
});

export const tenantRelations = relations(tenant, ({ many }) => ({
  projects: many(project),
  users: many(user),
}));

// Project
export const project = pgTable('project', {
  id: uuid('id').primaryKey().notNull().defaultRandom(),
  tenant_id: uuid('tenant_id').notNull().references(() => tenant.id),
});

export const projectRelations = relations(project, ({ one }) => ({
  tenant: one(tenant, { fields: [project.tenant_id], references: [tenant.id] }),
}));

// User
export const user = pgTable('user', {
  id: uuid('id').primaryKey().notNull().defaultRandom(),
  tenant_id: uuid('tenant_id').notNull().references(() => tenant.id),
});

export const userRelations = relations(user, ({ one }) => ({
  tenant: one(user, { fields: [user.tenant_id], references: [tenant.id] }),
}));

### Expected behavior

_No response_

### Environment & setup

_No response_

Could you elaborate? What does "explode the amount of rows" mean? What's the expected and actual behavior?

I'm also getting this issue. I've posted in the discord, but here's my schema: https://gist.github.com/kylewardnz/37104f989807e96555ea856294a2b670
In the database, I have 1 artist, then 2 members linked to the artist via pivot table, and 1 album.
This is simplified but what I'm expecting is a structure like so:
{
  "id": 1,
  "name": "Artist 1",
  "members": [
    {
      "id": 1,
      "artistId": 1,
      "memberId": 1,
      "member": {
        "id": 1,
        "name": "Member 1"
      }
    },
    {
      "id": 2,
      "artistId": 1,
      "memberId": 2,
      "member": {
        "id": 2,
        "name": "Member 2"
      }
    }
  ],
  "albums": [
    {
      "id": 1,
      "name": "Album 1"
    }
  ]
}

With this query here...
await db.query.artists.findFirst({
  where: (artists, { eq }) => eq(artists.id, 1),
  with: {
    albums: true,
    members: {
      with: {
        member: true,
      }
    },
  },
})

...I'm getting a result like so:
{
  "id": 1,
  "name": "Artist 1",
  "members": [
    {
      "id": 1,
      "artistId": 1,
      "memberId": 1,
      "member": {
        "id": 1,
        "name": "Member 1"
      }
    },
    {
      "id": 2,
      "artistId": 1,
      "memberId": 2,
      "member": {
        "id": 2,
        "name": "Member 2"
      }
    }
  ],
  "albums": [
    {
      "id": 1,
      "name": "Album 1"
    },
    {
      "id": 1,
      "name": "Album 1"
    }
  ]
}

If I create a new member and link it to the artist, a third copy of the album with id=1 appears in the albums array.
If I remove the members relation from the with object, then only one album is returned, as expected.
The inverse also happens. If I have albums 1 & 2 but only member 1, then two copies of member 1 appear in the members array.

Thanks a lot for the detailed example!

@twobit @kylewardnz check out drizzle-orm@beta, should be fixed there.

Thanks @dankochetov, was the beta branch published? I'm not seeing the change has landed yet

A quick test on the query I described seems to work properly now, will test a bit more thoroughly later this evening. Thanks @dankochetov!

Thanks @dankochetov, was the beta branch published? I'm not seeing the change has landed yet

it's published as drizzle-orm@beta

Ran into this bug yesterday while fully migrating one of my side projects from Prisma. Just tested the beta, and the query that was giving me problems now works flawlessly.
The devil works hard, but the drizzle team works harder 🫡

@dankochetov looks like I also needed to upgrade drizzle-zod@beta, I was getting an old version in my nom dependency tree despite updating to drizzle-orm@beta. The fix looks good! Thank you

I think this change broke another functionality. This example which previously worked is now broken:
const result = await drizzle.query.asset.findMany({
  with: {
    userAssetDrop: {
      columns: {},
      where: (table) => and(eq(table.userId, input.userId)),
    },
    talent: {
      columns: { id: true, username: true },
    },
  },
  where: (table) => sql`json_array_length(${table.userAssetDrop}) > 0`,
});

I'm getting the error: function json_array_length(text) does not exist
As soon as I remove the talent, it starts working gain. Also worked previously with drizzle 0.26.0

fyi, created a new issue: https://github.com/drizzle-team/drizzle-orm/issues/686


Rework Main class. Add Spring Boot test. Introduce Configuration class.

@cyberalexander  need to pull this request to master.

Implemented


'train'-folder does not exists - fails to run on Windows 10

you need to create the output folder (or add it manually with a .gitkeep-file) or it fails with: "out/summary\my_experiment\train; No such file or directory"

This was actually a bug which occurred because we hardcoded the default path to out/summary which works find for Mac and Linux but on Windows this is not a valid path.
It is fixed now. The directories should be created automatically if they do not exist.


Fixed a few typos and punctuation.

Thank You so much for contribution

Thank you so much for your contribution!


Where is the documentation for "Widows defender" chrome extension?

I would like to see test the extension thoroughly before using it. I would like to know if there is a web API which I can use to get the results.

I wanted to test the Windows DefenderBrowser Protection extension given by Microsoft for Google Chrome. The extension provides a facility to know if the website you are visiting is malicious or not.  I wanted to know if there is an API by using which I can know if a particular website is malicious or not. I wanted to test the extension on a big set of urls.

@nitin-kau I don't believe the team has made any documentation available for that tool, and there are no public announcements about the API.


(Puppetfile) bump version of ccs_software to 2.2.1

This just adds wget as a required package.

The ccs_software module has not yet been tagged at version 2.2.1.
Opening this pull request as a reminder.


frescobaldi: 3.1.3 -> 3.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for frescobaldi is: "A LilyPond sheet music text editor"
meta.homepage for frescobaldi is: "https://frescobaldi.org/"
meta.changelog for frescobaldi is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.2 with grep in /nix/store/yvf4fyn0nfw41868cdilb75g6nksx6v7-frescobaldi-3.2
found 3.2 in filename of file in /nix/store/yvf4fyn0nfw41868cdilb75g6nksx6v7-frescobaldi-3.2

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
frescobaldi

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/yvf4fyn0nfw41868cdilb75g6nksx6v7-frescobaldi-3.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A frescobaldi https://github.com/r-ryantm/nixpkgs/archive/4bb29df8428130372c34c9184b467ed8a4138eaa.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/yvf4fyn0nfw41868cdilb75g6nksx6v7-frescobaldi-3.2
ls -la /nix/store/yvf4fyn0nfw41868cdilb75g6nksx6v7-frescobaldi-3.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

frescobaldi

Maintainer pings
cc @sepi for testing.

Running it fails for me :(
Frescobaldi can't find the 'qpageview' module. This module is required for the Music View and other viewers inside Frescobaldi, and can be downloaded from http://github.com/frescobaldi/qpageview.

Unfortunately, Frescobaldi cannot run without it.


Update OvalBuilder.java

For those following along at home, there was concern that maybe the JVM was being stupid and creating instances of the lambda for no reason.  This change makes sure the JVM doesn't do anything like that.


Format code using 'cargo fmt'

Thanks! I am truly terrible at remembering to configure this for my Rust projects.


message-type: Add support for "direct" as value for type parameter.

For endpoints with a type parameter to indicate whether the message is a stream or direct  message, POST /typing and POST /messages, adds support for passing "direct" as a value for direct messages.
Maintains support for "private" as a deprecated alias for direct messages.
Fixes https://github.com/zulip/zulip/issues/24960.

Notes:

For the Usage examples in the POST /messages documentation:

Comments now use 'direct messages' or 'DMs'
Updated the curl and javascript examples
Did not update the python example for "direct". I wasn't sure if we wanted to update that in tandem with an update to zulip-python-api; see question below.

I added the validation check for the type parameter that was in POST /typing to also be in POST /messages.
I did the refactor in the prep commit because any follow-up changes we do can be a bit clearer in that all instances of message_type_name now refer to these parameters passed to the view functions from clients. See git-grep below.

for POST /messages, we use "private" for the message_type string that's then used for the various function calls.
for POST /typing, we use "direct" for the default and updated message_type string.

Updates these two API endpoint documentation pages to use "direct messages" or "DMs" and also added links to relevant help center documentation.

git-grep of `message_type_name` after changes
$ git grep message_type_name
zerver/tests/test_message_send.py:        message_type_name = ["direct", "private"]
zerver/tests/test_message_send.py:        for message_type in message_type_name:
zerver/tests/test_message_send.py:        message_type_name = ["direct", "private"]
zerver/tests/test_message_send.py:        for message_type in message_type_name:
zerver/tests/test_typing.py:        message_type_name = ["direct", "private"]
zerver/tests/test_typing.py:        for message_type in message_type_name:
zerver/views/message_send.py:    message_type_name: str = REQ("type", str_validator=check_string_in(VALID_MESSAGE_TYPES)),
zerver/views/message_send.py:    message_type = message_type_name
zerver/views/typing.py:    message_type_name: str = REQ(
zerver/views/typing.py:    message_type = message_type_name

Questions:

In the Changes notes, I stated that "private" would be removed in a future release, but I wasn't sure if that's the case?
I added some TODO notes where message_type is set in both view functions, but these might not be something we plan on doing?
Again, as noted above, we'll likely want to update the zulip-python-api?

Screenshots and screen captures:

API changelog update

Send a message
Current documentation

Main endpoint description and usage examples

Parameters and response

Set typing status
Current documentation

Main endpoint description

Usage examples

Parameters and response

---

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Did not update the python example for "direct". I wasn't sure if we wanted to update that in tandem with an update to zulip-python-api; see question below.

Yeah, we should do that after doing a python-zulip-api release to support "direct" and auto-translate it to "private" for older servers.

Updates:

Addressed review feedback above.
Added one more prep commit for the refactor from using message_type_name or message_type to using recipient_type_name (where possible) for an instance where recipient_type was more appropriate.
For the Changes note in POST /typing, I didn't include the second sentence about clients needing to use the modern convention because the default value changed from "private" to "direct", so I imagine most clients won't need to do anything and can keep using the default.

Notes:

Follow-up when this is merged will be filing the zulip-python-api issue.

Screenshots:
Note that these are focused on areas that were changed due to review feedback.

API changelog feature level note

Send a message

Set typing status

I didn't include the second sentence about clients needing to use the modern convention because the default value changed from "private" to "direct", so I imagine most clients won't need to do anything and can keep using the default.

Sounds good -- we actually haven't finished implementing typing notifications for stream messages in the web frontend yet.

Merged, huge thanks for doing this migration @laurynmm!


build failed with build_all_android.sh as "make: *** No rule to make target '/tensorflow/contrib/makefile/downloads/eigen/unsupported/Eigen/CXX1', needed by '/home/jason/workspace/algo/tf/tensorflow/tensorflow/contrib/makefile/gen/obj/android_armeabi-v7a/tensorflow/core/kernels/cast_op_impl_bool.o'.  Stop. make: *** Waiting for unfinished jobs....

Hi Guys,
I need to generate tensorflow static library for 32bit or 64 bit Arm for qsee platform. This is my first time to use tensorflow. I am trying to use "./tensorflow/contrib/makefile/build_all_android.sh " to generate such static library. Unfortunetly, it build failed.
Below are the information I am using, and problem are also described. Do you have any idea about it. Appreciated very much ^ ^.
System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04.1 LTS
TensorFlow installed from (source or binary): source
TensorFlow version: r1.5
Python version: Python 2.7.17
Installed using virtualenv? pip? conda?:
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source): android-ndk-r12b

Describe the problem
Can not build successful with script build_all_android.sh
Provide the exact sequence of commands / steps that you executed before running into the problem
build command used: ./tensorflow/contrib/makefile/build_all_android.sh
Any other info / logs
make: *** No rule to make target '/home/jason/workspace/algo/tf/tensorflow/tensorflow/contrib/makefile/downloads/eigen/unsupported/Eigen/CXX1', needed by '/home/jason/workspace/algo/tf/tensorflow/tensorflow/contrib/makefile/gen/obj/android_armeabi-v7a/tensorflow/core/kernels/cast_op_impl_bool.o'.  Stop.
make: *** Waiting for unfinished jobs....

Hi guys,
Is there any other way that can generate static libraryy tensoflowlite.a. ^ ^. or someone can share the experience of it. I've been trying many ways such as bazel build, still meet many errors.
should the tensorflow version be consistent with bazel version or android NDK version or GCC version? ^^

Please, check these.
https://www.tensorflow.org/lite/guide/build_rpi
https://www.tensorflow.org/lite/guide/build_arm64
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/tools/make


Feature: PyPi Prep

This all the bits need for releasing to PyPi.
Project has already need registered to the thisissoon PyPi account with @krak3n / @radeklos / @peeklondon as maintainers.
The version has to be loaded from a file otherwise setup.py fails.

@peeklondon / @radeklos pwease :wink:

:+1:


Are useClockValue and useComputedValue gone?

Description
I've just updated from version 0.1.225 to 0.1.231 and now I get these errors when using useClockValue and useComputedValue. What is going on here?
Module '"@shopify/react-native-skia"' has no exported member 'useClockValue'.ts(2305)
Module '"@shopify/react-native-skia"' has no exported member 'useComputedValue'.ts(2305)

Version
0.1.231
Steps to reproduce
Try to import either of these methods.
Snack, code example, screenshot, or link to a repository
import { useClockValue, useComputedValue } from '@shopify/react-native-skia'

yes this is correct, we updated the documentation for it at https://shopify.github.io/react-native-skia/docs/animations/animations
For useClockValue, we provide a useClock hook: https://shopify.github.io/react-native-skia/docs/animations/hooks/#useclock
And  useComputedValue can be replaced with useDerivedValue from Reanimated.
If you want to use a version of Skia that just throws a warning for these (so you can ease the migration process), you can use 0.1.227.
Here you can see how we migrated our examples to Reanimated so you can look at the diff if you want to see how to migrate: https://github.com/Shopify/react-native-skia/pull/1867/files#diff-8bd0406e04c512e9efe8354f41ac16e42a1b3a5873409c7bb30ea64d56bd5e41
We provide more context on why we've made the deprecation at https://github.com/Shopify/react-native-skia/discussions/2083
We hope you can migrate nicely. Happy Hacking!

@wcandillon
How can I workletize the interpolate function from flubber?


SearchService does not set preference in Do

Please use the following questions as a guideline to help me answer
your issue/question without further inquiry. Thank you.
Which version of Elastic are you using?
[x] elastic.v2 (for Elasticsearch 1.x)
Please describe the expected behavior
SearchService (in search.go) should set the preference params
Please describe the actual behavior
This code below is in Do() however it doesn't set the preference string.
	// Parameters
	params := make(url.Values)
	if s.pretty {
		params.Set("pretty", fmt.Sprintf("%v", s.pretty))
	}
	if s.searchType != "" {
		params.Set("search_type", s.searchType)
	}
	if s.routing != "" {
		params.Set("routing", s.routing)
	}
	if s.ignoreUnavailable != nil {
		params.Set("ignore_unavailable", fmt.Sprintf("%v", *s.ignoreUnavailable))
	}
	if s.allowNoIndices != nil {
		params.Set("allow_no_indices", fmt.Sprintf("%v", *s.allowNoIndices))
	}
	if s.expandWildcards != "" {
		params.Set("expand_wildcards", s.expandWildcards)
	}

Although we are able to set it:
type SearchService struct {
	client            *Client
	searchSource      *SearchSource
	source            interface{}
	pretty            bool
	searchType        string
	indices           []string
	queryHint         string
	routing           string
	preference        string <------------------
	types             []string
	ignoreUnavailable *bool
	allowNoIndices    *bool
	expandWildcards   string
}

I am expected to see something like this in Do()
	if s.preferemce != "" {
		params.Set("_preference", s.preference)
	}

Any steps to reproduce the behavior?
See above

Yep. That looks like a bug. I'll fix this in the next release.

Wait a second. Isn't is already there?
https://github.com/olivere/elastic/blob/release-branch.v2/search.go#L357

Double-checked. It's already there. Update your client.


-- buttonlayout: metatag

For specifying how joystic buttons are laid out. Proposed values:
default - the normal layout (it will be assumed for the carts without the tag)
snes - similar to default, but a/b/x/y are laid out as they are on a snes controller
nes - standard NES layout. X/Y buttons are smaller and act as start/select respectively.
fakenes similar to NES layout but a is before b.
This would make it customizable - in some games having a layout with start/select makes more sense than having arrows+abxy.

users can redefine gamepad buttons directly from the game menu
closing

You misunderstood me. I meant visual layout on the touchscreen. Not keys associated with it., Please reopen it.

yes, I misunderstood you, sorry
so, I don't want to add it to the metatags, but can add to the config
something like
GAMEPAD=
{
	POS=
	{
		UP={1,0},
		DOWN={1,2},
		LEFT={0,1},
		RIGHT={2,1},
		A={4,0},
		B={4,2},
		X={3,1},
		Y={5,1},
	},

	...
},

you can cpecify position of touch buttons as you wish

No, that should be on per-game basis as some games work better with certain layout that other. So you're designing the game and the gamepad it'd be played on, basically. Think of it like "special" controllers bundled with some games - the signals are basically the same (otherwise you couldn't even try playing Dark Souls on Guitar Hero controller or a DDR mat ;)), but positioning of the buttons are different.

it can be per game if I embed config to the exported game

What if player is loading the game via android app and (in future) surf?

we will use settings from the local config then

You can use key() api to handle the keyboard now.
Closing,,,


Run on arm64?

What is your question?
Could the windows nano server image possibly run on arm64, specifically on a raspberry pi 4?

We don't support running Windows containers on ARM64 at this time.  It is something we are considering, but I don't have a timeline I can share with you.
Windows 10 IoT Core supports Raspberry Pi, in case that is useful to you:
https://learn.microsoft.com/en-us/windows/iot-core/tutorials/rpi


Refactor built-in plans to use contingency_wrapper

The contingency_wrapper is better than the finalize_wrapper because the "final plan" takes in the exception that was raised as the argument, which allows the clean up to target specific failure modes if desired.
Even where that capability isn't used, it would be an improvement I think to model using contingency_wrapper in our code so that users can easily discover it and find examples of its use.

Reviewers: @danielballan @tacaswell

should mark finalize_plan as deprecated?
docs/tutorial.rst tells the user to use finalize_wrapper, should that be changed?
@danielballan

files that mention finalize_wrapper

preprocessors.py
/tests/test_generators.py - testing specifically the function itself
/tests/test_new_examples.py - also in test_finalize
/tests/test_run_engine.py - the most clear location where it might be replaced

When I'm looking atthe plan_patterns.py I do not see any wrappers.
OTOH, plan_stubs.py contains references to wrappers, and those used there are: rewindable, contingency and relative_set.
I am not sure where the change is to be made.

I'm weakly against deprecating it.  In cases where you only want to do cleanup the simpler signature is nice.
I'm also sure we have some usage on the floor at facilities who have already deployed bluesky and the disruption of deprecating this does not seem worth the marginal gain of getting rid of name in the namespace.
On the other hand "pause for debug" was a bad idea (I think I wrote it).
Maybe we should only purge it from the narrative docs?

Not seeing any current use of finalize_wrapper, finalize_plan, or contingency_wrapper  in our standard kit.  An APS beam line might be using any of these, but not likely.

should the issue be closed as not needed then?
@danielballan  @prjemian

The action for this issue might be to ensure the documentation for the various affected code contains the recommendation in the initial statement here:

The contingency_wrapper is better than the finalize_wrapper ...

@stan-dot -- Thanks for picking this one up!

no worries!

so far only the tutorial.rst got modified with the menion, I'm happy to merge as is unless more places need the change


Fix media indicator icons

Fixes https://github.com/smartdevicelink/sdl_hmi/issues/519
This PR is ready for review.
Testing Plan
Precondition:

SDL and HMI are started
App1 and App2 with HMI type 'Media' are registered
App1 is activated
App1 sends SetMediaClockTimer RPC with:
"updateMode":"COUNTUP",
"startTime": { "hours":0, "minutes":15, "seconds":30 },
"backSeekIndicator": {"seekTime":30,"type":"TIME" },
"forwardSeekIndicator": { "seekTime":30,"type":"TIME"}
The seek indicators are "TIME" for App1
'SEEKLEFT' button with "ico_seek_left.png" image is observed on HMI
'SEEKRIGHT' button with "ico_seek_right.png" image is observed on HMI

Steps to reproduce:

Activate App2

Expected result:

App2 is activated successfully
By default the seek indicators are "TRACK":
SEEKLEFT' button with "ico_prew.png" image is observed on HMI for App2
'SEEKRIGHT' button with "Ico_next.png" image is observed on HMI for App2

Summary
The issues is observed while working with multiple media applications registered. Once media indicators are changed for one application, second application shows also changed indicators instead of their own.
To resolve that, propery binding was changed to active model which triggers callbacks properly and allows to display the correct seek indicators for each media application.
CLA

[x] I have signed the CLA

verification passed. moved to smartDeviceLink


Fix: removed deprecated second param in forge's createTable() method

According to the docs,

The method Forge::createTable() no longer executes a CREATE TABLE IF NOT EXISTS. If table is not found in $db->tableExists($table) then CREATE TABLE is executed.
The second parameter $ifNotExists of Forge::_createTable() is deprecated. It is no longer used and will be removed in a future release.

And since shield has been updated to ^4.2.3, I think this should be followed.

The method Forge::createTable() no longer executes a CREATE TABLE IF NOT EXISTS. If table is not found in $db->tableExists($table) then CREATE TABLE is executed.

Ah, this may be misleading.

The method Forge::createTable() no longer executes a CREATE TABLE IF NOT EXISTS.

True.

If table is not found in $db->tableExists($table) then CREATE TABLE is executed.

This is when $ifNotExists is true.
When $ifNotExists is false (by default), CREATE TABLE is always executed.

Thanks @sammyskills!


implement recommend_count_gt and recommend_count_lt in articles

remove unused fields RecommendCountLessThan and RecommendCountGreaterThan

👏 解決掉的 issue / Resolved Issues

close #279

⛏ 變更內容 / Details of Changes

在 /v1/boards/{{board_id}}/articles 加入 recommend_count_gt 與 recommend_count_lt 選項
新增 delivery.getBoardArticles 函數的自動測試

Codecov Report

Merging #290 (f13d1e5) into development (3e17e31) will increase coverage by 2.53%.
The diff coverage is 87.87%.

@@               Coverage Diff               @@
##           development     #290      +/-   ##
===============================================
+ Coverage        44.04%   46.57%   +2.53%
===============================================
  Files               29       29
  Lines             1712     1765      +53
===============================================
+ Hits               754      822      +68
+ Misses             848      829      -19
- Partials           110      114       +4

Impacted Files
Coverage Δ

internal/usecase/board.go
33.33% <ø> (ø)

internal/delivery/http/route_boards_articles.go
72.22% <86.88%> (+29.91%)
:arrow_up:

internal/delivery/http/errors.go
40.38% <100.00%> (+16.98%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3e17e31...f13d1e5. Read the comment docs.

@PichuChen @nickyanggg 請幫忙 review

LGTM

因為之前的寫法（使用匿名函數）似乎可讀性較差，所以將其整個重寫成可復用的結構（URLValuesParser）
還請各位幫我看看這樣是不是更好閱讀了

usecase 的地方要改，然後我看重寫的部份沒啥問題

usecase 的地方要改，然後我看重寫的部份沒啥問題

已修正


Add RunInEditor Toggle

WAT currently runs in the game context for easier debugging but we could probably run tests faster if we add a toggle to run them directly in the editor which should hopefully make it faster.

Could we add the runner itself in a separate thread too?

Could we add the runner itself in a separate thread too?

Run In Editor Toggle added.

Run In Editor Toggle added.


emacs(eglot) - Runtime for folder failed to initialize

emacs 29.1 with stock eglot
FYI, epmd is running, though I have no idea how that would affect anything since I think eglot forks and communicates over stdio.
Several sqlite db's have been created but they are empty:
$ find .
.
./.elixir-tools
./.elixir-tools/.gitignore
./.elixir-tools/nextls.db
./README.md
./mix.exs
./.formatter.exs
./test
./test/tmpproj_test.exs
./test/test_helper.exs
./.gitignore
./lib
./lib/.elixir-tools
./lib/.elixir-tools/.gitignore
./lib/.elixir-tools/nextls.db
./lib/tmpproj.ex

Eglot events log:
[client-request] (id:1) Wed Oct  4 12:41:14 2023:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
          (:processId 10401 :clientInfo
           (:name "Eglot")
           :rootPath "/tmp/tmpproj/" :rootUri "file:///tmp/tmpproj" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
                                                                                ())
           :capabilities
           (:workspace
            (:applyEdit t :executeCommand
             (:dynamicRegistration :json-false)
             :workspaceEdit
             (:documentChanges t)
             :didChangeWatchedFiles
             (:dynamicRegistration t)
             :symbol
             (:dynamicRegistration :json-false)
             :configuration t :workspaceFolders t)
            :textDocument
            (:synchronization
             (:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
             :completion
             (:dynamicRegistration :json-false :completionItem
                                   (:snippetSupport t :deprecatedSupport t :resolveSupport
                                    (:properties
                                     ["documentation" "details" "additionalTextEdits"])
                                    :tagSupport
                                    (:valueSet
                                     [1]))
                                   :contextSupport t)
             :hover
             (:dynamicRegistration :json-false :contentFormat
                                   ["markdown" "plaintext"])
             :signatureHelp
             (:dynamicRegistration :json-false :signatureInformation
                                   (:parameterInformation
                                    (:labelOffsetSupport t)
                                    :documentationFormat
                                    ["markdown" "plaintext"]
                                    :activeParameterSupport t))
             :references
             (:dynamicRegistration :json-false)
             :definition
             (:dynamicRegistration :json-false :linkSupport t)
             :declaration
             (:dynamicRegistration :json-false :linkSupport t)
             :implementation
             (:dynamicRegistration :json-false :linkSupport t)
             :typeDefinition
             (:dynamicRegistration :json-false :linkSupport t)
             :documentSymbol
             (:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
                                   (:valueSet
                                    [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
             :documentHighlight
             (:dynamicRegistration :json-false)
             :codeAction
             (:dynamicRegistration :json-false :resolveSupport
              (:properties
               ["edit" "command"])
              :dataSupport t :codeActionLiteralSupport
              (:codeActionKind
               (:valueSet
                ["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
              :isPreferredSupport t)
             :formatting
             (:dynamicRegistration :json-false)
             :rangeFormatting
             (:dynamicRegistration :json-false)
             :rename
             (:dynamicRegistration :json-false)
             :inlayHint
             (:dynamicRegistration :json-false)
             :publishDiagnostics
             (:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
                                  (:valueSet
                                   [1 2])))
            :window
            (:showDocument
             (:support t)
             :workDoneProgress t)
            :general
            (:positionEncodings
             ["utf-32" "utf-8" "utf-16"])
            :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
                                        ()))
           :workspaceFolders
           [(:uri "file:///tmp/tmpproj" :name "/tmp/tmpproj/")]))
[server-reply] (id:1) Wed Oct  4 12:41:15 2023:
(:id 1 :jsonrpc "2.0" :result
     (:capabilities
      (:definitionProvider t :documentFormattingProvider t :documentSymbolProvider t :experimental nil :hoverProvider t :referencesProvider t :textDocumentSync
       (:change 1 :openClose t :save
                (:includeText t))
       :workspace
       (:workspaceFolders
        (:changeNotifications t :supported t))
       :workspaceSymbolProvider t)
      :serverInfo
      (:name "Next LS")))
[client-notification] Wed Oct  4 12:41:15 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
                                                            ()))
[client-notification] Wed Oct  4 12:41:15 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
          (:textDocument
           (:uri "file:///tmp/tmpproj/mix.exs" :version 0 :languageId "elixir" :text "defmodule Tmpproj.MixProject do\n  use Mix.Project\n\n  def project do\n    [\n      app: :tmpproj,\n      version: \"0.1.0\",\n      elixir: \"~> 1.14\",\n      start_permanent: Mix.env() == :prod,\n      deps: deps()\n    ]\n  end\n\n  # Run \"mix help compile.app\" to learn about applications.\n  def application do\n    [\n      extra_applications: [:logger]\n    ]\n  end\n\n  # Run \"mix help deps\" to learn about dependencies.\n  defp deps do\n    [\n      # {:dep_from_hexpm, \"~> 0.3.0\"},\n      # {:dep_from_git, git: \"https://github.com/elixir-lang/my_dep.git\", tag: \"0.1.0\"}\n    ]\n  end\nend\n")))
[client-notification] Wed Oct  4 12:41:15 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
          (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
                                   ())))
[server-notification] Wed Oct  4 12:41:15 2023:
(:jsonrpc "2.0" :method "window/logMessage" :params
          (:message "[NextLS] NextLS v0.13.3 has initialized!" :type 4))
[server-request] (id:36) Wed Oct  4 12:41:15 2023:
(:id 36 :jsonrpc "2.0" :method "client/registerCapability" :params
     (:registrations
      [(:id "file-watching" :method "workspace/didChangeWatchedFiles" :registerOptions
            (:watchers
             [(:globPattern "**/*.ex" :kind 7)
              (:globPattern "**/*.exs" :kind 7)
              (:globPattern "**/*.leex" :kind 7)
              (:globPattern "**/*.eex" :kind 7)
              (:globPattern "**/*.heex" :kind 7)
              (:globPattern "**/*.sface" :kind 7)]))]))
[client-reply] (id:36) Wed Oct  4 12:41:15 2023:
(:jsonrpc "2.0" :id 36 :result nil)
[server-notification] Wed Oct  4 12:41:15 2023:
(:jsonrpc "2.0" :method "window/logMessage" :params
          (:message "[NextLS] Booting runtimes..." :type 4))
[server-notification] Wed Oct  4 12:41:15 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "D2W0XXX9" :value
                  (:kind "begin" :title "Initializing NextLS runtime for folder /tmp/tmpproj/...")))
[server-notification] Wed Oct  4 12:41:15 2023:
(:jsonrpc "2.0" :method "window/logMessage" :params
          (:message "[NextLS] Beginning DB migration..." :type 4))
[server-notification] Wed Oct  4 12:41:15 2023:
(:jsonrpc "2.0" :method "window/logMessage" :params
          (:message "[NextLS] Database is on the latest version: 5" :type 3))
[server-notification] Wed Oct  4 12:41:15 2023:
(:jsonrpc "2.0" :method "window/logMessage" :params
          (:message "[NextLS] Finished DB migration..." :type 4))
[client-request] (id:2) Wed Oct  4 12:41:47 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/hover" :params
          (:textDocument
           (:uri "file:///tmp/tmpproj/mix.exs")
           :position
           (:line 17 :character 0)))
[server-reply] (id:2) Wed Oct  4 12:41:47 2023:
(:id 2 :jsonrpc "2.0" :result nil)
[server-notification] Wed Oct  4 12:43:15 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "D2W0XXX9" :value
                  (:kind "end")))
[server-notification] Wed Oct  4 12:43:15 2023:
(:jsonrpc "2.0" :method "window/logMessage" :params
          (:message "[NextLS] Runtime for folder /tmp/tmpproj/ failed to initialize" :type 1))
[client-request] (id:3) Wed Oct  4 12:45:20 2023:
(:jsonrpc "2.0" :id 3 :method "textDocument/hover" :params
          (:textDocument
           (:uri "file:///tmp/tmpproj/mix.exs")
           :position
           (:line 18 :character 0)))
[internal] (id:3) Wed Oct  4 12:45:30 2023:
(:timed-out :textDocument/hover :id 3 :params
            (:textDocument
             (:uri "file:///tmp/tmpproj/mix.exs")
             :position
             (:line 18 :character 0)))
[client-notification] Wed Oct  4 12:45:47 2023:
(:jsonrpc "2.0" :method "workspace/didChangeWatchedFiles" :params
          (:changes
           [(:uri "file:///tmp/tmpproj/lib/tmpproj.ex" :type 2)]))
[client-notification] Wed Oct  4 12:46:04 2023:
(:jsonrpc "2.0" :method "workspace/didChangeWatchedFiles" :params
          (:changes
           [(:uri "file:///tmp/tmpproj/lib/tmpproj.ex" :type 2)]))

FYI, epmd is running, though I have no idea how that would affect anything since I think eglot forks and communicates over stdio.

Next LS uses distributed erlang to connect the LSP node (next ls) with a runtime node (your project's code)
is this project a git repository? with my testing of emacs, it seemed to need it to be a git repo in order to successfully determine the root directory of your project.
that would explain why it created a .elixir-tools dir in the lib directory.

also is this GUI emacs or terminal emacs?

is this project a git repository? with my testing of emacs, it seemed to need it to be a git repo in order to successfully determine the root directory of your project.

There was no source control on the test project.

also is this GUI emacs or terminal emacs?

GUI - doom emacs with elixir-mode enabled
I don't see any flags to start next-ls in debug mode. What would the next debug steps be?

GUI - doom emacs with elixir-mode enabled

I have gotten it working with doom, but in the terminal. I suspect that elixir might not be in your path, which is why it can't start the runtime node. is it possible to open the GUI from the terminal, similar to how with VSCode or macvim you can do code . ? that usually makes sure that works.

I don't see any flags to start next-ls in debug mode. What would the next debug steps be?

generally the next steps are to start the server in TCP mode nextls --port 9000 and connecting the editor through that way. but i would attempt my previous suggestion first.

I suspect that elixir might not be in your path, which is why it can't start the runtime node.

Hmmm...elixir-ls, inf-elixir, and alchemist work properly, so other plugins can find elixir properly. And it is in $PATH afterall, so I think this is unlikely.

is it possible to open the GUI from the terminal, similar to how with VSCode or macvim you can do code . ? that usually makes sure that works.

emacs --no-window-system is what I ran with to get the following log. The client-server communication is roughly the same as before with GUI Emacs. It failed to initialize and subsequent requests start timing out. This doesn't seem to be an next-ls and emacs communication problem if I'm reading the logs correctly? In fact, on the GUI in the modeline it does display the message of failed initialization given by the following log:
[server-notification] Wed Oct  4 17:54:44 2023:
(:jsonrpc "2.0" :method "window/logMessage" :params
          (:message "[NextLS] Runtime for folder /tmp/tmpproj/ failed to initialize" :type 1))

Rest of the logs:
(:jsonrpc "2.0" :id 1 :method "initialize" :params
          (:processId 16608 :clientInfo
                      (:name "Eglot")
                      :rootPath "/tmp/tmpproj/" :rootUri "file:///tmp/tmpproj" :initializationOptions #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
                                                                                ())
                      :capabilities
                      (:workspace
                       (:applyEdit t :executeCommand
                                   (:dynamicRegistration :json-false)
                                   :workspaceEdit
                                   (:documentChanges t)
                                   :didChangeWatchedFiles
                                   (:dynamicRegistration t)
                                   :symbol
                                   (:dynamicRegistration :json-false)
                                   :configuration t :workspaceFolders t)
                       :textDocument
                       (:synchronization
                        (:dynamicRegistration :json-false :willSave t :willSaveWaitUntil t :didSave t)
                        :completion
                        (:dynamicRegistration :json-false :completionItem
                                              (:snippetSupport t :deprecatedSupport t :resolveSupport
                                                               (:properties
                                                                ["documentation" "details" "additionalTextEdits"])
                                                               :tagSupport
                                                               (:valueSet
                                                                [1]))
                                              :contextSupport t)
                        :hover
                        (:dynamicRegistration :json-false :contentFormat
                                              ["markdown" "plaintext"])
                        :signatureHelp
                        (:dynamicRegistration :json-false :signatureInformation
                                              (:parameterInformation
                                               (:labelOffsetSupport t)
                                               :documentationFormat
                                               ["markdown" "plaintext"]
                                               :activeParameterSupport t))
                        :references
                        (:dynamicRegistration :json-false)
                        :definition
                        (:dynamicRegistration :json-false :linkSupport t)
                        :declaration
                        (:dynamicRegistration :json-false :linkSupport t)
                        :implementation
                        (:dynamicRegistration :json-false :linkSupport t)
                        :typeDefinition
                        (:dynamicRegistration :json-false :linkSupport t)
                        :documentSymbol
                        (:dynamicRegistration :json-false :hierarchicalDocumentSymbolSupport t :symbolKind
                                              (:valueSet
                                               [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26]))
                        :documentHighlight
                        (:dynamicRegistration :json-false)
                        :codeAction
                        (:dynamicRegistration :json-false :resolveSupport
                                              (:properties
                                               ["edit" "command"])
                                              :dataSupport t :codeActionLiteralSupport
                                              (:codeActionKind
                                               (:valueSet
                                                ["quickfix" "refactor" "refactor.extract" "refactor.inline" "refactor.rewrite" "source" "source.organizeImports"]))
                                              :isPreferredSupport t)
                        :formatting
                        (:dynamicRegistration :json-false)
                        :rangeFormatting
                        (:dynamicRegistration :json-false)
                        :rename
                        (:dynamicRegistration :json-false)
                        :inlayHint
                        (:dynamicRegistration :json-false)
                        :publishDiagnostics
                        (:relatedInformation :json-false :codeDescriptionSupport :json-false :tagSupport
                                             (:valueSet
                                              [1 2])))
                       :window
                       (:showDocument
                        (:support t)
                        :workDoneProgress t)
                       :general
                       (:positionEncodings
                        ["utf-32" "utf-8" "utf-16"])
                       :experimental #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
                                                   ()))
                      :workspaceFolders
                      [(:uri "file:///tmp/tmpproj" :name "/tmp/tmpproj/")]))
[server-reply] (id:1) Wed Oct  4 17:52:43 2023:
(:id 1 :jsonrpc "2.0" :result
     (:capabilities
      (:definitionProvider t :documentFormattingProvider t :documentSymbolProvider t :experimental nil :hoverProvider t :referencesProvider t :textDocumentSync
                           (:change 1 :openClose t :save
                                    (:includeText t))
                           :workspace
                           (:workspaceFolders
                            (:changeNotifications t :supported t))
                           :workspaceSymbolProvider t)
      :serverInfo
      (:name "Next LS")))
[client-notification] Wed Oct  4 17:52:43 2023:
(:jsonrpc "2.0" :method "initialized" :params #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
                                                            ()))
[client-notification] Wed Oct  4 17:52:43 2023:
(:jsonrpc "2.0" :method "textDocument/didOpen" :params
          (:textDocument
           (:uri "file:///tmp/tmpproj/mix.exs" :version 0 :languageId "elixir" :text "defmodule Tmpproj.MixProject do\n  use Mix.Project\n\n  def project do\n    [\n      app: :tmpproj,\n      version: \"0.1.0\",\n      elixir: \"~> 1.14\",\n      start_permanent: Mix.env() == :prod,\n      deps: deps()\n    ]\n  end\n\n  # Run \"mix help compile.app\" to learn about applications.\n  def application do\n    [\n      extra_applications: [:logger]\n    ]\n  end\n\n  # Run \"mix help deps\" to learn about dependencies.\n  defp deps do\n    [\n      # {:dep_from_hexpm, \"~> 0.3.0\"},\n      # {:dep_from_git, git: \"https://github.com/elixir-lang/my_dep.git\", tag: \"0.1.0\"}\n    ]\n  end\nend\n")))
[client-notification] Wed Oct  4 17:52:43 2023:
(:jsonrpc "2.0" :method "workspace/didChangeConfiguration" :params
          (:settings #s(hash-table size 1 test eql rehash-size 1.5 rehash-threshold 0.8125 data
                                   ())))
[server-notification] Wed Oct  4 17:52:43 2023:
(:jsonrpc "2.0" :method "window/logMessage" :params
          (:message "[NextLS] NextLS v0.13.3 has initialized!" :type 4))
[server-request] (id:322) Wed Oct  4 17:52:43 2023:
(:id 322 :jsonrpc "2.0" :method "client/registerCapability" :params
     (:registrations
      [(:id "file-watching" :method "workspace/didChangeWatchedFiles" :registerOptions
            (:watchers
             [(:globPattern "**/*.ex" :kind 7)
              (:globPattern "**/*.exs" :kind 7)
              (:globPattern "**/*.leex" :kind 7)
              (:globPattern "**/*.eex" :kind 7)
              (:globPattern "**/*.heex" :kind 7)
              (:globPattern "**/*.sface" :kind 7)]))]))
[client-reply] (id:322) Wed Oct  4 17:52:43 2023:
(:jsonrpc "2.0" :id 322 :result nil)
[server-notification] Wed Oct  4 17:52:43 2023:
(:jsonrpc "2.0" :method "window/logMessage" :params
          (:message "[NextLS] Booting runtimes..." :type 4))
[server-notification] Wed Oct  4 17:52:43 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "sEG7NvNg" :value
                  (:kind "begin" :title "Initializing NextLS runtime for folder /tmp/tmpproj/...")))
[server-notification] Wed Oct  4 17:52:43 2023:
(:jsonrpc "2.0" :method "window/logMessage" :params
          (:message "[NextLS] Beginning DB migration..." :type 4))
[server-notification] Wed Oct  4 17:52:43 2023:
(:jsonrpc "2.0" :method "window/logMessage" :params
          (:message "[NextLS] Database is on the latest version: 5" :type 3))
[server-notification] Wed Oct  4 17:52:43 2023:
(:jsonrpc "2.0" :method "window/logMessage" :params
          (:message "[NextLS] Finished DB migration..." :type 4))
[client-request] (id:2) Wed Oct  4 17:52:43 2023:
(:jsonrpc "2.0" :id 2 :method "textDocument/hover" :params
          (:textDocument
           (:uri "file:///tmp/tmpproj/mix.exs")
           :position
           (:line 20 :character 0)))
[server-reply] (id:2) Wed Oct  4 17:52:43 2023:
(:id 2 :jsonrpc "2.0" :result nil)
[client-request] (id:3) Wed Oct  4 17:52:46 2023:
(:jsonrpc "2.0" :id 3 :method "textDocument/hover" :params
          (:textDocument
           (:uri "file:///tmp/tmpproj/mix.exs")
           :position
           (:line 19 :character 0)))
[server-reply] (id:3) Wed Oct  4 17:52:46 2023:
(:id 3 :jsonrpc "2.0" :result nil)
[client-notification] Wed Oct  4 17:54:26 2023:
(:jsonrpc "2.0" :method "workspace/didChangeWatchedFiles" :params
          (:changes
           [(:uri "file:///tmp/tmpproj/lib/tmpproj.ex" :type 2)]))
[server-notification] Wed Oct  4 17:54:44 2023:
(:jsonrpc "2.0" :method "$/progress" :params
          (:token "sEG7NvNg" :value
                  (:kind "end")))
[server-notification] Wed Oct  4 17:54:44 2023:
(:jsonrpc "2.0" :method "window/logMessage" :params
          (:message "[NextLS] Runtime for folder /tmp/tmpproj/ failed to initialize" :type 1))
[client-request] (id:4) Wed Oct  4 17:55:15 2023:
(:jsonrpc "2.0" :id 4 :method "textDocument/hover" :params
          (:textDocument
           (:uri "file:///tmp/tmpproj/mix.exs")
           :position
           (:line 19 :character 0)))
[client-request] (id:5) Wed Oct  4 17:55:17 2023:
(:jsonrpc "2.0" :id 5 :method "textDocument/hover" :params
          (:textDocument
           (:uri "file:///tmp/tmpproj/mix.exs")
           :position
           (:line 22 :character 0)))
[internal] (id:6) Wed Oct  4 17:55:18 2023:
(:deferring :textDocument/hover :id 6 :params
            (:textDocument
             (:uri "file:///tmp/tmpproj/mix.exs")
             :position
             (:line 23 :character 6)))
[client-notification] Wed Oct  4 17:55:18 2023:
(:jsonrpc "2.0" :method "textDocument/didChange" :params
          (:textDocument
           (:uri "file:///tmp/tmpproj/mix.exs" :version 2)
           :contentChanges
           [(:text "defmodule Tmpproj.MixProject do\n  use Mix.Project\n\n  def project do\n    [\n      app: :tmpproj,\n      version: \"0.1.0\",\n      elixir: \"~> 1.14\",\n      start_permanent: Mix.env() == :prod,\n      deps: deps()\n    ]\n  end\n\n  # Run \"mix help compile.app\" to learn about applications.\n  def application do\n    [\n      extra_applications: [:logger]\n    ]\n  end\n\n  # Run \"mix help deps\" to learn about dependencies.\n  defp deps do\n    [\n      \n      # {:dep_from_hexpm, \"~> 0.3.0\"},\n      # {:dep_from_git, git: \"https://github.com/elixir-lang/my_dep.git\", tag: \"0.1.0\"}\n    ]\n  end\nend\n")]))
[internal] Wed Oct  4 17:55:18 2023:
(:maybe-run-deferred
 (6))
[client-request] (id:6) Wed Oct  4 17:55:18 2023:
(:jsonrpc "2.0" :id 6 :method "textDocument/hover" :params
          (:textDocument
           (:uri "file:///tmp/tmpproj/mix.exs")
           :position
           (:line 23 :character 6)))
[internal] (id:4) Wed Oct  4 17:55:25 2023:
(:timed-out :textDocument/hover :id 4 :params
            (:textDocument
             (:uri "file:///tmp/tmpproj/mix.exs")
             :position
             (:line 19 :character 0)))
[internal] (id:5) Wed Oct  4 17:55:27 2023:
(:timed-out :textDocument/hover :id 5 :params
            (:textDocument
             (:uri "file:///tmp/tmpproj/mix.exs")
             :position
             (:line 22 :character 0)))
[internal] (id:6) Wed Oct  4 17:55:28 2023:
(:timed-out :textDocument/hover :id 6 :params
            (:textDocument
             (:uri "file:///tmp/tmpproj/mix.exs")
             :position
             (:line 23 :character 6)))
[internal] (id:6) Wed Oct  4 17:55:28 2023:
(:timed-out :textDocument/hover :id 6 :params
            (:textDocument
             (:uri "file:///tmp/tmpproj/mix.exs")
             :position
             (:line 23 :character 6)))

@tjheeta can you share your elixir/otp versions, operating system, etc

Elixir 1.14.0
OTP 25
Linux
There was something another person mentioned regarding localhost and inet.gethostname? Could that be the issue?

What's the Linux distribution?
And maybe, I'll look into it

Also, maybe update an try again. I cut a release that has some more logging that could help possibly.

https://github.com/elixir-tools/next-ls/compare/main...klalafudaklalafu:next-ls:node-hostname-fix
That fixed it for me. Sqlite updates now. Going back and forth with references works. Hover for docs does not. No idea how to do outline mode. And nothing autocompletes.

Autocomplete isn't implemented yet.
Can you delete the .elixir-tools directory and try again with the patch to see if hover will work?

I also had the same issue, but using Neovim. Applying the above patch let NextLS initialize.
It did throw up an error when I did not run NextLS on the same elixir/erlang/otp version as the project. I am not sure if that is always required when running outside of the burrito releases.
Hovering seemed pretty temperamental here too.
Initially it did not work until indexing completed, which took sometime in my project. Not sure if the (multiple) "indexing ..." messages are surfaced in Emacs, it might have been invisibly indexing still? After indexing it was also not that effective for modules in the project, I could only get it to show the docs on one project function but it would work fine for Elixir's stdlib. When I restarted Neovim I could not get it to give any hovers...
elixir          1.15.5-otp-26
erlang          26.0.2
Arch Linux      6.5.5-arch1-1
NextLS          0.13.4 (with hostname patch)
Nvim            0.9.4

Oh, just remembered for hover.
You need to build your OTP with docs enabled.
I think the flag is KERL_DOCS=1 when compiling OTP.
I'll investigate that patch again (I just returned home from vacation).

I dont mean this to sound complain-y, just noting the experience I guess. No output to really attach for debugging...

@rktjmp no worries at all! The more data points the better.


Changed _make_iterator as you suggested

Indeed. It is the "fixed-point algorithm" in the SCOTS paper


Ignore two tests that are flaky on AppVeyor.

TestInvokeAsync_ThrowsTaskCanceledExceptionWhenTokenCanceled
and
TestInvokeAsync_StopsPowerShellWhenTokenCanceled
are flakey when run on AppVeyor (but not locally).
Skip them on AppVeyor.

Before we skip them do we know why they are flaky?  Is it a resource issue?

I do not know why they are flaky. I have spent several afternoons trying to unflake them, and even made some PRs that I thought would unflake them, but never to any success.
It seems like, for some reason, on AppVeyor, PowerShell sometimes does not stop after PowerShell.Stop() is called. Instead, it runs to completion (which times out the tests).