Transition SSZ out of Eth2 specs repo, introduce new SSZ specs repo.

First of all: this does not change any existing SSZ functionality, this is a proposal to extend the information available, and move it out of the Eth2 specs repository.
The current SSZ specification in this repository is very dense, prune to bugs because of it, and most of all, incomplete with regards to the more advanced features.
There is a lot I want the SSZ spec to describe: principles, ideas, advanced topics, and more description for hardening certain decoding features. However, this seems like too much to fit into the Eth2 specs.
So instead, I have this draft up for an SSZ specs repository:
https://github.com/protolambda/eth2.0-ssz/ (yes, moving it out of a personal GitHub repo once we have a transition plan).
I also plan to include ssz-specific testing in this new repository as well, to better cover invalid SSZ data, and help SSZ implementations embed just the tests they need, as opposed to the full Eth2 suite of tests. (fastssz as standalone Go library being a good example)
Additionally, I am looking to do versioning differently, where features grow in stages, and feedback on style and wording can be merged into the specs more quickly for unstable stages.
Hopefully this also enables the formal verification team (cc @franck44, @booleanfunction) to express their findings better. I feel like any change in the current SSZ spec here confuses implementers more than it helps them, since the functionality is there, but the way it is written is difficult to follow, and having a debate whether or not something is a bug, or how/when something breaks, shows how limiting the spec format is.
So this is an open call for others involved in SSZ to give the draft repo a look, help iterate on it now that it's still an early draft and friction is lower, and to plan on a transition to this separate SSZ repository.
CC @wemeetagain @zah - since you have both spent a lot of time on more advanced SSZ implementations, you may be interested.

My two cents
IMHO what are the insufficient parts of the status-quo SSZ spec:

The historical problem

[Phase 0] simple-serialize.md: there was a pyspec-only ssz implementation before the spec moved to remerkleable. Some Python functions that the spec is referencing are from that implementation. py-ssz itself has some optimization so that py-ssz doesn't 100% follow the spec presentation too.
[Phase 1] merkle-proofs.md is untested: It's almost all Python codes to describe how it works. However, the codes haven't been tested in CI. And since we use remerkleable for pyspec, we may ignore the inconsistency between merkle-proofs.md and implementation.

Specification process and presentation

@franck44 I fully agreed that formal verification spec is valuable! But also, it's important to have a spec that devs and users can understand quickly. It troubles me by how difficult it is to have an SSZ spec that makes everyone happy, also as its name — it should be simple!
Agreed with making SSZ spec has its own versions. 👍   More importantly, I'd appreciate it to have a stable version of SSZ v1.0 when phase 0 launch that all the future features are compatible with v1.0. That's also why formal verification is important at this point. 🙂
IMO our old friend protobuf (hello Prysm) 's document is pretty clear for the devs and users: https://developers.google.com/protocol-buffers/docs/encoding

Documentation v.s. Formal verification spec
Please correct me if I'm wrong @franck44 @booleanfunction: Dafny has done the formal verification simple-serialize.md but not the merkle-proofs.md?
And @protolambda, I think the encoding part of https://github.com/protolambda/eth2.0-ssz is not too different from simple-serialize.md?
As I can see, the most tricky part now is how to polish and describe multi-proofs algorithm properly. Luckily we still have time to iterate it until phase 1. IMHO it's also an argument of why it's good to rewrite merkle-proofs.md to a more understandable way.

Thanks for your proposals @protolambda and @hwwhww.
I think the important thing is to focus on what a specification should look like rather than where it is located.
According to other comments in other issues, I am not confident we all agree on what a specification is. I can give an example here of what it is and how it can be used, from a formal methods perspective.
Specs vs implementation, and formal verification
A simple example of a spec is the fibonacci function, say fib. The specification of what fib(n) is defined by:
function fib (n: nat) : nat {
    if n == 0 then 0
    else if n == 1 then 1
    else fib (n - 1) + fib (n - 2)
}

This is the spec.It is a mathematical function, devoid of ambiguities.
A recursive implementation how to compute fib(n) follows directly from the definition.
However it is inefficient and we may prefer a small memory footprint and a faster computation. For instance:
method ComputeFib (n: nat) returns (b : nat) {
    var i := 1;
    var a := 0;
    b := 1;
    if (n == 0) { return 0; }
     while (i < n) {
        a, b := b, a + b;
        i := i + 1;
    }
}

This is an implementation. It is not clear at all (at first sight) that this method computes fib(n).
There may be many other implementations, for instance one that caches the first say 50 fib(n) in a pre-computed array:
method ComputeFib2 (n: nat) returns (b : nat) {
    // an array caching the first 50 fib(n)
    var knownFib = [0, 1, 1, 2, 3, 5 ...   ]
    if (n < 50) { return knownFib[n]; }
    var i := 1;
    var a := 0;
     b := 1;
     while (i < n) {
        a, b := b, a + b;
        i := i + 1;
    }
}

Note that the specification does not prescribe how to compute the result, and the developers are free to propose a way to compute the result, as long as they are correct.
Are the implementations correct?  yes if every time we compute computeFib(n) the result is equal to fib(n), otherwise no. This is the (formal) correctness criteria. Note that hidden in the criteria is the fact that the algorithms terminate i.e.never end up in an infinite loop.
If an implementation computes the correct result all the time according to a spec, we say that it satisfies the spec.
What is formal verification about? Mathematically proving using mathematical logic and inference rules that an implementation satisfies a specification.
What is automated verification? Use an algorithm and possibly reasoning engines (e.g. SAT-solvers) to check (or assist you to check) that an implementation satisfies a specification.
To apply this to the Eth2 "specs", we had to somehow work as archeologist to figure out what a logical and functional specification is, in other words, what the intent was; and only then we can prove that an implementation (the Python-like current spec) satisfies a spec.
We have some good examples how to do that for the SSZ, Merkleisation, and recently for the Beacon Chain (on_block).
Our spec is formal, we have also provided implementations (that we can execute), and proved that our implementations satisfy their specifications. We can also establish non-trivial properties, .e.g. deserialise(serialise(x)) == x for all x (no testing but a formal proof and 100% guarantee).
About the readability by developers
When I read that developers don't want to read formal specs, I am a bit surprised.
The non-formal specs are 1) imprecise, confusing and require a lot of work from the developers and 2) error-prone because different interpretations can arise, so they'll have to fix bugs.
A good historical example is undefined behaviours in C. Every undefined behaviour (e.g. division by zero) can be implemented in the C compiler as you wish. This has been creating problems for years in software written in C. Two compilers can result in different behaviours for the same program.
An advantage of a formal and proved specification is that the developers can understand it, it is not ambiguous. It seems to me a much cleaner approach than Python code which I don't think was intended as a specification language (at least we do not use it for that purpose in the formal methods' world).
The current Eth2 specs are a good starting point, and it is certainly a good way to start describing all those clever ideas. But at some point, we may use the tool of the trades, languages, tools and techniques to improve the readability of the specs (and disambiguate them).
We have shown our specs in Dafny to many colleagues who are not expert in formal specification and verification and they understand them. The ability to annotate the specs with proofs is invaluable and provides a degree of reliability that cannot be obtained by testing.
Moving forward.
So rather than writing yet another Python-spec that is ambiguous, not proved, why not fostering a formal version, with clear definitions, correctness proofs?
And if this is a possible avenue, we have a candidate here.
It can easily accomodate future extensions like the merkle-proofs ( @booleanfunction is already investigating a formal treatment of the Merkle-proofs).
It contains specifications, implementations and proofs, all in the same language, Dafny.
Implementations in other mainstream languages can be obtained by compiling Dafny into C#, Go and soon Java.

Wall of text, hope you have the time to read it, I tried to go into detail about my concerns with the various approaches, and why it makes sense to plan a move to the new SSZ draft.

So here are the weaknesses I see of each approach:
Current py-spec

Python-isms sometimes leak into the spec language, I think for understanding of the spec this is not a big problem. But it does make it harder to port to another language. Pure functions would also help, but see later comments below about that.
Chance of ambiguity: most of the time there is none, but when python is mangled into regular text (like the merkleize function), edge cases are not tested and problems may arise.
Lack of explanation and guidance (not the same as simple comments). We tried to balance between python and regular markdown, went deep in the python direction to reduce ambiguity and have something that can both be tested and export tests. However, I recognize that there should be more explanation to help the reader. PR #1824 with comments is open, but I still think we should have more explanation/guidance in the spec eventually. This is easier when the spec-change churn is lower.
Python was never intended as specification language. It serves us well for various other things, but ultimately not the right language once spec is completely frozen.

Dafny

Only Dafny programmers can contribute effectively, the Eth2 spec is not just about formalism, but also about a process of having a ton of teams communicate their feedback to a project that pushes  limits in various domains. We need accessibility in the spec while it still changes.
Although formally correct, it still has some of the drawbacks of the pyspec: Dafny on its own is not any more readable than Python (in my opinion), except that it can be shown to be correct (which is a different thing)
Correctness is important, but I think it fails to catch little things in-between the process. E.g. by changing a pack function to guarantee a single chunk output, the total resulting behavior may be correct, but it has nothing to do with pack. A spec should be built from ideas, described, then shown to be formally correct. Not the other way around.

More text, like new SSZ spec draft

Possibly lots of ambiguity in the smaller details
Cannot be executed, tested, or proven without a model.

And here are the benefits I see with each approach:
Current py-spec

Accessible to almost any programmer who is familiar with the domain. The python language subset that is used is kept minimal. No class definitions with methods, no inheritance, etc. Yes the pyspec can improve accessibility in other ways (more explanation), but that is being worked on.
Unit tests to guarantee some level of correctness, which at the same time can be exported to run in every client
Usable in lots of different tooling, interact with Eth2 without having to go through complexities of a full Eth2 client.

Dafny

Formal verification, once the spec is completely defined in Dafny
No ambiguity whatsoever
Good candidate for a specification, where "specification" means that of the behavior that we try to describe, not the various meta-problems the current "spec" is trying to solve (accessibility, implementer feedback loop, client testing).

More text, like new SSZ spec draft

The explanation and guidance implementers or readers in general need to make sense of the thing, and not just craft implementation that is correct, but does it in a way that makes sense in their context.
Converging on a shared open resource that does not get out of date as quickly. Existing efforts like the annotated spec and the Phase0-for-humans write-up are invaluable to onboarding implementers, but tend to get out of date quickly, since they are separate efforts.

