Raidboss: A1S Fr

Translation Fr missing.
for bait, I make a difference between:

attract a laser that follows you (attirez)
place an area on the ground or other (placez-vous)

I don't know about the English client, but about the French client:

This line

This line

and other cast bar do not appear. On Faust yes, but on Oppressor no. I don't know, if it's normal.

I just created the boss skill names. My skills are limited to this level of software.

I wanted to delete them thinking that the translation was useless. Bad idea, the check didn't go through any more, and that created other problems for me. I restored everything.

I wanted to delete them thinking that the translation was useless. Bad idea, the check didn't go through any more, and that created other problems for me. I restored everything.

Yes, sorry.  It seems kind of silly and useless to have them there, but without them there's no way to differentiate between "this hasn't been translated yet" and "this has been translated but it is the same".
For what it's worth, you can also run npm run test and npm run lint locally to do the same thing that the bot would tell you to do.

Translation Fr missing.
for bait, I make a difference between:

attract a laser that follows you (attirez)
place an area on the ground or other (placez-vous)

That makes sense to me.  I think in English the second one is "bait".  In copied factory Copied Engels Guided Missile, the first one is Get Out + Dodge Homing AoE which is a bit of an awkward phrase.

I don't know about the English client, but about the French client:

This line

This line

and other cast bar do not appear. On Faust yes, but on Oppressor no. I don't know, if it's normal.

Sorry, I don't know what you mean that they appear on Faust.  Are you saying that timelines in general don't appear? Or those particular timeline triggers about resin and liftoff aren't working?
I think this is maybe separate from this patch, so I will go ahead and merge this one.

Also also, thanks for the translations! :)

or and how should I make this order, it would actually help me.

You can install npm via https://nodejs.org/en/
I run npm run test from the root of my cactbot directory in a console. (I use MINGW64, which is what "git shell for windows" gives me.)

This is cast bar on Faust:

THis is on Oppressor: written warning, just for Hydrothermal OK, but no cast bar

This is this is valid for all rest Oppressor: No warning written and no cast bar on fight.

this is for the frenchg version, i don't know for the english version.

Same for:

A2S, A3S, i try other.

You need a replaceSync for the seal message.  In particular, you need a replaceSync entry for both Machinery Bay 44 and Hanger 8.  Faust works because there's a sync on the first cleave.  There's no such sync on the first Royal Fount.  Let me add one for safety.

this solved the cast bar problem, but not the written warning (resin bomb).

for the cast bars, I would correct on the raid or trial where it does not work because I understood the sync, thank you.

this solved the cast bar problem, but not the written warning (resin bomb).

This is because there's no regexFr translation.  Take a look at other non-Alexander trigger files to see.  The timelineReplace section only applies to timelines right now.  I would like them to apply to the regex automatically in the future, but they do not yet.

for the cast bars, I would correct on the raid or trial where it does not work, I think I understood.
I hope.

Send a pull request, and we can chat about it there.  I'm happy to help you through it.

no sync here, it's normal ?

Yes, that's a loop, where the phase repeats and so it is providing skills that look like they're ahead but then will match up with where it jumps to.
https://github.com/quisquous/cactbot/blob/master/docs/TimelineGuide.md#making-loops-loop

For the announcement of resin bomb, I tried many combinations, but I did not succeed. Neither regexFr works, I look in other files, but I don't see how.

What does your regexFr line look like? What is the line in the log for resin bomb?

regeFrx: Regexes.startsUsing({ id: 'E46', source: 'Oppresseur' }),
i tried this, like on a2s. But it doesn't work. I changed condition to ability and other things, to no avail.

I assume you mean regexFr: Regexes.startsUsing({ id: 'E46', source: 'Oppresseur' }),, right?
When you view the logs in ACT, what does the log line say? See: https://github.com/quisquous/cactbot/blob/master/docs/LogGuide.md#viewing-logs-after-a-fight

This is not well-documented, but you can also use ui/raidboss/raidemulator.html.  If you open that up, then import an a2s log file, you can see which triggers fired in the timeline (by mousing over them) or by hitting play.  You can also hit "store" to store it in the browser storage so you don't have to import it again, make edits to your trigger file, reload the overlay, and then try again without having to go into an instance.

Oh! The issue is that Resin Bomb is E47 not E46.  Sorry.

Thanks to you for finding. I think there is really a lot of possible things
to do, it's very interesting.
More documentation would help, indeed. But don't add extra workload.
Le sam. 4 avr. 2020 à 18:58, Adrienne Walker<EMAIL_ADDRESS>a
écrit :

Oh! The issue is that Resin Bomb is E47 not E46. Sorry.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/quisquous/cactbot/pull/1280#issuecomment-609058037,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOVWXCSLVM4OELNMDRWMZF3RK5RM3ANCNFSM4LTYUB4A
.

You will laugh, but although this error is resolved, it is another problem
which must be the cause. Neither the infotext trigger for (gunnery pod) and
(resin bomb) works.
I am horrified.
Does it work in English?
Le dim. 5 avr. 2020 à 00:15, Jeremy bauer<EMAIL_ADDRESS>a
écrit :

Thanks to you for finding. I think there is really a lot of possible
things to do, it's very interesting.  More documentation would help, indeed. But don't add extra workload.
Le sam. 4 avr. 2020 à 18:58, Adrienne Walker<EMAIL_ADDRESS>a
écrit :

Oh! The issue is that Resin Bomb is E47 not E46. Sorry.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/quisquous/cactbot/pull/1280#issuecomment-609058037,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOVWXCSLVM4OELNMDRWMZF3RK5RM3ANCNFSM4LTYUB4A
.


update read file test

Description

Updated read_file using unstructured-io

Related Issues

Solution and Design

Add unstructured library in your requirements.txt file
Install the corresponding dependency: libmagic-dev, poppler-utils, tesseract-ocr, libreoffice, pandoc
Test Plan

Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Docs update

Checklist

[x] My pull request is atomic and focuses on a single change.
[ ] I have read the contributing guide and my code conforms to the guidelines.
[ ] I have documented my changes clearly and comprehensively.
[ ] I have added the required tests.

Redundant


parquet update to latest stable master version parquet-cpp

Library name: parquet
Latest master version
New version number: I am not sure how to get this.
Other information that may be useful (release notes, etc...)
https://github.com/apache/parquet-cpp

Sorry it seems it is merged with arrow and arrow is uptodate.


Schema:publish detects errors on valid schema

Hi!
I am experimenting with hive for Federation v2 and found some issues with checking/publishing.
Steps to reproduce:

Create new project https://app.graphql-hive.com/ with type "federation"
Go to any target and generate Registry Access Token and CDN Access Token
Setup and configure external composition using pre-build docker image
Create schema-a.graphql file:extend schema @link(url: "https://specs.apollo.dev/federation/v2.0",
    import: ["@key", "@shareable", "@inaccessible", "@override", "@external", "@requires", "@provides", "@tag"])

type Query {
    someQuery: SomeQueryResponse
}

type SomeQueryResponse @key(fields: "id") {
    id: ID!
    data: String!
}

Publish initial schemahive schema:publish --author author --commit commit --force --service schema-a --url http://host.docker.internal:8081/graphql ./schema-a.graphql

Configure and run Apollo Router with simple configuration:supergraph:
  listen: <IP_ADDRESS>:4000
plugins:
  hive.usage:
    {}

Open router on port 4000 and verify schema explorer has query: someQuery: SomeQueryResponse
Modify schema and add some breaking changesextend schema @link(url: "https://specs.apollo.dev/federation/v2.0",
    import: ["@key", "@shareable", "@inaccessible", "@override", "@external", "@requires", "@provides", "@tag"])

type Query {
    someQuery: SomeQueryResponse
    oneMoreQuery: OneMoreQueryResponse
}

type SomeQueryResponse @key(fields: "id") {
    id: ID!
    data: String! @external
}

type OneMoreQueryResponse {
    data: String!
}

Publish schema. Hive will detect errors in schema.
Modify schema file and make it valid by removing @external

extend schema @link(url: "https://specs.apollo.dev/federation/v2.0",
    import: ["@key", "@shareable", "@inaccessible", "@override", "@external", "@requires", "@provides", "@tag"])

type Query {
    someQuery: SomeQueryResponse
    oneMoreQuery: OneMoreQueryResponse
}

type SomeQueryResponse @key(fields: "id") {
    id: ID!
    data: String!
}

type OneMoreQueryResponse {
    data: String!
}

Publish schema

After hive schema:publish I was able to see error in console:
× Detected 1 error

   - Failed to compare schemas: Failed to build schema: Schemas couldn't be merged:
         - [schema-a] Field SomeQueryResponse.data is marked @external but is not used in any federation directive (@key, @provides, @requires) or to satisfy an interface; the field declaration has no u
se and should be removed (or the field should not be @external).

In app.graphql-hive.com -> Project -> Target -> History graphql schema build marked as failed.
In Apollo Router query explorer I was not able to find oneMoreQuery: OneMoreQueryResponse.
Rerunning hive schema:publish again returns same error.
Rerunning hive schema:publish after some time (~10 mins) return success with message "√ No changes. Skipping.", but graphql schema build still marked as failed.

@kamilkisiela can you please take a look?

My guess is that it's related to Federation v2. We advise using https://docs.graphql-hive.com/features/external-schema-composition#pre-built-docker-image for Federation v2.

We're releasing a new model of Schema Registry that should fix it.

It should work now, try again.

thanks, will check

Now it work


StsClientConfigurationExtension doesn't resolve secret from Vault

Describe the bug
A clear and concise description of what the bug is.
StsClientConfigurationExtension.java expects a clientId / clientSecretAlias but doesn't resolve the secret from Vault.
https://github.com/eclipse-tractusx/tractusx-edc/blob/b618350633a9f08163412e84f17687900d147949/edc-extensions/dcp/tx-dcp-sts-dim/src/main/java/org/eclipse/tractusx/edc/iam/dcp/sts/StsClientConfigurationExtension.java#L62-L74
To Reproduce
Steps to reproduce the behavior:

Use STS Remote Client in EDC and make a query catalog request.
Oauth Request to STS fails with 401 due to invalid client id / secret.

Expected behavior
A clear and concise description of what you expected to happen.
It should resolve secrets from vault. Similar configuration exists in eclipse-edc/Connector repo which resolves the secret from Vault.
StsRemoteClientConfigurationExtension.java#L61-L64
var clientSecret = vault.resolveSecret(clientSecretAlias);
Objects.requireNonNull(clientSecret, format("Client secret could not be retrieved from the vault with alias %s", clientSecretAlias));

return new StsRemoteClientConfiguration(tokenUrl, clientId, clientSecret);

Screenshots/Error Messages
If applicable, add screenshots and/or error messages to help explain your problem.
Context Information
Add any other context or information about the problem here.

Used version: [e.g. Commit Hash]
OS: [e.g. Mac OS (M1), Windows, Linux]
Docker Version: [e.g. 20.10.12]
java --version:

Possible Implementation
You already know the root cause of the erroneous state and how to fix it? Feel free to share your thoughts.

Linking the upstream issue that will also solve this once implemented and incorporated.
https://github.com/eclipse-edc/Connector/issues/4412


Update tooltip style

Adds styling options to widget tooltip:

Add border
Add padding

nice

Are you interested in doing more contributions? #10 would be a good one to get started with, for example


Don't prompt for additional permissions every time you open room details

If the user doesn't want to give the app permissions to access contacts (or whatever the request is), don't prompt them constantly for it. We should let them manage it in Settings or similar

This bug relates to what was discussed here:
https://matrix.to/#/!GnEEPYXUhoaHbkFBNX:matrix.org/%2414781926871697198ZYFsr:matrix.org

I answered here
https://matrix.to/#/!GnEEPYXUhoaHbkFBNX:matrix.org/$14781931331699218FFlRz:matrix.org
On android >= 6.0 device, the user has to tell to never ask again.
The permissions are managed by Android not by the application.


Individual Membership as a responsibility of the Community Committee

Individual Membership to the Node.js Foundation was established back in 2015 as a way to represent the voice of the community on the Node.js via Board seats.
Individual membership costs $100 a year, or $25 for students. Contributors to the Node.js project, including all Working Groups and sub-projects, are eligible for free membership. The current benefit to being an Individual Member includes 20% off regular price registration to Node Interactive, access to the Node.js travel fund for request, and a vote/voice via the two Individual Membership Directors.
We are reaching a critical point of time for the Individual Membership where it has existed in its current state for a few years. This feels like enough time to examine what value it provides currently, who is responsible for improving it, and how it can be improved.
Should the Community Committee, considering its scope, take the Individual Membership on as an initiative? This would be an incredible responsibility, but the Community Committee is a point of entry for the ecosystem that could positively contribute to the future value of the Individual Membership through quality feedback collection and project management. This has been brought up in various conversations with CommComm members in meetings but never addressed as a decision to vote on.
Responsibilities that exist with this currently:

Administration of the membership platform: (Node.js Foundation team via @hackygolucky)
Administration of the election platform for Individual Membership Director elections: (Node.js Foundation team via @hackygolucky)
Assessing and editing membership benefits: Node.js Foundation team + Board of Directors
Representation of voice at the Board level and gathering feedback from the member class: Individual Membership Directors(currently @williamkapke and @ashleygwilliams)

I'd like to say that I'm generally +1 to this. I've personally been very critical of how Individual Membership has approached since its creation, but I do think that the Community Committee could likely help enable both the project - Individual Membership - and the members themselves.
Taking on Individual Membership will need a non-trivial amount of effort, so I'd like to suggest that we have someone explicitly champion the effort - similar to how the TSC is currently taking on new projects.

I think this is a great idea. I see having Individual Membership representation working through the CommComm as the most effective to grow, support and engage Individual Members.

I have bandwidth for helping with admin stuff.

CommComm taking this on would be great. Maybe contingent on getting enough members and observers on board to eventually drive this. I can put time into the tasks.

From a third person standpoint, (w/o much context on the history), I think this looks like a good idea. The blog that identifies who a Node.js Individual Member is under the community tag, there more information out there but looks mostly in github. (Of course, my google search might not be exhaustive). As a potential new Individual Member, I would expect CommComm to chaperone this.
count me in, will have bandwidth to contribute to the effort.

I'm definitely a plus one for this. It seems like there's a lot of potential here.
Sounded like there's a wishlist of things that could be done better, it might be nice to enumerate some of those items here. Mentioned briefly during CommComm session:

quarterly newsletter,
getting more regular feedback from individual membership (is this related or overlap at all with the User Feedback Initiative?)

If there's hesitation, maybe we could also touch on some of the extra responsibilities that would be involved (if they haven't already been mentioned above) so folks know what we're getting into.

@ParidelPooya Currently we have ~200 individual members. That number did go up recently with membership being bundled in some way with Node.js Interactive tickets. That's almost the full extent of my knowledge, I know @hackygolucky can definitely help provide any additional scope.

I'd like to start keeping a list of those that have expressed interest in helping champion/maintain Individual Membership - and have bandwidth to so so:

@refack
@chowdhurian
@komawar
@JemBijoux

I have bandwidth to help too. please add me to that list @ParidelPooya

@ParidelPooya Added 👍

