WIP: Include both original and new line numbers in checkstyle output

Believe this resolves #1386

Actually there's more going wrong here than I realized 🤔
The current checkstyle output generated from formatting tests/writemode/source/fn-single-line.rs is way off on the calcs for both the line_number and line_number_orig values in the Mismatch :
<?xml version="1.0" encoding="UTF-8"?>
<checkstyle version="4.3">
  <file name="tests/writemode/source/fn-single-line.rs">
    <error line="2" original_line="2" severity="warning" message="Should be `fn foo_expr() { 1 }`" />
    <error line="2" original_line="2" severity="warning" message="Should be `fn foo_stmt() { foo(); }`" />
    <error line="2" original_line="2" severity="warning" message="Should be `fn foo_decl_local() { let z = 5; }`" />
    <error line="2" original_line="2" severity="warning" message="Should be `fn foo_decl_item(x: &mut i32) { x = 3; }`" />
    <error line="2" original_line="2" severity="warning" message="Should be `fn empty() {}`" />
    <error line="2" original_line="2" severity="warning" message="Should be `fn foo_return() -> String { "yay" }`" />
    <error line="2" original_line="2" severity="warning" message="Should be `fn foo_where() -> T`" />
    <error line="2" original_line="2" severity="warning" message="Should be `where`" />
    <error line="2" original_line="2" severity="warning" message="Should be `    T: Sync,`" />
    <error line="2" original_line="2" severity="warning" message="Should be `{`" />
    <error line="52" original_line="61" severity="warning" message="Should be `fn lots_of_space() { 1 }`" />
    <error line="59" original_line="70" severity="warning" message="Should be `    fn dummy(&self) {}`" />
    <error line="59" original_line="70" severity="warning" message="Should be `trait CoolerTypes {`" />
    <error line="59" original_line="70" severity="warning" message="Should be `    fn dummy(&self) {}`" />
    <error line="59" original_line="70" severity="warning" message="Should be `fn Foo<T>()`" />
    <error line="59" original_line="70" severity="warning" message="Should be `where`" />
    <error line="59" original_line="70" severity="warning" message="Should be `    T: Bar,`" />
    <error line="59" original_line="70" severity="warning" message="Should be `{`" />
  </file>
</checkstyle>

both original and formatted line numbers are off...

I decided to keep things simple here, and just address the offset line numbers. Below is an example of the checkstyle output that is now emitted (pretty printed for ease of view). See above for what this same output looked like before.
My recommendation is that anyone wanting a more complex output (line numbers from the before/after versions of the file, start/end line numbers, etc.) should instead use the new json emit mode added in https://github.com/rust-lang/rustfmt/pull/3735 as the json format should be easier to work with.
<?xml version="1.0" encoding="UTF-8"?>
<checkstyle version="4.3">
  <file name="tests/writemode/source/fn-single-line.rs">
    <error line="5" severity="warning" message="Should be `fn foo_expr() { 1 }`" />
    <error line="7" severity="warning" message="Should be `fn foo_stmt() { foo(); }`" />
    <error line="9" severity="warning" message="Should be `fn foo_decl_local() { let z = 5; }`" />
    <error line="11" severity="warning" message="Should be `fn foo_decl_item(x: &mut i32) { x = 3; }`" />
    <error line="13" severity="warning" message="Should be `fn empty() {}`" />
    <error line="15" severity="warning" message="Should be `fn foo_return() -> String { "yay" }`" />
    <error line="17" severity="warning" message="Should be `fn foo_where() -> T`" />
    <error line="18" severity="warning" message="Should be `where`" />
    <error line="19" severity="warning" message="Should be `    T: Sync,`" />
    <error line="20" severity="warning" message="Should be `{`" />
    <error line="55" severity="warning" message="Should be `fn lots_of_space() { 1 }`" />
    <error line="60" severity="warning" message="Should be `    fn dummy(&self) {}`" />
    <error line="63" severity="warning" message="Should be `trait CoolerTypes {`" />
    <error line="64" severity="warning" message="Should be `    fn dummy(&self) {}`" />
    <error line="67" severity="warning" message="Should be `fn Foo<T>()`" />
    <error line="68" severity="warning" message="Should be `where`" />
    <error line="69" severity="warning" message="Should be `    T: Bar,`" />
    <error line="70" severity="warning" message="Should be `{`" />
  </file>
</checkstyle>

Sorry for the late review on this one. Thank you for your works!

Sorry for the late review on this one. Thank you for your works!

No worries, and my pleasure! I'm still pretty new to Rust but I find working with rustfmt is both fun and helping me learn. I'm keeping an eye out for any issues I think I can help with, but please also let me know if there's anything in particular I can do to help!


Visitor enhancement

https://github.com/SAP/chevrotain/blob/master/src/parse/grammar/gast_public.ts
In this file I see a (in my opinion) not 100% correct usage of the visitor pattern.
2 problems here:

The visit in GAstVisitor method completely defeats the purpose of having an accept in the individual visitee interfaces since it just instanceofs the input parameter. Since it also doesn't tell you if there was no match, it could be really hard to detect a missing instanceof.
If you ever add more visitee interfaces, you wont get any help from the type system to enforce that your accept and visit* methods are correctly implemented.

What I usually do when I implement visitors is something like this:
interface IGASTVisitee {
  accept(visitor: IGASTVisitor): void
}

interface IProduction extends IGASTVisitee {
  // more common stuff if there is any
}

// the visitor is just an interface, no implementation needed here
interface IGASTVisitor {
  visitFlat(node:Flat):void
  visitOption(node:Option):void
  // ... rest of the visit methods for the leaf types.
}

// visitee takes care of implementing how they want to accept a visitor
export class Flat implements IGASTVisitor {
  constructor(/*...*/) {}
  accept(visitor: IGASTVisitor): void {
    /*return*/ visitor.visitFlat(this);
  }
}

Now after this you can have an abstract visitor implementation with default behavior for every visit method:
class NoopVisitor implements IGASTVisitor {
  visitFlat(node:Flat):void {}
  visitOption(node:Option):void {}
  // ...
}

// And create visitors which only handle the stuff that you need
class HandleOptionOnlyVisitor extends NoopVisitor {
  visitOption(node:Option):void {
    console.log(`wow, an option: ${node}`);
  }
}

Thanks @bali182
Since it also doesn't tell you if there was no match, it could be really hard to detect a missing instanceof.
I Agree with this statement 120% and It actually caused a bug to be hidden.
I'll first fix the bug and then continue the discussion about the rest of the issue.
Thanks again.
Shahar.

Regarding the rest of the issue:
The visitor is intentionally "dumbed" down.
As it is meant for a simple & small hierarchy of classes that changes rarely.
If I implement the visitor in a pattern similar to the one you demonstrated
with:
// visitee takes care of implementing how they want to accept a visitor
export class Flat implements IGASTVisitor {
  constructor(/*...*/) {}
  accept(visitor: IGASTVisitor): void {
    /*return*/ visitor.visitFlat(this);
  }
}

I lose the polymorphism.
For example, assume I have some class hierarchy with some BASE class and others (A / B / C / D).
All the "others" extend (directly or indirectly) BASE.
Lets assume I wanted to create a Visitor that collects all the instances in the of all the classes.
Using instanceof I could implement a visitor that only has a single
VisitBase and the instanceof (if written in the right order) would make sure that would suffice.
But in the method you suggested it would require 4 different methods (visitA/B/C/D) each one with the same duplicated code.
But this is in theory as there is not exactly a real hierarchy or a base class with the GAST classes.
(maybe I should try to refactor it to have a base class at least?)
In practice I would be interested to know what would a user want to do that cannot be accomplished
with the current implementation or cannot be accomplished effectively/safely.
From the perspective of the developer, I am satisfied with the robustness provided by:

Runtime check that throws "non exhaustive match"
Typescript compile time checks as it can infer the type in an if (x instanceof y) {} block.
100% code coverage which will catch If I am ordering the instanceofs in the big if/else block correctly.

Also note that Typescript has a structured type system, not a nominal type system.
Thus the code below will still compile in TS because an instance of XXX can be used anywhere
an instance of YYY is expected as it "walks like a duck and quacks like a duck" (has the same properties).

export class YYY {
   public prop1:number;

   accept(visitor: IGASTVisitor): void {
       visitor.visitYYY(this); // this may still work if XXX
  }
}

export class XXX {
    public prop1:number;
   public prop2:string;

  accept(visitor: IGASTVisitor): void {
     visitor.visitYYY(this); // COPY PASTE MISTAKE - still using visitYYY but sending an XXX instance.
  }
}

And many of the GAst classes have the same properties names/types...

Oh and @bali182 if you are interested in Visitor implementations maybe you would like to review this one?
Generic part:
https://github.com/SAP/demos_json_editor_services_chevrotain/blob/master/src/pudu/dispatcher.ts
Specific Implementation for a specific class hierarchy:
https://github.com/SAP/demos_json_editor_services_chevrotain/blob/master/src/jes/dispatcher.ts
This is something that is designed to be both generic and robust with both compile time and runtime checks. As it is meant to be extended and used for multiple hierarchies that change often
and may not be well tested.

@bd82 I completely accept the points you wrote. I was just exploring the code and thought I bring this up. I have seen some incredibly weird visitor implementations on the js landscape, and this looked almost like the one that I would write :)
For the point about loosing polymorphism, yes in the default implementation you would loose it. However, if you really wanted to do the same thing for a set of types then you still would have some options to do it without repeating (much) yourself:
class MyVisitor extends NoopVisitor {
  doStuffWithTheSetOfTypes(value: IGASTVisitee) {
    // Do the instanceofing here
  }
  visitFlat(node:Option) { doStuffWithTheSetOfTypes(node); }
  visitOption(node:Option) { doStuffWithTheSetOfTypes(node); }
  // ...
}

As for the ducking part, I didn't know, that I thought that would only works for interfaces. I like ts a bit less seeing this :(
I took a look at the other visitor-like implementations you mentioned, especially the BaseBySuperTypeDispatcher. I don't yet fully understand what they do, so in the weekend I check them out more in detail.
In the meantime, if you are interrested in another way of looking that it, I have some visitors too :D
(completely not related to this project)
Interface:
https://github.com/bali182/autocomplete-json/blob/master/lib/json-schema-visitors.ts#L8
Default implementation:
https://github.com/bali182/autocomplete-json/blob/master/lib/json-schema-visitors.ts#L23
An example that handles composite types of the base type:
https://github.com/bali182/autocomplete-json/blob/master/lib/json-schema-visitors.ts#L68
Stuff that is being visited (not too interresting):
https://github.com/bali182/autocomplete-json/blob/master/lib/json-schema.ts