On pure functions and the spec<>implementation trade-off:
I agree we could do a better job at separating the verification and mutation parts, possibly write every function as a pure function that returns a new modified copy of the state.
However, as with some other parts currently in the spec, that gets somewhat ignored by client implementers. The way the spec is implemented defines the behavior well, but is not capable to reach mainnet scale state size and transition speed without modifications.
Not to say we should not have more pure-functions, but what we should do is listen to client implementers, and keep the spec aware of the actual implementation. I have raised this issue before, and I'm not completely content with the current compromise, but I see the value of the current "spec" (or organization medium at this stage really) quickly diminish if we have to jump through extra hoops to compare and test a client implementation.
The spec is not where the network value will be, the clients are. The end-goal is not to show the spec satisfies correctness, the goal is that a client does, and the correct spec is a means to do that. If we only care about the spec, and stop right there, while making it more difficult for a client to verify against and keep in sync with the changes, we have not added any value.

All in all I don't think we have to choose between these, we should aim to have these approaches complement each other.

The ability to annotate the specs with proofs is invaluable and provides a degree of reliability that cannot be obtained by testing.

Agree, but annotation is a keyword for me here. If you would add the proofs to the other works, the result should be something that both provides guidance and explanation, can handle remaining churn of a spec, as well as a formal proof of the behavior, to resolve any possible ambiguity.
And given that SSZ functionality has not changed for a long time, the pyspec benefits are getting less, and we can focus on the explanation-with-proof part, with little to no churn of functionality changes in the candidate/finished stages of the spec. Thus the proposal to move to the new SSZ draft, which solves half of the problem, but where Dafny could start to complement the spec to solve the remainder of the problem.
For the remainder of the eth2-spec it is currently more complicated, as:

Clients have grown closer to the python spec
Testing is in place and important, especially during spec changes.
We need some parts of the spec to improve still, and phase-1 is being actively developed.
To turn that all around is more difficult, involves talking with clients, and will be more of a long-term goal for now.

thanks @protolambda for your time and sharing your thoughts.
I respectfully disagree with most of the conclusions and I think the reasoning you presented has some inconstancies.
Among them:

Python was never intended as specification language. It serves us well for various other things, but ultimately not the right language once spec is completely frozen.

I don't understand this argument. If Python is not the right language for this purpose, how can we express the spec in this language first, freeze it, and then move on?
I don't think arguing about each and every single point is a very productive usage of our time.
For now, I have presented my arguments in details, with the motivations, some scientific and logical argument, and I don't think I have anything to add.
All the best on your endeavour with the new SSZ spec.

@franck44 :

It seems to me a much cleaner approach than Python code which I don't think was intended as a specification language (at least we do not use it for that purpose in the formal methods' world).

Me in my summary of all the weaknesses/benefits, trying to get the picture:

Python was never intended as specification language

I don't understand this argument.

I am trying to see through yours, agree that Python is not optimal, and figure out a way forward. If you are reasoning the opposite, and do not want me to remove any python in favor of more explanation + future formal definitions, then make that clear.

how can we express the spec in this language first, freeze it, and then move on?

What I'm trying to say is that ultimately, when there is no functional difference in expressing the idea that has been iterated on endlessly, then adopting something more formal should be smooth. And we can do so before it is 100% frozen. Once things are frozen I'd like it to be better, that does not mean we cannot iterate and work towards it before it fully being frozen with format and everything. If before phase 0 launches (and being 100% frozen) we can have at least a paper or other resource going in-depth through the spec, with proofs for the important parts, then I rather have that than the python for spec purposes.
Right now though, it is not the spec language that is the bottleneck for phase 0 stabilization, but the feedback loop to get through a mix of usability and less theoretical parts of the spec (networking in particular). SSZ on the other hand has not changed much, and I'm making the argument that there is room to transition it away from this specs repository, include the in-depth explanation that is missing, with room for formal definitions to complement it where possible.

on your endeavour

Please, I am not looking for drama, but a concrete plan to improve on the status quo, and some freedom to try things as part of the transition planning. If you dislike the python for a spec, but also don't see value in being less python-centric, while making room for more formal definitions of the types, then I don't understand.
If anything, the SSZ part of the spec is the perfect experimentation ground to get the format right, without affecting ongoing spec work. The part of the spec itself is as stable as can be, many different formats may fit (I'm also thinking of using more encoding-specific languages to describe the format), and there has been a draft since forever that can be teared apart and polished before we actually finalize any decision.
Now I wanted to give this a try, and instead we are arguing over the internet. If nobody is interested in a change of format, then I feel like I'm wasting my time here. And I will just go back to non-SSZ issues, and continue with the pyspec format that every once in a while gets a complaint about a python-ism, but at least ships spec improvements while we need them.

I would welcome an independently versioned SSZ spec with an isolated test suite. SSZ as a format has many useful properties and finding applications outside of the Ethereum spec is certainly possible.
I do have one significant concern for SSZ though. It would be quite difficult to coordinate an upgrade of the SSZ spec once Ethereum consensus objects start to appear in third-party databases, so we should do everything in our power to perfect the SSZ spec before the 1.0 release. To this end, I'm creating the following issue where some possible improvements can be discussed:
https://github.com/ethereum/eth2.0-specs/issues/1916
Otherwise, if I have to contribute to the spec-format discussion, my opinion is that nothing prevents a correct spec to be described in prose, an accessible language (e.g. Python) and formally verifiable language (e.g. Dafny) at the same time.
If the the spec is correct and unambiguous, all definitions will agree on every input and output. The new ssz-spec can even host all of these descriptions. @protolambda's argument is that the different descriptions have different strengths and weaknesses in the development process of the spec (ideas start as prose, they may be developed and tested out in Python and later formally verified in Dafny).

@protolambda @zah @CarlBeek

Otherwise, if I have to contribute to the spec-format discussion, my opinion is that nothing prevents a correct spec to be described in prose, in an accessible language (e.g. Python) and in a formally verifiable language (e.g. Dafny) at the same time.

Amazing. Formal methods' people may run away and trade their ETH for Cardano when they read that :-) I hope jokes are allowed here ...
I would encourage you to have a look at this.
I'll leave you to it (the new SSZ informal spec) but I really think it is not the best usage of our time.

You are skipping over the second part of the sentence where a language like Dafny is being considered. If we finally get to a point where we have multiple complete descriptions, I would always prefer the most formal one for correctness (especially if it has proven properties).
But in the process of getting there, and to help readers understand the intention and background while they read the python, or any future Dafny code, I think it's meaningful to have more than one format. Then link them together, and warn the user that prose or python may not be as good as the formal description. Naming a spec prose "correct" at any point is dangerous yes, but it's completely valid to aim for (even though by definition it can't be perfect).
And what I want to avoid is a spec process where new features or improvements take a prohibitively high overhead to be developed. And preferably I want to allow as many readers as possible to understand why something was written like it is. I don't see a single-format spec achieve that. Maybe a brilliantly clear readable formal specification for a completely stable spec, but we're not there yet.

Otherwise, if I have to contribute to the spec-format discussion, my opinion is that nothing prevents a correct spec to be described in prose, in an accessible language (e.g. Python) and in a formally verifiable language (e.g. Dafny) at the same time.

I believe (prose + spec in some accessible language + formal spec) approach is inevitable. However, I would add important refinements, which I believe are crucial, in the sense that they shape long term efforts.

If the the spec is correct and unambiguous, all definitions will agree on every input and output.

There is a fundamental difference between a prose and a formal spec. Somewhat simplifying, one can formally prove that an implementation agrees with the formal spec on every input and output (under certain assumptions).
However, the situation with proving that prose agrees with formal spec or spec in an accessible language is much more difficult.
First, I can see no way to give formal semantics to pose. So, actually it will be an audit, manual inspection. And human make mistakes.
Second, one can start adapting prose to make it more formal, but then we lose accessibility to regular programmers.
So, while in theory, human audit (manual 'proof checking') of agreement between prose + python spec + formal spec is possible in theory, I believe it is way too expensive.
Modern formal method suggest another approach - minimizing (or optimizing) Trusted Code Base. Basically, some parts have to be trusted and/or inspected manually, but we try to make this as small as reasonable. Else should be checked by computers.
So, I would formulate prose + python spec + formal spec approach in a somewhat different way:

prose is (very) important as a way to communicate to humans, as it pointed out before

but prose is super informal, so an implementation in some accessible language is (very) important too, as a more accurate way to communicate to programmers.
Actually, I would say prose + py-spec is the beacon chain spec for implementers (in my humble opinion, based on my experience of working with several beacon chain implementations).
Reference implementation is perhaps a better term for the py-spec. I will use it hereinafter.

Eventually, a formal beacon chain spec is expected to appear and I believe that several teams are working in that direction.

One can formally prove the formal spec agrees with the reference implementation on every input and output, though there are some important prerequisites for that. First, one need formal semantics for the language that the reference implementation is written in. The problem with Python is that it one of the worst languages in that respect.
Though I don't think the situation is really bad. Basically, EF team writes the py-spec in a statically-typed subset of Python, with minor exceptions. Second, it uses a rather minimal set of Python features (as @protolambda has outlined before).
I personally don't think it is a big problem to formalize the subset actually used by py-spec developers, especially assuming that EF is open to suggestions.
I would rather say that a downside of the approach is that EF team may become more reluctant to port the py-spec to a language that is better suited to beacon chain spec development :). Though, as lots of efforts invested into the py-spec and tools (including tests) I believe it's a quite reasonable way.
There is a formal tool for a subset of statically-typed Python 3, which is another reason why I believe py-spec can be kept as a reference implementation which can be formally verified against a formal spec, with some reasonable amount of efforts.
Another possible way in my opinion would be to translate the existing py-spec into a language more suitable for spec development at some point (I assume development of a reference implemenation, which continues to be the spec for implementers). By more suitable I mean a statically typed language presumably impure functional programming language (Rust, OCaml, Standard ML, F#, Scala, Kotlin, etc). As in my opinion, languages from the category fit best the current state of the spec. For example, manual translation of phase0/spec.py to Kotlin took about 7 hours (without further testing, cleanup, etc). I do not want to say this is the only possible way, rather my personal opinion, based on my experience of working with the pyspec and multiple programming languages.
Some of the languages have pretty expressible type systems (e.g. Scala and OCaml allows use GADT). So, many bugs can be caught by a compiler.
While I believe the spec translated in the language can be pretty readable and quite close to the py-spec (for example, phase0 in Kotlin), I believe it is true that it will be more difficult to contribute to the spec development.
So, it's probably not that bad variant, if one keeps prose + py-spec as a main beacon chain 'spec' for implementers. While formal method guys can make implementations along with necessary formalization of requirements, lemmas, invariants, post-condtions, pre-conditions, etc in their favorite language suitable for a formal work.
There will be an inevitable duplication of efforts, though as one can see, the duplication serves different purposed (e.g. communication to humans vs. 'communication' to computers).
However, some efforts required to reduce duplication of efforts between formal method teams are necessary). I will elaborate on this somewhere else, as I have some ideas but they are not yet really mature.


Fix JMS class name missmatch

We decided that I would do this change manually because you already threw away the fork. Thanks again for spotting this issue :)