I am happy to help, I just down want to own it wholly anymore :) (and also by it being moved out of the Foundation, I shouldn't be wholly owning it anyway)

Also at this month's count @bnb @ParidelPooya we are at 241 for membership. The demographic makeup is about half collaborators who have signed up for free because they get the contributor discount, and the rest were mostly signups through our conference registration add-on.

Contributors to the Node.js project, including all Working Groups and sub-projects, are eligible for free membership.

Probably the wrong place to ask, but how can I "redeem" this, I'm very interested in membership.

@devsnek
nodejs.org/en/foundation/members/#becoming-an-individual-member

Please contact us for discount codes. You are required to have a GitHub account to register. please email<EMAIL_ADDRESS>

Removing cc-agenda label for now. If it needs to be re-added to discuss further work, please feel free to ping a CommComm member or add it yourself 👍

We will be meeting at Collab Summit Berlin, May 31, 2:30pm GMT+2 to discuss formation of a subgroup to workshop and draft out the challenges with the Individual Membership:
What questions we are trying to answer to assess expectations from the community and the Board. The CommComm owns the individual membership program. From that program, we need to define who the targets that should/could be represented by the remaining Individual Membership seat. A program that is of value to the individual membership group, collecting regular feedback in order to make decisions for needs expressed.
Once this subgroup has been established, @sarahnovotny, Node.js Board member and Joint Strategy Sub-committee co-chair has offered to attend the next CommComm meeting that will focus on this program to provide context and focus.

I opened a related issue last year related to this: https://github.com/nodejs/community-committee/issues/175.

@Bamieh the issue you filed is in reference to the Node.js GitHub organization members process, governance, and badging. What we are talking about in this issue is the Node.js Foundation individual membership program, which are separated for terms of scope and who oversees these groups. The Board of Node.js and the CommComm are responsible for the Individual Membership program. The TSC + CommComm is responsible for permissions and governance processes for GitHub membership management.

@hackygolucky I understand. This issue is about taking responsibility of the foundation individual membership rather than the foundation membership itself.
I mentioned that issue with the thought that if the commcomm becomes responsible for the foundation individual membership and has a shared responsibility over the github membership as well, We can motivate people to join the individual foundation membership by also inviting them to the Node.js github team.

Ah, so, @Bamieh the scope is very different of these groups. The membership of the Github Node.js org is only for those commiting to the Node.js project itself. Whereas the Individual Membership, at least as it currently stands, was reaching for the wider community and ecosystem of those who contribute to Node.js, consume it, or work on something that is tangential to but contributes to the wellbeing of Node.js(such as npm, yarn, the modules ecosystem, v8, etc.).
So are you proposing keeping the individual membership scope of the Node.js Foundation only to those who contribute to the Node.js project(which is the GitHub membership)?

@hackygolucky seems that you've got disconnected from the group call so I was not able to hear the rest of the meeting, I wrote on chat but google hangouts hide it by default 🤕 .
My thought on this is that non-github members pay for their individual membership in the foundation. If there are non paying members at this moment, then we should re-think the scope of this membership and what it really enables. If we have paying members (non-github members) then maybe we should reach out to them to see what they are getting out of it.

The last-minute notification this morning wasn't time enough for me to call in, but I'm very interested in helping out in this space. I'm excited about CommComm taking this on.
Were there any notes or takeaways from the group disco this morning? Let me know how I can help!

@hackygolucky do you mean having an ecosystem (members) outside the regular Github contributors membership?

We will get back to you very soon with more context and recap of Thursday's discussions, but just so you know the actual reflection is much broader than that.
In essence, we have to think about whether we want to completely sunset the actual individual membership program or not, and then whether we want to change it completely it (if we keep it), make something entirely new (if we sunset it), or abandon the idea about community acquisition/retention program.
For now, there is some inclination toward the following ideas (many of which cascading from one to the other):

Context:

The current Individual Membership program doesn't work.
If we have to maintain some form of community program, it has to bring value to everyone and preferably be set within the scope of a broader Community project.
We should probably sunset the current program and replace it completely, and get a fresh start.

Several ideas have been expressed as to what to do for this fresh start:

First and foremost, we should try to gather feedback from both the community and the board as to what value they would like such a program to bring them.
We should try and develop partnerships with companies and open-source communities to offer some kind of "Node.js Developer pack" (// GitHub Developer Pack)

In the coming days or the next CommComm meeting (@bnb @hackygolucky  correct me if I'm wrong), we will bring together a small task force to work specifically on these questions by October and be able to present a concrete set of propositions to the rest of the CommComm and the board.
So stay tuned people!

Are there meeting notes besides the info listed above?

AFAIR, and @bnb or @hackygolucky can correct me if I'm wrong, we didn't take formal notes, for the same reason we decided not to broadcast the meeting on YouTube: we wanted to have more candid discussions around the subject, thus making it nearly private.

I'm very disappointed this was done and didn't include me. Hard to think context was appropriately conveyed without the Individual Director present.

@williamkapke I'm not sure what you mean by 'done'? This was establishing that a subgroup needs to happen and anyone here, including you especially, should attend once the first official meeting happens.

@hackygolucky Apologies, I was referring to the meeting having happened- not the completion of this issue.

Efforts by the Individual Membership subgroup after engaging and discussing regularly for several months has produced a proposal to tackle this initiative 🎉
#390 is a request for feedback. Please go in, engage, and/or add new comments!
As this has progressed, I'm closing this for now. Please feel free to reopen if necessary! 💖


proxy settings are ignored

Hello
I am opening a new window in my Electron app and this new window uses electron-navigation. Before loading the html which contains the div/controls a proxy is being set:
win.webContents.session.setProxy({proxyRules:"<IP_ADDRESS>:8080"},function(){
    console.log("changed proxy, now loading popup")
});
win.webContents.on('did-finish-load', () => {
    console.log("sending url to be loaded")
    win.webContents.send('url', url)
});
win.loadURL(`file://${__dirname}/windowWithNavigationControls.html`,NO_CACHE_OPTS);

Proxy is not being used.
However, if I go directly, without using electron-navigation, it goes through the proxy as expected:
win.webContents.session.setProxy({proxyRules:"<IP_ADDRESS>:8080"},function(){
    console.log("changed proxy, now loading popup")
});
win.loadURL(url,NO_CACHE_OPTS);

To my knowledge you are just applying the proxy to the main page and not the webviews that reside in the page. A quick search pulled this up. I don't have time to test it though.
https://discuss.atom.io/t/how-to-set-proxy-for-each-webview-tag-in-electronjs/37307/2

I've found the problem. Forgot to set the partition of the webview to the same one where I was changing the proxy:

will close the issue


Adding Main Menu

Adding a little cute main menu to the game.
Preview:

New:

main menu music
pause menu
settings menu with keybinds. and volume (dont have the textures yet to make it work, but when i do i will do!

Pause Menu Preview:

Settings Menu Screenshots:


feat: allow idempotent writes

Description

Closes #258.
References

Review Checklist

[ ] I have clicked on "allow edits by maintainers".
[ ] I have added documentation for new/changed functionality in this PR or in a PR to openfga.dev [Provide a link to any relevant PRs in the references section above]
[ ] The correct base branch is being used, if not main
[ ] I have added tests to validate that the change in functionality is working as expected

Codecov Report
Base: 82.77% // Head: 82.67% // Decreases project coverage by -0.09% :warning:

Coverage data is based on head (c7de6ca) compared to base (cc1cd02).
Patch coverage: 69.69% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #343      +/-   ##
==========================================
- Coverage   82.77%   82.67%   -0.10%
==========================================
  Files          85       85
  Lines       13673    13717      +44
==========================================
+ Hits        11318    11341      +23
- Misses       1938     1952      +14
- Partials      417      424       +7

Impacted Files
Coverage Δ

storage/postgres/postgres.go
65.65% <48.00%> (-1.51%)
:arrow_down:

storage/mysql/mysql.go
64.43% <64.58%> (-1.24%)
:arrow_down:

storage/memory/memory.go
91.97% <100.00%> (+0.52%)
:arrow_up:

storage/test/tuples.go
69.08% <100.00%> (+1.29%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

I took the liberty of renaming this PR to feat instead of refactor

Really looking forward to this feature!
How long would you say it would take for having it released? (no pressure hahaha) 😄

In light of https://github.com/openfga/openfga/issues/258#issuecomment-1320969688, I'll close this for now.


SIGABRT in Xwayland

I have occasional crashes in Xwayland. There were also multiple occasions where the entire UI and input handling froze and I had to restart the computer. Since this doesn't happen under X, I assume it's also related to wlroots-eglstreams.

Here are the last 3 stack traces:

1.txt
2.txt
3.txt

I think this is the relevant part:
                Stack trace of thread 26613:
                #0  0x00007f44610e3d22 raise (libc.so.6 + 0x3cd22)
                #1  0x00007f44610cd862 abort (libc.so.6 + 0x26862)
                #2  0x00005561d3e16fdb n/a (Xwayland + 0x15dfdb)
                #3  0x00005561d3e20c3d n/a (Xwayland + 0x167c3d)
                #4  0x00005561d3ce99bd n/a (Xwayland + 0x309bd)
                #5  0x00007f446162afda n/a (libwayland-client.so.0 + 0xafda)
                #6  0x00007f44616261f8 n/a (libwayland-client.so.0 + 0x61f8)
                #7  0x00007f4460fa9acd n/a (libffi.so.7 + 0x6acd)
                #8  0x00007f4460fa903a n/a (libffi.so.7 + 0x603a)
                #9  0x00007f4461629fe4 n/a (libwayland-client.so.0 + 0x9fe4)
                #10 0x00007f4461626563 n/a (libwayland-client.so.0 + 0x6563)
                #11 0x00007f4461627c7f wl_display_dispatch_queue_pending (libwayland-client.so.0 + 0x7c7f)
                #12 0x00005561d3ceff9d n/a (Xwayland + 0x36f9d)
                #13 0x00005561d3e16831 n/a (Xwayland + 0x15d831)
                #14 0x00005561d3d55df0 n/a (Xwayland + 0x9cdf0)
                #15 0x00005561d3ce7cc4 n/a (Xwayland + 0x2ecc4)
                #16 0x00007f44610ceb25 __libc_start_main (libc.so.6 + 0x27b25)
                #17 0x00005561d3ce900e n/a (Xwayland + 0x3000e)

Plus there are a few other threads that are currently blocked in recv. Could this be a race condition?
As with #17, if it helps, I can recompile wayland with debug symbols and try to capture a symbolized stack trace.

Hi @dbrgn. I also have such crashes in Xwayland. They're rather rare, but annoying.
Happens when Xwayland hangs for some reason and wlroots tries to restart it but fails.

If you have some time for testing, compile both libwayland-client and Xwayland with debug symbols.

Here's a stack trace with debug symbols:
           PID: 218134 (Xwayland)
        Signal: 6 (ABRT)
     Timestamp: Wed 2021-05-19 23:12:05 CEST (15min ago)
  Command Line: Xwayland :1 -rootless -terminate -core -listenfd 39 -listenfd 41 -wm 74
    Executable: /usr/bin/Xwayland
     Disk Size: 6.1M
       Message: Process 218134 (Xwayland) of user 1000 dumped core.

                Stack trace of thread 218134:
                #0  0x00007f34a494dd22 raise (libc.so.6 + 0x3cd22)
                #1  0x00007f34a4937862 abort (libc.so.6 + 0x26862)
                #2  0x0000557b45e632ed OsAbort (Xwayland + 0x15e2ed)
                #3  0x0000557b45e636cd FatalError (Xwayland + 0x15e6cd)
                #4  0x0000557b45d357f1 xwl_log_handler (Xwayland + 0x307f1)
                #5  0x00007f34a4e9518e wl_log (libwayland-client.so.0 + 0xb18e)
                #6  0x00007f34a4e9020c display_handle_error (libwayland-client.so.0 + 0x620c)
                #7  0x00007f34a4811acd n/a (libffi.so.7 + 0x6acd)
                #8  0x00007f34a481103a n/a (libffi.so.7 + 0x603a)
                #9  0x00007f34a4e94113 wl_closure_invoke (libwayland-client.so.0 + 0xa113)
                #10 0x00007f34a4e90583 dispatch_event (libwayland-client.so.0 + 0x6583)
                #11 0x00007f34a4e91ccf dispatch_queue (libwayland-client.so.0 + 0x7ccf)
                #12 0x0000557b45d3bf1d xwl_read_events (Xwayland + 0x36f1d)
                #13 0x0000557b45e62cd1 ospoll_wait (Xwayland + 0x15dcd1)
                #14 0x0000557b45da1a50 Dispatch (Xwayland + 0x9ca50)
                #15 0x0000557b45d3365a main (Xwayland + 0x2e65a)
                #16 0x00007f34a4938b25 __libc_start_main (libc.so.6 + 0x27b25)
                #17 0x0000557b45d34dfe _start (Xwayland + 0x2fdfe)

                Stack trace of thread 224706:
                #0  0x00007f34a4a10a3c recv (libc.so.6 + 0xffa3c)
                #1  0x00007f34a3d63d53 n/a (libEGL_nvidia.so.0 + 0x78d53)
                #2  0x00007f34a3d64b1d n/a (libEGL_nvidia.so.0 + 0x79b1d)
                #3  0x00007f34a3d59c7d n/a (libEGL_nvidia.so.0 + 0x6ec7d)
                #4  0x00007f34a3da70ce n/a (libEGL_nvidia.so.0 + 0xbc0ce)
                #5  0x00007f34a47f3259 start_thread (libpthread.so.0 + 0x9259)
                #6  0x00007f34a4a0f5e3 __clone (libc.so.6 + 0xfe5e3)

                Stack trace of thread 225480:
                #0  0x00007f34a4a10a3c recv (libc.so.6 + 0xffa3c)
                #1  0x00007f34a3d63d53 n/a (libEGL_nvidia.so.0 + 0x78d53)
                #2  0x00007f34a3d646c1 n/a (libEGL_nvidia.so.0 + 0x796c1)
                #3  0x00007f34a3d59851 n/a (libEGL_nvidia.so.0 + 0x6e851)
                #4  0x00007f34a3da70ce n/a (libEGL_nvidia.so.0 + 0xbc0ce)
                #5  0x00007f34a47f3259 start_thread (libpthread.so.0 + 0x9259)
                #6  0x00007f34a4a0f5e3 __clone (libc.so.6 + 0xfe5e3)

                Stack trace of thread 225477:
                #0  0x00007f34a4a10a3c recv (libc.so.6 + 0xffa3c)
                #1  0x00007f34a3d63d53 n/a (libEGL_nvidia.so.0 + 0x78d53)
                #2  0x00007f34a3d64b1d n/a (libEGL_nvidia.so.0 + 0x79b1d)
                #3  0x00007f34a3d59c7d n/a (libEGL_nvidia.so.0 + 0x6ec7d)
                #4  0x00007f34a3da70ce n/a (libEGL_nvidia.so.0 + 0xbc0ce)
                #5  0x00007f34a47f3259 start_thread (libpthread.so.0 + 0x9259)
                #6  0x00007f34a4a0f5e3 __clone (libc.so.6 + 0xfe5e3)

This is a quite popular crash dump: https://bugzilla.redhat.com/show_bug.cgi?id=1757137 (googled xwl_log_handler)
Possible cause is that  xwayland receives some error code forcing it to crash.
Interesting. Will check whether wlroots sending something nasty.

Not related to this issue. Looking at xwayland code I found this commit: https://gitlab.freedesktop.org/xorg/xserver/-/commit/7515c23a416825f0db51f9b445279b12d5918ebf
It's description may be related to #14 (old terminal contents) and according to commit message could be solved with calling eglStreamFlushNV. Will give this approach a try)

Hi @dbrgn,
Please check if X apps stability issues are still here with current code?

Closing this. Reopen if issue is still here.

@danvd sorry, I missed your reply. Last time I tested (probably around October) there were still occasional issues. However, I then decided that I don't want to wait any longer for the prices to come down (probably not any time soon) and bought an overpriced AMD graphics card.


Resolve secret source for parameters

From https://github.com/deislabs/porter/issues/1053:

Add support for deriving the secret source for applicable parameters (source: secret)

🎉   This already just works ™, thanks to the implementation by @carolynvs !  The existing Azure Keyvault secret resolution code works regardless if the source is for a credential or parameter.  (Tested via https://github.com/vdice/porter-bundles/tree/master/azure-keyvault)


bitcoin

new

Could you tell me what you were going to change here?

Yeah if i finalize anything I will let you know i was just messing around
last night. I think you got a good code so far. Looks like the work was
pretty much all you.
On Wed, Apr 15, 2015 at 7:04 AM, Thomas Kerin<EMAIL_ADDRESS>wrote:

Could you tell me what you were going to change here?
—
Reply to this email directly or view it on GitHub
https://github.com/Bit-Wasp/BitWasp/pull/86#issuecomment-93413861.

But yeah I'll explain to you what I'm hoping to do with it
Sent from my iPhone

On Apr 15, 2015, at 7:04 AM, Thomas Kerin<EMAIL_ADDRESS>wrote:
Could you tell me what you were going to change here?
—
Reply to this email directly or view it on GitHub.


Minify is breaking wgsl file

When activating minifyfaction for wgsl files they are actually breaking, because of missing white spaces. This seems to be due to the new wgsl syntax with @vertex and @fragment instead of [[stage(vertex)]] and [[stage(fragment)]]. E.g. my shader function looks like
@vertex
fn vert_main(@builtin(vertex_index) VertexIndex : u32) -> VertexOutput {
  ....
}

This will get minified to
@vertexfn vert_main(@builtin(vertex_index)VertexIndex:u32)->VertexOutput{...}, but it should be
@vertex fn vert_main(@builtin(vertex_index)VertexIndex:u32)->VertexOutput{ so the browser can actually interpret it.

Fixed in<EMAIL_ADDRESS>


Restructure auth integration tests

Purpose
$subject is done by decoupling auth integration tests into schemes.
Check List

[x] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #23549 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #23549   +/-   ##
=======================================
  Coverage   14.59%   14.59%
=======================================
  Files          51       51
  Lines        1411     1411
  Branches      219      219
=======================================
  Hits          206      206
  Misses       1189     1189
  Partials       16       16

Continue to review full report at Codecov.

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


add_blocktensor_13

last bit for block sparse tensor support

fixes some bugs
better test coverage for edge cases

I need to fix a few more things in the PR. I'll ping you again once its ready!

Hey @Thenerdstation, can you have a look? thanks!


Two admin users on new Rancher v2.5.6 install

What kind of request is this (question/bug/enhancement/feature request):
bug
Steps to reproduce (least amount of steps as possible):

Install Rancher v2.5.6 HA on k3s 1.19.8 cluster with two server nodes

Result:
Two admin users were created:
NAME           USERNAME   DISPLAY_NAME                       PRINCIPAL_IDS                           CREATE_DATE
u-b4qkhsnliz   <none>     System account for Cluster local   [system://local local://u-b4qkhsnliz]   2021-03-06T03:58:03Z
user-7sphl     admin      Default Admin                      [local://user-7sphl]                    2021-03-06T03:57:25Z
user-tbftx     admin      Default Admin                      [local://user-tbftx]                    2021-03-06T03:57:26Z

Admin cannot log into UI:

Seeing many errors in logs like:
2021/03/06 05:17:00 [ERROR] API error response 500 for POST /v3-public/localProviders/local?action=login. Cause: found more than one users with username admin

Other details that may be helpful:
This was a fresh install. Full rancher logs available on request.
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI):
v2.5.6
Installation option (single install/HA):
HA

Cluster information

Cluster type (Hosted/Infrastructure Provider/Custom/Imported):
Machine type (cloud/VM/metal) and specifications (CPU/memory):
AWS EC2 m5a.large (2 vCPU, 8GB RAM)
Kubernetes version (use kubectl version):

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.4", GitCommit:"e87da0bd6e03ec3fea7933c4b5263d151aafd07c", GitTreeState:"clean", BuildDate:"2021-02-21T20:21:49Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.8+k3s1", GitCommit:"95fc76b206b1455db7d50e23fb45c98d6ea97dde", GitTreeState:"clean", BuildDate:"2021-02-22T19:46:43Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"}

Docker version (use docker version):
container

gz#15595

I was not able to reproduce this on 2.5.6 with a k3s cluster with 2 server nodes.  to bring up the cluster, I did the following via our automation scripts:

created a mysql db to use for storage
created 2 server k3s nodes following the documentation
configured load balancers and routing following the above documentation
installed rancher v2.5.6 using helm
I was able to successfully login to the cluster with both nodes healthy on version v1.19.8+k3s1

have we seen this issue again since creation?

I've only seen it once myself.

I also have not been able to reproduce the behavior using a K3s v1.21.9+k3s1 HA with two server nodes and Postgres 11 datastore. Rancher v2.5.12 deployed via Helm. I only had one user, who was the Default Admin. Set the password and authenticated successfully.
A couple of questions, @dnoland1:

Was the datastore backing the two server nodes external? If so, what datastore was used in your K3s cluster?
What API object are you querying in your example above - is this user?

@maxsokolovsky

Was the datastore backing the two server nodes external? If so, what datastore was used in your K3s cluster?

Yes, MySQL.

What API object are you querying in your example above - is this user?

Yes, users.management.cattle.io

My guess on this issue is the following:

The admin user can be created in two places - In the Add part of the dashboard package, and in Role_Data
In Rancher's current versions (linked above) the code that registers the admin in the Add part of the dashboard package is only called when the MCMAgent Flag is not enabled (i.e. if you are in the local cluster).
In v2.5.6, Add, does not have this limitation.

It's possible that the Add + RoleData parts were called simultaneously, resulting in two admin users being created at the same time. If this is what happened, then I would guess that this was fixed long ago (probably by #32310). Given that no-one was able to reproduce it at that time, and that we have a plausible explanation that suggests the issue is fixed, I'd recommend that this issue be closed. If we see new user reports of the issue (or can repro it on a newer version), then we can re-open it and go from there. @samjustus

I'm going to close this as already fixed. The Bootstrap Admin function in 2.5.6 did not use a mutex, and so could be subject to race conditions. The same function in 2.8 uses a mutex.
This appears to have been added for the 2.6.0 release. While it's possible that there was another source of this issue, I was not able reproduce it (even on 2.5.6), and don't see any indication that it is still present today. @dnoland1 if you have continued to see this issue on a version >= 2.6.0, please let me know and we can investigate further.


Removing version from uris

What's Changed?

removing version from from the uris to prepare for the 4.0 release. Requests will now be version agnostic.
will update the version in the client closer to release

PR Checklist

[ ] Updated unit tests
[x] Ran unit tests

LGTM, thanks Adam! :)


AL2023 - PrivateDNSName regression

What happened:
With the new AL2023 NodeConfig system, it seems like private DNS names cause problems for new nodes (previously reported in #1263 and fixed in #1264). Our VPC uses a DHCP options set to specify a custom hostname, this prevents nodes from joining the cluster.
What you expected to happen:
Nodes can join the cluster successfully after launch
How to reproduce it (as minimally and precisely as possible):
#1263 gives great reproduction steps
For me, just launching new AL2023 nodes in a VPC with DHCP that sets a domain name causes these logs from kubelet:
"Attempting to register node" node="ip-172-16-0-100.domain.com"
"Unable to register node with API server" err="nodes \"ip-172-16-0-100.domain.com\" is forbidden: node \"ip-172-16-0-100.ec2.internal\" is not allowed to modify node \"ip-172-16-0-100.domain.com\"" node="ip-172-16-0-100.domain.com"
"Eviction manager: failed to get summary stats" err="failed to get node info: node \"ip-172-16-0-100.domain.com\" not found"
Failed to contact API server when waiting for CSINode publishing: csinodes.storage.k8s.io "ip-172-16-0-100.domain.com" is forbidden: User "system:node:ip-172-16-0-100.ec2.internal" cannot getresource "csinodes" in API group "storage.k8s.io" at the cluster scope: can only access CSINode with the same name as the requesting node

Anything else we need to know?:
Erroneously reported this here: https://github.com/aws/karpenter-provider-aws/issues/5793
Other similar issues:
https://github.com/awslabs/amazon-eks-ami/issues/1376
https://github.com/awslabs/amazon-eks-ami/issues/1457
Environment:

EKS Platform version (use aws eks describe-cluster --name <name> --query cluster.platformVersion): eks.1
Kubernetes version (use aws eks describe-cluster --name <name> --query cluster.version): 1.29
AMI Version: ami-0552b3e5085247f36 amazon-eks-node-al2023-x86_64-standard-1.29-v20240227
Kernel (e.g. uname -a): 6.1.77-99.164.amzn2023.x86_64
Release information (run cat /etc/eks/release on a node):

BASE_AMI_ID="ami-0a56ce835d6f72c8e"
BUILD_TIME="Tue Feb 27 23:51:40 UTC 2024"
BUILD_KERNEL="6.1.77-99.164.amzn2023.x86_64"
ARCH="x86_64"

I use Karpenter to launch nodes.... Is there a way to patch the userdata with a blend of bash and the new nodeconfig?
# doesn't actually work
userData: |
    apiVersion: node.eks.aws/v1alpha1
    kind: NodeConfig
    spec:
      kubelet:
        flags:
          - --hostname-override=$(aws ec2 describe-instances --instance-ids $(imds /latest/meta-data/instance-id) --query 'Reservations[].Instances[].PrivateDnsName' --output text)

Sorry about this. We were intending to change the naming convention for nodes in AL2023 from the beginning, to use instance ID's instead of the PrivateDnsName. This had some downstream effects and didn't ultimately make the cut (though we intend to make it opt-in soon). I'll get a PR up to address this.

Now that the fix for this issue has been merged, how long before we can expect to see it released? We're itching to get AL2023 nodes running our EKS cluster.

btw, I ran into this same issue and I found if you set the hostname to be:
TOKEN=$(curl --request PUT "http://<IP_ADDRESS>/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 10")
ZONE=$(curl http://<IP_ADDRESS>/latest/meta-data/placement/region --header "X-aws-ec2-metadata-token: $TOKEN")
IP_BASED_NAME=$(curl http://<IP_ADDRESS>/latest/meta-data/hostname --header "X-aws-ec2-metadata-token: $TOKEN" | cut -f1 -d".")
hostnamectl set-hostname --static $IP_BASED_NAME.$ZONE.compute.internal

in your user data you should be able to get your instance working in the meanwhile so you can test before the patch is out.

The fix will be release in next AMI: https://github.com/awslabs/amazon-eks-ami/releases/tag/v20240315

Confirmed this fix is working with the following image:
ami_id     = ami-07acdbd513e154aa8
image_name = amazon-eks-node-al2023-x86_64-standard-1.27-v20240315


feat: add vue-recommended/element-attribute-order rule w tests

The text of the cli output is also to be changed, right?

Fixed in the last commit 😅 my bad


performance: what can image-spec do to improve handling of large images?

Now that OCI artifacts has landed and getting mindshare and use cases, some issues are popping up. Best to standardize them.
Perhaps time to resurrect this?
https://groups.google.com/a/opencontainers.org/g/dev/c/Zk3yf45HIdA

https://github.com/opencontainers/runtime-spec/issues/1254

https://github.com/kubernetes/enhancements/pull/4642 is relevant to this too

https://docs.google.com/document/d/1Bs4fnP8rhPMaoPoLSYVvuRq-z9vkGPQ0rKbmfH4I7js/edit#heading=h.xw1gqgyqs5b
^ from the kubeflow community

https://github.com/project-machine/puzzlefs was made to solve the problems my OCIv2 proposal discussed quite a few years ago. I haven't looked into it very deeply unforuntately, and I don't think it will help much with large artefact-filled images.
(My view has slowly moved to thinking that CDC and other compression methods make more sense on the distribution side. If we did that, it would be possible to make large images with any content equally deduplicated. There are downsides to this approach too, but embedding CDC parameters into the image-spec seems like a repeat of the nightmare we've had with compression algorithm settings.)

https://github.com/project-machine/puzzlefs was made to solve the problems my OCIv2 proposal discussed quite a few years ago. I haven't looked into it very deeply unforuntately, and I don't think it will help much with large artefact-filled images.

Recently I occasionally found @gregkh already mentioned EROFS many years ago in OCI community :-).. https://groups.google.com/a/opencontainers.org/g/dev/c/icXssT3zQxE/m/N4YZsbZcAwAJ
I may need to rephrase EROFS again here: Instead of just reinvent a wheel, the original goal is to address Squashfs runtime performance issue since it doesn't fulfill for high-performance use cases like smartphones. Users cannot accept unacceptable dynamic app latencies (and currently most Android vendors already switch to EROFS since they have the same issue with applying compression).   Squashfs on-disk format hasn't been even updated for a decade (currently even without a filesystem UUID), and various previous improved attempts (at least at the time when I decided to redesign a high-performance image filesystem format) was ignored [1].
The goal of EROFS filesystem was to launch a general image filesystem project for various use cases with high-performance. It may vary from system firmware, container images, app sandboxes, and even AI data model, etc.  For example, people could use the same image for system firmwares on raw disks(like Container OS use cases) and container image. If some new on-disk feature could benefit to most image use cases, we will consider to add with discussion too and new contributors are always welcome.
From my own perspective, although OCI tar format has many flaws, but the format is quite simple at least and various operation systems can support parsing tar without any barrier. Besides, the docker image format has been existed almost for a decade too, many base layers are already formed in tar layer format. As a public cloud vendor (like my current employer, Alibaba Cloud), image compatibility is quite important for our customers, and I guess that other cloud vendors may have the same concern.  If people would like some on-demand fetching, there is already technologies to resolve that like SOCI, stargz, etc.  If people want to directly mount a filesystem in-kernel (although I'm not sure why it's important unlike system firmware use cases), they could use a squashfs or erofs index with OCI tar data instead.
I'm very happy that OCI community could consider using EROFS in some form, but my opinion is that my may need to improve the current OCI format first to overcome some current OCI image concern first.   But if some specific areas like AI model needs some specific filesystem blob, I think that is fine too, EROFS already has a IANA-registered media type as "vnd.erofs"
My own experience is that EROFS just becomes slowly used recently because many server users are still in 3.10 or 4.18 kernels, it doesn't matter for system image use cases like our original Android system images, but it may take many years before actual users use a new in-kernel feature.

(My view has slowly moved to thinking that CDC and other compression methods make more sense on the distribution side. If we did that, it would be possible to make large images with any content equally deduplicated. There are downsides to this approach too, but embedding CDC parameters into the image-spec seems like a repeat of the nightmare we've had with compression algorithm settings but now with the added issue that changing the settings would cause you to waste cross-image deduplication.)

Actually EROFS already has a varient-CDC since Linux 6.1 although it's unlike the traditional CDC, but the result is almost the same.  My experience is that CDC is good at texts but it has little benefits to executable binaries since jump addresses and data loads will kill all the possiblity of such data deduplication.  In reality, eventually the end result will become block-based deduplication (like reflink) or file-based deduplication (like ostree).
Also CDC is unfriendly to page cache sharing (or FSDAX secure container memory sharing) since data movement is always needed so pages are not equal.  Extra data movement also slows down the performance compared to reflink approaches unless you also consider compression, but EROFS already have compressed data deduplication feature for two years.
I think the only way to deduplicate executable binaries is delta compression, but I'm not sure if it's a real new on-disk feature for Linux kernel anyway.     I guess most users are already happy with ostree or likewise, it needs carefully evaluation though.
[1]
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

@hsiangkao thanks for calling out all the salient points.
Just curious, how well is in-kernel erofs supported? in terms of community size and history etc? is there a recommended minimum Linux kernel version?

On Thu, May 30, 2024 at 11:57:17AM -0700, Ramkumar Chinchani wrote:

@hsiangkao thanks for calling out all the salient points.
Just curious, how well is in-kernel erofs supported? in terms of community size and history etc? is there a recommended minimum Linux kernel version?

It is very well supported and used in a few hundred million, if not over
a billion, devices everyday (i.e. it is one of the very very few file
systems that Android allows to be used in their systems.)
Highly recommended.
As for "minimum Linux kernel version", please always just use the latest
stable Linux kernel version for any kernel feature.  To use an older one
is never recommended :)

@hsiangkao thanks for calling out all the salient points.
Just curious, how well is in-kernel erofs supported? in terms of community size and history etc? is there a recommended minimum Linux kernel version? is there a recommended userspace erofs implementation?

I fully agree with Greg's point: always use the latest stable kernel.  Anyway, to your question, it depends on the feature requirement.  If the intention is just to use EROFS format as an index (like a stargz-like TOC) to refer tar data (for lazy pulling), I think Linux 5.4+ is enough. The current distro configs could be checked out by https://oracle.github.io/kconfigs/?config=UTS_RELEASE&config=EROFS_FS
If compatibility is really the main concern, I'd suggest using Squashfs.  And erofs-utils has an official userspace implementation as an alternative approach anyway.

Additional considerations ...
overlayfs (Linux kernel version 4.x but also supported by various *BSD), squashfs (Linux kernel version 2.6.x, also supported by various *BSD at least recently) and erofs (Linux kernel 5.x, not supported on *BSD?)

Additional considerations ...
overlayfs (Linux kernel version 4.x but also supported by various *BSD), squashfs (Linux kernel version 2.6.x, also supported by various *BSD at least recently) and erofs (Linux kernel 5.x, not supported on *BSD?). MS Win support is another matter altogether.

I'm quite open to that since EROFS is not designed for some specific use case. If OCI community considers EROFS in some form (or as an alternative), that is quite awecome.  If not, EROFS will still improve new features consistently to fulfill generic image use cases.   The development of EROFS is always quite active from Android vendors and Some cloud vendors like Alibaba Cloud, Bytedance and more.

Adding more notes ...
OCI artifacts may package many small-ish files such as container image rootfs or a few very large files such as AI models.

some thought here. large model file is really large, for example the size of LLMA3 70b fp16 is about 141GB.
one way to handling such huge file is to use same storage for image registry and compute node, i.e., the model file can be stored in the distributed file system with raw format, which is shared among the registry and compute node, no data tranfer between registry backend and compute node.
when the client in the compute node pull the model blob, the registry returns the location of the model file, the client find that it's located in the file system the compute node can access, no blob downloading is requried.

some thought here. large model file is really large, for example the size of LLMA3 70b fp16 is about 141GB.
one way to handling such huge file is to use same storage for image registry and compute node, i.e., the model file can be stored in the distributed file system with raw format, which is shared among the registry and compute node, no data tranfer between registry backend and compute node.
when the client in the compute node pull the model blob, the registry returns the location of the model file, the client find that it's located in the file system the compute node can access, no blob downloading is requried.

Anyway, you could also treat OCI artifacts (like a kind of object storage) as shared immutable storage (like a read-only mini- gfs2, ocfs2), in which way you also don't need to download any blob locally in advance, just virtual block device clients with nbd/tcmu/ublk or (if you really need some local caching) caching framework like fscache.

some thought here. large model file is really large, for example the size of LLMA3 70b fp16 is about 141GB.
^ how compressible is this image?

Is there interest in porting erofs-utils to golang? since most utilities in this world are golang-based?
Mainly interested in creating a erofs layer/image (so that it is compatible with overlayfs).

On Thu, Jun 06, 2024 at 01:10:01PM -0700, Ramkumar Chinchani wrote:

Is there interest in porting erofs-utils to golang? since most utilities in this world are golang-based?

The language the code is in should not matter, as you end up with a
binary in the end.  So this should not be an issue at all.

Mainly interested in creating a erofs layer/image (so that it is compatible with overlayfs).

Great, but the language of the tools does not prevent this :)
good luck!
greg k-h

If the goal is to produce and consume erofs layers - so that they can just be copied over and mounted, then there are two touch points, which may or may not be ok with binary invocations.

Tools that produce said layers and images
Container runtimes that overlay mount these layers

Maybe as a initial poc, go bindings instead?

I recall reading (perhaps incorrectly! 🙈❤) that many kernel filesystems are not designed to be hardened against attacker-controlled raw input, but given the use cases for erofs, I'm guessing that its implementation is hardened against malicious inputs? 👀😇

I recall reading (perhaps incorrectly! 🙈❤) that many kernel filesystems are not designed to be hardened against attacker-controlled raw input, but given the use cases for erofs, I'm guessing that its implementation is hardened against malicious inputs? 👀😇

This is really a best-effort stuff. Unlike generic fses with complex metadata and journalling (so some consistency issues between different kinds of metadata are always challenging), EROFS core on-disk format is quite simple [1]. EROFS project addresses any new syzkaller fuzzing reports and we also have our own fuzzer to find potential bugs.  However, EROFS is not a complete freezed filesystem project, thus new useful ondisk/runtime features will be added by the time according to new scenarios/inputs, so that there may be some new issues raised (as we are all humans and not bug-free.)
Unlike some other fses, EROFS will address new found/reported issues in time and that is all the guarantee I could give.
[1] https://erofs.docs.kernel.org/en/latest/core_ondisk.html

Is there interest in porting erofs-utils to golang? since most utilities in this world are golang-based? Mainly interested in creating a erofs layer/image (so that it is compatible with overlayfs).

Some runtime like gVisor [1] already landed core on-disk EROFS support in their own go form to enable efficient image passthrough to sandboxes.  But some other alternative way (like cgo) is helpful since EROFS is still actively under development, so maintaining various language implementations up to date is somewhat challenging due to limited time & engineering resources (although we may have some experimental Rust implementation developped by students later). Anyway, C is still the quite portable language among all architectures / platforms / distributions.
[1] https://github.com/google/gvisor/pull/9486

@hsiangkao what is a good forum to coordinate the cgo changes? and where should they land?
At the very least the main primitives that are needed (as golang APIs) are:

MkErofs()
https://github.com/erofs/erofs-utils/blob/dev/mkfs/main.c#L1154

MountErofs()/UnmountErofs()
https://github.com/erofs/erofs-utils/blob/dev/fuse/main.c#L630 (fuse) or use the kernel driver

PopulateErofs()

What we are trying to achieve is substitute tar blob workflows with erofs blob ones with minimal impact to ecosystem tooling.

Hi @rchincha,
Thanks for your reply!

@hsiangkao what is a good forum to coordinate the cgo changes?

OCI meeting time is too late for me to attend regularly (It seems 0:00~1:00AM on my side)...sigh...
I think we could have a seperate issue collector (maybe using github issues) and an independent meeting may be better?
If it's needed, I could attend OCI meetings too if you prefer.

and where should they land?
A erofs-go project or just integrate into erofs-utils? which one you prefer?

Is the project receptive to any cgo-related refactoring?

Yeah, definitely!
Also as I mentioned in erofs-utils v1.8 announcement, I think erofs-utils v1.9 is a good time to stablize all APIs.

At the very least the main primitives that are needed (as golang APIs) are:

MkErofs()
https://github.com/erofs/erofs-utils/blob/dev/mkfs/main.c#L1154

Agreed.

MountErofs()/UnmountErofs()
https://github.com/erofs/erofs-utils/blob/dev/fuse/main.c#L630 (fuse) or use the kernel driver

Yeah, it seems containerd could also use it too.

PopulateErofs()

What's the purpose of this APIs?

What we are trying to achieve is substitute tar blob workflows with erofs blob ones with minimal impact to ecosystem tooling.

Yeah, I'm very happy to coordinate and work, thanks!

@hsiangkao coordination doesn't have to be via a OCI meeting. It can just be over PR reviews and maybe more convenient.
PopulateErofs() is just a placeholder API to indicate entries are copied into the newly created erofs layout. Maybe we just mount and copy things in/out instead and don't actually need this.

@hsiangkao coordination doesn't have to be via a OCI meeting. It can just be over PR reviews and maybe more convenient.

Sounds good, yet currently erofs-utils development works in a mailing list way for years like almost kernel projects.
If you prefer github PRs, we could create a new erofs-go repo or use erofs-utils github mirror for reviewing of this part.

PopulateErofs() is just a placeholder API to indicate entries are copied into the newly created erofs layout. Maybe we just mount and copy things in/out instead and don't actually need this.

Okay, got it.

What we are trying to achieve is substitute tar blob workflows with erofs blob ones with minimal impact to ecosystem tooling.

You may also be interested in https://github.com/containers/composefs which uses EROFS for metadata, but splits out shared files into a backing store which gives various advantages like dedup on disk and in the page cache too.

What we are trying to achieve is substitute tar blob workflows with erofs blob ones with minimal impact to ecosystem tooling.

You may also be interested in https://github.com/containers/composefs which uses EROFS for metadata, but splits out shared files into a backing store which gives various advantages like dedup on disk and in the page cache too.

Yes, ostree+composefs is also a great way to distribute images. And composefs has been more widely used now.
In my spare time, I try to go on work on containerd erofs snapshotter support if possible, and hopefully this snapshotter could support:

erofs native blobs;
composefs like way;
OCI tar blobs.

Yes, ostree+composefs is also a great way to distribute images.

To be clear, the composefs core is agnostic to higher level tooling. Yes, it can be used with ostree, but we are also looking at a strong OCI native integration with composefs and some of that already exists in the containers/storage composefs backend: https://github.com/containers/storage/blob/main/docs/containers-storage-composefs.md

Connecting with that but backing up to a higher level though...some of the discussion in this thread seems to be basically floating to "switch to EROFS instead of tar in an OCI v2"...I'm not really in favor of that...I think it'd be too traumatic for the ecosystem, and there's other ways to gain key desirable properties.
Especially this thread started around handling large images in an incremental way, and I think it makes sense to try to standardize work on estargz and https://github.com/containers/storage/blob/main/docs/containers-storage-zstd-chunked.md

I would be considerably in favor of using a filesystem as the medium instead of tar for a next-generation OCI format. We are definitely running into problems (as many others have outlined) with the tarball-based format, and the band-aid solutions to work around it have similar portability problems with not enough benefit over just adopting something like EROFS for this.
It has always bothered me that we called OCI an image format when it in fact isn't one, and with things like Fedora's bootc attempting to glue OCI to operating systems, having an OCI format that's actually image based would permit those things to work with some kind of reasonable performance and scalability.

Especially this thread started around handling large images in an incremental way, and I think it makes sense to try to standardize work on estargz and https://github.com/containers/storage/blob/main/docs/containers-storage-zstd-chunked.md

Just my personal opinion, I think the ways to enhance tar but make tar compatible like (e)stargz, zstd::chunked or SOCI are all good.  Yet it'd be better to give another option of their TOC format in addition to JSON.
Surely, from my own POV, I do hope EROFS can be useful and then used widely in the container world (and I do hope more people could give me more inputs about this). Thus, I hope the TOC itself can be formed in EROFS meta format too so that it can be directly parsed by EROFS rather than do an extra (and unnecessary) JSON->EROFS meta conversion.  I think it can benefit to ComposeFS too.
The complexity of JSON itself makes it not quite sense for bootloaders and kernels.

@cgwalters

.I think it'd be too traumatic for the ecosystem, and there's other ways to gain key desirable properties.

There are known issues with the tar format.
https://www.cyphar.com/blog/post/20190121-ociv2-images-i-tar
Folks are already moving toward layers as full filesystems - soci etc being a smart tarfs (via fuse) while still staying with tar etc.
Also you don't have to use a newer format if you don't want to.
This is still a consensus-building exercise until working prototypes are demonstrated I suppose.

@hsiangkao coordination doesn't have to be via a OCI meeting. It can just be over PR reviews and maybe more convenient.
PopulateErofs() is just a placeholder API to indicate entries are copied into the newly created erofs layout. Maybe we just mount and copy things in/out instead and don't actually need this.

Hi rchincha, JFYI, file-backed mount has been merged upstream:
https://git.kernel.org/torvalds/c/69a3a0a45a2f
I'm trying to implement this (rather than using loop devices) for containerd too.

@hsiangkao coordination doesn't have to be via a OCI meeting. It can just be over PR reviews and maybe more convenient.
PopulateErofs() is just a placeholder API to indicate entries are copied into the newly created erofs layout. Maybe we just mount and copy things in/out instead and don't actually need this.

Hi @rchincha, JFYI, file-backed mount has been merged upstream: https://git.kernel.org/torvalds/c/69a3a0a45a2f I'm trying to implement this (rather than using loop devices) for containerd too.

Sorry, looking at this late. Very nice!
https://github.com/project-stacker/stacker/pull/626
^ managed to finish a usable version of generating container images with erofs layers (even from Dockerfiles actually)
Still uses the losetup method though. Looking at the fs-backed method now.

@hsiangkao what is the recommended way to deal with kernel erofs and userspace erofs feature incompatibility.
Are there some checks that I can do to enable/disable some features based on currently running kernel during image generation (yes image can be used elsewhere etc, ignore that case for now)

@hsiangkao what is the recommended way to deal with kernel erofs and userspace erofs feature incompatibility. Are there some checks that I can do to enable/disable some features based on currently running kernel during image generation (yes image can be used elsewhere etc, ignore that case for now)

There are some sysfs nodes (in "/sys/fs/erofs/features/") to indicate supported on-disk features.


Pausing the KenBurnsView animaiton makes the image inside too small

When the animation plays, its perfectly fine. But when I use view.pause() then the animations stops but the image becomes very small in size.
How can this problem be solved? I need to give the users a way to stop the animation of this View if they want to.

Did you try the sample app? That's not happening. Could you provide steps to reproduce it?

This is my XML
<com.flaviofaria.kenburnsview.KenBurnsView
android:id="@+id/nav_header_cover"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/cover_1" />
This is how I set the drawable programatically,
Drawable drawable = Drawable.createFromPath(fileName.getAbsolutePath());
navHeader.setImageDrawable(drawable);
This is how I am playing/pausing it,
if (isAnimOn)
navHeader.resume();
else
navHeader.pause();
Can you please point out what is the mistake here?

I have tried a lot, but still have the problem. Any help?

I'm having this same issue...


"case when format" for 6.2.4 version is bad

this is 6.2.3 version,format "case when".it's ok.

this is 6.2.4 version,format "case when". it's different and is bad.

Could you add additional info?
It is unclear what the problem appears

I submitted more information for your reference

thanks for the bug report

Fixed

reopened. still reproducible

don't you miss a comma after "as first_name"?

Your syntax is wrong, case when end needs comma

verified


test error

Why all the prediction.txt is aaaaaa like this

I have the same error, do you solve this problem?

Maybe the model is not well-trained, I use the training commands in "readme",  and I got the same prediction.txt full of "a". While I trained the model with cmds in "train_multi30k_de_en.sh", the accuracy is much better, but what I got is a prediction.txt file contains plenty of "as".


missing RSSDK when building pcl

Required Info

Camera Model
ZR300

Firmware Version

Operating System & Version
Linux (Ubuntu 16.04

Kernel Version (Linux Only)

Platform
NVIDIA Jetson TX2

SDK Version
legacy

Issue Description
Hi there,
I got error when I'm trying to build pcl with RSSDK, it shows cannot find directory for RSSDK. So I change the dir to "/librealsense/build" but then it shows file "/librealsense/build/include/pxcversion.h" cannot be read. However, there doesn't have any file named "pxcversion.h" in the repositories. Where can I find it, or is there anything I can do to make the pcl work right?
Thanks.

Hi @chiaho903
I know it's confusing but RSSDK in-question is not librealsense, but rather the old RealSense SDK.
For librealsense we do not yet provide direct integration with PCL, but we do offer a getting started guide here

Hi @dorodnic thanks for replying me, but the link you gave is based on librealsense2, which is use for the new cameras (D400 series and the SR300) and my ZR300 cannot run it.
I've searched the old RealSense SDK for ZR300 here, which can build according to this tutorial, but I still cannot find the "pxcversion.h" file.

I see. To the best of my understanding RSSDK parameter only refers to the older version of RealSense Windows SDK. I don't think the ZR300 software offered any official integration with PCL, but I hope the document for librealsense2 can still be useful (since librealsense 1 and 2 are not that different)
If this direction can be relevant for you, we can help adapt librealsense2 code in the pcl snippet.

okay then, I may try to build an integration between librealsense 1 and pcl on my own.  Thanks for your help anyway!


planning: Supporting vision model (Llava and Llama3.2)

Problem Statement
To support Vision models on Cortex, we need the following:

[ ] 1. Download model .gguf and mmproj file
[ ] 2. v1/models/start takes in model_path (.gguf) and mmproj parameters
[ ] 3. /chat/completions to take in messages content image_url
[ ] 4. image_url has to be encoded in base64 (via Jan, or link to tool eg https://base64.guru/converter/encode/image)
[ ] 5. model support - (side note: Jan currently supports BakLlava 1, llava 7B, Llava 13B)

1. Downloading model .gguf and mmprog file:
For fully compatible with Jan, cortex should be able to pull mmproj file along with GGUF file.
Let's take the image below for example.

Scenario steps:

User want to download llava model and expect it to support vision. So, user input:

Direct URL to the GGUF file (e.g. llava-v1.6-mistral-7b.Q3_K_M.gguf), or Url to repository (we will list options filter .gguf file) for user to select.
Since mmproj is also ended with .gguf, we also listed that in the selection.

Cortex will only pull that selected GGUF file, ignoring that:

mmproj.gguf alone won't work.
only traditional gguf file (e.g. llava-v1.6-mistral-7b.Q3_K_M.gguf) will not have vision feature.

So, we need to come up with a way so that cortex knows when to download the mmproj file along with traditional gguf file.
cc @dan-homebrew , @louis-jan , @nguyenhoangthuan99, @vansangpfiev
Feature Idea
Couple of thoughts:

File name based.
1.1. For CLI: Ignore file name contains mmproj when presenting selection list. And download it along with selected traditional gguf file.
1.2. For API: Always scan the directory with same level as the URL provided. If there's a mmproj file name, cortex adds it to the download list.

Edge case: If user provide a direct URL to mmproj file, return error with clear error message.

Thinking / You tell me

Updates:

mmproj param is added to /v1/models/start parameters in #1537
CLI cortex pull presents .gguf and mmproj files

We should ensure that model.yaml supports this type of abstraction, cc @hahuyhoang411

@vansangpfiev and @hahuyhoang411 - can I get your thoughts to add to this list from my naive understanding?
To support Vision models on Cortex, we need the following:

Download model - downloads .gguf and mmproj file -> What is the model pull UX?
v1/models/start takes in model_path (.gguf) and mmproj parameters ✅
/chat/completions to take in messages content image_url ✅
image_url has to be encoded in base64 (via Jan, or link to tool eg https://base64.guru/converter/encode/image)
model support - (side note: Jan currently supports BakLlava 1, llava 7B, Llava 13B)
..

@vansangpfiev and @hahuyhoang411 - can I get your thoughts to add to this list from my naive understanding?
To support Vision models on Cortex, we need the following:

Download model - downloads .gguf and mmproj file -> What is the model pull UX?
v1/models/start takes in model_path (.gguf) and mmproj parameters ✅
/chat/completions to take in messages content image_url ✅
image_url has to be encoded in base64 (via Jan, or link to tool eg https://base64.guru/converter/encode/image)
model support - (side note: Jan currently supports BakLlava 1, llava 7B, Llava 13B)
..

I'm not sure about this yet, since 1 folder can have multiple chat model files with 1 mmproj file.
image_url can be a local path to image, llama-cpp engine support encoding image to base64 and pass it to model.
llama-cpp engine supports BakLlava 1, llava 7B, llava 13B.
llama.cpp upstream has already supported MiniCPM-V 2.6, we can integrate it to llama-cpp.
llama.cpp upstream does not support llama3.2 vision yet.

We probably need to consider changing the UX for inferencing with vision model, for example:
cortex run llava-7b --image xx.jpg -p "What is in the image?"

Thank you @vansangpfiev and @hahuyhoang411! Quick notes from call:

upstream llama.cpp -> to integrate parameters into cortex.llama-cpp and cortex.cpp
Ease of models support: LLava, then MiniCPM.
Llama3.2 vision - to look into Ollama
https://ollama.com/library/llama3.2-vision
https://ollama.com/blog/llama3.2-vision

Added an action item, where model management should pull metadata from chat model file instead of projector file (just to make sure we tracked this)


[SPARK-29203][SQL][TESTS][2.4] Reduce shuffle partitions in SQLQueryTestSuite

What changes were proposed in this pull request?
This PR backport https://github.com/apache/spark/pull/25891 to branch-2.4.
Why are the changes needed?
Reduce testing time.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Manually tested in my local:
Before:
...
[info] - subquery/in-subquery/in-joins.sql (6 minutes, 19 seconds)
[info] - subquery/in-subquery/not-in-joins.sql (2 minutes, 17 seconds)
[info] - subquery/scalar-subquery/scalar-subquery-predicate.sql (45 seconds, 763 milliseconds)
...
Run completed in 1 hour, 22 minutes.

After:
...
[info] - subquery/in-subquery/in-joins.sql (1 minute, 12 seconds)
[info] - subquery/in-subquery/not-in-joins.sql (27 seconds, 541 milliseconds)
[info] - subquery/scalar-subquery/scalar-subquery-predicate.sql (17 seconds, 360 milliseconds)
...
Run completed in 47 minutes.

cc @dongjoon-hyun

Test build #111409 has started for PR 25938 at commit 3054725.

Merged build finished. Test PASSed.

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

Test build #111409 has finished for PR 25938 at commit 3054725.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

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

Merged to branch-2.4.

Thank you! Late LGTM.


Mailto link in navbar doesn't work

I want to have a link in the navbar to allow someone to contact me. For example, in config.yaml:
  nav:
    showCategories: true
    showTags: true
    custom:
      - title: About
        url: /about
      - title: GitHub
        url: https://github.com/Benjamin-Lee
      - title: Email
        url<EMAIL_ADDRESS>
The rendered HTML is linking to<EMAIL_ADDRESS>rather than<EMAIL_ADDRESS>which yields a 404.

My mistake, fixed.


Json deserialization process should not remove extension for Security Scheme

Motivation
According to the specification the "Security Scheme Object" may be extended with Specification Extensions.
Modification

Add test to highlight the bug
SecuritySchemeDeserializer now parse other field

Thanks!


Merge latest commits from apache again

@ymatsuda
Also fixes some issues in MockRestoreConsumer.

@ymatsuda
I cannot find a good way to generalize MockRestoreConsumer, so I will revert some changes.

lgtm


Force location of sciter binaries? (without PATH)

I am trying to make a cross-platform application (Windows/Mac/Linux) and am repeatedly having issues with installation across platforms.
It's very difficult to reliably install a third party library into the correct place on these platforms. It would be wonderful if I can simply Freeze and package the application with PyInstaller
I cannot seem to be able to simply keep the binary libraries in the same folder as my .py project files and be correctly detected and loaded by pysciter. Is there any way I can force the system to find and use an internal sciter instead of having to push it to the user's PATH?

You can add the current directory to the PATH, as an option.

Thanks, I can confirm the following works on MacOS:
import sys,os
import sciter

sys.path.append(os.getcwd())

if __name__ == '__main__':
    frame = sciter.Window(ismain=True, uni_theme=True)
    frame.load_file("minimal.htm")
    frame.expand()
    frame.run_app()

I have only three files in the directory:

I tried the same thing on a Windows machine with the DLL but it did not work. I will play with it more and report back.

Just got to my Windows 10 PC. It did not work with the 64bit DLL, even though I am on a 64bit Windows install.
I guessed that I must have a 32bit Python install. Confirmed with this code, which will output 32 or 64...
import struct
truct.calcsize("P") * 8

Once I confirmed I am on a 32bit Python install, I swapped sciter.dll to the 32bit version and it worked perfectly. Thanks for your help. Figured I would document this little saga for anyone else interested in this.

Great.
Another piece that I use to determine 32 or 64 bitness is if sys.maxsize > 2**32

sys.path.append(os.getcwd()) doesn't work on Windows for me though, but os.environ['PATH'] worked fine.
import os

if os.name == 'nt': # making sure we're on Windows
	os.environ['PATH'] = os.getcwd() + ';' + os.environ['PATH']

Note: it should be done before import sciter, otherwise you'll have an error.

sys.path.append(os.getcwd()) doesn't work on Windows for me though, but os.environ['PATH'] worked fine.
import os

if os.name == 'nt': # making sure we're on Windows
	os.environ['PATH'] = os.getcwd() + ';' + os.environ['PATH']

Note: it should be done before import sciter, otherwise you'll have an error.

sys.path.append(os.getcwd()) doesn't work on Windows for me though, but os.environ['PATH'] worked fine.
import os

if os.name == 'nt': # making sure we're on Windows
	os.environ['PATH'] = os.getcwd() + ';' + os.environ['PATH']

Note: it should be done before import sciter, otherwise you'll have an error.

sys.path.append(os.getcwd()) doesn't work on Windows for me though, but os.environ['PATH'] worked fine.
import os

if os.name == 'nt': # making sure we're on Windows
	os.environ['PATH'] = os.getcwd() + ';' + os.environ['PATH']

Note: it should be done before import sciter, otherwise you'll have an error.


Confirm to ObservableObject

Being able to use @ObservedObject or @StateObject!

In my case, I needed to observe the changes made by the factory. Thus, it was the only option for me by making SimultaneouslyScrollViewHandler confirm to ObservableObject.

You should be able to achieve this by using the publisher direct. Something like the following should work:
Create an instance variable of SimultaneouslyScrollViewHandler
private let simultaneouslyScrollViewHandler: SimultaneouslyScrollViewHandler

Assign the simultaneouslyScrollViewHandler either by Dependency Injection or create one using the factory
self.simultaneouslyScrollViewHandler = simultaneouslyScrollViewHandler
// or
self.simultaneouslyScrollViewHandler = SimultaneouslyScrollViewHandlerFactory.create()

Subscribe to the scrolledToBottomPublisher using pure Combine features
self.simultaneouslyScrollViewHandler.scrolledToBottomPublisher
    .removeDuplicates()
    .sink { [self] newValue in
        // Use the new value e.g. for assigning it to a `@State` if you are inside a View.
        withAnimation {
            isScrollBottomReached = newValue
        }
    }
    .store(in: &cancelableSet)

For the cancellable, you need to create some kind of collection to retain it.
private var cancelableSet: [AnyCancellable] = []

This is not as convenient as ObservableObject but it still gives you full flexibility (which was my aim in first place)

Closing due to inactivity. Feel free to add additional comments if this is still a topic.


Evaluate new solver system in the context of the Object Manipulator

Investigated the draft PR with the new transformations system and Object Manipulator today: https://github.com/microsoft/MixedRealityToolkit-Unity/pull/11323
Basic manipulation with the new ObjectManipulator worked fine (near/far interaction to move).
However, the transformations system still seems to be unfinished:

Bug: I was unable to add any constraints other than the MinMaxScale constraint. (hitting an exception when try to create the class)
Bug: Setting min and max scale to identical causes the object to start stuttering
Bug: Even with the MinMaxScale constraint, I was able to scale the object up beyond the limit. The script would snap the object back to the limit once I stopped the interaction. The constraint system doesn't allow the user to scale the object beyond the limit on the initial interaction
The MinMaxScale transformation doesn't have the "relative to initial state" flag yet which the MRTK 2 defaults to.

Based on these bugs, I would suggest holding off on the transformations system for GA and adding it in a future release.


B2 send

pending:B2
@CyberSensei1  it appears you’ve not submitted logs with the Log Summary Tool. If you could please follow the instructions on that page to submit logs that will allow us to properly evaluate your submission. Thanks!

pending:B2
@CyberSensei1  it appears you’ve not submitted logs with the Log Summary Tool. If you could please follow the instructions on that page to submit logs that will allow us to properly evaluate your submission. Thanks!

If i am not wrong when i commiting my submission there is no log tools. i asked a lot of time about logs but i didnt get sufficient response so i get full logs and splitted them. And added all of them. I already destroyed my concordium node vps so there is no old log available except on my submissions

If i am not wrong when i commiting my submission there is no log tools. i asked a lot of time about logs but i didnt get sufficient response so i get full logs and splitted them. And added all of them. I already destroyed my concordium node vps so there is no old log available except on my submissions

If i am not wrong when i commiting my submission there is no log tools. i asked a lot of time about logs but i didnt get sufficient response so i get full logs and splitted them. And added all of them. I already destroyed my concordium node vps so there is no old log available except on my submissions

If i am not wrong when i commiting my submission there is no log tools. i asked a lot of time about logs but i didnt get sufficient response so i get full logs and splitted them. And added all of them. I already destroyed my concordium node vps so there is no old log available except on my submissions

confirmed:B2

confirmed:B2


"This test did not perform any assertions" error

So I've been banging my head as to why suddenly my tests don't work anymore, and then I remembered I installed this package but haven't been using it. I reverted this line to the default and now everything works again
use BeyondCode\DuskDashboard\Testing\TestCase as BaseTestCase;

back to
use Laravel\Dusk\TestCase as BaseTestCase;

Keep in mind I wasn't running the dashboard at all, just trying to run my tests from the command line as per usual
I was getting this error:
This test did not perform any assertions

And the test was judged to be "risky"
It's probably because of my unconventional way of testing.. let me explain what I do in my app so you might understand why it isn't working.
I have one single test which loads some parameters from the cache (which are set as part of another console method with Cache::forever
This one single test calls a Page and passes it those things loaded from the cache, and the page then uses those params to call a dynamic function. Finally inside that function is where all the assertions are done
Something as simple as this:
PostRecipeTest.php
<?php

namespace Tests\Browser;

use Tests\DuskTestCase;
use Tests\Browser\Pages\PostNewRecipe;

class PostRecipeTest extends DuskTestCase
{
    public function testPostRecipe()
    {
        $site = cache()->get('site');
        $recipe = cache()->get('recipe');

        $this->browse(function ($browser) use ($site, $recipe) {
            $browser->visit(new PostNewRecipe($site, $recipe));
        });
    }
}

<?php

namespace Tests\Browser\Pages;

use Laravel\Dusk\Browser;
use Illuminate\Support\Facades\URL;

class PostNewRecipe extends Page
{
    use SiteScripts;

    protected $site;
    protected $recipe;

    public function __construct($site, $recipe)
    {
        $this->site = $site;
        $this->recipe = $recipe;
    }

    public function url()
    {
        return $this->site['login_path'];
    }

    /**
     * Assert that the browser is on the page.
     *
     * @return void
     */
    public function assert(Browser $browser)
    {
        $functionName = $this->site['name'];

        return $this->$functionName($browser);
    }

Inside the method called above
    public function someMethod(Browser $browser)
    {
        $browser->resize(1024, 768); // Width and Height

        $browser->assertPathIs('/');
        ...

When using
use BeyondCode\DuskDashboard\Testing\TestCase as BaseTestCase;

The test would always reach this first assertion (assertPathIs) and would exit there, not giving a failure but rather exiting with the error 'This test did not perform any assertions'
I guess this package does not like the way I'm testing my assertions into a method instead of being directly included in the Page's assert() method.. do you have any idea why? Works perfectly with vanilla Laravel Dusk
Regards

I had the same issue and after puzzling over it for a couple of days I finally out out my problem.
Dusk dashboard catches exceptions.
I had a problem where in some cases I did not pass on a message to my custom PHPUnit assertion - it was null when it needed to be an empty string. It should have resulted in an error. Dusk dashboard however simply returned from that browse closure and continued on testing like there was nothing wrong. In one case it probably should have failed before since I was testing for something that had findOrFail and it did not fail.
I really liked the thought of having the option to run the tests in browser when it claimed to not find an element that I saw was right there on the screenshot. But mostly I run them command line. And while catching exceptions may work in browser mode - in command line mode Dusk dashboard is dangerous for the error suppression.
I personally have not found much use for the Dashboard as I cannot limit the tests being run by the browser. We are trying to cover our entire application by tests and mostly the dashboard just dies after running for a while. So uninstall for me.

I ran into a similar problem today on PHPUnit 10.2.2 with a PHP 8.1.4 installation. Turns out there were SQL errors and a few other errors which were not showing up. When I fixed the errors, the "This test did not perform any assertions" message went away and the test ran OK.


[Collection] IRI Generation

https://github.com/nfdi4plants/ARCtrl/issues/351
https://github.com/nfdi4plants/ARCtrl/issues/352
https://github.com/nfdi4plants/Swate/issues/384
https://github.com/nfdi4plants/Swate/issues/324

I think we should finally create a unified logic for uri generation.
The current logic, shown here might not be sufficient, to handle all different kinds of url.
Below i will try to summarize the requirements:

DPBO:  http://purl.org/nfdi4plants/ontology/dpbo/DPBO_0002006 (TS4TIB-Service)
EFO: http://www.ebi.ac.uk/efo/EFO_0006571

TS4TIB
An external ontology service in cooperation with DataPLANT:
quoting @Hannah-Doerpholz

So, I have created all purls for the terms that are currently in DPBO. The ontology repo now also has an automated workflow > that creates new purls whenever new DPBO terms are added to the .obo file. The purl checker + creation runs every Saturday > once per week, since it takes a while to run.

All ontologies are included except:

ARC
MIAPPE (our homebrew version)
CREDiT
NCBITaxon (both the full one as well as our homebrew one)

Everything else that we currently import through the ext_ontologies.include, as well as our DBPO is in the TIB.

I will close all related issues to track them here. @Hannah-Doerpholz please verify if this issue roughly sums up the requirements 🙂

The summary looks good to me! I'll see if we can't also add ARC, our MIAPPE and CREDiT into the TS4TIB. That would take a while though. I'll update you on any changes

I will implement a hardcoded logic to cover the cases where we know that the standard PURL is wrong and we have a functioning alternative.

@HLWeil Thank you!
@Freymaurer I know they are broken, but that is not something we can resolve. I contacted the MS maintainers, OBO Foundry and Ontobee, since I didn't know where exactly the issue is. OBO Foundry says that the purls are fine and that the problem is likely with Ontobee, Ontobee says that the issue is probably with the ms.owl file, and the MS maintainers haven't responded at all.
A workaround for MS would be to not rely on the purls but link directly to OLS4, since the terms are displayed correctly there. That would mean the following:
old MS link: http://purl.obolibrary.org/obo/MS_1002809
new MS link: https://www.ebi.ac.uk/ols4/ontologies/ms/classes/http%253A%252F%252Fpurl.obolibrary.org%252Fobo%252FMS_1002809

Another option might be to go through Bioregistry. Bioregistry is an identifier resolver. Here, there is always some RDF information about how the URI format for a term should look like. For example in ENVO:
http://purl.obolibrary.org/obo/ENVO_$1

Our imported ontologies that are in Bioregistry:
ENVO, PSI-MS (Prefix MS), CHEBI, GO, OBI, PATO, PECO, PO (purls broken), RO (purls broken), TO, UO, PSI-MOD (prefix MOD), EFO, NCIT, OMP
Ontologies we host on GitHub ourselves that are in Bioregistry:
CRO (the credit ontology), NCBITaxon
Ontologies we host on GitHub that are NOT in Bioregistry (I could add them though):
DPBO
ARC_v3.0
MIAPPE
For PO and RO, the workarounds as MS could be:
old PO link: http://purl.obolibrary.org/obo/PO_0007033
new PO link: https://www.ebi.ac.uk/ols4/ontologies/po/classes/http%253A%252F%252Fpurl.obolibrary.org%252Fobo%252FPO_0007033

old RO link: http://purl.obolibrary.org/obo/RO_0002533
new RO link: https://www.ebi.ac.uk/ols4/ontologies/ro/classes/http%253A%252F%252Fpurl.obolibrary.org%252Fobo%252FRO_0002533?lang=en

Thanks a lot for your thorough input, @Hannah-Doerpholz!
So maybe we could use bioregistry in general?
E.g. instead of
http://purl.obolibrary.org/obo/ENVO_09200010
use
https://bioregistry.io/envo:09200010
And instead of
http://www.ebi.ac.uk/efo/EFO_0005147
use
https://bioregistry.io/efo:0005147
Would be kind of a practical unification.

@Hannah-Doerpholz, I opened a PR with the changes, this took a quite a bit longer as other tests still used hard-coded "deprecated" URLs.
With this change, the namespaces discussed here should result in working URLs, but working towards unification would still be highly welcome. Especially the ms-style URLS are clunky and harder to parse.
If parsing demands change (e.g. if ontologies are added to bioregistry), feel free to reopen this issue and add the requirements.

Sorry about another question, but I noticed that in Swate the links are not adjusted. For example, "mass spectrometry" from MS the link is still a purl.obolibrary link (bottom left):

The same also goes for DPBO. Is this currently the expected behaviour?

Yes! We are working on the update for Swate with ARCtrl 2.0.0 integration. The expected release date (if not required earlier) is the 27.06.2024.


Add summary comments to public members

Add <summary> comments to public members:

classes
interfaces
methods
properties

@akravch should this issue be closed?

@pryabov It should, thanks,


Firebase Auth error on Android (worknig fine on Unity Editor)

Please fill in the following fields:
Unity editor version: 2020.1.0f1 / 2020.1.6f1 (both tested)
Firebase Unity SDK version: 6.14.1 / 6.15.2 (both tested)
Source you installed the SDK (.unitypackage or Unity Package Manager): Unity Package Manager
Firebase plugins in use: Auth, Database (but database not relevant since the error comes and Auth directly and Database is not used)
Platform you are using the Unity editor on (Mac, Windows, or Linux): Windows
Platform you are targeting (iOS, Android, and/or desktop): Android
Scripting Runtime (Mono, and/or IL2CPP):
Please describe the issue here:
I asked it at unity forum, but no one seems to be able to help me with that. Just take an eye there if you pleased:
https://forum.unity.com/threads/firebase-auth-error-on-android-worknig-fine-on-editor.974688/#post-6337518
The exccpetion InitializationException: Firebase app creation failed.
Please answer the following, if applicable:
Have you been able to reproduce this issue with just the Firebase Unity quickstarts (this GitHub project)? Yes, exactly the same. Works during Unity Editor, cracks when it's builded at Android.
What's the issue repro rate? Always, 100%I searched a lot nothing helped me.
Seems like this issues had the same or very similar problems, but still following the thread I wasn't able to fix it.
https://github.com/firebase/quickstart-unity/issues/709
https://github.com/firebase/quickstart-unity/issues/229

Well, just fixed. I never renamed the Firebase folder to Firebase.androidlib, thats why it didn't work. Btw just remember to google this link https://firebase.google.com/docs/unity/setup talks about this if you enter at the eng version. I'm spanish and the spanish version seems to not be completely updated because it never talk about that question. At end I found some info about this talking with other unity-firebase user at stackoverflow, and we realized about the post has different info between english and spanish version.