@bali182 discussions are always good, especially when you find a bug :+1:
so thanks again for bringing it up.
About nominal types in Typescript:
There is an issue to investigate those in the typescript roadmap.
https://github.com/Microsoft/TypeScript/wiki/Roadmap
https://github.com/Microsoft/TypeScript/issues/202
Btw because of type ducking you can also implement another class.
So the following is also valid:
class InterfaceLike {
    public bar:string
}

class foo implements InterfaceLike {
    public bar:string
}

I'll checkout your code & project later, I may want to integrate what you've done (or do something similar)
for semantic auto complete.

Although I am still in the syntactic phase right now...

commit is unrelated and linked by default.
I will close this issue and we can continue discussion in new issues in two respective repositories.


Period diff example

I'm having trouble understanding how best to extract data out of Date.Period.diff.  It seems you must always "case result of Delta", is that right?
--- this doesn't work
dayDiff : Date -> Date -> Int
dayDiff d0 d1 = (diff d0 d1).day

--- this works, but is clunky
dayDiff : Date -> Date -> Int
dayDiff =
  case (diff d0 d1) of
    Delta x -> x.day
    _ ->  Debug.crash "Never get here"

Thanks for a super useful library.

Die to the way diff works you may need to do  (x.day + 7 * x.week) to get total whole days.
I am still not 100% happy with that specific area, but at the time i thought the week concept was worth having.
Another option that might suit you to get whole days in Period, this also lets you get fractional if you want them by not using the integer division.
Just an aside - ticks in date extra are Integers not Floats it became that way because i was using Modulus and Integer Division in some places.
days = Period.toTicks <| (Period.diff d0 d1) // Core.ticksADay

OK, thanks. What if you changed the signature of diff to
diff : Date -> Date -> DeltaRecord

Then you wouldn't need the awkward case matching. But maybe I'm missing something.
The Period.toTicks method doesn't work at the moment because toTicks isn't exposed. It seems a little internal-ish to do it that way anyway, to me.

I like the idea of changing the output of diff improves flexibility with no real added complexity.
I have published 3.0.0 with the change.
toTicks was meant to be available originally.
I don't think exposing toTicks is a bad idea at the moment, but I will have to think about it for now.

wow, thanks!


Return error code when docker build runs into problems

Makes sure scripts returns with an error when docker build fails, so Jenkins notices and doesn't start archiving stale docker images

No new  dependenices @daschubert @rohoet   , merge plz 🐱


dont send the empty headers to RR

RR dosent support json like for headers '[]'. We have two options:

add default headers
dont send headers key - was implemented

#4 https://github.com/spiral/roadrunner-jobs/issues/4

Hello @sergey-telpuk! Thank you for PR!
Could you reformat code following PSR-12?

Hello @sergey-telpuk! Thank you for PR!
Could you reformat code following PSR-12?
Sure, It's done


Including variant description in the variant search results & variant profile metadata

Background
Similar to description for other entities (target, disease, drug) in the search results, we should include the description for the variant search results and variant profile metadata as well.

"variantDescription": "Missense variant overlapping with TNFRSF1A, causing amio-acid change: R121Q with moderate impact."
Tasks

[x] Include variant description in the variant search results

[x] Include variant description in the variant profile metadata


Ruby buildartifacts on linux_x64 and mac_x64 is broken.

https://grpc-testing.appspot.com/view/Artifacts/job/gRPC_build_artifacts/706/architecture=x64,language=ruby,platform=linux/console
https://grpc-testing.appspot.com/view/Artifacts/job/gRPC_build_artifacts/706/architecture=x64,language=ruby,platform=macos/console

It looks like the Windows cross-compiler is failing to compile zlib, and the Mac compiler can't find memset_s.

The Ruby build appears to be succeeding now


fix(suggestion): virtual text flicker

Resolves https://github.com/zbirenbaum/copilot.lua/issues/130

https://github.com/zbirenbaum/copilot.lua/issues/130#issuecomment-1441895703
it shows the following error
Error executing vim.schedule lua callback: ...e/pack/packer/opt/copilot.lua/lua/copilot/suggestion.lua:190: attempt to perform arithmetic on a nil value
stack traceback:
        ...e/pack/packer/opt/copilot.lua/lua/copilot/suggestion.lua:190: in function 'update_preview'
        ...e/pack/packer/opt/copilot.lua/lua/copilot/suggestion.lua:254: in function 'handler'
        ...w/Cellar/neovim/0.8.3/share/nvim/runtime/lua/vim/lsp.lua:1383: in function ''
        vim/_editor.lua: in function <vim/_editor.lua:0>

Pushed a fix... how about now? 🤔

it works! 🍻
but it still flicker in accept_word
I'm not quite sure if it appears in line_accept, because it doesn't show up
https://user-images.githubusercontent.com/44778029/220947939-03a534e4-d8b7-4b7d-be32-be6eac14d143.mov

Trying to fix it for accept_word is causing other issues. Note that copilot.vim does not support accept_word or accept_line. We just implemented a hacky patch to make it work.
Merging this fix for now.

Thank you for your time and efforts🍺, I really love this project.
Have a nice day!⛅


The spec failures were introduced when merging the BCD code, but should be resolved by #382

To avoid the spec failures, rebase or merge latest main branch into this branch, which has the fixes from #382.

Yeah I'm okay with merging this (I'll do so in a moment).
And I agree we could explore using clang++ on all platforms - it's definitely worth a try!
Regarding /usr/lib/gcc80 - yeah, this is okay. Eventually if there is a new DragonFly released with a later compiler, we could have both options in the link path search list, with the newer option taking priority - that would allow us to simultaneously support older and newer versions of DragonFly, even if there weren't two versions available on every release of it.


Fix Connection when use Old Powershell (< 5)

There is no $psedition variable and UseBasicParsing is not available for Invoke-RestMethod

Need to fix DontShow (not supported with PS 3.0...)


Possible to export hidden rows?

Looking at the docs I see that you can specify ignoreCSS and ignoreRows.  I haven't entered values for either of these but when I export my table, rows that have display:none set are not being exported.  It looks like the default value for ignoreCSS is tableexport-ignore, but I don't have that set anywhere either.
How can I export rows that have display:none set?

@Broham - I get what you are saying, but it, in a way, conflicts with the original purpose of the library which was to export "what you see" for usage with simple spreadsheeting and analytical tools. It would require a bit of a rewrite (which may be feasible with the alpha channel that I am working on). This main channel is coupled to jQuery and although it would technically be possible, I don't know if it is the best solution. The first, and simplest, workaround would be to use visibility:hidden rather than display:none. Since TableExport is using jQuery's find() method we could in theory just add :hidden to the selector, but it might break some of the other show/hide logic being used with, like you mentioned, ignoreRows and ignoreRows.


Start/Search/Cortana Icons are black

When I enable TaskbarX on Light mode, System icons on taskbar remain black. I think it would be better to change Windows mode to dark automatically or just show an alert.

You might have changed taskbar appearance to opaque, thats why you might be facing this problem.