service discovery: add name to log messages

This will make it easier to connect a log message with the config it relates to.
For example:
ts=2022-12-22T10:12:33.136Z caller=kubernetes.go:326 level=info component="discovery manager scrape" discovery=kubernetes msg="Using pod service account via in-cluster config"

Each SD config has a name, either the scrape job name or something like "config-0" for Alertmanager config. The word "set" is neutral between these, also this is what the code currently uses. Happy to change it if someone has a better suggestion.

Almost forgot, but this change should also be applied to the "legacy" discovery manager (under discovery/legacymanager), which is still the default right now.

Thanks - I added it to the legacy manager, and also added "config" to the error message that is output if discovery creation fails.


Swtich Between Infiltration models

The Demand script should offer the possibility to switch bettween ventilation models.
for this. the interface to Arcgis should provide a list or a tick box indicating which infiltration model to use:
Model A. Simple steady-state
Model B. Dynamic
This will avoid commenting, commenting lines of code once one or the other models is going to be used. I would like to have this functionality to run some sensitivity analysis..
@daren-thomas @gabriel-happle I hope it is ok if I assign this issue to you. do you think it can be done for this sprint? if not please feel free to asign it to Singapore milestone

See also #641 for a related issue

duplicate of #465

@daren-thomas let's talk about this and #251 on Friday 02/06? Can you do from 9:00-10:00?

working on this in the branch 645-switch-between-infiltration-models

implemented in PR #674

closing this issue!
Yeah! Milestone achieved in time!
Thanks @daren-thomas


🔧 [Refactor][frontend] - ContributionMessagesFormular.vue Doctor

🔧 Refactor ticket
❗ @vue/runtime-dom missing for Vue 2
Vue 2 does not have JSX types definitions, so template type checking will not work correctly. You can resolve this problem by installing @vue/runtime-dom and adding it to your project's devDependencies.
vue: /home/tulex/Entwicklung/Projekte/gradido/admin/node_modules/vue/package.json

will be fixed with the move to vue3


Test ValidateNetworkDisjointedness against ipv6

In preperation of IPv6 compatibility adding a test to one of the aspects of ip address handling.
/area testing
/area networking
/kind technical-debt
/kind test
/priority normal

Thank you @majst01 for your contribution. Before I can start building your PR, a member of the organization must set the required label(s) {'reviewed/ok-to-test'}. Once started, you can check the build status in the PR checks section below.

Thank you @majst01 for your contribution. Before I can start building your PR, a member of the organization must set the required label(s) {'reviewed/ok-to-test'}. Once started, you can check the build status in the PR checks section below.


Bug: SQLAlchemy Mapped field type not used correctly

Description
In the below example, you would expect foo.id to be an int
When get_field_value is called, field_meta.type_args has correctly been identified as an int - however, we end up calling the unwrapped annotation directly
This behaves as expected in polyfactory==2.2, provided from __future__ import annotations is not imported - and seems to have broken somewhere between there and polyfactory==2.3
URL to code causing the issue
https://github.com/litestar-org/polyfactory/blob/main/polyfactory/factories/base.py#L673
MCVE
from polyfactory.factories import DataclassFactory
from sqlalchemy.orm import DeclarativeBase, Mapped, MappedAsDataclass, mapped_column

class Base(MappedAsDataclass, DeclarativeBase):
    pass

class Foo(Base):
    __tablename__ = "foo"

    id: Mapped[int] = mapped_column(primary_key=True)

class FooFactory(DataclassFactory[Foo]):
    __model__ = Foo

def test_factory():
    foo = FooFactory.build()
    print(type(foo))
    assert isinstance(foo.id, int)

if __name__ == "__main__":
    test_factory()

Steps to reproduce
No response
Screenshots
No response
Logs
<class 'sqlalchemy.orm.base.Mapped'>
Traceback (most recent call last):
  File "/app/tests/test_example.py", line 26, in <module>
    test_factory()
  File "/app/tests/test_example.py", line 22, in test_factory
    assert isinstance(foo.id, int)
AssertionError

Release Version
Python 3.11.4
polyfactory==2.8.0
SQLAlchemy==2.0.16
Platform

[X] Linux
[ ] Mac
[ ] Windows
[ ] Other (Please specify in the description above)

Funding

If you would like to see an issue prioritized, make a pledge towards it!
We receive the pledge once the issue is completed & verified

I don't think this is a bug. The dataclass factory is not meant to be used to create instances of SQLA models. There is a SQLA factory that is being worked on, but until that is completed, I think you'll have to create a custom factory that can properly handle the Mapped types as well. If you need any help with that, I'd be happy to help.

My understanding was that the MappedAsDataclass class means that the SQLAlchemy model is converted into a Python dataclass - which means it should theoretically be compatible with DataclassFactory (even if there are other limitations)
As mentioned above, the above example actually works with polyfactory==2.2 - but I'm guessing some of the improvements made to add support for Pydantic 2.X changed how types are worked out
Totally understand this may be an issue with how Mapped has been implemented, rather than an issue with how polyfactory works out types - but if it is a polyfactory issue, would be happy to contribute a fix if anyone can offer a little guidance!

The fix for this was reverted in #383 since forward references are not being properly resolved.  @anthonyjgraff, I think as a workaround, you'll have to override the get_model_fields on your factory or create a custom base factory (subclassed from DataclassFactory) that can properly handle MappedAsDataclass as well.

