Error : FMU is not in instantiation mode

@ThummeTo
when the FMU is exported (License Free FMU) using Dymola Solver (4th Option) as shown in the Figure below.

 fmiSimulate gives the error  FMU is not in instantiation mode
the same model when a license-free FMU is generated with Cvode (3rd Option in the figure above). the model works file.
I tried to find the cause of the error but I didn't have any luck.
Note: this error exists in both V 0.1.2 and V 0.1.3. checked FMU with Dymola Solver in FMPy- works fine.
Regards
Prem

Hey @coprem,
thanks for opening the issue.
Can you please provide the code for the simulation?
(If possible the FMU itself helps a lot, too)
BTW: by using fmiSimulateCS or fmiSimulateME you can force simulation in CS or ME mode (CS is used by default if available).

Hey @coprem ,
I guess you are entering initialisation mode a second time, which is not allowed using the Dymola solver. fmiSimulate already does enter and exit initialisiation mode, so the follwing should work as excpected
Case A) Do initialization by yourself:
myFMU = fmiLoad(pathToFMU)
fmiInstantiate!(myFMU; loggingOn=true)
fmiSetupExperiment(myFMU, t_start)
fmiEnterInitializationMode(myFMU)
fmiExitInitializationMode(myFMU)
data = fmiSimulateCS(myFMU, t_start, t_stop; recordValues=["mass.s", "mass.v"], setup=false)
fmiPlot(data)
fmiUnload(myFMU)

Case B) Let fmi.jl initialize:
myFMU = fmiLoad(pathToFMU)
fmiInstantiate!(myFMU; loggingOn=true)
data = fmiSimulateCS(myFMU, t_start, t_stop; recordValues=["mass.s", "mass.v"])
fmiPlot(data)
fmiUnload(myFMU)

Notice the optional keyword setup=false in Case A!
Does this resolve your issue?

Hey @coprem,
thanks for opening the issue.
Can you please provide the code for the simulation?
(If possible the FMU itself helps a lot, too)
BTW: by using fmiSimulateCS or fmiSimulateME you can force simulation in CS or ME mode (CS is used by default if available).

@ThummeTo  Please find the code below
FMU = fmiLoad(modelFMUPath)
myFMU = fmiInstantiate!(FMU; loggingOn=false)
fmiSetupExperiment(myFMU, 0.0)

t_start = 0.0
t_stop =1000.0

fmiEnterInitializationMode(myFMU)
fmiSetReal(myFMU, InputVars, InputValsReal)
fmiExitInitializationMode(myFMU)
result = fmiSimulate(myFMU,t_start, t_stop; recordValues= FMU.modelDescription.outputValueReferences)

I will be trying both the approaches Case A and Case B and Will let you know
I am sry that I cannot Provide FMU because of Dymola License Agreement.

Adding setup=false to your last line should do the trick:
result = fmiSimulate(myFMU,t_start, t_stop; recordValues= FMU.modelDescription.outputValueReferences, setup=false)

@ThummeTo I have tried with Case A and Case B both of them didn't work with Dymola Solver FMU. it gives the same error: FMU is not in instantiation mode.

Dear @coprem ,
can you check if #23 solved your issue CaseA?
Another important point: Do all commands before fmiSimulate succeed (= returning 0x00000000)? Maybe there is a problem during initialization (try loggingOn=true).

@ThummeTo #23 has resolved the Issue with Case A and it's working fine.  Thanks.
Note: I Did Test Case B with #23 it gives the same error. but any way Case A Solves my problem.
Regards
Prem

Dear @coprem ,
please check if the library version 0.1.4 resolves your issue. If not, please provide a minimal working example consisting of the code and the FMU. If you can't share the FMU, please provide a short export instruction naming a MSL-example, your exporting tool and export settings. Based on this information, we can export a FMU under the same conditions and test it (we are using Dymola as well as OpenModelica).
Thank you!

Hi @ThummeTo
with Version 0.1.4 the issue is Resolved and I tested Both Case A and Case B work fine.
Closing the Issue.
Regards
Prem


Race free ability to set a deferred library as not debuggable

When a deferred library is loaded it is debuggable by default. A service client that wants to disable debugging for the library cannot do this without racing with the isolate itself. Some ideas:

Add a break on library load bit to the isolate. When a deferred library is loaded, the isolate will pause until resumed.
Settable per-isolate default library debuggability. This would solve the problem assuming the policy was 'all off' or 'all on' but wouldn't solve the problem for a more complex split.
A client can mostly work around this by detecting that the isolate has paused inside a library they do not want to debug, disabling debuggability, and continuing execution.

@turnidge


Fixed Schema compare integration tests by adding retry

This PR fixes #

Pull Request Test Coverage Report for Build 399020184

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 41.144%

Totals

Change from base Build 398931450:
0.0%

Covered Lines:
21853

Relevant Lines:
48650

💛  - Coveralls


Disconnect loaded Frame Element while rendering

Closes #453

While loading a matching <turbo-frame> element from a response body,
the FrameController "activates" it by invoking
FrameElement.connectedCallback() after importing it into the document.
During that activation, several event listeners are attached, including
some on the document.
Unfortunately, that FrameElement.connectedCallback() invocation is
never mirrored with a FrameElement.disconnectedCallback() invocation,
so the attached listeners are never detached, causing an accumulation.
This commit invokes the disconnectedCallback() after loaded element's
contents are extracted into the browser's document.

@dhh this feels like an important fix to ship as part of 7.1.0-rc2.


Docker build - No prebuilt binaries

Hi,
when I'm installing better-sqlite3 in my docker container, the following warning appears
prebuild-install WARN install No prebuilt binaries found (target=12.16.3 runtime=node arch=x64 libc=musl platform=linux)
shouldn't there be a prebuilt version for Node 12 on Linux?
Best regards

Works for me, share your Dockerfile
$ docker run --rm -it node:12 /bin/bash
root@114948abc5b7:/# npm i better-sqlite3

><EMAIL_ADDRESS>install /node_modules/better-sqlite3
> prebuild-install || npm run build-release

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN<EMAIL_ADDRESS>No description
npm WARN<EMAIL_ADDRESS>No repository field.

+<EMAIL_ADDRESS>added 68 packages from 38 contributors and audited 116 packages in 4.996s

1 package is looking for funding
  run `npm fund` for details

found 0 vulnerabilities

This only happens when using one of the alpine-based images (e.g. node:12-alpine), because those use musl as the standard library and better-sqlite3 only has prebuilt binaries for glibc. Switching to a debian-based image (e.g. 12-slim) works, but it would be nice if you could provide prebuilt binaries for alpine as well as they are used quite frequently.

Ah, thanks.


[Feature Request]: Make the website Multilingual using google translate

Is there an existing issue for this?

[X] I have searched the existing issues

Feature Description
Feature Request: We need to implement multilingual support for the Agrotech AI website to make it accessible to a wider audience, especially farmers from various regions.
Use Case
enhance user experience
Benefits
No response
Add ScreenShots
No response
Priority
High
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I have starred the repository

Can you please assign this issue to me

hey could you pls assign me as well @manikumarreddyu


[Testing Docs] Add initial testing docs

Summary
Adds the following pages to a new "Develop" > "Testing" section:

Testing Levels
Module Integration Tests
App Integration Tests
App Integration Suites
In-Memory Network Integration Tests
End-to-End Tests

Issue
N/A
Type of change
Select one or more from the following:

[ ] New feature, functionality or library
[ ] Consensus breaking; add the consensus-breaking label if so. See #791 for details
[ ] Bug fix
[ ] Code health or cleanup
[x] Documentation
[ ] Other (specify)

Testing

[x] Documentation: make docusaurus_start; only needed if you make doc changes
[ ] Unit Tests: make go_develop_and_test
[ ] LocalNet E2E Tests: make test_e2e
[ ] DevNet E2E Tests: Add the devnet-test-e2e label to the PR.

Sanity Checklist

[ ] I have tested my changes using the available tooling
[ ] I have commented my code
[x] I have performed a self-review of my own code; both comments & source code
[ ] I create and reference any new tickets, if applicable
[x] I have left TODOs throughout the codebase, if applicable

@Olshansk thanks for the editing and cleanup! :heart:


Superchain GitOps - ENG implementation scoping

We want to use this issue to track our ENG scoping work for Superchain Registry implementation
Current ideas of the things we should cover in this implementation are, but @geoknee will extend a list in the new implementation epic we will create to track all the work:

[x] complete the set of validation checks to cover everything we care about (standard config etc)
[x] make test input and output easier to consume by humans and machines (e.g. future OPBeat)
[x] safeguard critical downstream dependencies from bloat and bugs
[x] pay down existing tech debt in the registry, including skipped validation checks

Good docs to read while working on scoping:

Superchain-GitOps-Milestones: https://www.notion.so/oplabs/Superchain-GitOps-Milestones-711ee6fb0f414398a939fe32a72f40da?pvs=4
PRD] Superchain Registry: https://docs.google.com/document/d/13nFUdxksND4BzxRA-OdO6DpL888umoVgy56HikMsNW8/edit?usp=sharing

Please see these epics and their sub-issues:
https://github.com/ethereum-optimism/client-pod/issues/835
https://github.com/ethereum-optimism/client-pod/issues/836
https://github.com/ethereum-optimism/client-pod/issues/837

closing now


add GitHub Pre-Release (latest by date)

You have the badge Github/Release (latest by date) but nothing for pre releases

We do already have this. e.g:
 - https://img.shields.io/github/v/release/expressjs/express
 - https://img.shields.io/github/v/release/expressjs/express?include_prereleases

ahhh sorry i haven't seen the option ?include_prereleases
Thanks! :)
my bad!


Open-source VS Pro questions

I just discovered this project and I congratulate you because it looks really promising 👏
But I have some doubts, I try to expose them here.

What are the differences between the open-source version and the Pro version?
Is the code for the Pro version (I assume it is paid) still accessible for making customizations?
In the open-source version I can't find so many features described in the README, such as the whole part about the dashboard, user management, payments, etc.
In the open-source version I can't find where to set the API keys to enable the various providers.

Thanks in advance

👋 Maybe the following answers will help you:

please check https://chatnio.com for more information (sorray that paypal payment method is not currently supported)
u can also making customizations by way of setting up custom css/js.
& 4. All features of README are taken from the open source version. Please explore to answer questions on your own. (eg. Admin and Api Settings in the avatar dropdown menu)


Add editor controls for the template labels

Labels
All template attributes have a "priority" attribute; this controls the layer of the element. Lower priorities are further back; priority of 0 means the element is not drawn. For now you can have a hide/show checkbox that just sets the priority to 0 or 1 for any attribute.
Labels have 4 relevant attributes: x, y, texttable, and textorientation. For the sake of getting this project into users hands sooner than later, we'll settle for using pre-existing texttables and textorientations (which you can fetch using the same basic code as the ways that you get graphics methods, but sub in "texttable" or "textorientation"). X and Y control the position.
Data-driven labels

dataname (The "id" attribute of the variable)
title (The "longname" or "title" attribute of the variable)
units (The units of the variable)
mean (Average value of the current plot)
min (Minimum value of the current plot)
max (Maximum value of the current plot)
file (If the "file" attribute is set, whatever value was in there)
crdate (The current date)
crtime (The current time)
zname (The name of the z axis; this will frequently be the time axis in a 3 dimensional variable)
tname (The name of the t axis; only shows up in a 4d var)
zvalue (The current value of the z axis we are viewing (used for animation); usually the same as crdate + crtime)
tvalue (The current value of the t axis we are viewing (if there are 4 dimensions); usually the same as crdate + crtime)
zunits (The units of the z axis)
tunits (The units of the t axis)

Deprecated:

comment1 (Allows a user to specify an annotation on the plot. Replaced by textcombined objects now, though still should work.)
comment2 (Allows a user to specify an annotation on the plot. Replaced by textcombined objects now, though still should work.)
comment3 (Allows a user to specify an annotation on the plot. Replaced by textcombined objects now, though still should work.)
comment4 (Allows a user to specify an annotation on the plot. Replaced by textcombined objects now, though still should work.)
xvalue (Unused)
yvalue (Unused)
function (If the "function" attribute is set on the variable, will be displayed using this object as guidance.)
logicalmask (If the "logicalmask" attribute is set on the variable, will be displayed using this object as guidance.)
transformation ("" transformation "")
source ("" source "")

Depends on #63

Done https://github.com/UV-CDAT/vcdat/commit/f0037e66a9cce9b5a66c70f9b797fa444bab6355


samples: smp_svr: enable support for both small and big heaps

Fix non-functional smp_svr for platforms with RAM < 256KB. By default they have support for small heaps only (CONFIG_SYS_HEAP_SMALL_ONLY).
Use CONFIG_SYS_HEAP_AUTO=y for the project. It enables support for both small and big heaps.
Proven on a platform with 128KB RAM.

Hi @nordicjm

What here is needing heap? Heap is disabled by default when you configure

Right, even if KERNEL_MEM_POOL is enabled, the heap size is zero.

and I've ran this many times on devices with less than 256KiB of RAM without issue

Switching from SYS_HEAP_SMALL_ONLY to CONFIG_SYS_HEAP_AUTO has helped for frdm-mcxa156.
I will try to find other boards with 128KB of RAM,
and to investigate if this is a common issue or a problem specific to mcxa156.
It's not critical. If you want, I can close the PR for further investigation.

What transport/commands are you running or where is the error shown/in response to what? Will try it on a board here


Don't downgrade versioncodes

You recently updated from a higher versioncode (20001) to a lower one (2002). This is not supported. New versions always have a higher versioncode.

<HTTP//name="github">GitHub を参照

   <string name="delete">削除</string>#< Value_Github_cookies_##negtive>](url)

Sorry for that.I was trying to simplify version code notation and forgot about that.Thanks for getting involved ;)
I'll merge this one


Layout categories vertically

Is your feature request related to a problem? Please describe.
I think it would make more sense to place all categories vertically. This is more oriented towards the user behaviour, who scrolls down to view the emojis. As it is is now, when they reach the bottom they need to change gesture direction and swipe right
I think one more advantage of it, that it has the potential of improved performance as there will be no need for nested flat list
Additional context
This behaviour is also used by Slack

Hi, thank you for your feedback and sorry for late response! That sounds interesting, we will definitely make some experimentation, maybe even allow the library users to customise where they want the categories to be put. Though I can't give you a time frame, as we have other improvements on our plate now

Hey is there any update on this feature , we really like your package and wanted this feature. P.S - if it is alright i can work on this feature


(Less) cold start - do not require search to show first app results

what happens
In order to see any apps, I must first:

sign in (see #11 demo mode), and
search.

suggestion
Is it possible to surface apps without having to search (step 2) above?
design
How might this look like @NielLiesmons ?
builds on / related to
#11
Feedback by @gzuuus
https://njump.me/note18t3h5q23llzjqxue4x0sxvnx8pprv73cuwynrp3fl7rt6z303kssv6tt5p

Related feedback

Interesting appstore so far looks good 👌 but a homepage is urgently needed
list of all the apps?
i have no idea what ai am doing on the home button. needs better ux. i dont know what to look for
This looks very promising, great work. My request: I would like to be able to browse the entire app catalog without having to search
It would be nice to be able to see all apps and have categories as the amount of available apps increases.
how do we discover new apps?

I think we should manually curate some popular/quality apps for now

Logging in was never a requirement to search!  Related to this is #48 , so updating #11 and closing here

think we should manually curate some popular/quality apps for now

Agree

Logging in was never a requirement to  search!

Correct! The point of this issue is to have something on the main page before user searches anything.


feat(multicodecs): add filecoin multicodecs

Goals
Filecoin needs to be able to construct CIDs for:

Piece Commitment (CommP)
Data Commitment (CommD)
Replica Commitment (CommR)

These are used to uniquely identify:

a Filecoin Piece (unsealed)
a Filecoin Sector (unsealed)
a Filecoin Sector (sealed & replicated)

According to @porcuquine :
Filecoin using custom hashing
Hashing is different for sealed and unsealed data
Implementation
I have defined three serialization codecs (for each of the three types of data) and two hashing algorithms
Assuming these changes are accepted I will make changes to go-multihash and go-cid.

What are the size constraints on these codes? I.e., what goes on chain?

The size of CommP at least is 32 bytes.

But @jbenet would like it to be an actual CID -- as in:
32 bytes CommP, which itself a custom hashing format + hash identifier (fil-hash-unsealed) + serialization codec (the piece is not simply a CAR. it is a CAR + bit padding + padding at the end, from which merkle-hashes are constructed for every 32 bytes, and then there are hashes of each of those hashes, in a tree all the way up to a root hash -- it doesn't feel accurate to say the serialization is anything but a filecoin customization)

I'd ask everyone to pretend I didn't just act like the letter 'i' is a valid hex character.

To be able to resolve those nodes the codec should indicate the depth of the graph, otherwise you can't know if you have an intermediate node or a leaf
For a 32G sector this means we'd need codecs for 30 levels (each level is 32 bytes), and possibly more levels for a bit of future-proofing (64 for a nice round number?)

I'd really rather not abuse codecs that way. I'm going to try to think up a better approach.

This is related to a problem I'm having right now doing CID stuff for blockchain data in that we're addressing merkle nodes and not an entire block that we can hash. I'd really like to have a consistent approach to this that we can reuse.
The CommP as a "CID" is really just a CID for a 64-byte string that's a concatenation of two hashes. It's plain SHA2-256 over that. So it could be locked in as that. You could, if you wanted to, make a CID using the same coding for each node in the CommP merkle, all the way down to the base 32-byte hashes of the underlying data.
What I'm trying to solve for right now in serializing BTC blocks is getting from the header to the transactions by way of a 2-ary merkle tree where the root is all the header has. go-ipld-btc takes the interesting approach of overloading the bitcoin-tx multicodec to say "this could be a 64-byte concatenation of hashes and is therefore a merkle node, and if not, then it's the leaf transaction".
https://github.com/ipld/go-ipld-btc/blob/5fe5af640eda869dc1236673de9fd321ba14062b/parsing.go#L133-L138
It seems that we need a more consistent way of addressing merkle structures with CIDs because they pop up so frequently. But in the meantime, saying that 0xf101 is simply a SHA2-256 over a 64-byte string is probably enough to get an entry in the table? In which case the description Filecoin piece, raw data (CID = Piece Commitment) would need to be changed to talk about being a merkle node. The unfortunate implication of not having a better solution is that if I were to unpack a CommP down to its base data into a string of CID+Blocks then it'd be a CID for every node in the merkle tree, each of which is 64-bytes, all the way to the edges, which is a lot of nodes and a lot of wastage because CIDs are so long--this is what I'm dealing with in trying to serialize BTC blocks into CID+Blocks.

I think you know this, and it's tangential to what you are discussion, but I want to remind you that the CommP/CommD hash is not just SHA2-256. It's SHA2-256, with truncation to 254 bits (which I'm intentionally not fully specifying here). I mention it mainly so the description above isn't taken out of context as a specification by some future reader.

@porcuquine

is not just SHA2-256. It's SHA2-256, with truncation to 254 bits

But that's only at the base of the merkle tree in the underlying data, for the purpose of CID ~= hash(block) the block is just level n-1 of the merkle tree which doesn't have anything fancy about it, it's just a plain hash of two concatenated hashes.
There's currently no mechanism to say that "this CID addresses all of this underlying data", it only addresses an immediate "block" which can be passed through some hashing algorithm. i.e. it breaks down if you want to use a CID to address anything beyond a node in a merkle tree. But for the purpose of https://github.com/filecoin-project/go-fil-commcid, simplifying it to say that's all it is is probably enough, it's just not very satisfying when you push the CID ~= hash(block) concept and want block to be something larger.

I'm not sure if we are talking past each other or not. In Filecoin, the Merkle trees whose roots are called either CommP or CommR — are composed of binary hashes which are as I described, not just SHA2-256 without the truncation. This is important because each node in the tree has to fit into one BLS12-381 field element when included as a private input to the Merkle inclusion proofs contained in the PoRep SNARK.

@porcuquine oh yeah, sorry about that .. https://github.com/filecoin-project/rust-fil-proofs/blob/d7896c29ef3c0cc8c04f9fab7ef434e6691ed480/storage-proofs/core/src/hasher/sha256.rs#L75 and I even implemented that in javascript so should have remembered! https://github.com/rvagg/js-fil-utils/blob/master/merkle.js#L10
Well that complicates it further then. Hash algorithm is something like "sha2-256-254" which maybe needs a multihash entry of its own to make this work.

... and that's what this PR is for, the sha2-256-254 multihash, with the multicodec for CommP currently being "raw" which probably isn't right and may need its own entry.
I guess for sealed data, describing it as sha2-256-254 doesn't cut it since those extra 2 bits are going to be filled with something that we can't specify without additional context? For unsealed we can at least say say 0x00.

@porcuquine oh yeah, sorry about that .. https://github.com/filecoin-project/rust-fil-proofs/blob/d7896c29ef3c0cc8c04f9fab7ef434e6691ed480/storage-proofs/core/src/hasher/sha256.rs#L75 and I even implemented that in javascript so should have remembered! https://github.com/rvagg/js-fil-utils/blob/52255d1603ac49d912d8a1ede66bab5c0baa228b/merkle.js#L10

Hence my mild panic.

I guess for sealed data, describing it as sha2-256-254 doesn't cut it since those extra 2 bits are going to be filled with something that we can't specify without additional context? For unsealed we can at least say say 0x00.

I'm not 100% sure what you're discussing, so I'll be guarded. SHA2-256 doesn't contribute to any root of sealed data. The only Merkle trees created on sealed data use Poseidon with a more complicated tree structure.

Sorry for my spam in here @hannahhoward et. al. I've <details>d my comments above, you can ignore them for now. I'm writing up a clearer set of thoughts on how to handle this.
@hannahhoward one thing I would like to know is whether this PR or https://github.com/filecoin-project/go-fil-commcid/blob/master/commcid.go reflects current desired state. The latter uses raw as a codec type but this PR introduces both codecs and multihashes. Does this just reflect the uncertainty surrounding this issue, or limitations of go-cid in being unable to represent these new codecs yet?

(Skip down to "Suggestions" at the bottom of this you 'aint got time for all this text, scroll back up for background.)
We're trying to extend CID & multiformats a bit beyond what they should be used for here I think, but the edges are blurry already so let's be clear before proceeding. Please excuse my basic framing here, I know it's probably tedious for some.
What are these values we're trying to identify:

Comm{P,D,R} are roots of a merkle trees over a large blob of data. That data at the base of the merkle is a transformation of source data in the case of unsealed data (zero-padding for size then fr32 bit padding). So the relationship to source data is not as crisp as hashfn(data). The relationship gets even more complicated for sealed data I believe.
Unsealed data uses a binary merkle tree structure using SHA2-256 with the 2 bits at the end of each zeroed, so quite novel.
Sealed data uses a very novel merkle tree structure; I gather section 5.2 of the poseidon paper describes it, pretty opaque to most mortals I think, with whatever hashing algorithm it needs for its proofs.
Comm{P,D,R} are not hashes of raw data in the sense that multihash uses the term "hash". Multihash to date doesn't cover the case of addressing a block of data via a merklization process. And these processes use more than a plain merkle.

CIDs and muiltihashes
A CID is:

"a typed content address: a tuple of (content-type, content-address)..

It's for content-addressed data where address = hashfn(data). Each hashfn should be in the multicodec table as a multihash:

Multihash is a protocol for differentiating outputs from various well-established cryptographic hash functions, addressing size + encoding considerations.

(This is being baked into the IETF standard submission for multihash @ https://datatracker.ietf.org/doc/draft-snell-multihash/)
To date, as far as I'm aware, all of the multihash entries in the multicodec table are relatively discrete, in that they are not compound algorithms and they fall within this "well-established" rule. My expertise fails here in trying to find the limits to this classification but one multihash that seemingly breaks this is dbl-sha2-256, which I think we can thank BTC for. Aside from this, we haven't introduced anything that would be a compound process to go from data to address. Specifically, there are no multihashes that get close to describing a merkle-style hash that would let you take a merkle root and say that it is the content-address of the data at the bottom of that merkle tree.
Multihash & this PR
As it stands, I believe (my reading could be faulty!) this PR is proposing to extend the multihash concept and say that: 0xf104 and 0xf105 are compound "hashing" functions. They include many complex steps. In the case of unsealed, 0xf104, something like: merkle(arity=2, hash=sha2-256-truncated, data=zero-padded(fr32-padded(source))). And in the case of sealed data, 0xf105: the novel poseidon merkle structure with whatever other processes it needs to do proofs (beyond me atm).
Compounding this, I believe the sealed "hashing" process would use additional context external to the algorithm (for the ZK proof) making it impossible, or impractical for anyone to take data, run hashfn() and produce address to validate correctness, unless they have that additional context (I think this is true, my understanding of sealing is extremely limited).
You could take a 0xf104 (unsealed) chunk and run a "hash function" hashfn over data and produce address independent of any context. It's just extremely complicated, as outlined above. https://github.com/rvagg/js-fil-utils is basically this, you can see the complexity. But again, we're pushing the limits of what a "multihash" was meant to do.
CID & this PR
As per the definition above, a CID is a content-type plus the content-address—or multihash.
So considering this content-type: If we're addressing underlying piece and sector data then that might make sense. It's still a bit of a stretch, but if you include everything that takes you from the source data to the "hash" as the "hash function" then this could work. But a CID is normally paired with a "block", the thing it's pointing to. So we'd need to be clear exactly what we're pointing to in each of these cases? In the case of CommP is it the source data of the piece, or is it the padded piece, or something else? What about CommD and CommR?
What we need to resolve
For multihash:

What are the bounds of the processes that we want to call a "hash function" for the purpose of a multihash for each of these things?
What is the "content" that we are producing a "content address" for?
Is this even a good fit for a multihash?

e.g. for CommP:

The hash function could be the full merkle(arity=2, hash=sha2-256-truncated, data=zero-padded(fr32-padded(source))) (all of it from source data) and the "content" would therefore be the source data (CAR file?).
The hash function could be just the root of the merkle tree sha2-256-truncated(concatenation of root-1 merkle node hashes) and the source data would be therefore be just the concatenation of the two hashes at the merkle level just under the root. This is similar to an approach taken by go-ipld-btc, which encodes all nodes of the merkle tree from the txMerkleRoot to the transactions themselves, giving each of them a CID. That gets out of hand with a large tree of course and it's not clear in the case of Comm{P,D,R} that you'd even want to do that.

For CID / multicodec:

What is the appropriate "tag"?
Is this even a good for a multicodec and therefore a CID?

This PR uses serialization but I don't think that's correct when you compare it to the other entries with that tag (cbor, protobuf, json, etc.).
Suggestions
We have 2 get-out-of-jail tools here that we can fall back on if needed:

identity / 0x00 multihash
raw / 0x55 ipld multicodec

I think "well-established cryptographic hash functions" disqualifies the addition of the new multihashes. Both "well-established" and "hash functions" trip us up. I think even that dbl-sha2-256 stretches "well-established" but has become pervasive enough in he coin ecosystem that you could give it a pass. Even if we could narrow it down to something like "SHA2-256 with 2 trailing bits zeroed", that's too novel for what multihash currently is. Forcing this is going to require a redefinition of "multihash", which isn't out of bounds of course, but it will have consequences we need to carefully consider beyond this issue.
At this stage I think the multihash for these things, if one is required (i.e. to make a CID), should be indentity / 0x00. This would be saying that "this is the actual thing, not a hash of a thing that you can load and navigate in to", which I think may fit with how CommP (in particular) would be used when in CID form. You're not addressing the underlying data, you don't even have it to check that your CID+Block pair makes sense and will likely have difficulty getting the Block anyway.
For the other part, the "multicodec", it doesn't seem as clear either way. I don't think serialization is correct. But we have addresses, records and namespaces in here so it doesn't seem entirely out of place to have an entry that's not a codec in the strict sense of the word.
We've already set the precedent that tag could be used for broader classification (see holochain). So tag could just be filecoin. 0xf101, 0xf102, 0xf103 could work (aside from Jeromy's comment about Piece and Data being redundant?) as specifiers that the thing included in this CID by an identity "hash" can be used to talk to Filecoin about things of that sort.
Any requirement for the abiltiy to differentiate algorithm in the future can iterate in the 0xf1 range, bumping to the next one but saying "it's v2 of CommX".
Example of a CommP to a CID using this:

Raw CommP: 97b8a11ea031fe2128ed396046af6353132e4a522345eede9f6aac7036284c02
Identity multihash: 002097b8a11ea031fe2128ed396046af6353132e4a522345eede9f6aac7036284c02
0xf101 content type / "codec" CIDv1: 0181e203002097b8a11ea031fe2128ed396046af6353132e4a522345eede9f6aac7036284c02
base32 CID: baga6eayaecl3rii6uay74iji5u4warvpmnjrglskkirul3w6t5vky4bwfbgae

If we have something that's not a serialization or an ipld "multicodec", does it make sense that you could make a CID from it? What does such a CID even represent and how would you use it in a way that requires encapsulation inside a CID? I suppose a disembodied CID that tells you it's a 0xf101 could at least tell you that you should be able to query Filecoin commitment piece API for information about it or use it in a retrieval request. I'm not so sure about what you'd use the others for outside of Filecoin itself.

Quick notes -- not done but out of time, will return later on --

Poseidon should pass the multihash bar -- meaning that if we think the bar for inclusion to multihash excludes fns like poseidon because they're too new or too esoteric, then the bar needs redefining. I understand the goal of making sure "well known" implies "broadly adopted", but in order to be useful multihash should operate at a few levels earlier -- ie much more permissive/lenient. I think the level of well known-ness of Poseidon (which is very new, very esoteric) fits within the original intention for multihash.
this does not mean all implementations should include these functions, or even carry the entries in their local tables, but rather that the global table should allocate a number, and those implementations that want to can provide support
There are infinite numbers in the multicodec table, and not a lot of demand for them at present (affecting small numbers) such that we have to worry about denying codec inclusion. the important part is to be specific, not to save an entry in a sparse table
the broader goal of multiformats is to self-describe well-typed objects. It is better to assign a new number than not represent the information or fake it (identity/raw).
The internal hashing of all the relevant trees is -- by definition -- a proper merkle tree. One can either (a) treat all nodes in the tree as ipld objects (my preferred approach), or (b) elect to treat the whole intermediate tree as an implicit special purpose object/format for applications like filecoin.
Yes the trunctated sha256 is weird, but it's not that weird. truncating cryptographic artifacts is not unusual in a lot of crypto systems. many crypto systems force funky constraints like that. For multihash, multicodec, and cids to be useful to crypto systems in the large, they will all have to learn to deal with them.
If cids and multiformats can't easily meet constraints like these from near-reach merkle-tree-galore applications like filecoin, i doubt their long-term utility. put another way: i think that success for these formats requires being useful for these sorts of use cases, and finding the right ways of getting all these cryptographic artifacts to coexist and play well together -- that's why multiformats calls for self-description: to let applications meet their constraints while also communicating them to other applications

So we need to address the flexibility of the definition of "multihash" first.
There's 3 approaches:

Nope - these things are too novel for "well-established", stick with opaque values and use identity
Accept the novel hash functions used throughout the merkle trees in Filecoin as multihash entries, leaving identification a matter of identifying merkle nodes (primarily the roots but each node could be addressed in the same way all the way down).
Accept the general merklisation processes, including their node hash functions, as multihash entries. We'd be opening an interesting door with this option and it's justifiable since you're still essentially just hashing some base value, you're just doing it in a very complicated way. But then we could do things like identify bitcoin transactions using their standard transaction IDs rather than having to interpret those IDs as roots of a merkle tree.

Having talked it through with @porcuquine, I've put up #170 and #171 to cover approach 2. I buy Poseidon as a valid multihash entry, it's just got a lot of possible permutations so we need to make sure we fit just enough (but not too much) information into the entries to sufficiently differentate them. sha2-256-trunc2 is not unreasonable considering our existing dbl-sha2-256 entry; but it does open the door to weird and wonderful permutations of existing hash functions if we accept it.
If we accept those as valid extensions to multihash, then #172 could wrap them up as CIDs. Borrowing the first 3 entries from this PR. But we'd have to be clear that these identifiers, in the CID : Block relationship, are only identifying nodes (primarily roots) of merkle trees as their "Blocks", not underlying data.

Summary of actions to get this closed out, please skim this and register any disagreement now @Stebalien @jbenet @whyrusleeping @porcuquine @mikeal @magik6k @dignifiedquire:

#170 adds a sha2-256-trunc254-padded multihash that's specifically SHA2-256 with two bytes zeroed out (specifics in the table notes)
#171 adds two multihashes: poseidon-bls12_381-a2-fc1 and poseidon-bls12_381-a2-fc1-sc for Poseidon with BLS12-381 arity of 2 and Filecoin specific parameters, with a high-security variant with additional circuits that's available if needed at some future date without needing to redo a secure setup for regenerating parameters.
#172 adds two multicodecs, fil-commitment-unsealed for both CommP and CommD and fil-commitment-sealed for CommR. The unsealed get to share because the CommP merkle is strictly a subset of the full CommD merkle. These multicodecs are currently using the tag filecoin but we may change that to ipld in a future refactor of this table that cleans up tags for consistency. These new multicodecs strictly describe a node in a merkle tree--if you were to "load" them, you'd only get the node which could be unmarshalled by their respective codecs as a list of links to child nodes or base data.

that works for me 👍
thank you very much for taking this on @rvagg -- i know this is really tricky work, with lots of ramifications, and i really appreciate the care and thoughtfulness you put into the whole thread of things

Amen.

We had a bit of a diversion in #172 over the nature of the "codecs", thanks to @hannahhoward for the pinging us on that. My original attempt to shoehorn these in as IPLD-like codecs was a failure, but @vmx and I are mostly comfortable with moving forward with simply adding them as identifier descriptors.
So the multihash says "what hash function was involved in generating this content address" and the codec says "what type of content is this addressing" while stopping a bit short of saying "how can I decode the data if I were to fetch it"—which is where we fail at these being true IPLD-like codecs. We get to differentiate between sealed and unsealed addresses (CIDs), but you couldn't practically traverse into them like an IPlD codec. The tag stays as filecoin for now to make this distinction rather than serialization or ipld.
We also had a good discussion about qualification for this table and how we need a clearer description of what gets to be in here and what doesn't. The purpose needs to be more clearly stated so contributions to the table are easier to approve or reject. There also needs to be some room for contributors to be able to be able to justify inclusion for their own reasons if there isn't an obvious disqualification according to the purpose of the table.
In the case of Filecoin, we still don't fully understand why CIDs would be useful for each of the 3 cases, or where they might get used outside of the system for them to need an entry in here. If someone could explain that it would be interesting for us. But grokking all of these details is going to be too great a burden for maintenance of this table in general (just these entries it's taken many collective hours of learning—this was positive for both @vmx and I but won't scale).

sha2-256-trunc254-padded: 0x1012
poseidon-bls12_381-a2-fc1: 0xb401
poseidon-bls12_381-a2-fc1-sc: 0xb402
fil-commitment-unsealed: 0xf101
fil-commitment-sealed: 0xf102

https://github.com/multiformats/go-multihash/pull/128
https://github.com/ipfs/go-cid/pull/104


add haptics support :)

adds the ability to mess with a Macbook touchpad using NSHapticFeedbackManager.

This is cool and I'm down to merge it as-is - the iOS tests that are failing are due to something else as far as I know, and I need to fix them before 0.4 gets released... so we can ignore it for now.
If you hit that linebreak that I mentioned I'll hit that merge button, lol

comments addressed - also check this out, there's internal APIs that make it vibrate harder
https://gist.github.com/arilotter/9e273bed948c6609fe17e429a54c3e8d

Yup, those APIs often feel like they go unnoticed but they're pretty cool.
There's actually a world where this might be better off as an external library, but I'm fine with it in cacao for now since these things are generally so tied to UI to begin with.
Thanks for the contribution!


Dynamic Gridmap unloading causes physics engine errors and FPS issues

Godot version: 3.1.1
OS/device including version: Ubuntu 19.10, AMD RX580, Mesa 19.2.1
Issue description:
Dynamically unloading GridMap tiles via set_cell_item(x,y,z,-1) (e.g. in a project that manages a large world) causes errors in the internal physics engine that are then shown in the editor error log. At the same time, unloading seems to not have the expected effect, as the FPS slows down noticeable the more world has been "covered" - even when the tiles actually have been removed.
Following errors are spammed in my error log (over 1000 errors in a short time; depending on how much unloading is done):
E 0:00:01:0791   Condition ' !id_map.has(p_rid.get_data()) ' is true. returned: __null
  <C Source>     ./core/rid.h:154 @ get()

E 0:00:01:0791   Condition ' !body ' is true.
  <C Source>     modules/bullet/bullet_physics_server.cpp:567 @ body_clear_shapes()

E 0:00:01:0791   Invalid ID
  <C Source>     modules/bullet/bullet_physics_server.cpp:1552 @ free()

Although the errors seem to be related to the physics server, they still come up if only mesh instances without physics or navigation are used as tiles.
Steps to reproduce:
Please see example project
Minimal reproduction project:
reproduce.zip

Its also happening on my project. Running on Windows.
Any updates on this error?

Does this occur if you change the physics engine to GodotPhysics instead of Bullet physics in the Project Settings?

@Calinou even changing it, it continues happening.
After some investigation I found out that it was because I was manually removing the cell item when based on distance, and it seems that when the PhysicsServer tries to remove if the mesh instance is outside of the screen then the errors starts happening.

It happens to me also in my procedural world project. @pedronasser did you found any work around to it?

@exe4que I worked around it by creating multiple gridmaps, separating the world into chunks. Deleting a chunk works as expected.

Have same bug, godot 3.2.3
Have no issues with FPS but also have these errors in console

for an endless runner create and delete a lot of tiles with gridmap, adding a -1 value on a loop with non physic tile (no collisionShape instead) create lot of error debug and finally crash.
with an idle_frame the problem seem to be clear but it s a bad solution when removing lot of tiles.


feat: As a user, I want the indexed Attestations to be updated on revocation and all other change events

What does this PR do?
Related ticket
Fixes #283
Type of change

[ ] Chore
[ ] Bug fix
[x] New feature
[ ] Documentation update

Check list

[x] Unit tests for any smart contract change
[ ] Contracts and functions are documented

Codecov Report

Merging #364 (44268c4) into dev (745f694) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##              dev     #364   +/-   ##
=======================================
  Coverage   93.44%   93.44%
=======================================
  Files          18       18
  Lines         305      305
  Branches       67       67
=======================================
  Hits          285      285
  Misses         10       10
  Partials       10       10

:mega: Codecov offers a browser extension for seamless coverage viewing on GitHub. Try it in Chrome or Firefox today!


Fix return fail so it's compatible with 6.1

Pull Request Test Coverage Report for Build 52

0 of 0   changed or added relevant lines in 0 files are covered.
161 unchanged lines in 4 files lost coverage.
Overall coverage increased (+0.3%) to 62.687%

Files with Coverage Reduction
New Missed Lines
%

gen/rocks/blackcat/vcl/psi/impl/VCLReturnImpl.java
1
41.67%

gen/rocks/blackcat/vcl/psi/VCLVisitor.java
2
0.0%

gen/rocks/blackcat/vcl/psi/VCLTypes.java
17
90.29%

gen/rocks/blackcat/vcl/parser/VCLParser.java
141
70.98%

Totals

Change from base Build 48:
0.3%

Covered Lines:
1218

Relevant Lines:
1943

💛  - Coveralls


Can someone help me with the reddit feeds?

I can't seem to get the reddit feeds to work, can someone point me in the right direction?

search the internets for reddit oauth helper

I did that already, sadly I think the issue is with the bot not creating webhooks for the channels.


Fix lexicon

Motivation for this change
follow up to: https://github.com/NixOS/nixpkgs/pull/99568
created a python packages overlay for lexicon.
bumped lexicon
fixed ape from inheriting the lexicon attr from pkgs scope.
Things done

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

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

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

I ran ofborg checkMeta locally:
[09:06:42] jon@nixos ~/projects/nixpkgs (fix-lexicon)
$ GC_INITIAL_HEAP_SIZE=16g nix-env -f ./outpaths.nix -qaP --no-name --out-path --arg checkMeta true > out-paths
[09:09:37] jon@nixos ~/projects/nixpkgs (fix-lexicon)

NOTE: takes >=20GB of RAM to execute that now


Intense flickering on models when fighting

Hi! First, many thanks for this amazing mod.
I have a problem: when fighting, models (allies and enemies) not participating on the turn should simply go white / transparent.

But with the mod, they start flickering like crazy. Maybe it's a problem with the 144hz refresh rate or the 2K resolution of my screen, I don't know. Tried to record the screen and I only got 60FPS so the models just disappear (it's more noticeable on Ram's turn).
https://user-images.githubusercontent.com/25150787/127485711-c98d087b-331d-4a9e-8f5d-11017fdaf436.mp4
I also add my sepcs in case it would be of any help:
Screen: 2560x1440 / 144hz
OS: Windows 10 Pro 21H1
CPU: AMD Ryzen 9 5900X 12-Core Processor 3.70 GHz
RAM: 32GB DDR4 3200MHz
GPU: NVIDIA GTX 1070ti 8GB GDDR5

This should be easy enough to test by switching off the FPS unlock in the config. Try it and see if the enemies will look like in the base game again.

This should be easy enough to test by switching off the FPS unlock in the config. Try it and see if the enemies will look like in the base game again.

Hi! Yes, capping the FPS to 60 solves the problem.

But hey! I also tried R;B3 without the mod (because it's the only one with unlimited FPS) and I got that intense flickering too. So it seems that's a problem of the game, not your mod!
https://user-images.githubusercontent.com/25150787/127489486-2ca708f8-2d9d-497b-9828-a600f234d350.mp4


Update blnet_web.py

higher level interface added

Hello @henfri! Thanks for submitting the PR.

In the file pyblnet/blnet_web.py, following                are the PEP8 issues :

Line 98:1: W293 blank line contains whitespace
Line 101:28: E701 multiple statements on one line (colon)
Line 128:1: W293 blank line contains whitespace
Line 144:1: W293 blank line contains whitespace
Line 168:29: E701 multiple statements on one line (colon)
Line 170:32: E701 multiple statements on one line (colon)
Line 189:17: W605 invalid escape sequence '\d'
Line 189:33: W605 invalid escape sequence '\d'
Line 190:16: W605 invalid escape sequence '\d'
Line 210:76: W291 trailing whitespace
Line 214:29: E701 multiple statements on one line (colon)
Line 216:32: E701 multiple statements on one line (colon)
Line 236:17: W605 invalid escape sequence '\d'
Line 251:1: W293 blank line contains whitespace
Line 254:70: W291 trailing whitespace
Line 256:79: W291 trailing whitespace
Line 257:80: E501 line too long (85 > 79 characters)
Line 258:1: W293 blank line contains whitespace
Line 260:12: E225 missing whitespace around operator
Line 261:39: E701 multiple statements on one line (colon)
Line 262:18: E225 missing whitespace around operator
Line 262:18: E711 comparison to None should be 'if cond is None:'
Line 263:11: E111 indentation is not a multiple of four
Line 263:17: E225 missing whitespace around operator
Line 265:12: E111 indentation is not a multiple of four
Line 265:24: E225 missing whitespace around operator
Line 265:43: E225 missing whitespace around operator
Line 265:43: E711 comparison to None should be 'if cond is None:'
Line 265:50: W291 trailing whitespace
Line 266:14: E111 indentation is not a multiple of four
Line 266:24: E225 missing whitespace around operator
Line 266:39: E225 missing whitespace around operator
Line 266:39: E711 comparison to None should be 'if cond is None:'
Line 267:16: E111 indentation is not a multiple of four
Line 267:19: E225 missing whitespace around operator
Line 269:1: W293 blank line contains whitespace
Line 270:1: W293 blank line contains whitespace
Line 271:5: E303 too many blank lines (2)
Line 273:58: W291 trailing whitespace

Hello,
ok, I'll wait for the update of the documentation. I was not aware that the BLnetweb and the BLNet direct should not be used directly.
I suggest to reflect that in the documentation.
Once I have understood, I can then create the equivalent of this function in BlNet module.
Greetings,
Hendrik


support dasherized multi-word names?

When using ember-cli, it seems like it would be helpful to support the same inflection patterns for dasherized and undasherized names. Instead, I find myself doing the following:
Ember.Inflector.inflector.uncountable('phrase-tones')
Ember.Inflector.inflector.uncountable('phraseTones')

Of course, if I always wanted anything ending in tones to be uncountable, then I could just register the last word, but sometimes it's only class names that I want to be uncountable (i.e., in the case where each record represents a plural set of things).
Does the inflector know about word boundaries as presented in camelCase? This is a little tricky because of all-caps acronyms. Perhaps it could work as follows. If one registers the phrase-tones case then it also registers the phraseTones case, but not viceversa.

https://github.com/stefanpenner/ember-inflector/pull/41/files seems to already do this?

Hm...
It works on a new instance, but I get weird behavior from the instance on Ember.Inflector:

@kbullaughey do you have 2 verison of ember-inflector ?

Hm...seems I'm using the ember-data, whichever is packaged with ember-data 1.0.0-beta.14.1.

I added some tests to a branch in my forked copy. Here's a diff.
I get the following failures in testem:
ember-inflector.unit: multiword uncountable basic s singularization rule
    ✘ failed
         expected blue_moons
         actual blue_moon
    ✘ failed
         expected blueMoons
         actual blueMoon
    ✘ failed
         expected BlueMoons
         actual BlueMoon

Importantly, it only fails if there's a singularization rule (as is the case when using ember data). I am declaring inflector.uncountable('blue-moon'); and so inflector.singularize('blue-moon'); works, but not the other three multiword variants I test.
I haven't looked into the cause of the problem yet.


Cannot close popup when it is opened too close to the window border

We disable any map interactions like movement or zoom when popup is visible on the map. However if popup opened too close to the window border its close button would be unreachable by the mouse. We should rethink positioning of the popup when it is too close to the window borders.

No longer an issue with OpenLayers3


Show licenses of app/lib runtime dependencies only?

I'm using pipenv (Pipfile, Pipfile.lock) to manage Python package dependencies. In the venv during development there are included all dependencies including the --dev dependencies. Would be great if one could easily check the licenses of the packages used during app/library runtime only.

@fkromer Thank you for your suggestion. It ’s a good idea.
However, currently pip-licenses does not support Pipfile, Pipfile.lock parsing.
If you want to see a list of licenses for both production and dev environments, create both production ( pipenv install) and dev ( pipenv install --dev ), and run pip-licenses in each.


bugfix in v4.4 adds semver incompatible change to wifi_scan_config_t (IDFGH-10699)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v4.4
Operating System used.
Linux
How did you build your project?
Other (please specify in More Information)
If you are using Windows, please specify command line type.
None
What is the expected behavior?
(Building esp-idf with rust esp-idf-sys and esp-idf-svc in a rust project, see details below.)
Expected behavior: Building the esp-idf-sys and esp-idf-svc libary successfully.
What is the actual behavior?
Build fails because the last bugfix (4fc8964) on v4.4  introduced a breaking change.
The added field home_chan_dwell_time in wifi_scan_config_t breaks the build and doesn't seem to be semver compatible.
Steps to reproduce.

Create a rust project from the official esp-idf-template

esp32c3 mcu
default settings (esp-idf v4.4, cargo)

hit $ cargo build
Build fails because a initializer in the rust esp-idf-svc isn't aware of the added field in the wifi_scan_config_t

Build or installation Logs.
Compiling esp-idf-svc v0.46.0
error[E0063]: missing field `home_chan_dwell_time` in initializer of `esp_idf_sys::wifi_scan_config_t`
  --> /home/marvin/.cargo/registry/src/index.crates.io-6f17d22bba15001f/esp-idf-svc-0.46.0/src/wifi.rs:93:13
   |
93 |             Self {
   |             ^^^^ missing `home_chan_dwell_time`

For more information about this error, try `rustc --explain E0063`.
error: could not compile `esp-idf-svc` (lib) due to previous error

More Information.
No response

Hi @MG-96,
IDF project aims for C source compatibility (described here) in minor and bugfix releases. As mentioned in that page, we do allow adding new structure members or changing the order of members. This is not a breaking change for C code since we require the configuration structures passed to IDF APIs to be zero-initialized. Another case may be with a change from an exported C function to an inline C function or a function-like preprocessor macro — a backwards compatible change for C code.
Unfortunately we can't give stronger compatibility guarantees at the moment, such that would be sufficient for the purpose of stable Rust bindings. The best I can offer is that we could set up a scheduled CI pipeline in https://github.com/esp-rs/esp-idf-sys to get notified of any breakage quickly.
(cc @ivmarkov, please comment if you have any opinion about this.)

If indeed ESP IDF is consistently following the "if you zero-initialize the remaining (or all) fields of a configuration structure - that's OK" rule, then we have a (relatively easy way) to keep the Rust bindings (not esp-idf-sys itself, but user code based on esp-idf-sys as well as the higher-level bindings in esp-idf-hal and esp-idf-svc) from breaking.
Bindgen generates for us a Default implementation/constructor for every ESP IDF struct bound by esp-idf-sys. This constructor happens to initialize all fields of the struct to zero.
\What that means is that when the user (or we - in the higher level esp-idf-* crates) initialize ESP IDF structures, we just have to follow this pattern:
let config = esp_idf_sys::wifi_scan_config_t {
    foo: 1,
    bar: true,
    ..Default::default()
};

... or if I understand you correctly, even this all-zeros initialization
let config: esp_idf_sys::wifi_scan_config_t = Default::default();

... would be correct and would result in ESP IDF picking meaningful defaults for all fields.
The thing is - I just wasn't aware that ESP IDF is following the "0 is OK" rule consistently everywhere.
Specifically for the wifi_scan_config_t structure (where we can't look into the ESP IDF code, as this is the Wifi binary BLOB) - would you confirm that putting zeroes in its field is OK. And specifically for the home_chan_dwell_time?

@igrr ^^^

@ivmarkov I'm running into this as well. Is there a corresponding issue open against esp-rs/esp-idf-svc for this?

No but there is this fix: https://github.com/esp-rs/esp-idf-svc/commit/42e60e8c3fcca670632b9653c790fd8efe475aac
Can you test with latest esp-idf-hal (from master)?

@igrr I think we should close this. If you could only confirm my question here.

Specifically for the wifi_scan_config_t structure (where we can't look into the ESP IDF code, as this is the Wifi binary BLOB) - would you confirm that putting zeroes in all its fields is OK? And specifically for the home_chan_dwell_time?

I think we always handle newly introduced fields this way, but some existing fields may not support 0 as default value. As a contrived example, esp_timer_create won't be happy if we pass 0 as a value of callback field. Another example might be freq_hz ledc_timer_config_t.

I was going to suggest marking all structs in esp_idf_sys as non-exhaustive, but unfortunately that forbids constructing them with a StructExpression (including with functional update syntax). (Does Bindgen have functionality to do the non-exhaustive declaration?)
Making it clear, that one always has to do a functional update to initialize structs from esp_idf_sys, or finding another solution to prevent such bugs from occurring would be nice.
Thanks @igrr for clarifying things.

Is there a Issue or something other to track this in esp-idf-sys?
Then I would close this issue here.

Your original problem is fixed since a month or so in esp-idf-sys. Adding ..Default::default() everywhere I would do incrementally. If you want to do it in one shot, please open PRs against esp-idf-hal and esp-idf-svc, and you can of course open issues in these projects to track this effort.
And yes, I think this one should be closed.


[BUG]使用【aapanel 部署】这个教程来部署，安装成功之后，打开首页显示nginx报错，404

🙇♂🙇♂🙇♂注意：XrayR等非XBoard问题请前往项目方提问
🙇♂🙇♂🙇♂Note: XrayR and other non-XBoard issues please go to the project side to ask questions
The XBoard version number you are using
当前使用的XBoard版本号
Briefly describe the problem you are experiencing
简单描述你遇到的问题
使用【aapanel 部署】这个教程来部署，打开首页显示nginx报错，404
Screenshot of the reported error(Please do desensitization)
报告错误的截图（请做脱敏处理）
Screenshot of the reported error(Please do desensitization)
报告错误的截图（请做脱敏处理）

The latest log files in the storage/logs directory report from #1 (Please do desensitization)
storage/logs 目录下最新的日志文件从 #1 开始报告（请做脱敏处理）
2024/06/02 09:28:57 [error] 2785150#0: *122150 "/www/wwwroot/bb.aa.xyz/Xboardpublic/index.php" is not found (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET / HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:28:57 [error] 2785150#0: *122150 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET / HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:28:58 [error] 2785150#0: *122162 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/page/2" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /page/2 HTTP/1.1", host: "bb.aa.xyz", referrer: "http://bb.aa.xyz/"
2024/06/02 09:28:58 [error] 2785150#0: *122162 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /page/2 HTTP/1.1", host: "bb.aa.xyz", referrer: "http://bb.aa.xyz/"
2024/06/02 09:29:06 [error] 2785150#0: *122217 "/www/wwwroot/bb.aa.xyz/Xboardpublic/index.php" is not found (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET / HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:29:06 [error] 2785150#0: *122217 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET / HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:29:06 [error] 2785150#0: *122218 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/page/2" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /page/2 HTTP/1.1", host: "bb.aa.xyz", referrer: "http://bb.aa.xyz/"
2024/06/02 09:29:06 [error] 2785150#0: *122218 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /page/2 HTTP/1.1", host: "bb.aa.xyz", referrer: "http://bb.aa.xyz/"
2024/06/02 09:29:08 [error] 2785150#0: *122222 "/www/wwwroot/bb.aa.xyz/Xboardpublic/index.php" is not found (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET / HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:29:08 [error] 2785150#0: *122222 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET / HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:29:08 [error] 2785150#0: *122230 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/page/2" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /page/2 HTTP/1.1", host: "bb.aa.xyz", referrer: "http://bb.aa.xyz/"
2024/06/02 09:29:08 [error] 2785150#0: *122230 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /page/2 HTTP/1.1", host: "bb.aa.xyz", referrer: "http://bb.aa.xyz/"
2024/06/02 09:29:27 [error] 2785150#0: *122322 "/www/wwwroot/bb.aa.xyz/Xboardpublic/index.php" is not found (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET / HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:29:27 [error] 2785150#0: *122322 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET / HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:29:28 [error] 2785150#0: *122324 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/page/2" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /page/2 HTTP/1.1", host: "bb.aa.xyz", referrer: "http://bb.aa.xyz/"
2024/06/02 09:29:28 [error] 2785150#0: *122324 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /page/2 HTTP/1.1", host: "bb.aa.xyz", referrer: "http://bb.aa.xyz/"
2024/06/02 09:31:20 [error] 2785500#0: *122888 "/www/wwwroot/bb.aa.xyz/Xboardpublic/index.php" is not found (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET / HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:31:20 [error] 2785500#0: *122888 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET / HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:31:21 [error] 2785500#0: *122891 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/page/2" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /page/2 HTTP/1.1", host: "bb.aa.xyz", referrer: "http://bb.aa.xyz/"
2024/06/02 09:31:21 [error] 2785500#0: *122891 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /page/2 HTTP/1.1", host: "bb.aa.xyz", referrer: "http://bb.aa.xyz/"
2024/06/02 09:32:17 [error] 2785561#0: *123195 open() "/www/wwwroot/bb.aa.xyz/Xboard/123.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /123.html HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:32:17 [error] 2785561#0: *123195 open() "/www/wwwroot/bb.aa.xyz/Xboard/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /123.html HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:33:20 [error] 2785724#0: *123526 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/789.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /789.html HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:33:20 [error] 2785724#0: *123526 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /789.html HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:33:24 [error] 2785724#0: *123549 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/456.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /456.html HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:33:24 [error] 2785724#0: *123549 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /456.html HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:33:35 [error] 2785724#0: *123601 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /index.php HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:33:35 [error] 2785724#0: *123605 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /index.php/page/2 HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi-81.sock:", host: "bb.aa.xyz", referrer: "http://bb.aa.xyz/index.php"
2024/06/02 09:33:35 [error] 2785724#0: *123605 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /index.php/page/2 HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi-81.sock", host: "bb.aa.xyz", referrer: "http://bb.aa.xyz/index.php"
2024/06/02 09:34:10 [error] 2785724#0: *123549 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /index.php HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:34:11 [error] 2785724#0: *123605 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /index.php/page/2 HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi-81.sock:", host: "bb.aa.xyz", referrer: "http://bb.aa.xyz/index.php"
2024/06/02 09:34:11 [error] 2785724#0: *123605 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /index.php/page/2 HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-cgi-81.sock", host: "bb.aa.xyz", referrer: "http://bb.aa.xyz/index.php"
2024/06/02 09:36:26 [error] 2785724#0: *124420 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /index.php HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:37:36 [error] 2785724#0: *124753 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /index.php HTTP/1.1", host: "bb.aa.xyz"
2024/06/02 09:37:43 [error] 2785724#0: *124788 open() "/www/wwwroot/bb.aa.xyz/Xboardpublic/404.html" failed (2: No such file or directory), client: <IP_ADDRESS>, server: bb.aa.xyz, request: "GET /index.php HTTP/1.1", host: "bb.aa.xyz"

版本好应该是最新的目前的这个版本  2024年06月02日 git clone下来的版本

检查了一轮，是面板的bug……
解决方法：
要到nginx的网站配置文件里边修改目录：
他把/www/wwwroot/bb.aa.xyz/Xboard/public/
变成了 /www/wwwroot/bb.aa.xyz/Xboardpublic/
public之前应该有个斜杠的，不知道为啥被吞了。


IGAPP-380: dashboard share path wrong after language change

This pull request belongs to an issue on our bugtracker.
You can find it there by looking for an issue with the key which is mentioned in the title of this pull request.
It starts with the keyword IGAPP.
I added the routeMappingType to HeaderContainer as a quick-fix. In IGAPP-450 we can move this information to route object in the redux store. I haven't done this now because i would have to update all the NewsRouteStateType, CategoryRouteStateType, ... and in 450 they are removed / changed to a more general RouteStateType. So seems to be unnecessary effort from my perspective. I updated the 450-ticket so adjusting the header and headercontainer can't be overlooked.

Can't we just reset the shareUrl param on language change? See https://reactnavigation.org/docs/navigation-actions/#setparams

Can't we just set the shareUrl param on language change correctly? See https://reactnavigation.org/docs/navigation-prop/#setparams or https://reactnavigation.org/docs/navigation-actions/#setparams

Yes, was my first idea, too. But we need to set it, after the path is translated (after morphContentLanguage() is executed). But morphContentLanguage does not know the Navigation and acutally there is no navigation event triggered after path translation, because we are already on the correct page.
Another advantage of this approach is, we are removing having the same information on two locations. At the moment information about current route is in shareUrl in the navigation and in the currentPath of routeMapping in redux store. Therefore on every navigation event, pathchange whatever, we have to take care of keeping this information in sync.

Okay right, I see. It's not possible with a route param as currently :+1:
I think the current proposal adds a lot additional complexity though and leads to inconsistencies as sometimes the share path is handled in the corresponding route mapping and sometimes still in the route params.
I think the problem with wrong share url after language change exists for all routes, i.e. also for offers, search, disclaimer, ...
Do you already have a plan on how we could fix that as well?
Do you think it would make sense/would be possible to add a separate proprety shareUrl (or the necessary parts) to our redux state? This property could then be updated in morphContentLanguage for all routes and just used in the Header without having to check anything else.

You are right, this fix only helps for routes, which are already saved in the redux store. Others are still wrong :(
Your solution is more or less an extension of what we planned with the IGAPP-450, where the navigation information is moved (or copied) to the redux store. I'm not really happy with this solution, because the navigation is still in the wrong state and we always have to take care of keeping them in sync. And altough we do not see the wrong navigation state it in the app, i would prefer a proper solution, where the navigation is set correctly too.
Maybe adding a root navigation could do the job?
https://reactnavigation.org/docs/navigating-without-navigation-prop/

@klinzo I think we should not add the shareUrl to the redux state as it will add redundancy. We could add the key of the current route to the state. But this is not required I think as we always have access to the current route key through the scene.

Adding the key of the current route does not make sense imo as it is redundant information to the route. Okay, I am fine with not adding shareUrl to the redux state. But I think the share functionality should be consistent among all routes. Can be done in a separate issue though.

Somehow does not work for disclaimer and offers yet. Specific news are also not shareable right now. You can do this in a separate PR though to get this merged.

As previously mentioned:

Somehow does not work for disclaimer and offers yet. Specific news are also not shareable right now. You can do this in a separate PR though to get this merged.

Should either be fixed or moved to a new issue.

Opened a new issue for it.


not able access branch name in sync

fixed the branch not getting issue in sync to computer

No need of this PR


Error on storeage explorer

Error message:
The requested action could not be completed.
Details:
getaddrinfo ENOTFOUND accenture.com.file.core.windows.net
Storage Explorer Version: 1.15.1
Build Number: 20200902.9
Platform/OS: Windows
Architecture: x64
Regression From:
Bug Description
The requested action could not be completed.
Details:
getaddrinfo ENOTFOUND accenture.com.file.core.windows.net
Steps to Reproduce
Login to Storage explorer, under storage account, clicked refresh to sync the file storage. This is throwing the mentioned error.
Expected Experience
Sync of the folders between the online storage account and the storage explorer
Actual Experience
Error occured.
The requested action could not be completed.
Details:
getaddrinfo ENOTFOUND accenture.com.file.core.windows.net
Additional Context

@vijaimohan-accenture the storage endpoint accenture.com.file.core.windows.net is a little odd. Normally that type of URL is something like:
.file.core.windows.net
I don't think you have have "accenture.com" as a Storage Account name. How are you connecting to this storage account/file share? Sign in or some sort of attach?

Closing due to lack of response. If you're still encountering this problem, please open a new issue. Thanks!


Add calculating the Unknown object state and displaying the appropriate indicator icon for it

Based on discussing https://github.com/weaveworks/weave-gitops/issues/3238 with @chanwit and @joshri
Acceptance Criteria:

[ ] Add support for calculating and displaying  the Unknown object state in the KubeStatusIndicator and possibly PageStatus components.

Questions for refinement:

Check the criteria for deciding that an object is in the Unknown state. Is the Unknown state the same as the NotReady state which is already calculated? Should we add calculating the new state or just keep the old NotReady state?
Is it OK to display a hourglass icon for an object in the Unknown state. Does the Unknown state of an object always mean that we are waiting in the UI for some action to complete?

SO - we support the Unknown status when the Reason condition type has a value of Progressing. In this scenario we display the blue reconciling icon. Otherwise you're gonna get the Not Ready treatment. In standup today @chanwit mentioned that this SHOULD work for Terraform objects, so we should actually already be seeing things reconcile on the 5 second poll if you hit the plan button. If this is not what's already happening then we need to figure out why!!

As discussed in standup, we are good with the existing reconciling state and icon for the tf-plan tab! Closing

Closed with rhyme.
Verse 1:
Throwing the hour glass icon away,
I do not want it to stay,
Ticket closed with a final decree,
Best fix, as you can clearly see.

Chorus:
Goodbye to the hour glass, it's time to part,
My wish, from the bottom of my heart,
No more waiting, no more delay,
With this fix, a brighter day.

Verse 2:
No more frustration, no more delay,
With this fix, I can now say,
That my troubles have been alleviated,
And my worries have been mitigated.

Chorus:
Goodbye to the hour glass, it's time to part,
My wish, from the bottom of my heart,
No more waiting, no more delay,
With this fix, a brighter day.


Conditionally highlight TroubleFile and TroubleCount based on severity in that file

It would be nice to have the ability to set the color for the file and count highlight groups. This would allow us to see which files have errors and which just have warnings, etc... from a folded view.

dup of #120


Add Sorting Functionality to Products Section

Is your feature request related to a problem? Please describe.
I'm always frustrated when I can't easily find products in a specific order, such as by price or discount. The current products section cannot sort items, making it difficult for users to quickly locate the best deals or compare products based on price.
Describe the solution you'd like
I propose adding sorting functionality to the products section, allowing users to sort items in the following ways:

Price: Sort products in increasing and decreasing order.
Discount: Sort products in increasing and decreasing order of discount percentage.
This enhancement will improve the user experience by providing more control over how products are displayed and making it easier to find desired items quickly.

Describe alternatives you've considered
An alternative could be implementing filtering options for prices and discounts, but sorting provides a more straightforward way for users to organize and view products based on their preferences. Filters can be used in conjunction, but sorting gives immediate clarity in listing products.
Additional context

I am excited about possibly contributing to this project as an SSOC Contributor and look forward to your feedback.

same as #80


Concourse

Motivation for this change
In this pull request, we provide Nix expression for evaluating concourse and fly, as well as systemd service units for setting up concourse ATC and/or worker.
Concourse: https://concourse-ci.org
Things done

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

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

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

@Infinisil I have question about CI. It appears that CI refused to evaluate a derivation because the derivator was not in the store. How can I fix this problem?

Not sure what the problem is. In any case you should clean up the commits in this PR. This means:

One commit for adding yourself as a maintainer
A single commit for every package added
A single commit for every NixOS module added
Get rid of all merges, you should always rebase instead
Format your commit message according to the Contribution Guidelines, also linked to from the PR template.

When will concourse be available on the stable channel?

@dR3b we are blocked on #60069 and #60071

Any updates on this, is anyone working on adding concourse to nixos?

@pinpox
I'm looking forward to this one too.
Looks like the way to go is using the concourse docker container.
Since this issue is a bit older i've decided to go with buidbot because there are already nix options for that.

Closing as dead.

@dR3b we are blocked on #60069 and #60071

Can we somehow revive this since those blockers are resolved?
Could try my luck with those changes already present but haven't done much in this direction. -> could take some time.

Do as you wish.


remove almost dup sentence

please lets compare removed sentence against  this line just couple of lines above.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/microservices/api-design.md
:white_check_mark:Succeeded
View

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


Management of Gpu memory by fit method to avoid memory errors

System information

Colab GPU kernel (Tf : 2.3.0 , GPUs Available : 1)

Describe the current behavior
There are memory errors when:

I fit models with huge value for batch size ;
I fit CNN models with large images ;

Describe the expected behavior
Update the fit method so that the training of models can according to the memory available on the GPU and automatically define the best mini-batch size (split the batch into several parts) to avoid the memory errors so that users no longer have to reduce batch size or image size.
For large images, the fit method should be able to split the image into several parts to try to reduce the risk of memory errors.

@eaedk
Please share simple stand alone code for us to replicate the issue faced, or if possible share a colab gist with the error reported.

https://colab.research.google.com/drive/13m4NSY5f5UUwIsvyTie_UejqNNmMXVrU?usp=sharing

above you can see the error when I try to apply transfer learning on Resnet50V2 with batch_size = 32 and input_size = (720, 720, 3) .

when I reduce the batch size, there is no more this error. so I want an update of the fit method that will be able to find automatically the best mini-batch to split my inference by its . Then we'll no more have RessourceExhaustedError and we'll have more simplicity to train big architectures, architectures with large batch size, or architectures with large inputs. It will help us to have better models

Hi @eaedk, trying to better understand the request here. Are you proposing a feature request to automatically determine the largest batch size that will fit in memory?

Hi @nikitamaia, what I want is that whatever the bigger batch_size the Gpu could automatically compute the batch by many min-batch of a well-determined size to avoid memory error .
I'm a french-speaking and sometimes I have some difficulties to explain idea... so I repeat, if it isn't clear yet.
what I want is that whatever the size of the batch that we set, the GPU can split it into several small batches to process so as to avoid memory errors due to the size of the batch being too large.

🚀 Feature
Ensure that models can according to the memory available on the GPU during a feed-forward, automatically split the sent batch into several small mini_batches to avoid the memory errors.
Motivation
So that during the training, users no longer have to reduce batch_size (or image size in case of image). The training will just take time but any users could train models any batch_size without check manually the good size for mini_batch.
During inference also, user could just pass a big batch_size and the framework will automatically define the best number of sample to passe to don't have memory errors anymore.
Pitch
what I want is that whatever the size of the batch that we set, the GPU can split it into several small batches to process so as to avoid memory errors due to the size of the batch being too large.

@eaedk Sorry for the late response. Can you please share a simple standalone code to reproduce the issue or share the data?
When you run a model in a for loop, keras will take more memory to keep those models in the memory. Did you try releasing the memory https://www.tensorflow.org/api_docs/python/tf/keras/backend/clear_session. Thanks


Fix thread IDs.

On Linux, thread IDs were not properly assigned with the current approach. The line:
std::thread new_thread(&Thread::callback, _thread_id_hash(thread.get_id()), p_settings, p_callback, p_user); does not work because the thread ID is not assigned until the thread starts. It seems this behavior is undefined across standard libraries.
This PR changes the behavior to use manually generated thread IDs. Additionally, if a thread is (or may have been created) outside Godot, the method Thread::get_call_id() will assign a new ID to the thread anyway.

@RedworkDE Alright, thanks for your suggestions!

@RedworkDE I am still unsure whether the ID should be kept on each start()  I can't think of an actual valid use case for this. Keep in mind that this is currently entirely broken though, so its difficult it will break something that is already broken.

@RedworkDE I am still unsure whether the ID should be kept on each start()  I can't think of an actual valid use case for this. Keep in mind that this is currently entirely broken though, so its difficult it will break something that is already broken.

I was still referring to setting the ID of the main thread in setup2, I do not think the thread id of the thread newly started by start can be read before callback is executed.
The problems I was thinking about, were about patterns that use the current thread id for cycle detection or a cheap lock, but looking at this a bit more these patterns are not really used by godot, except that editor log (not relevant here) and resource loader use it for cycle detection. Notably resource loader is also used before setup2 and thus could be affected by the id change, but I did not look into this further yet.
Spoiler: Patch to cause a crash if the temporary main thread id (that could change) is retreived

diff --git a/core/os/thread.cpp b/core/os/thread.cpp
index 0a6dd809187..2345f3489cc 100644
--- a/core/os/thread.cpp
+++ b/core/os/thread.cpp
@@ -39,6 +39,7 @@
 Thread::PlatformFunctions Thread::platform_functions;

 SafeNumeric<uint64_t> Thread::id_counter(1); // The first value after .increment() is 2, hence by default the main thread ID should be 1.
+std::atomic<bool> Thread::main_temp;

 thread_local Thread::ID Thread::caller_id = 0;

diff --git a/core/os/thread.h b/core/os/thread.h
index 9a796f39397..aaecbdbd352 100644
--- a/core/os/thread.h
+++ b/core/os/thread.h
@@ -81,6 +81,7 @@ private:

 	ID id = UNASSIGNED_ID;
 	static SafeNumeric<uint64_t> id_counter;
+	static std::atomic<bool> main_temp;
 	static thread_local ID caller_id;
 	std::thread thread;

@@ -88,7 +89,7 @@ private:

 	static PlatformFunctions platform_functions;

-	static void make_main_thread() { caller_id = MAIN_ID; }
+	static void make_main_thread() { bool old = main_temp.load(); CRASH_COND(!main_temp.compare_exchange_strong(old, !old)); caller_id = MAIN_ID; }
 	static void release_main_thread() { caller_id = UNASSIGNED_ID; }

 public:
@@ -97,6 +98,7 @@ public:
 	_FORCE_INLINE_ ID get_id() const { return id; }
 	// get the ID of the caller thread
 	_FORCE_INLINE_ static ID get_caller_id() {
+		CRASH_COND(main_temp.load() && caller_id == MAIN_ID);
 		if (unlikely(caller_id == UNASSIGNED_ID)) {
 			caller_id = id_counter.increment();
 		}

Also setup could probably just take the main thread flag instead and not set the thread id if it is not the main thread.

@RedworkDE I think things are fine as is. I understand the intention, but using atomic ops in get_caller_id() is absolutely out of the picture for performance reasons, since this is a high pressure memory location and all threads would stall by forcing cache flushes.

Alright, I think all concerns should be resolved now. Let me know if there is anything else that may be pending.

// Instead of
thread.wait_to_finish();
// Use:
if (thread.is_started()) {
    thread.wait_to_finish();
}

If this should always be used this way, then I can already spot a bunch of locations which don't do this.
As of this PR, there are 69 locations using wait_to_finish(), shouldn't take too long to go through them all to add the missing checks manually:
$ rg wait_to_finish | wc -l
69

(e.g. kate $(rg wait_to_finish -l) & to open all relevant files in Kate)

Semantics have changed, which may be OK, but just to make it clear this is compat breaking.
Again, this is solvable by assigning a thread id proactively in start(), which is compatible with generating the id lazily in get_caller_id() for threads not created in Godot.

(That patch was not intended for inclusion in this PR, just for checking if there even is code that can be affected by the changing main thread id)
The commit message is outdated, as Thread::attach_external_thread no longer exists, but otherwise I do not have any more comments about this.

@RedworkDE oh I misunderstood them, but I am confident there should not be problems with this.

The thing is, if we allowed wait_to_finish() to be benignly called in non-started threads, and now we don't, semantics have changed. We can just allow again or document the change.

I think the change makes sense and we can document it in the changelog.
Also asked reduz on chat about it, he replied:

If I understand what he means, the compat breakage is that it now errors when you do wait_to_finish without starting. I think its not really compat breakage, but more like an unintended mistake so its good you get an error now when you do it.

Thanks!


test: add read system table test

What problem does this PR solve?
Issue Number: close #6941
Problem Summary:
What is changed and how it works?
Check List
Tests

[ ] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/run-integration-test

/run-integration-test

/run-integration-test

/run-integration-test

/run-integration-test

/run-integration-test


🔧 feat: added service param (#882)

Checklist

[ ] The title of my PR starts with a Conventional Commit prefix (fix:, feat:, docs: etc).
[ ] I have read the Contributor Guide and followed the process outlined for submitting PRs.
[ ] I have updated/added tests for new/updated/fixed functionality.
[ ] I have updated/added dartdoc comments with ///.

Breaking Change

[ ] Yes, this is a breaking change.
[ ] No, this is not a breaking change.

Related Issues

Codecov Report

Merging #883 (ee3e979) into main (b150a21) will increase coverage by 9.92%.
The diff coverage is 100.00%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@            Coverage Diff             @@
##             main     #883      +/-   ##
==========================================
+ Coverage   82.22%   92.15%   +9.92%
==========================================
  Files         253       27     -226
  Lines        3201      548    -2653
==========================================
- Hits         2632      505    -2127
+ Misses        569       43     -526

Files
Coverage Δ

packages/bluesky_text/lib/src/api/find_did.dart
100.00% <ø> (ø)

...ckages/bluesky_text/lib/src/entities/entities.dart
100.00% <100.00%> (ø)

packages/bluesky_text/lib/src/entities/entity.dart
91.66% <100.00%> (+3.20%)
:arrow_up:

... and 226 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Relax react-native version dependency

Addressing issue https://github.com/react-native-sensors/react-native-sensors/issues/17

Nice, thank you so much for your help 👍 Have fun with the library and if you need additional features let me know and I will walk you through it how you may extend this ;)

This is included in v2.3.1


Clarify rules regarding the review committee

The current rules are not clear about review chair selection process and the review committee composition. So this PR aims to clarify those reviews.

Hi Shriya - I think it's good to clarify the rules here, but a few comments:

We need to change the review committee to reference the head of MLPerf and probably rethink composition a bit
I'd like to work with other impacted WGs to discuss (and possibly figure out a good system that gives folks a voice, but doesn't prevent changes)
I haven't read it in any further detail, so more to come :)

Hey David,
Thanks for the feedback, I agree that we need to think about this a bit more.
But there’s a lot of value in writing down rules about how the review committee is setup, and who it comprises of so it helps all WGs in the future.

I can update the PR to add in “head of MLPerf” in a structured way.
We spoke about it a bit in the Training WG meeting today, and got some good feedback. Please do share with other WGs and we can discuss modifications/suggestions on the PR. 😊
Looking forward to (3)

Thank you,
Shriya
From: David Kanter @.>
Sent: Thursday, July 11, 2024 1:18 PM
To: mlcommons/policies @.>
Cc: Shriya Palsamudram @.>; Author @.>
Subject: Re: [mlcommons/policies] Clarify rules regarding the review committee (PR #180)
Hi Shriya - I think it's good to clarify the rules here, but a few comments:

We need to change the review committee to reference the head of MLPerf and probably rethink composition a bit
I'd like to work with other impacted WGs to discuss (and possibly figure out a good system that gives folks a voice, but doesn't prevent changes)
I haven't read it in any further detail, so more to come :)

—
Reply to this email directly, view it on GitHubhttps://github.com/mlcommons/policies/pull/180#issuecomment-2223482284, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQPVCOOESRIBGH7JITG3UOLZL2453AVCNFSM6AAAAABKXCYNT6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRTGQ4DEMRYGQ.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>

@mrmhodak @mrasquinha-g Can we review this rules change for v4.1 submission in next Tue WGM?

Can we add MLCommons staff to the review meeting? We do have a requirement to attend the review meeting for reproducibility purposes.

Can we please add this to the next benchmark chairs working group meeting agenda for discussion.

I have added this item to the agenda document.
On Tue, Jul 16, 2024 at 12:00 PM Mitchelle Rasquinha <
@.***> wrote:

Can we please add this to the next benchmark chairs working group meeting
agenda for discussion.
—
Reply to this email directly, view it on GitHub
https://github.com/mlcommons/policies/pull/180#issuecomment-2231405638,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BFC3WA4ENXBW5ZPS3QD4MSDZMVGUPAVCNFSM6AAAAABKXCYNT6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMZRGQYDKNRTHA
.
You are receiving this because your review was requested.Message ID:
@.***>

@ShriyaPalsamudram Do you have any context to the rules change proposal? In specific to the part where wg or power wg chairs participation/omission was mentioned. Since Monthly WG chair meeting is planning to discuss this item, should we wait for the opinion from that meeting before the changes are codified. To limit the results exposure for v4.1 Inference submission, Results committee can decide on some solution to let WG chairs participation on a need to know basis or let one WG co-chair join the meetings.

Given that discussion on this is pending, I marked is as a draft. Let's talk about it further in the Chairs WG meeting.
For now, we can keep everything as is, especially for v4.1 Inference submission.

Hi @ShriyaPalsamudram , please consider the below requests too

Should we limit the number of representatives from an organization attending the review meetings?  Also, if some company is outsourcing their submission work to a new company (say to a non-MLC member company) - can those representatives attend the review meeting on behalf of the submitter company? My proposal would be upto 2 representatives from each submitter - they can be an employee or a representative.
We need to clarify who among the MLC staff can attend the review meetings - even the current rule doesn't clarify this but MLC staffs are managing the submission repositories. May be "upto 2 MLC staffs as agreed by the respective WG".


json: use type handler property index

Add a test case for stringify of an object with a getter.

Added more test cases then simplified JSON.stringify further with extra perf gain. Also simplified  propertyRecord lookups.. will send another PR instead.


Minor updates in meta-tegra

Thanks for fixing the helper script. Let's not put the opencv package QA workaround here, though.

I will remove that commit. Should we create .bbappend in meta-tegra-community ?

I will remove that commit. Should we create .bbappend in meta-tegra-community ?

No.  It should be fixed upstream.


fix: no route defaults are applied if 'protocols' is used

Right now, Koko doesn't apply routes' entity schema defaults when 'protocols' is not empty. The reason for this was probably an attempt to make schema validation easier: the strip_path default value is true, which is not compatible with grpc and grpcs protocols; when protocols is not empty defaults are not applied to prevent a incompatibility like the one about strip_path to occur.
This also prevents other defaults to be applied, which is not desiderable.
This commit removes this restriction by adding a check on the content of the protocols field, setting strip_path to false in the case it's not provided as an input.

Ouch. This conditional defaulting is very painful and causes a lot of trouble. We need to get rid of it.
No action is required in this PR.