@Cyberdroid1 I'm not reporting a bug, but suggesting an idea. I'm suggesting to change Windows system theme to Dark automatically (if TaskbarX's theme is not Windows Default) because some people might struggle with this, racking his head. System taskbar icons on taskbar remain black when I enable TaskbarX with Light theme enabled in Windows system.

Ah ok, sorry for misinterpretation. I agree with that point. It would be better to give a warning, rather than directly change it, since it also changes the appearance of start menu.


Drop dependency on extend

The versions of Node this module aims to support have built-in support for Object.assign which can be used instead of extend.

Should we just fix it? Or just leave things as is? Not sure how important this is.

This would be a 'nice-to-have'.

I've looked into this, but when I switch to Object.assign(), this field is added to the config:   "interceptors_": [undefined] (also the type-guarding I have in place stops working, but that is a more minor concern).

@ofrobots  -- what would you recommend doing given that Object.assign() adds `"interceptors_": [undefined]' to the config?
What does this mean?

This would have been a nice to have. If fixing this requires effort, it is probably not worth it. Closing.


open doesn't pass flags on Go + Linux

Probably we don't pass args from the open syscall.
Happens when using local (but probably can affect remote as well)
fd, err := os.OpenFile("/tmp/myfile.txt", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
if err != nil {
  panic(err)
}
defer fd.Close()

Note the hack we did with open (where it accept varargs) - I recall we had an issue with macOS not working well there so probably need similar implementation.


add ESMTP AUTH for LOGIN and PLAIN

I have added the extended SMTP command AUTH with the login methods PLAIN and LOGIN.
When a client tries to authenticate with the server an event is triggered (Event::TRIGGER_AUTH_ATTEMPT) which passes login type and the clients credentials.
If PLAIN is used then the username and password are concatenated, prepend with user and then base64 encoded.  The $credentials parameter is an array with this base64 encoded string.
If LOGIN is used then the username and password are sent separately as base64 encoded strings. The $credentials parameter is an associative array with the key user for the base64 encoded username and the key password with the base64 encoded password.

First of all, Thank you very much for your contribution. I'll review your code and comment in the GitHub diff view if necessary.
I added .editorconfig to the master branch. Please use the EditorConfig plugin of your favorite editor to fit the code style for further contributions.


Supported Build versions for XAML Builds

TFS 2018 Version
TFS 2018 Build Agent
TFS 2017 Build Agent
TFS 2015 Xaml Controller
TFS 2013 Xaml Controller
TFS 2010 Xaml Controller

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

ID: dab4a714-225b-809e-e427-0c40350eea98
Version Independent ID: 1f67eb43-53eb-561b-0f2a-c2673c7c0028
Content: Compatibility and TFS versions
Content Source: docs/server/compatibility.md
Product: devops-server
GitHub Login: @elbatk
Microsoft Alias: elbatk

@lsprado You are saying these are the supported versions for XML builds?

https://blogs.msdn.microsoft.com/bharry/2017/05/30/evolving-tfsteam-services-build-automation-capabilities/ talks about the temporarily re-introduced support.


United Hatzala data integration

#427: Integrating United Hatzala data.
The DB population and csv parsing are both done in the new united.py
I created a different marker for their accidents as they have much 'thinner' data.
Accidents are only given in severities קשה and קלה so there are no fatal markers.

Update: Accidents are being imported using importmail.py which downloads the .csv files directly from gmail. the script can be called directly or automatically in united.py. If it finds static/data/united/ empty it downloads all accidents history. If it's not, then only the last file is downloaded.

@danielhers - Can this PR be deployed to a staging app with the latest accidents file?
Example shot:

Requirements (will be fixed soon):

Add apscheduler integration to main.py
Fix imported attachments count using total
Implement command line arguments to allow united.py run without downloading from gmail. Also implement an arg to force importmail.py download all mail even if its folder is not empty. (Only incremental files will be actually downloaded)

Added APScheduler (2.1.2) - scheduled incremental download every 12 hours

Since data is 3 hours old to begin with, and many files during the day are empty I came to conclude that the best practice would be a 12 hour scheduled incremental download.

Added optional command line arguments (having only last file downloaded, password via cmd line)
Changed import to always be incremental (only importing last hour file is not a default)
Fixed automation issues
@danielhers - I think what's left is just the postgresql UPSERT and we can let it out

Working on the UPSERT

Fixed rejections:

User name is now an environment variable MAILUSER (or can be set via --username)
Fixed string overwriting while downloading files

I think It should run now on postgreSQL (after your upsert fix is merged).

I'll try merging then and see.
By the way, it's not really upsert... It's just like OR IGNORE - only inserting rows that haven't been inserted yet.

Yeah I can see now.
So it should be applicable both for sqlite and posgresql?

Yes, there's nothing DB-specific there.

Merged.


chore: deactivate for remaining dotnet repos

@jskeet FYI

@samtstern I can't merge, could you please? Thanks.


Support uploading a directory

This PR is to add a feature to be able to upload a plugin directory without zipping 🚀
You can upload the plugin directory by drag and drop or file selection.
This feature enables only in Chrome or Firefox due to the browser support.

@koba04 thank you!

Thanks! 🎉


recursive splitter replaced by NLTKsplitter.

Changed the resursive splitter to NLTKTextSplitter. When chunk size is small NLTK splitter ensures chunks are full sentences. The recursive splitter splits words or sentences sometimes in half, NLTK splitter keeps the full sentence, even if sentence-length exceeds the maximum chunk size.

@petitfm
After commit https://github.com/pbl-nl/appl-docchat/commit/79b082b72a0a2c82b720389f6a118b9e48fe412f I needed to execute python -m nltk.downloader punkt is that known or something in my local env?
Otherwise this error message was shown:
  File "/home/local/src/python3-envs/venv-for-docchat/lib/python3.11/site-packages/nltk/data.py", line 583, in find
    raise LookupError(resource_not_found)
LookupError:
**********************************************************************
  Resource punkt not found.
  Please use the NLTK Downloader to obtain the resource:

  >>> import nltk
  >>> nltk.download('punkt')

  For more information see: https://www.nltk.org/data.html

  Attempted to load tokenizers/punkt/PY3/english.pickle

@lrvl I didn't have to download punkt separately, so I think it something in your environment. I didn't update the environment .yaml after adding NLTK, maybe I should have?

@lrvl I didn't have to download punkt separately, so I think it something in your environment. I didn't update the environment .yaml after adding NLTK, maybe I should have?

I will check to see if it's needed on a fresh but different install on AlmaLinux OS 8.8 (RHEL), instead of on Debian GNU/Linux 12 (Bookworm).


APK command stopped working on azure-cli 2.64 docker image

Describe the bug
We use the latest Docker image of Azure-cli to deploy our code in Azure, as from today we are getting the apk: command not found when we try to run the apk add --no-cache vim command inside the container. The command worked fine until the 2.63 release
Related command

Errors
$ apk add --no-cache vim
bash: apk: command not found

Issue script & Debug output

Expected behavior
When running the apk command I expect to be installed the package (this works in this way in azure-cli 2.63)
Environment Summary
azure-cli                         2.64.0

core                              2.64.0
telemetry                          1.1.0

Dependencies:
msal                              1.30.0
azure-mgmt-resource               23.1.1

Python location '/usr/bin/python3.9'
Extensions directory '/root/.azure/cliextensions'

Python (Linux) 3.9.19 (main, Aug 23 2024, 00:07:48)
[GCC 11.2.0]

Legal docs and information: aka.ms/AzureCliLegal

Your CLI is up-to-date.

Additional context
No response

Thank you for opening this issue, we will look into it.

Remember that this issue is exclusively related to the Azure CLI Docker image. I don't know how to add the Packaging/Docker label

As indicated in Azure CLI 2.63.0, that version was the last one based on Alpine. With the newly released 2.64.0, the base image of azure-cli:latest changed to CBL Mariner 2.0, thus you need to update your scripts @franciscovelez and e.g. use tdnf install vim.

Thank you  @dallmair, one last question: Is there anywhere I can find documentation on how to use the CBL Mariner repo or any of its commands?

Not sure about official docs, but here is a page listing some interesting things:
https://microsoft.github.io/azurelinux/docs/
CBL Mariner/Azure Linux is based on Red Hat, so you may want to search for how to do things on RHEL and have good chances to find answers.

Using tdnf works on direct container run only:
# tdnf install -y zip
Loaded plugin: tdnfrepogpgcheck
Refreshing metadata for: 'CBL-Mariner Official Base 2.0 x86_64'
Refreshing metadata for: 'CBL-Mariner Official Extras 2.0 x86_64'
Refreshing metadata for: 'CBL-Mariner Official Microsoft 2.0 x86_64'
mariner-official-microsoft               39531 100%
Installing:
zip                                             x86_64                              3.0-5.cm2                                       mariner-official-base               546.32k                                 282.71k

Total installed size: 546.32k
Total download size: 282.71k
zip                                     289490 100%
Testing transaction
Running transaction
Installing/Updating: zip-3.0-5.cm2.x86_64

Same command on Github actions failed
# tdnf install -y zip
Loaded plugin: tdnfrepogpgcheck
Refreshing metadata for: 'CBL-Mariner Official Base 2.0 x86_64'
repo md signature check: No public key
Error: TDNFVerifySignature 2004
Disabling Repo: 'CBL-Mariner Official Base 2.0 x86_64'
Plugin error: repogpgcheck plugin error: failed to verify signature
Refreshing metadata for: 'CBL-Mariner Official Extras 2.0 x86_64'
Error(2004) : Unknown error 404
Error: Failed to synchronize cache for repo 'CBL-Mariner Official Base 2.0 x86_64'
repo md signature check: No public key
Disabling Repo: 'CBL-Mariner Official Extras 2.0 x86_64'
Refreshing metadata for: 'CBL-Mariner Official Microsoft 2.0 x86_64'
Error: TDNFVerifySignature 2004
Plugin error: repogpgcheck plugin error: failed to verify signature
Error(2004) : Unknown error 404
Error: Failed to synchronize cache for repo 'CBL-Mariner Official Extras 2.0 x86_64'
repo md signature check: No public key
Disabling Repo: 'CBL-Mariner Official Microsoft 2.0 x86_64'
Error: TDNFVerifySignature 2004
Plugin error: repogpgcheck plugin error: failed to verify signature
Error(2004) : Unknown error 404
Error: Failed to synchronize cache for repo 'CBL-Mariner Official Microsoft 2.0 x86_64'
zip package not found or not installed
Error(1011) : No matching packages

Problem is, the GPG keys are located under /root/.gnupg but github actions has home at /github/home so it's broken.

Knowing that it is based on Red Hat is enough for me.
Thank you so much

if you want to keep using the mcr.microsoft.com/azure-cli:latest, do we port from apk to tdnf or we wait for a fix?
fine both ways, not much

My best guess is there will be no fix, because everything is as intended. The Azure CLI team intentionally moved from Alpine (where apk is the package manager) to CBL Mariner 2.0 (where tdnf/yum is the package manager), so it is an expected change that apk is not available anymore. Also, the change was communicated upfront. Thus, I think there is nothing to fix.

Thank you @dallmair for the comments.
For more information on Azure CLI's docker image, please see https://learn.microsoft.com/en-us/cli/azure/run-azure-cli-docker

We encountered the following errors yesterday for :
 wget: command not found
 apk: command not found
 jq: command not found
when using the image mcr.microsoft.com/azure-cli:latest
This change wasn't communicated in the release notes.
Should we expect a fix, or should we look for a workaround?
For now, we've fixed the version to 2.63.

as Microsoft says here: https://learn.microsoft.com/en-us/cli/azure/run-azure-cli-docker

Azure CLI 2.63.0 (released in August 2024) is the last version supported on the Alpine docker image. Microsoft will not be providing additional updates or bug fixes for this image. Consider migrating to the Azure Linux-based image (cbl-mariner) for the Azure CLI, which is fully supported. See examples for cbl-mariner2.0 below.

So, for those who are asking for a fix: don't expect that.
PS: As told above, Azure Linux is based on Red Hat, this may help you to find equivalent commands

@baseif We moved our usages of wget to curl. For apk, per the above, you can move to tdnf (in case you're facing issues there is #29835 already). For jq you can install it using tdnf, and there is also #29830 about that.

It would be very nice if this image, which is widely used in CI/CD pipelines, could be more stable. Large breaking changes like this have happened before, and it's far from clear what the benefit is for its end users. Maybe now that everything is on "Azure" Linux we'll be spared the semi-regular panics when builds start failing because one system tool or other has mysteriously disappeared.

It would be very nice if this image, which is widely used in CI/CD pipelines, could be more stable. Large breaking changes like this have happened before, and it's far from clear what the benefit is for its end users. Maybe now that everything is on "Azure" Linux we'll be spared the semi-regular panics when builds start failing because one system tool or other has mysteriously disappeared.

Agree with @michaelbironneau, semantic versioning of the image tags would solve this. I would have personally classified this as a breaking change that would warrant a major release number change.

May I ask, is there a page or something where changes like that get announced? Some kind of deprecation notice, or something?

@fingineering just a warning message here: https://learn.microsoft.com/en-us/cli/azure/run-azure-cli-docker. Nothing in Docker Hub nor Microsoft Artifact Registry

ok so the quick fix would be to freeze the image version to a prev. version on our pipelines right?
-mcr.microsoft.com/azure-cli:latest
+mcr.microsoft.com/azure-cli:2.63.0

@manuartero This would lock you on an outdated version, and as you can read in the other comments this situation is highly unlikely to change. Thus, you need to update your scripts. However, when you actually do that is up to you, obviously.
With this, I'd propose to close this as Not planned @jiasli .

@dallmair thanks for pointing that out; honestly, I just skimmed through it...
since i've frozen the version i have my CI up&running, now, the proper fix is to ... use tdnf instead ?

or use a different base image and install/ add azure cli. Some stuff, like python i.e. is pretty outdated in the latest azure-cli release


DPO strategy metadata

Added metadata for the DPO strategy

@Cal231995 if you can just check the "series" data to make sure i got it right


JIT compilation

As the combination of shapes and configurations increases, our pip wheel size grows and the compilation time becomes long.
PyTorch supports Just-In-Time compilation of extensions:
https://pytorch.org/tutorials/advanced/cpp_extension.html#jit-compiling-extensions, which makes it possible to only compile kernels corresponding to certain configurations/shapes, thus reducing both the wheel size and the development overhead on the codebase.
We can release a flashinfer_jit wheel where all kernels are compiled with JIT.

For reference the following CI command on main will compile in 142minutes on a 32 core Zen3 4GHZ server container.
# time FLASHINFER_BUILD_VERSION="999.0.4+cu124torch2.3_gpPadded8_v4_arch8x" FLASHINFER_GROUP_SIZES="1,4,5,6,7,8"  TORCH_CUDA_ARCH_LIST="8.0 8.9" python -m build --no-isolation

real    141m49.680s
user    2389m59.725s
sys     200m31.997s

Without flashinfer_jit  the only way to speed up flashinfer whl compilation to reasonable timeframe is to lock group_size to one needed by model as that will cut down compilation steps/time by ~8x in my tests.


Multithreaded PNG export

Right now the biggest bottleneck of exporting to PNG is saving the PNG itself. Here's how this could be optimized:
After a frame has rendered, spawn a new thread that converts the image from ARGB to RGBA and subsequently saves it as a PNG. The first part can be a bit CPU-hogging, but we can simply disable checks and stacktraces for that part of the code to make sure the compiler does this as quickly as possible. -msse2 could also help but I'm not quite sure if SIMD would work here.

Implemented in b4bd71a.

Implemented in b4bd71a.


Add simple and clean empty state behavior.

Video: mobizen_20180208_234128.mp4.zip

Isn't this a duplicate of https://github.com/JakeWharton/SdkSearch/pull/62? Also, screenshots?


Add filtering options to views; add options for filtering out system containers & unconnected containers.

Me and @davkal

Not using the DSL for this?

Not using the DSL for this?

It turned out mapping between report.Topology (what the DSL expects) and RenderableNodes (what the rendering pipeline outputs, and what the UI needs) was quite a bit of work, some of which was subtle. In the interest of pushing the feature, I went with this approach instead.
It will be simpler to have a full-expression renderer, i.e. only dumping to RenderableNodes at the end. That's what I'm targeting for the Kubernetes integration.

@peterbourgon what happened to using labels instead of hardcoding the container names?

@tomwilkie we are using labels (see here) just not exclusively, as current weave master still doesn't put system labels on weave components.

as current weave master still doesn't put system labels on weave components.

It should do (I made that change!) - what version are you running?

Not getting any errors anymore.

Thanks; I'm just adding some tests but this is feeling really close now.

Okay I'm done; its looking good.
One issue:  I don't think the UI is selecting the default filter - I've changed the default to filter system containers, but I'm still seeing them in the UI.  David, can you fix?

LGTM!


how to know whether struct method by reflect equal

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
go version go1.10.1
Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (go env)?
linux/amd64
What did you do?
test code below:
type Child struct{}
func (c *Child) Say() {
fmt.Print("child say")
}
type Father struct {
*Child
}
func (father *Father) Say() {
fmt.Print("father say")
}
func main() {
father := &Father{}
say1 := reflect.ValueOf(father).Method(0)
say2 := reflect.ValueOf(father.Child).Method(0)
fmt.Println("struct method equal: ", say1.Pointer(), say2.Pointer())
// how can i know than say1 is different from say2
// i try say1.Pointer() == say2.Pointer(), but not ok
// i know say1.Pointer() return methodValueCall
}
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.
What did you expect to see?
how can i know than say1 is different from say2
What did you see instead?
i don't know how to do

Hi,
the Go project does not use its bug tracker for general discussion or asking questions about the language. The Github bug tracker is only used for tracking bugs and proposals going through the Proposal Process.
Please see the Questions wiki page; it has a list of good places for asking questions. Thanks!
Closing, since this is not a bug.


[5.8] Add validateRequest method

Within controllers I often find that I am calling the validator as follows:
$this->validate(request(), [...]);

This PR allows you to use the following method call instead:
$this->validateRequest([...]);

This is minimal risk as it just defers to the validate method, but passing in the request automatically, rather than the user having to specify it.

Use request()->validate().


fix nuget push in CI

Currently doesn't work.
I've no idea why it needs the folder wildcard, but I've confirmed locally that this works. Also, this is how I do it in my personal projects, but in those, the packages are in deep subfolders, whereas here they are just in nugets/, which is why I thought the folder wildcard wasn't required.

the push worked — https://www.myget.org/feed/particular/package/nuget/Particular.CodeRules/0.9.0-alpha.34

I've trashed the TC build and altered the required checks.


Weird parsing and behavior when an unrecognized OSC's ST is split

Environment
Windows build number: Win32NT 10.0.18362.0
Windows Terminal version (if applicable): 0.5.2762.0

Steps to reproduce
echo -ne '\e]10;foo\e'; sleep 1; echo -ne '\\'; sleep 5; echo; sleep 1; echo; sleep 10

Expected behavior
Two linefeeds eventually, nothing more.
OSC 10 sets the default foreground, it's not yet supported by WT. You can replace it with any other number that's not yet supported.
The terminating sequence of OSC should be ST accoding to the standard (BEL is a commonly used but nonstandard choice instead). ST in the C0 set is ESC followed by \.
Now we insert a bit of delay in the middle of ST. Such difference in timing should never make a difference in the final outcome, not even when the sequence is unsupported.
Actual behavior
The following weirdnesses occur:

A literal \ gets printed. It shouldn't.

That \ gets printed 6 seconds after starting the command line, rather than 1 second after. That is, not immediately when received, but when the next character (whether that's a newline or not) is received.

Subsequent newlines don't move the cursor to the beginning of the line as expected, but walk downwards in the second column.

So it seems the parser might be stuck in some weird mode??
The bug does not occur if the delay is eliminated and the unsupported escape sequence is printed in a single step. It is completely ignored then, as expected.
The bug does not occur with supported escape sequences either, such as setting the title with OSC 0. It's immune to injected delays, as expected.

The bulk of this will be covered by #3081, but the newlines acting unusual afterwards probably won't be. That's very curious.

So, with the fix in #4870 I can't reproduce the unusual newline behavior. :smile:


Vampirism and racemenu

not really a hyuge issue as fixable with player.setrace, but whenever using racemenu, "vampirism" is kind of lost as harkons court wont recognize and you can no longer feed on humans until you change your race back to vampire via console
-bobbysch

vanilla bug, sometimes happens just set your race to vampire via console
player.setrace xxxRaceVampire where xxx is your base race (Nord, Imperial etc)


sqlite3.h is missing

I was pushing code to heroku and got the following error:
/usr/local/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
/usr/local/bin/ruby extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal'
or 'yum install sqlite-devel' and check your shared library search path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/local/bin/ruby
--with-sqlite3-dir
--without-sqlite3-dir
--with-sqlite3-include
--without-sqlite3-include=${sqlite3-dir}/include
--with-sqlite3-lib
--without-sqlite3-lib=${sqlite3-dir}/lib
--enable-local
--disable-local
Please let me know if you have any questions.

You need to install SQLite. Try that, and don't try to run bundle install again until 'gem install sqlite' works.
On Jan 6, 2012, at 10:35 AM, Mark<EMAIL_ADDRESS>wrote:

/usr/local/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
/usr/local/bin/ruby extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal'
or 'yum install sqlite-devel' and check your shared library search path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/local/bin/ruby
--with-sqlite3-dir
--without-sqlite3-dir
--with-sqlite3-include
--without-sqlite3-include=${sqlite3-dir}/include
--with-sqlite3-lib
--without-sqlite3-lib=${sqlite3-dir}/lib
--enable-local
--disable-local

Reply to this email directly or view it on GitHub:
https://github.com/carlhuda/bundler/issues/1613

André,
I have SQLite installed locally and working. Do you mean I need to install
it again?
Thank you,
Mark McFadden
www.markmcfadden.tel
On Fri, Jan 6, 2012 at 1:52 PM, André Arko <
<EMAIL_ADDRESS>
wrote:

You need to install SQLite. Try that, and don't try to run bundle install
again until 'gem install sqlite' works.
On Jan 6, 2012, at 10:35 AM, Mark<EMAIL_ADDRESS>wrote:

/usr/local/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block
in build_extensions': ERROR: Failed to build gem native extension.
(Gem::Installer::ExtensionBuildError)
/usr/local/bin/ruby extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal'
or 'yum install sqlite-devel' and check your shared library search
path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for
more
details.  You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/local/bin/ruby
--with-sqlite3-dir
--without-sqlite3-dir
--with-sqlite3-include
--without-sqlite3-include=${sqlite3-dir}/include
--with-sqlite3-lib
--without-sqlite3-lib=${sqlite3-dir}/lib
--enable-local
--disable-local

Reply to this email directly or view it on GitHub:
https://github.com/carlhuda/bundler/issues/1613

Reply to this email directly or view it on GitHub:
https://github.com/carlhuda/bundler/issues/1613#issuecomment-3388840

So you're telling me that gem install sqlite3 works fine? If so, please paste the output from that command. If not, please fix that problem first.
On Jan 6, 2012, at 11:06 AM, Mark McFadden wrote:

André,
I have SQLite installed locally and working. Do you mean I need to install
it again?
Thank you,
Mark McFadden
www.markmcfadden.tel
On Fri, Jan 6, 2012 at 1:52 PM, André Arko <
<EMAIL_ADDRESS>
wrote:

You need to install SQLite. Try that, and don't try to run bundle install
again until 'gem install sqlite' works.
On Jan 6, 2012, at 10:35 AM, Mark<EMAIL_ADDRESS>wrote:

/usr/local/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block
in build_extensions': ERROR: Failed to build gem native extension.
(Gem::Installer::ExtensionBuildError)
/usr/local/bin/ruby extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal'
or 'yum install sqlite-devel' and check your shared library search
path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for
more
details.  You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/local/bin/ruby
--with-sqlite3-dir
--without-sqlite3-dir
--with-sqlite3-include
--without-sqlite3-include=${sqlite3-dir}/include
--with-sqlite3-lib
--without-sqlite3-lib=${sqlite3-dir}/lib
--enable-local
--disable-local

Reply to this email directly or view it on GitHub:
https://github.com/carlhuda/bundler/issues/1613

Reply to this email directly or view it on GitHub:
https://github.com/carlhuda/bundler/issues/1613#issuecomment-3388840

Reply to this email directly or view it on GitHub:
https://github.com/carlhuda/bundler/issues/1613#issuecomment-3389092

Yes, it is working correctly locally as I have data that I am fetching and
modifying from the SQLite db. I ran the gem install again and tried pushing
to Heroku and got the same error. Here is the output to the install:
gem install sqlite3
Building native extensions.  This could take a while...
Successfully installed sqlite3-1.3.5
1 gem installed
Installing ri documentation for sqlite3-1.3.5...
Installing RDoc documentation for sqlite3-1.3.5...
Thank you,
Mark McFadden
www.markmcfadden.tel
On Fri, Jan 6, 2012 at 2:21 PM, André Arko <
<EMAIL_ADDRESS>
wrote:

So you're telling me that gem install sqlite3 works fine? If so, please
paste the output from that command. If not, please fix that problem first.
On Jan 6, 2012, at 11:06 AM, Mark McFadden wrote:

André,
I have SQLite installed locally and working. Do you mean I need to
install
it again?
Thank you,
Mark McFadden
www.markmcfadden.tel
On Fri, Jan 6, 2012 at 1:52 PM, André Arko <
<EMAIL_ADDRESS>
wrote:

You need to install SQLite. Try that, and don't try to run bundle
install
again until 'gem install sqlite' works.
On Jan 6, 2012, at 10:35 AM, Mark<EMAIL_ADDRESS>wrote:

/usr/local/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block
in build_extensions': ERROR: Failed to build gem native extension.
(Gem::Installer::ExtensionBuildError)
/usr/local/bin/ruby extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal'
or 'yum install sqlite-devel' and check your shared library search
path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for
more
details.  You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/local/bin/ruby
--with-sqlite3-dir
--without-sqlite3-dir
--with-sqlite3-include
--without-sqlite3-include=${sqlite3-dir}/include
--with-sqlite3-lib
--without-sqlite3-lib=${sqlite3-dir}/lib
--enable-local
--disable-local

Reply to this email directly or view it on GitHub:
https://github.com/carlhuda/bundler/issues/1613

Reply to this email directly or view it on GitHub:
https://github.com/carlhuda/bundler/issues/1613#issuecomment-3388840

Reply to this email directly or view it on GitHub:
https://github.com/carlhuda/bundler/issues/1613#issuecomment-3389092

Reply to this email directly or view it on GitHub:
https://github.com/carlhuda/bundler/issues/1613#issuecomment-3389320

I missed the first line of your first message that said you were pushing to Heroku, sorry about that. If you read the Heroku documentation, you will notice that they do not support or allow sqlite3. Please talk to Heroku support to work out any problems you may have with Heroku.

I'm having this same problem after a fresh install of the railsinstaller.  I'm a little new to rails development, how do I install sqlite globally?

In Ubuntu: sudo apt-get install libsqlite3-dev, solved this problem.

@correaleyval This worked on Ubuntu 18.04.2 LTS

If anyone came here for sqlite - Heroku issues, Heroku, doesn't support it. However, the open source PaaS Dokku does. It's basically a clone of Heroku but only made to run on one server with most of the same commands. Since you are in control of the server it runs on, you can use sqlite!


[Feature Request] Remove 'seal' from XXXVariable to enable inheritance and add expression

Expression SO can inherit variables and make SOA more powerful and flexiable.
For example
class ComparisonExpression : BoolVariable
{
  public BaseVariable var1;
  public CompareOperator op;
  public BaseVariable var2;

  public override bool Value
  {
    get {
    // compare var1 and var2
    }
  }
}

I agree. This platform is interesting for its hackability, I don't see the point in sealed classes here.


VM errored: failed to connect via SSH

I have no idea about this issue. Neither about what's happening and how to fix.
GitLab CI Logs:
Running with gitlab-runner 16.6.1 ()
  on AppleSilicon, system ID:
Resolving secrets 00:00
Preparing the "custom" executor 00:12
Using Custom executor...
2023/12/23 01:56:42 Pulling the latest version of ghcr.io/cirruslabs/macos-sonoma-xcode:15.1...
2023/12/23 01:56:43 Cloning and configuring a new VM...
2023/12/23 01:56:43 Waiting for the VM to boot and be SSH-able...
2023/12/23 01:56:53 VM errored: failed to connect via SSH: ssh: handshake failed: read tcp 10.1.1.___:49241-><IP_ADDRESS>:22: read: connection reset by peer
ERROR: Job failed: exit status 1

I've check the router table, the host record for vm is being set to beidge100. Which is expected I guess.
192.168.64         link#21            UC              bridge100      !
<IP_ADDRESS>      some mac address  UHLWI                 lo0
<IP_ADDRESS>      some mac address  UHLWIi          bridge100    755

By executing inside the Terminal.app with ssh to ip, I was able to connect to the vm using the same credential.
The current workaround is to clone another vm using tart command. The ip address of the vm will changed after that and, may because of this, GitLab CI will work again.
# example:
tart clone ghcr.io/cirruslabs/macos-sonoma-xcode:15.1 demo
# tart run demo # is not needed

I was wondering if any of stuff below would help.

a relaxed retry for some times more
a dns purge and retry
a socket reset

The code stops here: https://github.com/cirruslabs/gitlab-tart-executor/blob/main/internal/tart/vm.go#L176
	if err := retry.Do(func() error {
		dialer := net.Dialer{}

		netConn, err = dialer.DialContext(ctx, "tcp", addr)

		return err
	}, retry.Context(ctx)); err != nil {
// ------>>	return nil, fmt.Errorf("%w: failed to connect via SSH: %v", ErrVMFailed, err)
	}

What your .gitlab-ci.yml and GitLab Runner's config looks like?
Do I understand correctly that with the official Cirrus Labs images everything works fine?

with the official Cirrus Labs images everything works fine

It works sometimes (the official image).
The problem is that: for an unknown condition, it will stop working (not be able to SSH into the tart machine) showing error as above.
Step I've tried to solve the issue (but didn't fix it):

tart clone (works some times, and 100% stop working if delete)
install softnet and pass the environment variable
reboot
reinstall macOS

* If I clone the machine with the same tag (using command above), it will work for a period of time and then stop working again for magic.
My router is proxying my data using dhcp profile (announce gateway to virtual networking device), so I've checked the route table as above, it (vm network interface: beidge100) did show up as destination in record.
Inside repo's .gitlab-ci.yml looks like:
image: ghcr.io/cirruslabs/macos-sonoma-xcode:15.1

stages:
- CompileFramework

CompileFramework:
  tags:
    - xcode
  only: ...
  stage: CompileFramework
  script: ...
  artifacts: ...

GitLab Runner's config is copy and pasted from your document. (Currently I do not have access to that, will update if you need that when I'm back to work)
Sorry for the misleading statement in previous reply, I stay up toooooo late that day.

reinstall macOS

Let's go from here:

Which macOS version are you running? And on which hardware platform?
Are there other any customizations done to the base OS? For example, tweaking firwall or "Internet Sharing" settings.
Is there any other networking/virtualization-specific software installed? For example, UTM.

Also, which Tart version are you using?

Which macOS version are you running? And on which hardware platform?
macOS Sonoma 14.2.1 or (14.2) + Apple Silicon M1 Mac mini (1st gen) if I remember correct.

Are there other any customizations done to the base OS? For example, tweaking firwall or "Internet Sharing" settings.
Firewall is disabled, iCloud/Apple ID is not turned on, Internet Sharing is disabled. Remote Login is enabled and assigned to the one and only user. Software update is disabled, Screen Saver is disabled. The internet is configured as DHCP(auto) v4 and v6 using wired cable.

Is there any other networking/virtualization-specific software installed? For example, UTM.
I believe no. The only virtualization tool I've installed is using tart.

Also, which Tart version are you using?
Not checked yet, but one week ago installed using brew. So I guess it is the newest one.

@Lakr233, tart --version output will help to validate you are running the latest version.
Also, is there any chance you are running more than 253 jobs a day? Could you please try to change the default DHCP lease time.
Also looking at the exact GitLab Runner's config will be useful since our docs contain several examples of the configs and will be great to see which one you use and if it has concurrency, softnet, etc. configured.

ci@ci ~ % tart --version
2.4.2

Also, is there any chance you are running more than 253 jobs a day?

No, it's like 1-5 jobs each day.

Also looking at the exact GitLab Runner's config

ci@ci ~ % cat .gitlab-runner/config.toml
concurrent = 1
check_interval = 5
shutdown_timeout = 10

[session_server]
  session_timeout = 3600

[[runners]]
  name = "AppleSilicon"
  url = "https://xxx.xxx.xxx/"
  id = 3
  token = "glrt-xxxxxxxx"
  token_obtained_at = 2023-12-15T16:50:07Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "custom"
  [runners.feature_flags]
    FF_RESOLVE_FULL_TLS_CHAIN = false
  [runners.custom]
    config_exec = "gitlab-tart-executor"
    config_args = ["config"]
    prepare_exec = "gitlab-tart-executor"
    prepare_args = ["prepare", "--concurrency", "1", "--cpu", "auto", "--memory", "auto"]
    run_exec = "gitlab-tart-executor"
    run_args = ["run"]
    cleanup_exec = "gitlab-tart-executor"
    cleanup_args = ["cleanup"]
  [runners.cache]
    MaxUploadedArchiveSize = 0

Could the issue be addressed by initiating an SSH handshake to all bridge networks when a connection failure occurs? The idea is to identify available network interfaces, select those that could potentially be virtual machine bridges, and resend the data packets through these interfaces. This could potentially be a solution; however, I lack proficiency in Go language, preventing me from implementing and testing this idea

Could the issue be addressed by initiating an SSH handshake to all bridge networks when a connection failure occurs? The idea is to identify available network interfaces, select those that could potentially be virtual machine bridges, and resend the data packets through these interfaces.

I'm not sure how that would help, because the Tart finds the VMs IP by looking for the freshest lease that matches the VMs MAC-address in the /var/db/dhcpd_leases file and then attempts to SSH to that IP.
This has not much to do with bridge interfaces, if you're not creating them manually.
I think the best way to diagnose this would be to set TART_EXECUTOR_HEADLESS to false and check the networking status from inside of the VM (check which IP was assigned and then try to connect via SSH from host manually) when this issue happens again.

I've noticed a significant number of records within the /var/db/dhcpd_leases directory. If I understand correctly, the presence of a record indicates that it's currently in use, and I've counted approximately 40 such records. However, this seems unusual because I've only utilized one virtual machine this week. Therefore, I suspect there may be some issue or error.
I will proceed to follow the guide mentioned earlier to see if it can help resolve the issue. I will keep you updated and get back to you if I discover anything new.

https://tart.run/faq/#changing-the-default-dhcp-lease-time

I have just discovered that deleting the lease file effectively resolves the issue. However, after executing another run, the same issue reoccurs.

If this reproduces so easily, you should definetely try the last paragraph in https://github.com/cirruslabs/gitlab-tart-executor/issues/49#issuecomment-1884621454.

I've connected to the vm by removing the clean-up step from the GitLab runner configuration and interacting with it via VNC. While the IP address is correctly assigned, the target executor continues to present the same issue.
2024/01/11 01:40:21 Pulling the latest version of ghcr.io/cirruslabs/macos-sonoma-xcode:15.1...
2024/01/11 01:40:23 Cloning and configuring a new VM...
2024/01/11 01:40:23 Waiting for the VM to boot and be SSH-able...
2024/01/11 01:40:33 VM errored: failed to connect via SSH: ssh: handshake failed: read tcp <IP_ADDRESS>:49751-><IP_ADDRESS>:22: read: connection reset by peer

2024/01/11 01:40:33 VM errored: failed to connect via SSH: ssh: handshake failed: read tcp <IP_ADDRESS>:49751-<IP_ADDRESS>:22: read: connection reset by peer

It seems like the the standard 10 SSH connection attempts is not enough.
I've created https://github.com/cirruslabs/gitlab-tart-executor/pull/52 to address this.

Please check out the new 1.5.1 release to see if it fixes the problem.

I have tried to upgrade but unfortunately the problem still exists.
Running with gitlab-runner 16.7.0 (102c81ba)
Resolving secrets 00:00
Preparing the "custom" executor 00:12
Using Custom executor...
2024/01/11 14:25:45 Pulling the latest version of ghcr.io/cirruslabs/macos-sonoma-xcode:15.1...
2024/01/11 14:25:46 Cloning and configuring a new VM...
2024/01/11 14:25:46 Waiting for the VM to boot and be SSH-able...
2024/01/11 14:25:56 VM errored: failed to connect via SSH: ssh: handshake failed: read tcp <IP_ADDRESS>:49795-><IP_ADDRESS>:22: read: connection reset by peer
ERROR: Job failed: exit status 1

I have resolved the problem.
After meticulous debugging of the code logic, I discovered that the root of the issue lies in the assumption that a successful connection to target:22 automatically implies the readiness of the SSH service on the target machine. However, this is not always the case. The retry mechanism you've implemented does not function as intended; it merely waits for a connection rather than ensuring the SSH service is ready.
To rectify this, I have integrated the initiation of a new SSH connection within the retry algorithm. As a result, the issue has now been definitively resolved.


Make service catalog console link route to new console

Type of change

Bugfix

Description
The service catalogue's console link needs changed to reflect the existence of the new console.
Ideally, the console link should redirect the user to the address space.
Checklist

[ ] Update/write design documentation in ./documentation/design
[ ] Write tests and make sure they pass
[ ] Update documentation
[ ] Check RBAC rights for Kubernetes / OpenShift roles
[ ] Try your changes from Pod inside your Kubernetes and OpenShift cluster, not just locally
[ ] Reference relevant issue(s) and close them after merging
[ ] Update CHANGELOG.md

Verified on 3.11.  The dash link takes you into the new console, with the fragment set to show the addressspace in question.


BuchiAutomaton: fix missing cases in completion

The completion algorithm didn't take into account the situation when the
destination of a transition was set to some value, but the value was an
empty set.

this is not right


ARROW-14111: [C++] Add extraction function support for time32/time64

This is to resolve ARROW-14111

@lidavidm thanks for the review :)
I've also updated the docs to reflect the new types.

Thanks @lidavidm ! :)


Cycle list markers by default

This PR proposes a solution to #1520:

The default list markers are extended by two new markers.
The resolution of the list markers now cycles instead of defaulting to the last element.
The docstring is adjusted accordingly.
The tests and the reference PNGs are adjusted accordingly.

The choice of the default list marker symbols is arbitrary and up for discussion. Symbols that are renderable in at least the default font should be chosen.

I adjusted the order based on https://github.com/typst/typst/issues/1520#issuecomment-1851773317. Thanks!


51.x fixes

One fallout from the 50-stable merge, CI Rails version update, excludes update and one for SQLite3 that probably doesn't trigger for 51-stable, but it sure does for 52-stable.
The remaining two errors on PG I have no idea about yet...test and rake tasks are the same as in Rails 5.2.
This will likely result in conflicts in the 52-merge. Anyways, once this is in, another PR for 52-stable will follow soon after.

@dr-itz I merged across along with the mysql jdbc adapter update.  We shall see how well that went...

@enebo 👍 I'll start preparing a few fixes for 52-stable then

@dr-itz thanks.  Right now I am looking into the jruby-head quote Array issue.  I noticed this in some work I am trying to accomplish so I it looks pretty common for Rails apps.  Hopefully you will see those turn green today (or it is still up for grabs but I am fairly certain it is a JRuby bug on master).

@enebo just a heads-up...with plain 52-stable: when running rails:test_postgresql (haven't tried the others) I'm seeing extreme slowdowns, some "E"s during test, but they never report since I get an OOM. Problems go away when using -J-Xmx1024M. That has never been an issue before...so we're leaking...

@dr-itz is this after the JDBC driver update?

@kares nope...I don't know too much about it yet...just that it's mostly char[], ByteList, HashEntry...writing a heap dump on OOM didn't work, just hangs the VM...it might be the Rails version..will try to narrow it down this evening...

@kares @dr-itz postgresql I did not prop the pg jdbc driver update past 50-stable yet so it shouldn't be that.


solargraph: 0.22.0 -> 0.23.3

Motivation for this change
An update
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build solargraph

Success on x86_64-darwin (full log)
Attempted: solargraph
Partial log (click to expand)
Successfully installed solargraph-0.23.3
1 gem installed
post-installation fixup
patching script interpreter paths in /nix/store/h9s5sr60b9smp25jjlbp1xj04lscwn86-ruby2.4.4-solargraph-0.23.3
/nix/store/h9s5sr60b9smp25jjlbp1xj04lscwn86-ruby2.4.4-solargraph-0.23.3/lib/ruby/gems/2.4.0/gems/solargraph-0.23.3/bin/solargraph: interpreter directive changed from "/usr/bin/env ruby" to "/nix/store/i0kmp30s644ayglfzwchm2x1i5arwxjs-ruby-2.4.4/bin/ruby"
/nix/store/h9s5sr60b9smp25jjlbp1xj04lscwn86-ruby2.4.4-solargraph-0.23.3/lib/ruby/gems/2.4.0/gems/solargraph-0.23.3/bin/solargraph-runtime: interpreter directive changed from "/usr/bin/env ruby" to "/nix/store/i0kmp30s644ayglfzwchm2x1i5arwxjs-ruby-2.4.4/bin/ruby"
building '/nix/store/p6rvjj4c3vfs41iig2p40fpgk105yxf0-solargraph-0.23.3.drv'...
created 83 symlinks in user environment
building '/nix/store/8c94d81jv68kxk6cfaqag91kjywj3fc1-solargraph-0.23.3.drv'...
/nix/store/9j6c3lk8m5zwh4xjspkmzks9xp406fk7-solargraph-0.23.3

Success on x86_64-linux (full log)
Attempted: solargraph
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/8cbfpvdq3nkylsrdkqpfh30nnm0fs1pd-ruby2.4.4-solargraph-0.23.3
patching script interpreter paths in /nix/store/8cbfpvdq3nkylsrdkqpfh30nnm0fs1pd-ruby2.4.4-solargraph-0.23.3
/nix/store/8cbfpvdq3nkylsrdkqpfh30nnm0fs1pd-ruby2.4.4-solargraph-0.23.3/lib/ruby/gems/2.4.0/gems/solargraph-0.23.3/bin/solargraph-runtime: interpreter directive changed from "/usr/bin/env ruby" to "/nix/store/f3svdpbdciz3c91nc8bj8qi0adc6p5zl-ruby-2.4.4/bin/ruby"
/nix/store/8cbfpvdq3nkylsrdkqpfh30nnm0fs1pd-ruby2.4.4-solargraph-0.23.3/lib/ruby/gems/2.4.0/gems/solargraph-0.23.3/bin/solargraph: interpreter directive changed from "/usr/bin/env ruby" to "/nix/store/f3svdpbdciz3c91nc8bj8qi0adc6p5zl-ruby-2.4.4/bin/ruby"
checking for references to /build in /nix/store/8cbfpvdq3nkylsrdkqpfh30nnm0fs1pd-ruby2.4.4-solargraph-0.23.3...
building '/nix/store/cykvi8xh0l7xcw44rdwcjiq89l55f955-solargraph-0.23.3.drv'...
created 83 symlinks in user environment
building '/nix/store/ksvnpcmazy3h6ga47592lw9lbrxs9k5j-solargraph-0.23.3.drv'...
/nix/store/7iw0ckv51wrcxkvpfs8vil74ccmr1yf8-solargraph-0.23.3

Success on aarch64-linux (full log)
Attempted: solargraph
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/2zanly3hrysyrhvdqfq72rl3718j2pr2-ruby2.4.4-solargraph-0.23.3
patching script interpreter paths in /nix/store/2zanly3hrysyrhvdqfq72rl3718j2pr2-ruby2.4.4-solargraph-0.23.3
/nix/store/2zanly3hrysyrhvdqfq72rl3718j2pr2-ruby2.4.4-solargraph-0.23.3/lib/ruby/gems/2.4.0/gems/solargraph-0.23.3/bin/solargraph-runtime: interpreter directive changed from "/usr/bin/env ruby" to "/nix/store/ra2wzisr8lkvgkkvlx4sfrd0q9dqn9k5-ruby-2.4.4/bin/ruby"
/nix/store/2zanly3hrysyrhvdqfq72rl3718j2pr2-ruby2.4.4-solargraph-0.23.3/lib/ruby/gems/2.4.0/gems/solargraph-0.23.3/bin/solargraph: interpreter directive changed from "/usr/bin/env ruby" to "/nix/store/ra2wzisr8lkvgkkvlx4sfrd0q9dqn9k5-ruby-2.4.4/bin/ruby"
checking for references to /build in /nix/store/2zanly3hrysyrhvdqfq72rl3718j2pr2-ruby2.4.4-solargraph-0.23.3...
building '/nix/store/3vfc2zh7qln2215q8j04rmy4radp38l0-solargraph-0.23.3.drv'...
created 83 symlinks in user environment
building '/nix/store/jphjz2cx11cy29lnxkl2p0p7gkf60nzh-solargraph-0.23.3.drv'...
/nix/store/w9gzyh6fhrqh8sksnzxdfsl44xih24jr-solargraph-0.23.3


[local_auth] Android always return BiometricType.fingerprint even if using face recognition

I have a Samsung Galaxy S8+ (supports fingerprint and face recognition), even when I set face recognition as main security the plugin always return BiometricType.fingerprint, even when the fingerprint was removed from settings.

@bergtorresn
There's similar open issue describing your case, https://github.com/flutter/flutter/issues/45775
Please follow-up there for updates.
Closing this as duplicate.


Jetsnack does not remember scroll state position

Looking at the code, it appears that JetSnack should remember the scroll state position in the horizontally scrolling rows. However, in my testing, this is not working.

I assume you mean on configuration change? or when navigating back?

It does retain scroll position over configuration change but not across navigation events. I think that this is beyond the scope of the simple navigation system in place until a full AAC Navigation solution arrives, so will close as WAI.


Annotate reliability of ENSEMBL transcripts

Is your feature request related to a problem? Please describe.
Not all ENSEMBL transcripts are equally trustable.
Describe the solution you'd like

We could try to get the TSL from GENCODE or a recent release.
We should include mapping between RefSeq and ENSEMBL.

Describe alternatives you've considered
N/A
Additional context
Related to #11

MANE is better


GenericArguments and CommandFlags Fixes

This PR fixes a couple issues within GenericArguments and CommandFlags, particularly with tab completion.
UserCommandElement
Previously, the UserCommandElement would delegate it's returnSource value to the PlayerCommandElement which checked for players. As a result, if the name of an offline user was entered it tried to return the CommandSource instead, which resulted in the UserCommandElement never attempting to parse a User from the given name.
SequenceCommandElement
The SequenceCommandElement could not handle tab completion well for optional-like elements (OptionalCommandElement, UserCommandElement returning the source, FlagsElement, etc.) because any ArgumentParseException thrown was caught and handled by that element. Now, if the state of the args is the same before and after parsing an element, the completions for those will be cached in a Set to be returned later. If an element is parsed successfully, this cache is cleared.
CommandFlags
Much of CommandFlags has been cleaned up and simplified, placing a large priority on fixing tab completion. I would also like to look into a tabCompleteUnusedFlags option that will tab complete for flags that haven't been used yet, although this will take a bit of work doing.
Minor Changes

MarkTrueCommandElement now uses a Text instead of a String key, and has been made public
OptionalCommandElement#parseValue had a reversed args.hasNext() check
The PlayerCommandElement key is now @Nullable
Updated CommandFlags.Builder functions to remove @Nullable and use lambdas

Review & Testing
I have not begun testing these with Sponge yet, but these changes come from those that I have tested within TeslaLibs. I will begin setting up Sponge tests tomorrow, and any help testing would be much appreciated!

I’ve not had much time to look over this, but with all of your minor changes, why? They either indicate a change in behaviour or just do nothing, as far as I can see.
I’ll investigate other points when I get a little more time.

These changes are being migrated from another projects, but I did try to minimize any external changes that weren't focused on the aspect I was working on. In the case of flags, the primary fix is preventing tab completion from overwriting the inputted flag. I would also like to have some system in place that filters the available flags based on what has been inputted already. This would likely require a new option within the builder because the reuse of a flag is allowed by the specifications.
If you want me to revert the unnecessary changes, please confirm that for me.

It's done now but I am wary that by doing so that some behaviour changes may have been introduced that should not have been. Particularly for this, this is in the API project, so changes to stable should be as minimal as possible, which is ultimately where you'd want this to go.
Can you please explain what the flag tab completion problems are, why they are caused and how you fixed them? It's hard to make it out because of these diffs.
~wip

Previously, if you tab complete a flag that has an existing alias (similar to user thing discussed above) it would tab complete the element of the flag without attaching the flag to the result, so --user would tab complete Simon_Flash instead of --user Simon_Flash (or --user=Simon_Flash).
This was fixed in the first PR in this line, but I realized this is also incorrect as we're assuming the sender wants to tab complete the value of the flag and not the flag itself (same thing as with the user example above). The proper fix for that is in this line, which now also returns the filtered keys if we have a single flag without a value that does not have a next argument.
However, there are three other changes that I would like to make for this:

Tab completing "" (empty) should include all flags, not none.
Tab completing - should include all flags, not only short flags.
When tab completing a flag, only flags that are unused are included. Because the specifications for CommandFlags allow a flag to be used multiple times, this would be implemented as an option set within the builder with something like setFilterUsedFlags, defaulting to false.

The gif below demonstrates how these might work (particularly the last one); just note that in it long flags only have a single hyphen instead of two.

I'll need time to review this in depth, but when I quickly skimmed it before dual reviewed, I had the same thoughts about not being able to see the direct changes due to not being a minimal diff, but didn't write it as I wanted to look in more depth and give some positive constructive feedback as well.
That said, this looks like a better contribution then the color Orange rabbit hole I led you down, So I'm glad to see you still contributing <3
"just note that in it long flags only have a single hyphen instead of two."
What do you mean by this? Is the gif representative of this PR (which changes the long flags to single hyphens)? Or is it using your alternate command system(and is just used for demonstration purposes, because you believe this PR will act similarly)?

Yes, some of the changes weren't really needed. I've reverted most of those, but I've kept the changes I made to the parsing of CommandFlags because it does make the code more readable (in my opinion) and was necessary for me to verify that it had the correct functionality that I was looking for. Without getting too off-topic, I have no complaints regarding the orange PR except I still don't know what people want me to do with it.
I have a difficult time explaining thing (especially in text), so I included the gif to try to show what my final goal is. I wrote a flag parsing system into TeslaLibs here a couple days ago to fix some of the issues I had personally with CommandFlags, and this PR adds whatever fixes I can from there into Sponge. That's the system shown in the gif, and was only included to show what I meant by the tab completion pieces. For compatibility reasons, there are no changes made to how long flags work in this PR.

@dualspiral I just discovered an issue with tab completing for PatternMatchingCommandElements, but I'm not sure how to fix it properly.
When we're parsing an element such as a UserCommandElement, it attempts to get a value from the PlayerCommandElement first. However, unless you've typed the name of a player incorrectly this parsing will always succeed and ends up returning a list of all players on the server that match the argument. As a result, the parsing never fails and thus we don't know to complete the element. Here's a couple examples of this:

"" -> Parses all players into the context
"S" -> Parses all players starting with S into the context
"Sin -> Fails parsing. Tab completion would return any users starting with Sin, often resulting in an empty list.

This should be fixed as a result of the !args.hasNext() check [here](System.out.println("Parsing argument: (" + (args.hasNext() ? args.peek() : "N/A") + ")");) in SequenceCommandElement, and I should be doing the same here in CommandFlags. However, I'm not sure if this is a proper fix or just a workaround as the parsed values for UserCommandElement are incorrect as well.

I think that I solved this in #1660 by adding a completion context and moving the check for this element. Let me look at getting that in tonight (UK time), I should have some time this evening.

@SimonFlash I can't remember the exact reason for that behavior (players first) But I remember it being wanted, since 1. it was more efficient, and 2, people expected to be able to tab complete the online players first, because they were online. If it's failing to parse beyond that, then it's possible I made a mistake, or it's not the Command Element that I remembering editing. The git blame on that should hold a PR, with an issue with additional details if that's the case.

Status update on this:

Waiting for #1660 so I can update accordingly. I did make an attempt to merge those changes with mine and do some testing with it, but was unsuccessful.
Thoughts on converting GenericArguments#markTrue to something more like GenericArguments.constant that accepts a key and returns a constant value? Has the same functionality when true is passed in, but has a bit more uses and justifies making it public.
Filtering out already defined flags from suggestions (see this comment). This would be a bit of extra work and would require an additional setting to be defined in the builder, but shouldn't be a breaking change.

@dualspiral This has passed all of my tests and is ready for review/merge.

https://github.com/SpongePowered/SpongeAPI/pull/1768/files?w=1
ignoring whitespace helps a bit

Consider the following CommandElements, which simply represent three arguments that are optional and their suggestions, and the SequentialElement created using the old logic compared to the new logic in this PR.
CommandElement first = optionalWeak(choices(Text.of("first"), ImmutableMap.of("arg", "arg", "arg1", "arg1", "test1", "test1")));
CommandElement second = optionalWeak(choices(Text.of("second"), ImmutableMap.of("arg", "arg", "arg2", "arg2", "test2", "test2")));
CommandElement third = optionalWeak(choices(Text.of("third"), ImmutableMap.of("arg3", "arg3", "arg4", "arg4")));

CommandElement oldSeq = oldSeq(first, second, third);
CommandElement newSeq = newSeq(first, second, third);

Here's what happens when you complete these with the following inputs:

"" (empty)

OldSeq: []
NewSeq: [arg, arg1, arg2, arg3, arg4, test1, test2]

"a"

OldSeq: []
NewSeq: [arg, arg1, arg2, arg3, arg4]

"arg"

OldSeq: [arg3, arg4]
NewSeq: [arg, arg1]

So, what's happening here? The largest issue that this addresses is that the old SequenceElement skips over optional arguments because they are technically parsed successfully. To fix this, I've included a check to see whether the actual state of the arguments changes - if it doesn't, then we can presume that we're dealing with some type of optional element and can add its completions to the return list.
The second issue is that the old element makes the assumption that if a completion matches the input, we should jump to the next element. This is wrong - as I've discussed above with flags, we should only be completing the active element and require the user to input a space to indicate they're moving to the next one.
With the first two examples, none of the arguments are matched and so the ChoicesElement throws an exception, which is caught by OptionalWeak. As the parse was 'successful', the old sequence element moves on and eventually swallows the remaining elements without actually completing any of them. My changes make this system a bit smarter, and the state check realizes that we're probably dealing with an optional element and completes them.
In the last case, this is caused by the weird jumping and resetting. I'm honestly not 100% sure what the old sequence element is doing here, but it seems to parse arg twice for the first and second elements before eventually completing the third. The new sequence element, however, sticks with the first element as the parse was successful and returns it's completions. While the most correct response is to also complete the remaining elements, this is a limitation of the current command system because it is impossible to identify an element as being optional if an argument is consumed. As such, there is no way we can return the expected [arg, arg1, arg2, arg3, arg4] completions without making changes to the CommandElement class to indicate when arguments are optional.
Though the test case is quite odd, it is actually something that is seen commonly on a smaller scale. With these changes, any arguments such as [player-or-source] <something> will both be tab completed properly.
With flags, the changes to tab completion is with regards to this second issue. This ensures that tab completing --fl will show [--fl, --flag] instead of completing the element attached to the --fl element (poor example, but that's the gist of things). The focus here is requiring the using the specify when they're moving to the next argument rather than forcing it on them if there's a partial match.

OK, so I've pulled this into my workspace and written a unit test or two to verify things. It doesn't pass all of my tests (and one of yours). This is what I see:

UserCommandElement: not there - was fixed in #1660 and later commits so isn't needed as part of this.
SequenceCommandElement: I wrote this unit test to verify that this is the case, includes your tests and some other cases I thought of. Some are failing.
CommandFlags: you're not accounting for optional elements or complete short flags by the looks of it - short flags probably don't need completion on their own to be fair but it's included in the test for sake of completion, happy it ignore that one. Others should be considered for consistency.

Minor changes:

MarkTrueCommandElement now uses a Text instead of a String key, and has been made public - OK
OptionalCommandElement#parseValue had a reversed args.hasNext() check - not there now.
The PlayerCommandElement key is now @Nullable - not there now.
Updated CommandFlags.Builder functions to remove @Nullable and use lambdas - OK.

UserCommandElement
I'm not sure if you're saying there's something I should change here or not. It took me months to find people to help me update my workspace to include that PR. If that needs to be redone or reversed, I'm going to need help as I don't understand Git well enough to do it myself.
SequenceCommandElement
I added the tests into my workspace and here were the initial results. Notably, the only test cases that fail with my system also fail with the old one anyways.

My sequential element failed tests 1, 15, 16, and 17.
The old sequential element failed tests 1, 2, 3, 6, 9, 10, 12, 13, 15, 16, and 17.

In the process of fixing test case 1, I found that tests 5, 7, and 8 are incorrect. Each of these makes the assumption that if the element is parsed successfully using an argument then it should complete the next element, which is not true. The completions of this element should be included through the next non-optional argument - this is the change that resolves test 1.
I've forked your gist of the tests above and added my edits here.
CommandFlags
Applying optional elements to flags is outside the scope of this PR, and as such I didn't worry about tests 15, 16, and 17. I wouldn't expect people to try using optional elements with flags as they're optional by nature anyways (though wrapping it with the new sequential argument could work). There are a number of fringe cases that could be addressed, but I'm not willing to put time into that because the system really needs to be rebuilt anyways. The largest problem with this is that there is no method to detect whether an element is optional or not; we can only make guesses based on whether the state of the arguments changes and that can't account for an optional element that's consumed anyways. I'm more than happy to put time into resolving these problems, but ultimately this is a project for API 8 that requires a redesign to include the necessary information to make this possible.

Tests 5 6 and 7 mirrored what you said in your previous comment, so if you've fixed that, brilliant!
What I meant about the UserCommandElement was that I did it earlier, so it's not needed to be present here. My bad.

I wouldn't expect people to try using optional elements with flags as they're optional by nature anyways

I get what you're saying, but it is possible because there might be a sensible default associated with a flag where the flag changes the meaning of the command anyway. But I also understand your point about the work it is. However, as API 7 could be around for another year yet (as command changes will be to work with Brigadier for 1.13), it might be worth looking at it. It can be a future PR though.
To be honest, let's get this checked and in and worry about that later. I need to test this before making any more comments - I'll do the next time I get a chance to.

I ran the code on my server and found some odd things happening with flag completion. So, I added some more tests and properly tested what was coming back from a completion (not just a count), and there were some errors that occurred:
I added the tests here along with the one on line 103 (-f arg4), which all failed. That latter one is an edge case, but the first three were broken when you rearranged some of the code.
Specifically, you missed the two dashes here which should have also been here.
This is why a minimal diff for fixes and changes are preferred, because everyone missed it right up until the point I was doing final tests!
As it's a minor thing and I want to get this all in tonight, I'll make the changes. I've also updated the short flag completion code so that it properly handles elements that are complete and doesn't make them disappear on tab - my diff is here: https://gist.github.com/dualspiral/25fa09995a791972f2deca7f786457c1.

https://github.com/SpongePowered/SpongeAPI/commit/675baab9b722abde24170903d043377d4585462e
This is currently only on bleeding, will cherry-pick in a bit.


ci(.circleci/config.yml): Add support for linux and mac matrix testing

:tada: This PR is included in version 2.0.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


style images

Thank you for your great work.
I'd like to apply this model to other tasks,
Can you open all 32 of the style images and the corresponding content prompts used in the evaluation?

Hello, you can find the style images and eval prompts in
https://drive.google.com/file/d/1DtSK2goKeNWv7EQ7Adh9t6Jm0j7PCzqP/view?usp=share_link

Thank you.

Hello, you can find the style images and eval prompts in https://drive.google.com/file/d/1DtSK2goKeNWv7EQ7Adh9t6Jm0j7PCzqP/view?usp=share_link

Could you also open the contextual description of the style image? Thanks. @nmhkahn


Add environment variable example to JS Data Files

Implements https://github.com/11ty/eleventy/issues/221.
What do you think?

Love it—thank you!


Make CLIP skip easily adjustable/Tied to the model for convenient model switching

I should make this request upstream tbh.
https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/3815
Hm... could it be done as an Extension?

This would be superseded by having a working settings preset system.


App crashing in SAMSUNG Galaxy J7 (2016)

Fixed this crash error, let's check this commit https://github.com/Jumman04/Analogue-Watch/commit/a64c3cba2c4dc22ac74edc295074a563e6e3120e.


Interface not show on nooelec NESDR Smart v5

This unit claimed using R820T2, guess that skipped since not matching string? https://github.com/Sultan-papagani/sdrpp_new_rtlsdr_source/blob/492035302ff7609615664f319d21806de2acb827/new_rtl_sdr_source/src/main.cpp#L329

okay it shows up once i click start


Error with discord set cursor when compiling

https://cdn.discordapp.com/attachments/769999205585911852/775849660899131452/unknown.png
ple s help

having same issue


[T2A4][T11-A2]Teh Chee Yeo

I'm reiterating here :) Next time have individual commits for each change and relevant commits in each PR.


I restarted Dev Home after #2497 then it just crashed.

Dev Home version
0.1201.442.0
Windows build number
10.0.22621.3374
Other software
OS Build Version: 10.0.22621.3374.amd64fre.ni_release.220506-1250
.NET Version: .NET 8.0.1
Steps to reproduce the bug
Restart the app after #2497.
Expected result
It should the app.
Actual result
It crashed.
Included System Information
CPU: Intel(R) Core(TM) i3-7100U CPU @ 2.40GHz
Physical Memory: 11.89GB (2.08GB free)
Processor Architecture: x64
Included Extensions Information
Extensions:
Microsoft.Windows.DevHome_0.1201.442.0_x64__8wekyb3d8bbwe
Microsoft.Windows.DevHome_0.1201.442.0_x64__8wekyb3d8bbwe
Microsoft.DevHomeMicrosoftGameDevExtension_0.400.435.0_x64__8wekyb3d8bbwe
Microsoft.Windows.DevHomeGitHubExtension_0.1200.442.0_x64__8wekyb3d8bbwe
Microsoft.Windows.DevHomeAzureExtension_0.700.442.0_x64__8wekyb3d8bbwe
9932MartCliment.WingetUIWidgets_<IP_ADDRESS>_x64__g91dtg5srk15g
Widget Service:
MicrosoftWindows.Client.WebExperience_523.11500.0.0_x64__cw5n1h2txyewy

Hi! Thanks for opening this issue. Unfortunately, there's not enough information here which makes it very hard for us to diagnose and triage. If you can add more information, like detailed repro steps, logs, or a link to a crash recorded in Feedback Hub, we can consider reopening.

https://aka.ms/AApvy9v


[New Fix] Missing R&D info for tech with multiple prerequisites

What will the fix solve? Please describe.
In R&D, when clicking on a technology with multiple prerequisites, feedback is only given for a single prerequisite in the left info panel
Describe the solution you'd like
A list of all prerequisites
Additional context
Just wondering if this is the kind of thing that's in scope for this project, if so I can investigate further if nobody else is already

It has been decided that this fix will be added to the tech tree manager mod.
https://spacedock.info/mod/3527/Tech Tree Manager


Identify IIIF manifests where the volume label has a year prepended

e.g. https://wellcomecollection.org/works/ekjkcwqs/items
$ curl 'https://iiif.wellcomecollection.org/presentation/v2/b2874584x' 2>/dev/null | jq .manifests[].label
"Volume 181101"

See thread in Slack here: https://wellcome.slack.com/archives/C8X9YKM5X/p1670578746667469
It would be helpful for Ashley if we could produce a list of all the IIIF manifests where this has occurred, so it can be fixed in bulk (and/or fixed at source).
I already have scripts for doing batch analysis of IIIF Presentation manifests, so I'll pick this up.

Done, and given to Ashley.


PDM support

During Nix Camp @DavHau and I are working on support for PDM. Some components have been merged but a lot is left to do:
How does PDM work?
Dependency types

main package (project.dependencies)
extra's of the main package (project.optional-dependencies)
dependency groups (tool.pdm.dev-dependencies)

Multiple versions - requested different versions.
It is not possible to have multiple versions of a package in a single lock file. 1) and 2) have to use the same version of packages always. 3) may have different versions, but in that case they need to be locked in a separate lock file. The lock file will say which groups it covers. The main package + extra is described by default.
Multiple versions - cross-platform
Requiring different versions across different platforms seems to be ignored. The platform on which the locking is done decides how the resolving is done. The cross-platform option only adds/removes wheels for other platforms but assuming the same version can still be used.
Same name for optional dependency and PDM dev-depenencies.
If the same name is used under project.optional-dependencies and tool.pdm.dev-dependencies the former is considered and the latter ignored. Thus, optional dependencies take precedence!
Lock file format
PDM has different versions of the format. The version is specified in the format. In 2.6 there is a separate packages and metadata.files. With 2.9 they are merged together. With 2.6 there is an url for each file, with 2.9 there is a filename only instead. With 2.9 we thus need to guess the url or use the PyPI API in the fixed-output derivation (see poetry2nix).
Architecture
How does this roughly look? We have

[ ] packages. Here we will use the existing buildPythonPackage wrapper.
[ ] package sets or groups. Tools such as PDM offer multiple dependency groups. We create for each a separate package set.
[ ] groups of packages. PDM can create multiple groups so we need a construct for handling multiple groups.

Tasks
As a first step we aim for building from wheels:

[x] parsing pyproject.toml
[x] parsing pdm.lock
[ ] checking validity wheel / sdist
[ ] choosing valid wheel
[x] selecting single artifact
[x] constructing dependency tree
[x] setting packages and passing on to buildPythonPackage
[ ] bootstrapping from wheels. Generally speaking build systems are not part of our lock file so we need to provide them manually. Ideally each build environment is a separate package set.
[ ] Add project package to default group

In a later stage we want to be able to prefer sdist/source:

[ ] support defining build systems
[ ] bootstrapping from source/sdist

Just want to note that this does not work with pdm lockfile version 4.2 (the example here is 4.3) generated by older versions of pdm.
It outputs: error: attribute 'files' missing from this line: https://github.com/nix-community/dream2nix/blob/0e36d8d42b67e269ddcd8b290dff5be32a79b12b/modules/dream2nix/WIP-python-pdm/lib.nix#L164
I know it's noted in a TODO a few lines above to validate lock file version, but thought I'd mention it anyway.

@FRidh I'm planning to polish this module and release it soon.
Some things in the task list are not clear to me:

checking validity wheel / sdist: - Why is this necessary?
bootstrapping from wheels. Generally speaking build systems are not part of our lock file so we need to provide them manually. Ideally each build environment is a separate package set. - The build system is not locked, but it is part of pyproject.toml and currently I just take the current version of this build system from nixpkgs. This seems to work fine. Am I missing anything?
Add project package to default group - Why would we want to do that?

@DavHau amazing!
If I could add a request can we add examples for how to configure optional dependencies?


Fix issue where session host becomes unavailable

Unsure what causes this. Update issue with actual error and resolve.
Current workaround that needs an actual fix:
(appox 20 minutes)

Delete from host pool
Delete vm
Kick off terraform again

still needed? @gaunt-battelle

Various things could have been causing it but I think we worked around or through it when moving to the terraform implementation.


Remove unused events, interfaces, and patterns from GGVPointer

Overview
This is largely a formatting / cleanup pass on GGVPointer, found as a result of my work on #5528.
Mostly, there was an interface that had entirely empty events. It also had a Start method that only called the base.
Verification

Make sure GGVPointer still works.

/azp run

/azp run

/azp run mrtk_docs