Sorry about that!
Think for my specific use case, I may just be able to switch over to the new SQLAlchemy factory - that makes use of some SQLAlchemy specific attributes to resolve fields in the way I'd expect - so feel free to close this problem.
May take another look at this though, as this may help support the dataclass transform decorator more generally (https://docs.python.org/3/library/typing.html#typing.dataclass_transform)

@anthonyjgraff, don't worry about it. It's more due to the implementation of the fields API than your implementation. Actually, if we add the cls.__model__.__module__ to the module parameter (I think that's the name), it does work. There's only one case that it doesn't work which is when the class that is forward annotated (by keeping it under if TYPE_CHECKING) that fails since we don't know the module where that class was defined in.

I'm gonna keep this open since I do think we should support this and other cases like this that may exist where classes behave like a dataclass even if they're not actually a dataclass.

How is this supposed to work with a non-init column? (init=False)

overriding should_set_field_value seems to work for now....
from typing import Any
from polyfactory.factories.sqlalchemy_factory import SQLAlchemyFactory, FieldMeta
from sqlalchemy.orm import DeclarativeBase
from sqlalchemy.orm import Mapped
from sqlalchemy.orm import mapped_column
from sqlalchemy.orm import MappedAsDataclass

class Base(MappedAsDataclass, DeclarativeBase):
    """subclasses will be converted to dataclasses"""

class User(Base):
    __tablename__ = "user_account"

    id: Mapped[int] = mapped_column(primary_key=True, init=False)
    name: Mapped[str]

class UserFactory(SQLAlchemyFactory[User]):
    __model__ = User

    @classmethod
    def should_set_field_value(cls, field_meta: FieldMeta, **kwargs: Any) -> bool:
        def is_init() -> bool:
            if not getattr(cls.__model__, '__dataclass_fileds__'):
                return True
            return cls.__model__.__dataclass_fields__[field_meta.name].init
        return not field_meta.name.startswith("_") and field_meta.name not in kwargs and is_init()

def test_factory():
    user = UserFactory.build()
    print(type(user))
    assert isinstance(user.name, str)

if __name__ == "__main__":
    test_factory()

How is this supposed to work with a non-init column? (init=False)

Yeah, I think this is a bug since this should be ignored by default without you having to override the should_set_field_value.


Task Clean up root color schema

Changes in this Pull Request:

Remove unnecessary colors

Mandatory checks:

[x] Branch is up to date (latest changes were fetched from the upstream branch before creating this PR)
[ ] Changes were tested manually
[ ] Java code changes are unit tested
[ ] Webtests are successful

To be checked by the reviewer:

[ ] Clean Java code and unit tested changes
[ ] UI customizablity is preserved: No hard-coded styling and URL references in JSF views

To be checked by the pull request owner:

[ ] .MASTER/job/BES_MASTER_IT/
[ ] .MASTER/job/OSCM_WS_Tests_INTERNAL/
[ ] .MASTER/job/OSCM_WS_Tests_OIDC/
[ ] .MASTER/job/OSCM_Integration_Tests_INTERNAL/
[ ] .MASTER/job/OSCM_Integration_Tests_OIDC/

Cross repository and core changes:

[ ] Interdependent changes have been communicated to the team (if applicable)
[ ] This pull request includes high risk modifications or core changes (e.g API, datamodel, authentication...). Mandatory reviewers: @goebell or @kowalczyka.

OSCM Build References:

<CI node number>: <tag>, example: ci10:goebell

Screenshot (if applicable):

add a screenshot illustrating your change

This change is

There are different values for background and background-color, were used to override Richfaces values:
--oscm-table-bg-color:              hsla(var(--oscm-main), 0.8);
--oscm-table-background-color:      hsla(var(--oscm-main), 0.1);


Add test for matching strings.

Seems like a useful utility function, and one I've written twice in the last month or so. I bet I'm not the only one who could benefit from this.
This seems like the most obvious version of the test I could write, but I am happy to take suggestions on changes, particularly on wording of the error messages.

Thanks!  Looks good.


Improve lobby restrictions

Improvements

If a player doesn't meet lobby play restrictions, the Coordinator will now inform them.
When checking rating requirements, the lobby team size and team count is looked at to determine what rating type to use. It is the max team size that matters not number of players in the lobby since the lobby may be getting filled. E.g. a lobby with team size 8 and only 2 players will use "Team" rating. Fixes #85 raised by Randy.
When the server thinks you are trying to create a noob lobby, some tips will be given by coordinator
minchevlevel and maxchevlevel commands
Remove filters in lobby name (and lobby) when everyone leaves. Fixes #171 raised by Fireball.

Chev level commands
While other devs may want to use uncertainty filters, chev restrictions have the benefit that:

They are already used (just manually enforced)
They are more visual than uncertainty
A lot of information is lost due to uncertainty reset. For example I am 3Chev and have played 46 matches. My uncertainty is 5. Someone who has been playing for years and has thousands of games has the same uncertainty as me due to season uncertainty reset.

However, I acknowledge there are flaws with chevs which include: they can grow with spec time and pve time.
Contributors and Tournament Winners
Contributors chev level is not tied to hours played. Therefore I just allow contributors to ignore chev restrictions. This can be revisited in the future.
Tournament winners have chevlevel 8 and are treated as such. I don't think this is a big issue as they are likely to only play in min chev lobbies.
Other nuances
Teifion added code so that you cannot add restrictions for "All welcome" lobbies. It checks the lobby title (and is trivial to bypass). I did the same for chev restrictions.
I currently don't support having both min and maxchevlevels at the same time. Setting one will reset the other. I assume maxchevlevel will be used on noob lobbies and it wouldn't make sense to have a minchevlevel on a noob lobby. Can be revisited in the future if needed.
Merge conflicts
This PR has been written before Lexon has merged his big/small team rating split. If he merges first I only need to change a couple lines in the check_rating_to_play function inside LobbyRestrictions module.
    rating_type =
      cond do
        team_count > 2 && team_size == 1 -> "FFA"
        team_count > 2 && team_size > 1 -> "Team FFA"
        team_size == 1 -> "Duel"
        team_size <= 4 -> "Small Team"
        true -> "Big Team"
      end

Unit Tests
In VSCode, right click the lobby_restrictions_test.ex file and copy its path. Then run
mix test path_to_file

Integration Test Steps
If a player doesn't meet lobby play restrictions, the Coordinator will now inform them.
In a lobby use the minratinglevel or maxratinglevel commands. Try and move from spec to player when you don't meet requirements. You will be informed by the Coordinator on the right.
When checking rating requirements, the lobby team size and team count is looked at to determine what rating type to use. It is the max team size that matters not number of players in the lobby since the lobby may be getting filled. E.g. a lobby with team size 8 and only 2 players will use "Team" rating.
Try the above but try changing team size/team count drop downs and note the warning given by Coordinator changes.
When the server thinks you are trying to create a noob lobby, some tips will be given by coordinator
Try $rename noob and see the coordinator message on the right.
minchevlevel and maxchevlevel commands
Type $help and look for the new minchevlevel and maxchevlevel commands and how to use them. Test them out. Check that when you don't meet requirements to play the Coordinator tells you. Note that $minchevlevel 1 will not work as that is everyone.
Remove filters in lobby name when everyone leaves
While in lobby run $status to see the restrictions you set up earlier. Check that the lobby name has the restrictions. Leave the lobby. Note the change in title. Enter the lobby and run $status and note the lobby restrictions are gone.

@geekingfrog thanks for review. I think I can do the changes you have requested and will work on it.

@geekingfrog I tried to do the changes. However, now getting failures on mix dialyzer. Have no idea why. The changes have been pushed. Maybe you have insight.

What is the dialyzer command you run, and what is the error you get?

Also they currently have a staging server for integration tests. It was used for testing small/big team ratings.

When I said "integration test" I meant more something that is run with mix test, but instead of testing just one small bit of code like the pure functions you did (unit test), crafting some tests that cover a wider range, basically: setup the system, connect a fake client, and test the commands and response you get.
Like this kind of test for example.

What is the dialyzer command you run, and what is the error you get?

mix dialyzer

However, I solved it and have updated the branch. Well actually I didn't solve it - I asked on Elixir forums.

Also they currently have a staging server for integration tests. It was used for testing small/big team ratings.

When I said "integration test" I meant more something that is run with mix test, but instead of testing just one small bit of code like the pure functions you did (unit test), crafting some tests that cover a wider range, basically: setup the system, connect a fake client, and test the commands and response you get. Like this kind of test for example.

I just tested those spring tests and they don't work. I think we should fix those first so I have some sort of template to follow and understand how they "should" be written.

FFS, this PR is still not merged.

FFS, this PR is still not merged.

That's on me and my getting pulled apart in multiple directions. I'm trying to stay on top of things, but it can be hard at times. Thanks for your understanding! 😞
I've just merged that one now.

@StanczakDominik
I've pushed your suggested changes.
These next few days aren't the best time for VC as I'm fairly busy. I'm in the office during the day and for the next couple of evenings I have plans. (Also I'm in Sydney time).
My plan for this PR was to request at some point it to be placed on integration server and then create a thread in the testers channel. There I could ping @GeneralTesters and also individuals who would be interested in these changes. The following individuals should have an interest:

Randy raised a ticket that restrictions were using the wrong rating for 1v1. This PR fixes #85
Fireball raised a ticket that restrictions were not being cleared when players leave the lobby. This PR fixes #171
Spreezy raised a suggestion in Discord for min/max chev level commands. Link
And finally Sun_Tzu wants to get more investment into my balancer and I snuck in an advertisement for it when you create a noob lobby.

Spreezy and Sun_Tzu are pretty active on Discord and those two alone could go through all the test cases. And there would be random GeneralTesters who could probably assist.
As for the automated integration tests, I had a brief look and my skills aren't strong enough to even create them for this PR. I would need to invest more time in levelling up my skills. But if you're planning to look into maintaining Hailstorm then I can look into seeing if I can create some tests for existing work I've done i.e. the balancemode. I did look at Hailstorm in the past and understand a bit but need to revisit.
Also I think long term we need a helper function that takes team_size and team_count as input and spits out a rating string. I didn't do it in this PR because it would require more changes that would likely clash with Lexon.

Actually maybe it's best that I make some changes that would cause a merge conflict with Lexon. That would make us more cautious when merging together since it would generate an error. I want to add this to match_lib.ex
    cond do
      String.contains?(bot_names, "Scavenger") -> "Scavengers"
      String.contains?(bot_names, "Chicken") -> "Raptors"
      String.contains?(bot_names, "Raptor") -> "Raptors"
      Enum.empty?(bots) == false -> "Bots"
      true -> get_pvp_rating_type(Enum.count(teams), max_team_size)
    end
  end

  def get_pvp_rating_type(team_count, team_size) do
    Enum.count(teams) == 2 and team_size == 1 -> "Duel"
    Enum.count(teams) == 2 -> "Team"
    team_size == 1 -> "FFA"
    true -> "Team FFA"
  end

And add this to lobby_restrictions.ex
    rating_type = MatchLib.get_pvp_rating_type(team_count, team_size)

Teiserver.Coordinator.ConsulCommandsTest already has some tests for lobby restrictions, including min/max/setranklimit.
I suggest updating those or moving them to your new test file.

You mention the possible merge conflict with my changes. This is a pretty big PR, I think it would be nice if it could be split into maybe 2 smaller ones. It would make things easier to merge, specifically the fix for #85, that is something I was planning to solve in my PR to avoid issues with new rating categories.

@L-e-x-o-n  If you can make a function in your PR that takes team count and team size and returns a rating type then I'll just wait for you to merge and use that.
I'll also do your suggested changes when I get some spare time.

@L-e-x-o-n If you can make a function in your PR that takes team count and team size and returns a rating type then I'll just wait for you to merge and use that. From what I read of your PR, we actually currently only conflict once in consul_server. It's not hard for me to resolve later.

I missed this comment, but that's exactly what I did :D MatchLib.game_type/2
PR has been merged now

Have now merged with master. Main change is here calling Lexon's recently made function
https://github.com/beyond-all-reason/teiserver/pull/303/commits/c7515acc8b9012200ce5ae6b579e1135492d6377
Have tested and works locally

Test results from the integration server
########################################
This lobby has the following play restrictions:
Min rating: 20
########################################
---------------------------
You don't meet the rating requirements for this lobby (Min rating: 20). Your Big Team match rating is 16.67. Learn more about rating here:
https://www.beyondallreason.info/guide/rating-and-lobby-balance#openskill
---------------------------
You don't meet the rating requirements for this lobby (Min rating: 20). Your Big Team match rating is 16.67. Learn more about rating here:
https://www.beyondallreason.info/guide/rating-and-lobby-balance#openskill
---------------------------
Balance logs, mode: solo
Tried grouped mode, got a deviation of 55 and reverted to solo mode
Picked (...) for team 1, adding 41.94 points for new total of 41.94
Picked (...) for team 2, adding 18.8 points for new total of 18.8
Deviation of: 55
Team 1 - sum: 41.9, mean: 41.9, stdev: 0.0
Team 2 - sum: 18.8, mean: 18.8, stdev: 0.0
---------------------------
You don't meet the rating requirements for this lobby (Min rating: 20). Your Duel match rating is 16.67. Learn more about rating here:
https://www.beyondallreason.info/guide/rating-and-lobby-balance#openskill
---------------------------
You don't meet the rating requirements for this lobby (Rating between: 20 - 21). Your Big Team match rating is 16.67. Learn more about rating here:
https://www.beyondallreason.info/guide/rating-and-lobby-balance#openskill
---------------------------
You don't meet the rating requirements for this lobby (Rating between: 20 - 21). Your Big Team match rating is 16.67. Learn more about rating here:
https://www.beyondallreason.info/guide/rating-and-lobby-balance#openskill
---------------------------
You don't meet the chevron requirements for this lobby (Min chev: 4). Your chevron level is 1. Learn more about chevrons here:
https://www.beyondallreason.info/guide/rating-and-lobby-balance#rank-icons
---------------------------
You don't meet the rating requirements for this lobby (Min rating: 40). Your Big Team match rating is 21.37. Learn more about rating here:
https://www.beyondallreason.info/guide/rating-and-lobby-balance#openskill
---------------------------
You don't meet the rating requirements for this lobby (Min rating: 40). Your Small Team match rating is 18.78. Learn more about rating here:
https://www.beyondallreason.info/guide/rating-and-lobby-balance#openskill
---------------------------
You don't meet the rating requirements for this lobby (Min rating: 40). Your Duel match rating is 31.48. Learn more about rating here:
https://www.beyondallreason.info/guide/rating-and-lobby-balance#openskill
---------------------------
# switch to FFA preset
You don't meet the rating requirements for this lobby (Min rating: 40). Your Duel match rating is 31.48. Learn more about rating here:
https://www.beyondallreason.info/guide/rating-and-lobby-balance#openskill
---------------------------
# switch to teamsize = 1
You don't meet the rating requirements for this lobby (Min rating: 40). Your FFA match rating is 19.67. Learn more about rating here:
https://www.beyondallreason.info/guide/rating-and-lobby-balance#openskill

In short, the only thing I was able to find was, immediately after switching to FFA preset, it was trying to gate on Duel rating (teamsize = 1), but explicitly switching to teamsize = 1 (or possibly changing the number of teams?) seemed to fix it.
Overall, I think it's great - I'll just confirm a few things and this can go in np :)


initial list of functional requirements

ok. prima. kan idd prima werken om attestation te presenteren. is er een
mogelijkheid om op te vragen welke attestations beschikbaar zijn?
Met vriendelijke groet,
Hans Boone
Director Identity and Access Management
+31 650 62 83 23 l +31 85 023 93 00
www.unifiedpostgroup.com http://www.unifiedpost.com/
Albert Einsteinweg 4
8218 NH Lelystad, NL
Op zo 21 apr 2024 om 17:23 schreef Timo Glastra @.***>:

@.**** commented on this pull request.
In docs/functional/requirements.md
https://github.com/DutchBlockchainCoalition/CompanyPassport/pull/3#discussion_r1573817674
:

+- All user stories are currently high level. There is benefit to working them out in more detail, but it can become redundant. It may be better to catch this in use cases, where there is more detail on the exact specifications or frameworks need to be followed. E.g. "receiving an Attestation" sounds simple, but can be split up into a lot of use cases, such as "Retrieving the Issuer Metadata", "Verifying the Issuer against a Trust List", "Authorizing to the issuer's authorization server", etc.. This should come after the user stories are defined, and can be used to define the exact requirements for the system.

It would be good to good one level deeper on the user stories on which specifications, ecosystems, regulations or frameworks need to be followed. So "As a user I can receive an SD-JWT credential from an OID4VCI issuer so that ..." and "As a user I can receive an mDOC credential from an OID4VCI issuer so that ...". These are different user stories, with both their own complexities and underlying use cases.
+- All terms used here (often with Capital letter) are based on the Glossary and the definitions from the Architecture Reference Framework (also linked in the glossary).

+### A. Receiving Attestations
+
+1. As a user I want to receive an Attestation on behalf of the Legal Entity in the Organizational Wallet, so that the Legal Entity and any of it's representatives can use the Attestation in the future.
+2. As a user I want to view the Attributes of an Attestation in the Organizational Wallet, so that I can check certain details of the Attestation such as the issuance date, the verification date, the revocation state, and other attributes.
+3. As a user I want to renew an Attestation on behalf of the Legal Entity in the Organizational Wallet, so that Attestations that are revoked, expired, or otherwise invalid can be renewed.
+4. As a user I want to request an Attestation to be issued to the Organizational Wallet on behalf of the Legal Entity from an Attestation Provider.
+5. As a user I want to be able to remove an Attestation from the Organizational Wallet, so that Attestations that are no longer needed can be removed.
+
+#### A.A Authorization
+
+1. As a user I want to limit which representatives of the Legal Entity can receive Attestations on behalf of the Legal Entity, so that only authorized representatives can receive Attestations.
+2. As a user I want to limit which representatives of the Legal Entity can view the Attributes of Attestations in the Organizational Wallet, so that only authorized representatives can view the Attributes of Attestations.
Authorization en verschillende rollen binnen de wallet is out of scope
voor nu, dus heb de alleen de user story "As an Authorized Representative I
want to view the Attributes of an Attestation in the Organizational Wallet"
behouden.
Omdat "Authorized Representative" impliceert dat er een volmacht is (door
de rolbeschrijving die is toegevoegd) lost dit automatisch op dat de wallet
niet publiek is (je moet authorized representative zijn om de attestations
te viewen)
but then I suppose it would make sense to not limit the 'view' ability to
authorised representatives.
Waarom niet? Dit is om de attestations in de wallet te bekijken. Als je de
data wilt delen zal dit gaan door een attestation te 'presenteren'
—
Reply to this email directly, view it on GitHub
https://github.com/DutchBlockchainCoalition/CompanyPassport/pull/3#discussion_r1573817674,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMMQJM5LWHMEKEV5HHHZ3ITY6PKVJAVCNFSM6AAAAABFXNTDP2VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDAMJTGQ3DIMBSGA
.
You are receiving this because you commented.Message ID:
@.***
com>

Hoe kan een organisatie aangeven waar zijn wallet is?
stel: ik weet alleen een kvknummer of een VAT nummer ==> om zaken te doen
wil ik controleren of deze partij attestations van de KVK of
belastingdienst kan overleggen. ==> hoe ga ik dan vinden op welke URI ik
moet zijn om via de wallet de attestations op te vragen?
Met vriendelijke groet,
Hans Boone
Director Identity and Access Management
+31 650 62 83 23 l +31 85 023 93 00
www.unifiedpostgroup.com http://www.unifiedpost.com/
Albert Einsteinweg 4
8218 NH Lelystad, NL
Op zo 21 apr 2024 om 17:13 schreef Timo Glastra @.***>:

@.**** commented on this pull request.
In docs/functional/requirements.md
https://github.com/DutchBlockchainCoalition/CompanyPassport/pull/3#discussion_r1573810384
:

+hero_height: is-fullwidth
+---

+# Functional Requirements
+
+This page describes the functional requirements for an Organizational Wallet. Although the organizational wallet described in the requirements is intended as a general purpose organizational wallet, the initial requirements are defined based on the first use case of the Architecture WG: founding a new "Besloten Vennootschap" (BV), a Dutch private limited liability company (Ltd.).
+
+The requirements are defined through the following categories:
+- 🚧 User stories
+- 🚧 Feature list (with MoSCoW prioritization)
+- 🚧 Non functional requirements
+- 🚧 Use case specific user stories
+- Use cases
+- Component diagram
+
+## User stories
dat de Organizational Wallet gevonden kan worden
Wat bedoel je hier precies mee?
—
Reply to this email directly, view it on GitHub
https://github.com/DutchBlockchainCoalition/CompanyPassport/pull/3#discussion_r1573810384,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMMQJM7DUBCHSO44B2PL7ILY6PJTNAVCNFSM6AAAAABFXNTDP2VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDAMJTGQ2TSOBYGU
.
You are receiving this because you commented.Message ID:
@.***
com>

ok. wellicht handig om aan de non-functionals toe te voegen.
Met vriendelijke groet,
Hans Boone
Director Identity and Access Management
+31 650 62 83 23 l +31 85 023 93 00
www.unifiedpostgroup.com http://www.unifiedpost.com/
Albert Einsteinweg 4
8218 NH Lelystad, NL
Op zo 21 apr 2024 om 16:54 schreef Timo Glastra @.***>:

@.**** commented on this pull request.
In docs/functional/requirements.md
https://github.com/DutchBlockchainCoalition/CompanyPassport/pull/3#discussion_r1573796841
:

+1. As a user I want to limit which representatives of the Legal Entity can receive Attestations on behalf of the Legal Entity, so that only authorized representatives can receive Attestations.
+2. As a user I want to limit which representatives of the Legal Entity can view the Attributes of Attestations in the Organizational Wallet, so that only authorized representatives can view the Attributes of Attestations.
+3. As a user I want to limit which representatives of the Legal Entity can remove Attestations from the Organizational Wallet, so that only authorized representatives can remove Attestations.

+### B Presenting Attestations
+
+1. As a user I want to present one or more Attestation(s) in the Organizational Wallet on behalf of the Legal Entity to a Relying Party, so that the Legal Entity and any of it's representatives can prove certain Attributes about the Legal Entity or it's representatives.
+
+#### B.A Authorization
+
+1. As a user I want to limit which representatives of the Legal Entity can present Attestations on behalf of the Legal Entity, so that only authorized representatives can present Attestations.
+2. As a user I want to limit which representatives of the Legal Entity can present certain types of Attestations, so that only authorized representatives can present certain types of Attestations.
+
+### C Issuing Attestations
+
+1. As a user I want to issue an "Legal Entity Representative Attestation" to a personal wallet of a representative of the Legal Entity so that the representative can authenticate to the Organizational Wallet on behalf of the Legal Entity.
BA1 The Organizational Wallet should be configured to restrict access to
Attestations, ensuring that only wallets under the control of natural
persons or other legal entities are eligible to access these Attestations.
Dit is meer een requirement dan een user story. Waardevol, maar ik denk
wel dat het goed is om consistent te blijven in hoe we de requiremenst
verwoorden (we hebben voor user stories gekozen, dus vanuit de user
bescrhijven hoe ze toegang moeten krijgen)
—
Reply to this email directly, view it on GitHub
https://github.com/DutchBlockchainCoalition/CompanyPassport/pull/3#discussion_r1573796841,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMMQJM4YN7BHAOHE4NS6IPTY6PHJHAVCNFSM6AAAAABFXNTDP2VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDAMJTGQ2TKOJSGY
.
You are receiving this because you commented.Message ID:
@.***
com>

indeed,
wellicht is dit beter: As a user of an organisation wallet, I want to issue
a (Q)EAA Attestation to another wallet.
As a user of an organisational wallet, I want to issue an "Legal
Entity Representative Attestation" to a wallet of a representative of
the Legal Entity so that the representative can authenticate to the
Organizational Wallet.
Met vriendelijke groet,
Hans Boone
Director Identity and Access Management
+31 650 62 83 23 l +31 85 023 93 00
www.unifiedpostgroup.com http://www.unifiedpost.com/
Albert Einsteinweg 4
8218 NH Lelystad, NL
Op zo 21 apr 2024 om 16:49 schreef Timo Glastra @.***>:

@.**** commented on this pull request.
In docs/functional/requirements.md
https://github.com/DutchBlockchainCoalition/CompanyPassport/pull/3#discussion_r1573793752
:

+2. As a user I want to limit which representatives of the Legal Entity can view the Attributes of Attestations in the Organizational Wallet, so that only authorized representatives can view the Attributes of Attestations.
+3. As a user I want to limit which representatives of the Legal Entity can remove Attestations from the Organizational Wallet, so that only authorized representatives can remove Attestations.

+### B Presenting Attestations
+
+1. As a user I want to present one or more Attestation(s) in the Organizational Wallet on behalf of the Legal Entity to a Relying Party, so that the Legal Entity and any of it's representatives can prove certain Attributes about the Legal Entity or it's representatives.
+
+#### B.A Authorization
+
+1. As a user I want to limit which representatives of the Legal Entity can present Attestations on behalf of the Legal Entity, so that only authorized representatives can present Attestations.
+2. As a user I want to limit which representatives of the Legal Entity can present certain types of Attestations, so that only authorized representatives can present certain types of Attestations.
+
+### C Issuing Attestations
+
+1. As a user I want to issue an "Legal Entity Representative Attestation" to a personal wallet of a representative of the Legal Entity so that the representative can authenticate to the Organizational Wallet on behalf of the Legal Entity.
+2. As a user I want to issue an EAA Attestation to another wallet on behalf of the Legal Entity.
It doesn't really matter whether the other wallet is a personal or an
organizational wallet right?
—
Reply to this email directly, view it on GitHub
https://github.com/DutchBlockchainCoalition/CompanyPassport/pull/3#discussion_r1573793752,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AMMQJM6TACG7SNQ6FN5RBS3Y6PGZJAVCNFSM6AAAAABFXNTDP2VHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDAMJTGQ2TKMRQGU
.
You are receiving this because you commented.Message ID:
@.***
com>


Implement list projects command

Implement 'forge list projects'
projects : List projects in solution
Available parameters:
    --solution [-s] <string>: List the projects in this solution
    --folder [dir|--dir] <string>: List the projects in this directory
    --filter <string>: Filter list via fuzzy search for this string

What would be the point of --folder <string> when you could just ls .*proj?

Given all the changes in the ecosyste


Cell evaluation

From<EMAIL_ADDRESS>on 2011-01-17T07:53:43Z
MATLAB style cell evaluation.

Divide a script into cells (in MATLAB by typing %%).
Slightly highlight the current cell.
Evaluate current cell upon clicking a button.

Original issue: http://code.google.com/p/spyderlib/issues/detail?id=529

From<EMAIL_ADDRESS>on 2011-01-17T22:49:55Z
This issue has been previously discussed in depth and you can now run a selected block of code.  If you wish to make any further discussion of this feature, please do so here: https://code.google.com/p/spyderlib/issues/detail?id=117
Status: Duplicate
Mergedinto: 117


signatureHelp returns outer function call signature when inside of object literals or arrays

From https://github.com/Microsoft/vscode/issues/44129#event-1485462419
TypeScript Version:  2.7.1
Search Terms:

signature help

Code
console.log({a: 1 })

Type , after 1 to trigger a signature help request
Expected behavior:
signatureHelp does not return anything at this point, or indicates that we are inside of an object
Actual behavior:
signatureHelp returns the signature help for console.log
Playground Link:
Related Issues:

Basically a duplicate of #1150. We currently don't do any checking of whether we ought to provide signature help, we just climb out to the nearest signature (which is admittedly annoying).

Going to reopen this since I think strings are a separate case from object literals and the like.

Should be fixed in latest.


Wrap asciidoctor

This is a placeholder for a meta-project.
Asciidoctor is a dependency of ours. Instead of using the asciidoctor command-line directly, we should wrap it in a meta-project that can process ISO-specific asciidoc input using asciidoctor-iso as a parsing engine.
This way we can control the whole flow, including inject document attributes into asciidoctor processing.
It can be called like [executable] --format asciidoc myfile.adoc
Here are the examples provided by the asciidoctor guide:
require 'asciidoctor'
html = Asciidoctor.convert content, header_footer: true, safe: :safe

html = Asciidoctor.convert content, header_footer: true, safe: :safe`
content = '_Zen_ in the art of writing <https://asciidoctor.org[AsciiDoc>].'
document = Asciidoctor.load content, header_footer: true, safe: :safe
puts document.doctitle
html = document.convert

(this issue was originally posted in https://github.com/riboseinc/asciidoctor-iso/issues/133#issuecomment-383907034)

[5/9/2018 12:26:00 PM] Ronald Tse: So, something more urgent aside from CSD bugs
[5/9/2018 12:26:09 PM] Ronald Tse: Is the wrapping of asciidoctor
[5/9/2018 12:26:55 PM] Ronald Tse: i.e. instead of using the asciidoctor cli to require/call/include asciiiso, we shall an executable file that does that in reverse
[5/9/2018 12:27:07 PM] Ronald Tse: And this is Metanorma.
[5/9/2018 12:27:26 PM] Nick Nicholas: so... this is a ruby script?
[5/9/2018 12:27:28 PM] Ronald Tse: i.e. metanorma --type iso blah.adoc
[5/9/2018 12:27:30 PM] Ronald Tse: Yes
[5/9/2018 12:27:32 PM] Nick Nicholas: ok
[5/9/2018 12:27:39 PM] Nick Nicholas: ok, that should be straightforward
[5/9/2018 12:27:44 PM] Ronald Tse: metanorma --type rfc blah.adoc
[5/9/2018 12:27:48 PM] Nick Nicholas: and it injects wrapper
[5/9/2018 12:28:11 PM] Ronald Tse: It should directly call in Ruby Asciidoctor.parse(x.adoc, options)


Whitening bandpassing in frequency domain causes artifacts

solved as of https://github.com/uofuseismo/anxcor/commit/818f3e70b541b52c34d5f4aa561130a360caac9e


Namespace must estimate and requeue content deletions

When using graceful deletion, retry repeatedly until items are completed.
Assumes finalization is managed by the underlying types (if a gracefully
deleted pod is not cleaned up, namespace deletion will not complete).
Built on top of #12404
Extracted from #9165

@lavalamp @nikhiljindal this was already code reviewed once in graceful, but needs signoff to reduce the size of #9165

Thanks a lot for splitting the code.
Mostly LGTM. Just a comment on why not wait for the estimated time.

LGTM, thanks!


duplicates and unnecessary standard deviation functions

the standard deviation is calcualted many times without using the defined function. Why have we defined the function if not to use it?

we will not fix this as it works


User name swap

@Raheel Ahmed @Shashank This change should default the name to username(and if username is not present then use the wallet name)
Note: one useEffect has been broken into two separate useEffects

This is the code;
useEffect( () => {
setDropdownBoxList( ThemeList )
}, [] )
useEffect( () => {
setName( wallet.userName? wallet.userName: wallet.walletName )
}, [ wallet.walletName, wallet.userName ] )

Verified this issue on dev app v2.0.67(408)

Now it is showing wallet name as a user name on Gift detail screen.After that I changed the wallet name but user name was still same as old wallet name.In case of F&F it is not showing user name on Send screen. and on acceptance gift card it is showing Changed wallet name.
And in case of other scenarios it was showing user name on both Enetr gift details screen and send screen.

@cakesoft-swati, closing this one as discussed on call with @antuz123 sir. the flow is working fine.

In case of F&F it is not showing user name on Send Gift screen.
Tested on dev app v2.0.68(410)

Verified this issue on dev app v2.0.68(417)


Reactjs

references page added

Please give the PR for the reactjs branch if you are working with react code


Fix the Remove Policy Publisher Content data migration

A draft exists for the email-signup page, so set discard_drafts to
true for this item.

I've requested a review from Kevin, but I'm fine with anyone else reviewing this as well.

Thanks Kevin :+1:


Issue with JVRC1 robot model

I have run the LIPM controller with the JVRC1 robot model. As you can see in the below image, the robot leaned to the left during the forward walking motion. I have run this package with my own robot model, and I haven't seen this issue. Have you seen such an issue with the JVRC1 robot model?

Hi @Saeed-Mansouri
Thanks for reporting this issue. We have never tuned the stabilizer settings for JVRC1 nor really looked closely at the lipm_walking_controller performance, we simply got it to work well enough to run in integration tests.
In what environment did you run these simulations?

Hi @Saeed-Mansouri
Thanks for reporting this issue. We have never tuned the stabilizer settings for JVRC1 nor really looked closely at the lipm_walking_controller performance, we simply got it to work well enough to run in integration tests.
In what environment did you run these simulations?

I ran these simulations in both mc_rtc_ticker and Choreonoid environments, and the results were the same.

I ran these simulations in both mc_rtc_ticker and Choreonoid environments, and the results were the same.


Gnosis missing transaction

Describe the bug
A transaction going from Gnosis to BSC is missing on the explorer and there are no special subgraph or CORS errors.
To Reproduce
Steps to reproduce the behavior:

Go to Connextscan
Search for the Gnosis TX 0x363ecf0d5238776660ed159d3fe5b2a1c4152260117805fb3ab3090350917856
Alternatively:
Go to Connextscan
Search for the Connext TX 0x71a9ffe0f747f557d06af66407193485f5f5b5c50ce4083c2d0477bd8eb8bed1

Additional context
Link to the prepare transaction on Gnosis https://blockscout.com/xdai/mainnet/tx/0x363ecf0d5238776660ed159d3fe5b2a1c4152260117805fb3ab3090350917856/logs
From the logs I pulled the transaction ID and tried looking it up on Connextscan and on LogDNA, found nothing special and the tx is missing from Connextscan.
https://connextscan.io/tx/0x71a9ffe0f747f557d06af66407193485f5f5b5c50ce4083c2d0477bd8eb8bed1

Note: The user input a wrong destination address of which he has no control of, so they'll wait for expiration in 72hs. The issue is not urgent.

More people with the same issue are coming to the Discord.

https://connextscan.io/tx/0xdf06e4fbe4d1a480de804817b81c32ef8147fe089024f7e5f2c3bd5fb856f6af
https://connextscan.io/tx/0x5b2ea32c93e3eaf4a374207c36875edb8eee6b231d0efd3f64d000c1df70df00

Found that Bware subgraph is stuck. Switched it for Graph subgraph. Should be resolved shortly.


_context: use artifact caches from the parent project for junctions

This makes a junction use the artifact cache of the parent project before the ones defined for the junction
This was originally done in 24c0de16faec2b8b9bd6a03504ce951dc49afbe2, but regressed at some point
Fixes https://github.com/apache/buildstream/issues/1839

commit 24c0de16faec2b8b9bd6a03504ce951dc49afbe2 was intentionally reverted as part of https://gitlab.com/BuildStream/buildstream/-/merge_requests/1403.
The remote cache configuration was later redesigned in #1434.
I have to dive deeper to figure out whether this is a correct bug fix, but want to make sure we don't unintentionally change the behavior. And we would also need to consider whether this behavior change may break any users.

I have to dive deeper to figure out whether this is a correct bug fix, but want to make sure we don't unintentionally change the behavior (away from the agreed design).

Yeah, the problem is that there is no agreed design. The mailing list post around #1434 didn't elaborate on this point precisely and my reading of it didn't seem to contradict my understanding of it. However, it was ultimately merged without much discussion.
My research didn't lead me to https://gitlab.com/BuildStream/buildstream/-/merge_requests/1403 (I wasn't on the mailing list back then). I still need to read the whole discussion around that change.
This change brings back the behaviour that we have been using for a long time on buildstream 1.x. I'll try to post on the mailing list with a summary of my research and make a case for this change.

And we would also need to consider whether this behavior change may break any users.

Do you have an idea of who these users might be? In all buildstream projects I worked on, this is the right thing to do.

I just thought of one case that might be affected. Currently child project can have a tiny cache that only fits its own artifacts and I parent project artifacts will be pulled from parent project cache instead. This is disk storage vs network problem. Usually disk storage problem is of course easier to resolve than network. So maybe the ideal solution would be allow-parent-project-artifacts with default value True that can optionally be set to False if you really know what you're doing.


Write an article about scrumlr.io on inovex.de

Write an article about scrumlr.io, comparble to the landing page of inoCube, on inovex.de.
The arcticle can e.g. highlight the USPs of scrumlr.io as well as our great team.

as soon the

Landingpage
Emotions on notes
Reactions

are done!


firewalld

Project description
I'm really just wondering if there's any possibility NixOS will adopt firewalld as a native firewall option?
It seems odd that we have similar options like Shorewall packaged up but not firewalld.
I see there was an effort to package this previously which was then reverted but haven't seen any lively discussion on the topic so thought I'd kick things off.
Metadata

homepage URL: https://firewalld.org/
source URL: https://github.com/firewalld/firewalld
license: gpl2
platforms: linux

We have firewalld but specifically compile NetworkManager without firewalld support.
For server use, it's probably not worth the effort, but I would love to have proper support for workstations.
I have it on my list although that admittedly doesn't mean very much.

firewalld is currently packaged (https://github.com/NixOS/nixpkgs/blob/nixos-22.05/pkgs/applications/networking/firewalld/default.nix) but also unusable (at least on unstable / 22.11pre):
systemd[1]: firewalld.service: Service has no ExecStart=, ExecStop=, or SuccessAction=. Refusing.

# /etc/systemd/system/firewalld.service
[Unit]

[Service]
Environment="LOCALE_ARCHIVE=/nix/store/c07saix6160gvdhs78a35hmh4xxcwpc6-glibc-locales-2.35-163/lib/locale/locale-archive"
Environment="PATH=/nix/store/n95s7s6ilkjc7xwqml93acxzj6k0hsfn-coreutils-9.1/bin:/nix/store/k0kpf3r2k1d8p9h0gmx23msw3qrybkfk-findutils-4.9.0/bin:/nix/store/ix6nn9lwp2w04agkfb1wzwvcnis0mmxw-gnugrep-3.7/bin:/nix/store/5mgbisml783jj5mscxjsr4hlbmn25cyr-gnused-4.8/bin:/nix/store/hhwkvh589y34p6znr2rcv28zw9afjccj-systemd-251.4/bin:/nix/store/n95s7s6ilkjc7xwqml93acxzj6k0hsfn-coreutils-9.1/sbin:/nix/store/k0kpf3r2k1d8p9h0gmx23msw3qrybkfk-findutils-4.9.0/sbin:/nix/store/ix6nn9lwp2w04agkfb1wzwvcnis0mmxw-gnugrep-3.7/sbin:/nix/store/5mgbisml783jj5mscxjsr4hlbmn25cyr-gnused-4.8/sbin:/nix/store/hhwkvh589y34p6znr2rcv28zw9afjccj-systemd-251.4/sbin"
Environment="TZDIR=/nix/store/3sfzh696qxfjqvzn9jxcsrs1q01951pn-tzdata-2022c/share/zoneinfo"

Just having it packaged isn't enough. We need it integrated into the NixOS module system. I haven't had a strong motivation to actually work on that since nftables works well enough for my use cases. But yes, we absolutely should have proper support for firewalld.

The PR to add module support was closed. Is anyone else willing to add support for firewalld?

Just wanting to add to the voices that firewalld support seems like a good thing.
I saw a few comments on the Discourse along the lines of "you can open ports, for other stuff you can add iptables rules". While true, the use-case of "laptop connecting to > 1 network" is likely common enough to make firewall zones a justifiable security win.

Please, add firewalld support


prompt engineering

Added Prompt Engineering examples
Restructured notebooks: added fine_tuning and prompt_engineering subfolders

PR I mentioned @mshtelma


Work on CI

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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.706%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
176

Relevant Lines:
422

💛  - Coveralls


Update gherkin/reference.md

Adds missing link to keyword reference
Modifies explanations for clarity in the following sections:
Comments
Example
When
Then
And, But

Not sure why you closed this @selfeki - the changes look good to me.


State change

When selecting from the tab bar, the states of the views are not preserved. how can i prevent this state
https://github.com/zijievv/swiftui-tab-bar/assets/71706970/a15c9c93-5868-420f-a681-31d2c1d23314

@fatihdurmaz Which version of the package are you using? Only 0.2.3 and later can preserve the state when switching tabs.

Updating package  solved problem thnks


Query parameters not shown on the page "Test Request" for type Enum with integer values.

What happens?
For query params (GET-method) for schema Enum with type "integer" not shown in "Test Request" Query Parameters.
But for Enum with type "string" everything is fine.
What did you expect to happen?
I expected to see in the "Test Request" Enum-parameters with the type "integer".
OpenAPI Document
No response

openapi.json
Not working!
In my example query parameter "locale_id" (Enum with integer values) not shown on the page "Test Request".

Not working!
New issue:  #3681


[Skype for Business] doesn't support FormFlow in Skype for Business channel.

I have simple FormFlow. It works in other channel but doesn't work in SfB channel.
The same with PromptDialog.Text.

Any pointer or confirmation regarding this issue?

You need to give more details, then we can help you. C# or Node? Have you debugged to see why it is not working?
Regards Michael
Sent from Mail for Windows 10
From: Michael
Sent: 05 June 2017 11:36
To: Microsoft/BotBuilder
Cc: Subscribed
Subject: Re: [Microsoft/BotBuilder] [Skype for Business] doesn't supportFormFlow in Skype for Business channel. (#2856)
Any pointer or confirmation regarding this issue?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.


How to make button and card disable

How to make button and card disable:
I want to disable the button and want to show the user that the [Neumorphic] button/card-view is disabled.

The link cannot be reached.
Can you share the design again?


simple copilot chat mode

I want the chat function to support multiple sessions and keep session records, just like gpt3.5. I can define my own prompts and respond quickly without collecting context, which helps to quickly write some simple functions, such as:
I enter the function description, please return a function name, require camel case naming, and start with test.
Most of the time I will ask to name it like this, but every time I have to switch to gpt, and the built-in copilot chat is not very useful because it always collects data and then returns the results slowly, and there is no prompt. Session recording. Request to add such a simple copilot chat that remembers sessions, does not collect contextual information, and supports custom prompts
If it can be adopted, it will solve the steps for me to switch to gpt, improve the usage of copilot chat, and you can collect the developers' prompts and understand the developers' needs.

You can switch to previous sessions by using the "Show Chats" command, it has a button at the top of the chat view. Does that help?
Besides that, I don't really understand your request, please explain some more


Add a guide for customizing the theme

It would be amazing if you could make a small guide teaching how to add more content (like another cat file at the end, or another tree between the cat and the tree), what files should be edited and how.
Thank you in advance, it is a really simple and nice theme.

In the current implementation, using the same command more than twice requires a radical redefinition of config.toml and many file changes. Therefore, it may be difficult to create a guide right now.
However, I will add it to one of the feature requests.

wasn't that hard like you were acting bro I only HTML and some CSS all you have to do was follow the damn train CJ!! lol sorry all you had to do what point to me direction

index.html is written using the Hugo Template.
I've written a guide to customizing the terminal here.
I'm hoping to rewrite the terminal customization using Hugo's features(i.e. shortcodes), and this may change in future updates.

In the current implementation, using the same command more than twice requires a radical redefinition of config.toml and many file changes. Therefore, it may be difficult to create a guide right now.
However, I will add it to one of the feature requests.

bro, it wasn't that hard like you were acting like it's very big to deal to customize it.  I hope you don't mind If I use it btw what language is it in the index.html file? I customized it but still don't know lol..

Edit Here's the final version ;)

Your terminal page looks great. Can you show the source on how to make this modification to the theme? Having some difficulty to create a new tree section even after following the guide. Thanks!

sent you an invite to the repo you can download and compare to your code. :)


Remove _mappings from create mapping url

Description
_mappings and mappings should not be specified at the same time when sending out create mapping request If index doesn't exist, the url should not include _mappings as part of it's path, otherwise it will throw index not exist error If index already exists, the mappings object should not be included in the body, other wise it will throw mapping parse error exception
Signed-off-by: xluo-aws<EMAIL_ADDRESS>Issues Resolved
https://github.com/opensearch-project/documentation-website/issues/1174
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@xluo-aws Thank you for catching this!


Error int instead of FFI\CData

Error occurred when Stefan updated nextcloud with Storj as main storage. OS was unchanged.
This shouldn't ever happen.
TypeError: Argument 2 passed to Storj\Uplink\Project::__construct() must be an instance of FFI\CData, int given, called in /var/www/nextcloud/apps/storj/vendor/storj/uplink/src/Access.php on line 67 and defined in /var/www/nextcloud/apps/storj/vendor/storj/uplink/src/Project.php:35
Stack trace:
#0 /var/www/nextcloud/apps/storj/vendor/storj/uplink/src/Access.php(67): Storj\Uplink\Project->__construct()
#1 /var/www/nextcloud/apps/storj/lib/ProjectFactory.php(15): Storj\Uplink\Access->openProject()
#2 /var/www/nextcloud/apps/storj/lib/ProjectFactory.php(16): OCA\Storj\ProjectFactory::OCA\Storj\{closure}()
#3 /var/www/nextcloud/apps/storj/lib/StorjObjectStore.php(33): OCA\Storj\ProjectFactory::fromParams()
#4 /var/www/nextcloud/lib/private/legacy/OC_Util.php(127): OCA\Storj\StorjObjectStore->__construct()
#5 /var/www/nextcloud/lib/private/legacy/OC_Util.php(301): OC_Util::initObjectStoreRootFS()
#6 /var/www/nextcloud/lib/private/Files/Mount/Manager.php(91): OC_Util::setupFS()
#7 /var/www/nextcloud/lib/private/Files/Filesystem.php(334): OC\Files\Mount\Manager->find()
#8 /var/www/nextcloud/lib/private/Files/View.php(1156): OC\Files\Filesystem::resolvePath()
#9 /var/www/nextcloud/lib/private/Files/View.php(601): OC\Files\View->basicOperation()
#10 /var/www/nextcloud/lib/private/Files/Node/File.php(56): OC\Files\View->file_get_contents()
#11 /var/www/nextcloud/lib/private/Files/SimpleFS/SimpleFile.php(90): OC\Files\Node\File->getContent()
#12 /var/www/nextcloud/lib/private/App/AppStore/Fetcher/Fetcher.php(166): OC\Files\SimpleFS\SimpleFile->getContent()
#13 /var/www/nextcloud/lib/private/App/AppStore/Fetcher/AppFetcher.php(186): OC\App\AppStore\Fetcher\Fetcher->get()
#14 /var/www/nextcloud/lib/private/Installer.php(433): OC\App\AppStore\Fetcher\AppFetcher->get()
#15 /var/www/nextcloud/lib/private/Updater.php(413): OC\Installer->isUpdateAvailable()
#16 /var/www/nextcloud/lib/private/Updater.php(274): OC\Updater->upgradeAppStoreApps()
#17 /var/www/nextcloud/lib/private/Updater.php(133): OC\Updater->doUpgrade()
#18 /var/www/nextcloud/core/Command/Upgrade.php(235): OC\Updater->upgrade()
#19 /var/www/nextcloud/3rdparty/symfony/console/Command/Command.php(255): OC\Core\Command\Upgrade->execute()
#20 /var/www/nextcloud/3rdparty/symfony/console/Application.php(1009): Symfony\Component\Console\Command\Command->run()
#21 /var/www/nextcloud/3rdparty/symfony/console/Application.php(273): Symfony\Component\Console\Application->doRunCommand()
#22 /var/www/nextcloud/3rdparty/symfony/console/Application.php(149): Symfony\Component\Console\Application->doRun()
#23 /var/www/nextcloud/lib/private/Console/Application.php(211): Symfony\Component\Console\Application->run()
#24 /var/www/nextcloud/console.php(99): OC\Console\Application->run()
#25 /var/www/nextcloud/occ(11): require_once('/var/www/nextcl...')

php --version
PHP 7.4.25 (cli) (built: Oct 23 2021 21:53:50) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.25, Copyright (c), by Zend Technologies

I have inserted the following code at the line before the error occurs:
var_dump($projectResult);
var_dump($projectResult->project);

And this gives the following output:
object(FFI\CData:struct UplinkProjectResult)#5429 (2) {
  ["project"]=>
  object(FFI\CData:struct UplinkProject*)#5426 (1) {
    [0]=>
    object(FFI\CData:struct UplinkProject)#5425 (1) {
      ["_handle"]=>
      int(2)
    }
  }
  ["error"]=>
  NULL
}
object(FFI\CData:struct UplinkProject*)#5426 (1) {
  [0]=>
  object(FFI\CData:struct UplinkProject)#5425 (1) {
    ["_handle"]=>
    int(2)
  }
}

object(FFI\CData:struct UplinkProjectResult)#5403 (2) {
  ["project"]=>
  object(FFI\CData:struct UplinkProject*)#5402 (1) {
    [0]=>
    object(FFI\CData:struct UplinkProject)#5401 (1) {
      ["_handle"]=>
      int(4)
    }
  }
  ["error"]=>
  NULL
}
object(FFI\CData:struct UplinkProject*)#5402 (1) {
  [0]=>
  object(FFI\CData:struct UplinkProject)#5401 (1) {
    ["_handle"]=>
    int(4)
  }
}

object(FFI\CData:struct UplinkProjectResult)#5379 (2) {
  ["project"]=>
  object(FFI\CData:struct UplinkProject*)#5377 (1) {
    [0]=>
    object(FFI\CData:struct UplinkProject)#5378 (1) {
      ["_handle"]=>
      int(6)
    }
  }
  ["error"]=>
  NULL
}
object(FFI\CData:struct UplinkProject*)#5377 (1) {
  [0]=>
  object(FFI\CData:struct UplinkProject)#5378 (1) {
    ["_handle"]=>
    int(6)
  }
}

object(FFI\CData:struct UplinkProjectResult)#5378 (2) {
  ["project"]=>
  object(FFI\CData:struct UplinkProject*)#5374 (1) {
    [0]=>
    object(FFI\CData:struct UplinkProject)#5376 (1) {
      ["_handle"]=>
      int(8)
    }
  }
  ["error"]=>
  NULL
}
object(FFI\CData:struct UplinkProject*)#5374 (1) {
  [0]=>
  object(FFI\CData:struct UplinkProject)#5376 (1) {
    ["_handle"]=>
    int(8)
  }
}

object(FFI\CData:struct UplinkProjectResult)#5375 (2) {
  ["project"]=>
  object(FFI\CData:struct UplinkProject*)#5373 (1) {
    [0]=>
    object(FFI\CData:struct UplinkProject)#5370 (1) {
      ["_handle"]=>
      int(10)
    }
  }
  ["error"]=>
  NULL
}
int(0)

It shows that the line executes 4 times correctly but the 5th time it seems to have an issue dereferencing the pointer correctly.

I observer that 5375 = 0x14FF  which ends in 0b11111111 which may be interpreted as something unexpected.

I ran a Debian container with the exact same versions as listed and UplinkProjectResult as object #5375 but I was not able to reproduce the problem.

When I a cast to the correct type using FFI::cast and FFI::addr I am able to eliminate the problem. However every time I fix this problem a similar problem pops up elsewhere in the code.
Other things I've tried:

disabled Scope::__destruct to be sure that this is not bug with use-after-free
cached the loading of C definitions so that it is not loaded multiple times in the same process. This seemed to help a bit?
updated php to 7.4.28
restarted fpm

After a reinstall of the nextcloud storj app (including this library) things were fine again. I have no actionable items so I will close this issue.


Remove n_users from RBM constructor

Description

Removed n_users argument from RBM constructor as it is not needed there. (It is only needed in the fit function and equals to the number of rows in the training set.)
Related Issues

Checklist:

[x] I have followed the contribution guidelines and code style for this project.
[x] I have added tests covering my contributions.
[x] I have updated the documentation accordingly.
[x] This PR is being made to staging branch and not to main branch.

Codecov Report

Merging #1622 (48a9154) into staging (cf7bfd8) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff            @@
##           staging    #1622   +/-   ##
========================================
  Coverage    56.68%   56.68%
========================================
  Files           88       88
  Lines         8956     8956
========================================
  Hits          5077     5077
  Misses        3879     3879

Flag
Coverage Δ

pr-gate
56.68% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

recommenders/models/rbm/rbm.py
83.60% <100.00%> (ø)

Continue to review full report at Codecov.

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


Add some more JS projects

Issue Type:

[ ] Bug Report
[x] Feature Request
[ ] Documentaion

Add some new projects just create a new issue describe about your ideas and start working on it

Hey @arpit456jain  i want to add movie search app using api
so should make a new issue or it will be assigned in this issue

@Atif0604 make a new issue

could you please assign me on this issue i will be adding some more js project

@Skapsime make a new issue for a new project (separate issue for different  project)

@Skapsime make a new issue for a new project (separate issue for different project)

okay


[Code health] Stop using LiveData for event streams

We currently use custom Action and Event classes as stateful wrappers to ensure events are not reemitted to views when restored. The reason the values are replayed is because we are using LiveData to model events in these cases instead of UI state. If we use Obvserables backed by PublishSubject we won't have this issue.
@scolsen @shobhitagarwal1612 FYI.

Just to clarify, the proposal here would be to:

Use PublishSubject as a replacement for all cases of LiveData<Event> or LiveData<Action>

And then I would assume to:

Remove Event and Action?

Just to clarify, the proposal here would be to:

Use PublishSubject as a replacement for all cases of LiveData<Event> or LiveData<Action>

And then I would assume to:

Remove Event and Action?

Likely changes under our switch to coroutines, but still relevant.


Missing information to identify the necessary app

You are listing some apps and noting the list is not complete due to ongoing changes.  Ok but then you must include the information on how to find the correct app item to target via Azure sign-in log details.  Is it the "Application ID" or maybe the "Resource ID" or maybe something else in the log?  Or maybe its in the error message when being blocked by CA?  We need better info here please!

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

ID: 1c6d2ea9-04c9-d4e5-36b5-2ce7e17192e1
Version Independent ID: eff8d31c-d3ce-f72c-22ab-53b415b221b0
Content: Cloud apps, actions, and authentication context in Conditional Access policy - Microsoft Entra
Content Source: articles/active-directory/conditional-access/concept-conditional-access-cloud-apps.md
Service: active-directory
Sub-service: conditional-access
GitHub Login: @MicrosoftGuyJFlo
Microsoft Alias: joflore

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

@ssmiller60 does this help https://learn.microsoft.com/azure/active-directory/conditional-access/troubleshoot-conditional-access#service-dependencies
The sign in log will tell you what service was called

@MicrosoftGuyJFlo
Thanks for your inputs.
@ssmiller60
if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.

@ssmiller60
We are going to close this thread as resolved but if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation


Support rootless docker

I have no issues running the test network with regular docker.
I use another machine and try with rootless docker.  Everything is fine untill I run
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-java -ccl java
It gives the following error
BUILD SUCCESSFUL in 1m 7s
10 actionable tasks: 10 executed
~/project/fabric-samples/test-network
Finished compiling Java code
+ peer lifecycle chaincode package basic.tar.gz --path ../asset-transfer-basic/chaincode-java/build/install/basic --lang java --label basic_1.0
+ res=0
Chaincode is packaged
Installing chaincode on peer0.org1...
Using organization 1
+ peer lifecycle chaincode install basic.tar.gz
+ res=1
Error: chaincode install failed with status: 500 - failed to invoke backing implementation of 'InstallChaincode': could not build chaincode: docker build failed: docker image inspection failed: Get "http://unix.sock/images/dev-peer0.org1.example.com-basic_1.0-6876d12ac53537c539236c077d467998cbf46c251cb6f7e040dc158f9c8f669b-2e904ec07b6bf158428a13844d5c88e8c4406124ba90c33894da4bcfae4751c5/json": dial unix /host/var/run/docker.sock: connect: permission denied
Chaincode installation on peer0.org1 has failed
Deploying chaincode failed

I have no issues running the test network with regular docker.
I use another machine and try with rootless docker. Everything is fine untill I run
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-java -ccl java
It gives the following error
BUILD SUCCESSFUL in 1m 7s
10 actionable tasks: 10 executed
~/project/fabric-samples/test-network
Finished compiling Java code
+ peer lifecycle chaincode package basic.tar.gz --path ../asset-transfer-basic/chaincode-java/build/install/basic --lang java --label basic_1.0
+ res=0
Chaincode is packaged
Installing chaincode on peer0.org1...
Using organization 1
+ peer lifecycle chaincode install basic.tar.gz
+ res=1
Error: chaincode install failed with status: 500 - failed to invoke backing implementation of 'InstallChaincode': could not build chaincode: docker build failed: docker image inspection failed: Get "http://unix.sock/images/dev-peer0.org1.example.com-basic_1.0-6876d12ac53537c539236c077d467998cbf46c251cb6f7e040dc158f9c8f669b-2e904ec07b6bf158428a13844d5c88e8c4406124ba90c33894da4bcfae4751c5/json": dial unix /host/var/run/docker.sock: connect: permission denied
Chaincode installation on peer0.org1 has failed
Deploying chaincode failed

did you try with sudo as follows :
sudo ./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-java -ccl java


Setting RACK_TIMEOUT_WAIT_TIMEOUT to false/0 on Heroku causes all requests to timeout

We were previously using 0.4.x and setting wait_timeout to 0 via ENV variables and this worked to disable the wait timeout.
Upgrading to 0.5.x, removing the initializer and relying on RACK_TIMEOUT_WAIT_TIMEOUT set to 0 (I also tried false) then caused all of our requests to timeout as it seems to actually check against a 0 value for timeout. We then receive the following exception:
<Rack::Timeout::RequestExpiryError: Request older than 0ms.>
Setting RACK_TIMEOUT_SERVICE_TIMEOUT to 0/false appears to work as expected.

0.5.1 has been released with the fix from #133. I was able to create both a test case in 748ef83, so should be all set, but let me know if you have any troubles.


when will the code release?

Another controlvideo project code is released, when will this project release?

Sorry for the late, the code has been released.


Issue#10: Queues should be sorted by their names in queues page

Fix for #10

LGTM. This fixes #11


Remove .d.ts suffix for imports

A little detail but the suffix '.d.ts' is not required for typescript imports (https://www.typescriptlang.org/docs/handbook/module-resolution.html).
The ts linter tell me [ts] An import path cannot end with a '.d.ts' extension. Consider importing '../../index' instead..

Cool. Thanks!