FOODON unsatisfiable classes killing ENVO build

Hi @Public-Health-Bioinformatics
seems the hydra won't die so easily:
https://travis-ci.org/EnvironmentOntology/envo/jobs/371051125#L2137-L2460
@cmungall I've updated robot and re-imported FOODON, but still get these errors.
It also seems that FOODON's build checking routine is still not actually testing anything as far as reasoning goes:
https://travis-ci.org/FoodOntology/foodon

Weirdly, we may still be pulling in an older version.
The label of FOODON_03315150 in our build report isn't the same as the label at the end of the PURL.

It may also be caused be FOODON now treating these classes as information artifacts, which has made some of ENVO's axioms break. See this line in the report. Checking this now.

Thanks for tracking this down @marieALaporte!
(if you get a chance can you paste in a screenshot of the Protege explanation - it's a nice demonstration of how we use reasoning and can help when others come onto a project. Not urgent though).
First we need to get the right QC in place for foodon so these don't leak out in the first place. It looks like the imports don't include BFO and disjointness axioms.
Second we need a workaround for ENVO. This may be only taking classes that are subclass of food product, and not doing the full SLME

@Public-Health-Bioinformatics Many of the information-based subclasses have defs that read like those of material entities. In fact, I'd assume most FOODON users (including ENVO) would want to reference food rather than information about food. Would we have that possibility?

What would really help is if FOODON can make a new release, and make a subset that is only subclasses of classes that don't inherit this. We can do this using robot in the envo pipeline but always better to have fixes upstream
(or better, if it can be fixed altogether)

The "categorical tree specification" class was something our ontology form builder software was using to find picklists of food products items to populate forms with, but I see that's not going to work as a direct class so I'll pop a relation in there between categorical tree specification and the material classes that describe foods.  Sorry I didn't see that coming.

@Public-Health-Bioinformatics  many of the errors are of the kind:
fungal food product

'food product by organism'
 and 'food material'
 and ('derives from' some 'fungus (food source)')

The label should make it clear this is a value specification. If you can change them to something like this:
'food product by organism specification'
  and about some
    ('food material' and 'derives from' some 'fungus (food source)')

I think they would be better. Note that food source is unrooted. It would have to be a material entity for this to work. It reads like it should be. You should take the NCBITaxon entry for these (or aggregates of taxa) and give then a food source role. You could either do this in the axioms:
('food material' and 'derives from' some (Fungi and 'has role' some 'food source role')

or precompose food source classes like:
'edible fungus' subClassOf Fungi and 'has quality' some edible
or
'edible fungus' subClassOf Fungi and 'has quality' some 'food source role'

As noted above, most of these langual imports (e.g. food source) are referring to material things in their definitions. I'm not sure it's semantically sound to keep these in an IAO branch.

I tried to separate out the foodon / LanguaL items that seemed strictly information content entity subclasses:

dietary use/label claim
extent of heat treatment
taxanomic rank
adjunct characteristic of food - though this last branch I see has a number of items (like color and "biotechnologically derived food") that would fit better elsewhere so I'll revise today.

Anything else in FoodOn that ended up inferred as under IAO is an unintended inference at this point.

So to fix "categorical tree specification" I would move to have "food product type", "food source" and "food treatment process" etc. all become "SubClassOf 'member of' some 'categorical tree specification'".  This will stop them all from becoming IAO's.  (Or I create a new relation for this, say "has specification type" if "member of" has too broad a collection semantic?)

Ok, I've prepared a release which has the categorical tree spec. fix in it. In next few days I'll try integrating BFO top level axioms so I can at least spot BFO related reasoner issues.

Is there a way to have OntoFox import the DisjointClasses axiom(s)?  If not I guess I have to manually bring in the BFO owl file.

Also I'm at a loss about why FoodOn isn't triggering a travis test. I've just upgraded robot, btw.
Anything I can do at my end in https://github.com/FoodOntology/foodon/blob/master/.travis.yml ?

this seems fine:
https://travis-ci.org/profile/FoodOntology

@Public-Health-Bioinformatics

adjunct characteristic of food - though this last branch I see has a number of items (like color and "biotechnologically derived food") that would fit better elsewhere so I'll revise today.

Sounds PATO:quality-like

So to fix "categorical tree specification" I would move to have "food product type", "food source" and "food treatment process" etc. all become "SubClassOf 'member of' some 'categorical tree specification'". This will stop them all from becoming IAO's. (Or I create a new relation for this, say "has specification type" if "member of" has too broad a collection semantic?)

It still looks like it will be confusing and semantically (i.e. according to many of the definitions) iffy.
If the def is about a process, it should be a process, not an information artifact. For any process "P", you can create an information artifact class "P specification" which is about that process (not sure of member of here) if needed (why is it needed?)
Most of the others really sound like material entities.

Is there a way to have OntoFox import the DisjointClasses axiom(s)? If not I guess I have to manually bring in the BFO owl file.

You should be able to do this all with ROBOT and owltools.
You can run the latest version of @cmungall 's ontology-starter-kit in a dummy directory to see what the makefile should look like (the mirror/import targets).

Also I'm at a loss about why FoodOn isn't triggering a travis test. I've just upgraded robot, btw.
Anything I can do at my end in https://github.com/FoodOntology/foodon/blob/master/.travis.yml ?
Note that "make test" after "make all" won't do anything in FoodOn's case. Is there a way to force test script to run?

@cmungall can probably spot that, it does seem you have a reasoning step here under the $(ONT).owl target. @cmungall is that were the errors should be thrown?

Arg. I don't want any of the food product items or processes to be IAO's really!  They already have a home under processes or material entities if you see their subClassOf axioms.
I loaded all of BFO + axioms  (via OntoFox) to test with reasoner but I see now I have to get RO axioms too.  Doing that now. (At moment when I run ELK I don't get the above inference contradiction).

It appears OntoFox doesn't include disjointWith axioms in its output files (even if one requests all axioms). I had to download BFO directly to get them. I'll raise that with OntoFox.

In summary, I'll drop using 'member of' some 'categorical tree specification' (or categorical value specification) due to the inheritance - looks like its the transitivity of 'part of' that is making this happen.
The use of this 'categorical tree specification' class is not core to FoodOn, but rather is part of a small set of terms used by our GEEM tool for grappling on to a given ontology to create form/data structure specifications for displaying and allowing data entry of food sample features. I do want to enable the GEEM components to be married with a given ontology by way of an import file but also want this to be BFO compatible of course.
The right relation doesn't seem to exist, so I think I'll have to make a new one. Whether this is can be an object relation or must be an annotation is a decision.

A different problem has surfaced now with full BFO axiomatization.  Chebi "Vitamin C" http://purl.obolibrary.org/obo/CHEBI_21241 is listed as a role while all the other vitamins are listed as chemical entities.  This leads to a contradiction when placed in the same list.

In GO we have a design pattern 'chemical entity' and has-role some

e.g. <your favorite brand> orange juice' SubClassOf 'has additive' some (chemical entity and has-role some 'vitamin C')

Yes, I don't mind that - its just that all the other vitamins in CHEBI are chemical entities, so vitamin D, E etc.  C is the only one that is a role!

raise it on their tracker!
On 26 Apr 2018, at 19:38, Damion Dooley wrote:

Yes, I don't mind that - its just that all the other vitamins in CHEBI
are chemical entities, so vitamin D, E etc.  C is the only one that is
a role!
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/FoodOntology/foodon/issues/42#issuecomment-384846543

ok, BFO related contradictions I think are resolved in new release.  Vitamin ticket submitted to CHEBI.

It appears OntoFox doesn't include disjointWith axioms in its output files (even if one requests all axioms). I had to download BFO directly to get them. I'll raise that with OntoFox.

Not sure you need them to throw these errors. These are coming from logic errors or class equivalencies.

In summary, I'll drop using 'member of' some 'categorical tree specification' (or categorical value specification) due to the inheritance - looks like its the transitivity of 'part of' that is making this happen.

Yes, you're mixing very different categories which don't follow the labels or definitions of the classes themselves. I don't think any of them should be information artifacts.

The use of this 'categorical tree specification' class is not core to FoodOn, but rather is part of a small set of terms used by our GEEM tool for grappling on to a given ontology to create form/data structure specifications for displaying and allowing data entry of food sample features. I do want to enable the GEEM components to be married with a given ontology by way of an import file but also want this to be BFO compatible of course.

Sure, but activities like this shouldn't mess with the hierarchies so profoundly. As said above, if you need information artifact classes, make new classes that are linked to the bona fide entities.

The right relation doesn't seem to exist, so I think I'll have to make a new one. Whether this is can be an object relation or must be an annotation is a decision.

Please explain the semantics of what exactly you're trying to do, we could probably figure it out.

Hmm, I'll address those - but is there a robot command that yields those error situations that I can run command line? At moment I'm flying blind until it does testing at envo end.  I can see the equivalencies now being stated in Protege when I run the ELK reasoner - but they're buried in the hierarchy so I won't be able to find them in the future until the test script is fixed/triggered in travis.
About the Ontofox disjointWith - I wasn't getting any contradictions in Protege with ELK reasoner and FoodON because there were no BFO disjointWith axioms in BFO_import.owl which is produced as Ontofox output file.  Ontofox folks are looking into whether disjointWith can be/should be included in their generated files.  But swapping in original BFO.owl has fixed that.
Indeed, GEEM shouldn't have any logical conflict with ontologies it connects to.  Originally I thought multi-homing terms would be ok (the ability of an ontology entity to hold more than one semantic sense at a time) but I see clearly that disjointWith nixes parts of that approach.  GEEM is all about creating data standard "wrappers" around ontology contents. I had approached this by using some object relations in the past, but have to switch one or two of these over to annotations to stop the impact on reasoning. I'll follow up more directly with you on the use cases there.

Done new release, should fix above errors.
About the equivalencies.  For the most part the food product categories in SIREN are making good class distinctions but occasionally curation errors were made in the first semi-automated import, and I'm manually spotting and recovering from those. And still some term merging, e.g. 'plant leaf vegetable food product' to reference 'leaf', but that invited also Langual leaf conversion to Plant Ontology leaf.

Seems to have fixed our build :+1:
Perhaps it's best to stick to asserting subclass axioms rather than equivalence axioms in the raw development phases? You'd still be able to query, but would avoid running into these errors.
However, there are a few of orphan classes at the top level that may need cleanup (not breaking any builds though):

Interestingly, the number of orphan classes seems to go up in the ENVO mirror of FOODON (@cmungall any thoughts here? Is this an import chain issue?):

Ok, good.  I've found that ELK doesn't catch all equivalency issues – so started also testing against Fact or Hermit too.
Orphans are a result of an updated include file I forgot to position new items of.  They'll go away next refresh.
(I can't quite spot a pattern in list of orphans you have for envo mirror of foodon – seems like an item's parent class is missing here and there, yet its sibling isn't in orphan list).
D.

@Public-Health-Bioinformatics, Are you tagging these releases? The last one I see is from 2017. Good to have tracking here.

Ok, good. I've found that ELK doesn't catch all equivalency issues – so started also testing against Fact or Hermit too.

I ran   robot reason -i foodon.owl -r ELK -v on a previous foodon.owl
 and it seems to highlight the equivalent classes.

Orphans are a result of an updated include file I forgot to position new items of. They'll go away next refresh.

Great, thanks. ETA? We don't strictly need this for the release but I'd like to refresh ENVO once that's done.

(I can't quite spot a pattern in list of orphans you have for envo mirror of foodon – seems like an item's parent class is missing here and there, yet its sibling isn't in orphan list).

It's a bit occult right now. Will let you know if we find out more.

About release tagging, I was hesitating to stamp a new one until a smaller backlog of SIREN food products are positioned.  But I can mint a release regardless if you like.
In addition the version id of foodon does change, it states the publishing day.

I've just made a 0.4 alpha pre-release.


connect four program

Type of change

[ ] Added new project - Yes
[ ] Bug fix - No
[ ] New features  - No
[ ] Enhanced documentation - No

Changes proposed in this pull request

Project name :

Connect Four

Short description :

Connect4 game is also known as Four Up, Plot Four, Find Four, Captain’s Mistress, Four in a Row, Drop Four, and Gravitrips in the Soviet Union.
It is a two-player connection board game, in which the players choose a color and then take turns dropping colored discs into a seven-column, six-row vertically suspended grid.
Checklist

[ ] The code is Python 3 compatible - Yes
[ ] I have added relevant comments in my file to make code understandable - Yes
[ ] I have added my project in a folder which includes all the necessary files  - Yes

Looks good , thanks for contributing 👍


Kured upgrdation from 1.9.1 1.11.0 failed

Error: release kured failed, and has been rolled back due to atomic being set: cannot patch "kured" with kind DaemonSet: DaemonSet.apps "kured" is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{"app.kubernetes.io/instance":"kured", "app.kubernetes.io/name":"kured"}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable

https://github.com/kubereboot/charts/tree/main/charts/kured - upgrading  with helm from 2x to 3x there are few changes - you can refer that link

Thank for the solutions.


Create rule: Each StudyCell includes at least one Element.

Create rule defined for #50

Changed title to align with updated "Define rule" PBI

Will be possible with new cross-class joining.


🛡 Upgraded to Null Safety - at least, did all the setup.

Most of the resolutions have been made to make the package fully null-safe. However, an admin of this project (probably @hyochan - I am not sure) would have to complete step 5, specified in the migration docs.
This should resolve #267

I am glad I could help, @hyochan 🙂


HAWKULAR-1138 move to okhttp 3.x

@jmazzitelli LGTM. Will parent pom be released before this is merged?

Yes, parent-pom will be. See the JIRA and my thread on hawkular-dev for what is going on with all these PRs to move okhttp from 2.x to 3.x.

There is going to be a problem - when moving to commons 0.9.1 this compile error will occur:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project hawkular-apm-server-rest: Compilation failure: Compilation failure:
[ERROR] /home/mazz/source/hawkular-apm/server/rest/src/main/java/org/hawkular/apm/server/rest/filter/CorsFilter.java:[24,38] cannot find symbol
[ERROR] symbol:   class AbstractCorsResponseFilter
[ERROR] location: package org.hawkular.jaxrs.filter.cors
[ERROR] /home/mazz/source/hawkular-apm/server/rest/src/main/java/org/hawkular/apm/server/rest/filter/CorsFilter.java:[25,38] cannot find symbol
[ERROR] symbol:   class AbstractOriginValidation
[ERROR] location: package org.hawkular.jaxrs.filter.cors
[ERROR] /home/mazz/source/hawkular-apm/server/rest/src/main/java/org/hawkular/apm/server/rest/filter/CorsFilter.java:[32,33] cannot find symbol
[ERROR] symbol: class AbstractCorsResponseFilter
[ERROR] /home/mazz/source/hawkular-apm/server/rest/src/main/java/org/hawkular/apm/server/rest/filter/CorsFilter.java:[59,57] cannot find symbol
[ERROR] symbol:   class AbstractOriginValidation
[ERROR] location: class org.hawkular.apm.server.rest.filter.CorsFilter

This seems to be an across-the-board issue. inventory is fixing it this way: https://github.com/hawkular/hawkular-inventory/pull/323

And here is the PR: https://github.com/hawkular/hawkular-apm/pull/719

Nice! Thanks @jotak !!

Since PR #719 is separate from this okhttp upgrade, we'll leave that PR separate and merge it separate. We'll do it first then I'll rebase my PR on it and merge that. We'll do all of this when the time comes - I still need peer review on the rest of my PRs and be given a thumbs up to upgrade okhttp and release parent-pom first.

This is failing because PR #719 needs to be merged first. When that gets merged, rerun travis for this PR and it should go green.


deepvocal-Yuanxiao 0.95

[v] Have you signed the Contributor License Agreement?
[v] Have you checked that there aren't other open pull requests for the same manifest update/change?

Microsoft Reviewers: Open in CodeFlow

App does not install.

microsoft/winget-cli#152

Looks like this should be unblocked now


Git Ignore .vscode/*

https://github.com/infinitered/ignite/blob/master/ignite-base/.gitignore

also tsconfig as well.  Let's put this up in the .gitignore at the root as well.
Once we branch 1.2, we can remove ignite-base and the others.


Default arrow image shows for Custom prev/next arrow buttons..

Guidlines for posting new issue

Please replicate your issue with this jsfiddle and provide a link to it along with the issue description

Hi,
If I use my custom React component which uses icon and pass as prevArrow, nextArrow property, the default arrow image still shows behind my icon image.......ideally the default arrow image you are using should not be shown for custom components....

I tried doing that and I didn't get anything like that.
This is what I used:
    const prevArrow =
    const nextArrow =
    const settings = {
      dots: true,
      infinite: true,
      speed: 500,
      slidesToShow: 1,
      slidesToScroll: 1,
      prevArrow,
      nextArrow
    };

And I got very much expected results.


Create woke init fuzz command

woke init fuzz command will create the following directory structure:

pytypes (the same functionality as woke init types)
tests

__init__.py (empty)
test_example.py

Contents of test_example.py:
import IPython
from woke import Campaign
from woke.fuzzer.decorators import flow, invariant, precondition, weight, ignore, max_times
from woke.fuzzer.random import random_string, random_account, random_int, random_bool, random_bytes

class TestingSequence:
    def __init__(self):
        pass
        # sequence setup code goes here
        # this setup is run at the beginning of each sequence

        # for example, contracts can be deployed here (in case they are not deployed in `test_example` function)

    @flow
    def flow_test_example(self):
        pass
        # flow code goes here
        # at least one transaction should be performed in this flow
        # assertions can be also made here

    @invariant
    def invariant_test_example(self):
        pass
        # invariant code goes here

# custom pytest fixtures are not supported
# but it is possible to use brownie's predefined fixtures (see https://eth-brownie.readthedocs.io/en/stable/tests-pytest-fixtures.html)
def test_example():
    # optional setup code goes here
    # any transactions performed here will be common to all testing sequences

    # typically, brownie contract objects will be passed to the `TestingSequence` constructor
    campaign = Campaign(lambda: TestingSequence())

    # the first argument specifies the number of sequences (i.e. the number of independent fuzzer runs)
    # the second argument specifies the number of flows applied in each sequence
    campaign.run(1000, 400)

.

Implemented in #109.
Examples are stored in examples/fuzzer directory and copied to the project directory/tests when woke init fuzz is used


BIP39 Keystore not accessible from keystore parameter path

let userDir = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
     let ks = KeystoreManager.managerForPath(userDir + "/keystore")
    self.keystoreManager = ks
    web3rinky?.addKeystoreManager(ks)

    address = ks?.addresses?[0].address

crash when getting address from keystoremanager.
Error in latest version in CryptoSwift?

Did you previously create a BIP32 keystore and save it to that directory? Just in case

yeah i want to create hd wallet
let mnemonic = try! BIP39.generateMnemonics(bitsOfEntropy: 256)!
let keystore = try! BIP32Keystore(mnemonics: mnemonic, password: password, mnemonicsPassword: "")
let keydata = try JSONEncoder().encode(ks?.keystoreParams)
FileManager.default.createFile(atPath: userDir + "/keystore"+"/key.json", contents: keydata, attributes: nil)

@shamatar  I have just solved it...
let data = try Data(contentsOf: URL(fileURLWithPath: path), options: .mappedIfSafe)
let jsonResult = try JSONSerialization.jsonObject(with: data, options: .mutableLeaves)
let bip32keystore = BIP32Keystore.init(data)

Oh, I didn’t understand a question. Yes, you can either create a keystore from phrase and lib will save a necessary information to JSON that you can write to disk, or you can supply either Json string or data to recreate it from saved copy.

Please keep in mind that BIP 32 keystore JSON format is not standartized, so files are not compatible with other libs. For BIP32KEYSTORE keystore everyone just backups a seed phrase, it’s enough. Be sure to allow your users to backup a seed phrase after creation and destroy it after

@shamatar but connectionError in Send ether.

Please check your internet connection (if using Infura) or connection to the local node. If you are using Geth be sure to have —rpc flag and —rpccors if necessary

From: Shivang Pandey<EMAIL_ADDRESS>Sent: Friday, April 20, 2018 2:39:50 PM
To: BANKEX/web3swift
Cc: Alexander; Mention
Subject: Re: [BANKEX/web3swift] BIP39 Keystore not accessible from keystore parameter path (#68)
@shamatarhttps://github.com/shamatar but connectionError in Send ether.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/BANKEX/web3swift/issues/68#issuecomment-383069962, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AGKv9-nMX08amXAl0eB0Bh9-LSZXEsJFks5tqckFgaJpZM4TdJo7.

my internet is working fine and i am using infura and whenever i send i got invalid address.

Would you try a latest commit in master?

From: Shivang Pandey<EMAIL_ADDRESS>Sent: Friday, April 20, 2018 4:59:34 PM
To: BANKEX/web3swift
Cc: Alexander; Mention
Subject: Re: [BANKEX/web3swift] BIP39 Keystore not accessible from keystore parameter path (#68)
my internet is working fine and i am using infura and whenever i send i got invalid address.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/BANKEX/web3swift/issues/68#issuecomment-383105018, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AGKv91l8470lmDWbiGVZp5x2cBip_aLnks5tqenGgaJpZM4TdJo7.

@shamatar  yeah i installed latest version of web3swift. my code is send ether in bip32keystore...
` let contract = self.web3rinky?.contract(Web3.Utils.coldWalletABI, at: toaddress)
var options = Web3Options.defaultOptions()
options.value = Web3.Utils.parseToBigUInt(amount, units: .eth)
options.from = self.bip32keystore?.addresses?.first
let intermediate = contract?.method("fallback", options: options)
let result = intermediate?.send(password: pass)
                    let realert = UIAlertController(title: "Result is :", message: String(describing: result), preferredStyle: .actionSheet)

`

@shamatar Yeah it works in 0.5.6 version...


Add support for Unix sockets

Operating System: any
Node Version: 8+?
NPM Version: 5+?
webpack Version: 4+
webpack-serve Version: future

This issue is for a:

[ ] bug
[x] feature request
[ ] modification request

Code
CLI Command
  $ webpack-serve --socket socket

webpack.config.js
module.exports = {
  serve: {
    socket: 'socket'
  }
};

Expected Behavior
webpack-serve that supports Unix sockets.
Actual Behavior
webpack-serve that doesn't support Unix sockets.
How Do We Reproduce?

Run webpack-serve with a socket option.
Notice that webpack-serve does not support Unix sockets.

New Feature Use Case
Use case would be using a Unix socket to serve instead of a host:port.

WDS supported Unix sockets via devServer.socket. Will there be support in webpack-serve for Unix sockets as well?

Thanks for the isseue 🍺
This was deemed a non-essential, little-used feature of webpack-dev-server and was intentionally excluded from webpack-serve. This is probably a good fit for the add capability and a recipe for implementation.

Understood, and that makes sense considering the lightweight goal of this project.
I looked into setting it up as an add-on, but it looks like some of the core code is written with the assumption that there is a host and port that the server would use, whereas with sockets that is not the case, and so the change would need to happen at that core level, at least from what I saw in WDS's implementation of sockets. Perhaps there is an alternate approach that would work with webpack-serve's architecture?
I'd love to put together a recipe for an add-on to support Unix sockets, but at this point I'm at a loss with how to proceed.

I have virtually no knowledge of unix sockets or how they'd work in this context, so I'm not sure I'll be much help in an implementation in any context. As an option, you could fork webpack-serve and make ad-hoc changes to get it working for you, and I could examine and recommend how we might pair that with webpack-serve as it is presently.

@ryansully ping. totally open to putting this support together, but I'll need some more info.

Welp, if you ever want to circle back to this give me a ping. Closing for now.

@shellscape We start webpack on unix sockets very often at Airbnb. We have remote dev machines and reserving dedicated ports to run a given app on would be tedious, so we use unix sockets to work around that. I'm happy to make the required changes (which should be extremely minimal) and PR them back. Hopefully you would be receptive to them?

The trick here is that we need a viable set of tests around this in order to implement the feature. I'm open to it but the tests are an absolute must.

@shellscape That's fine, tests are easy. Unix sockets are supported natively in Node so you can just pass it to the listen call: https://github.com/webpack-contrib/webpack-serve/blob/83577936b95c02176028e38c0ffa65c2e4d27df8/lib/server.js#L130
Documented here: https://nodejs.org/api/net.html#net_server_listen_path_backlog_callback

Happy to review a PR.

@ryansully I'm really not familiar with how that's accomplished in WDS. your best bet is to put together a PR and we'll work through that.


Do not format field attributes

I want CSharpier to keep the attributes formatted as they are. Somewhere on the same line, somewhere - on different lines. Basically, I want constructions like this to be considered okay:
[Header("Event information")]
[SerializeField] private Building _pointOfInterest;
[SerializeField] private float _duration;

I use the following in my .editorconfig:
[*.cs]
place_attribute_on_same_line = false:warning
csharp_place_field_attribute_on_same_line = false:warning

Input:
public class Building : MonoBehaviour
{
    [SerializeField] private string _identifier;
    [SerializeField] private string _name;
    [SerializeField] private Sprite _cardImage;

    // ...

Output:
public class Building : MonoBehaviour
{
    [SerializeField]
    private string _identifier;

    [SerializeField]
    private string _name;

    [SerializeField]
    private Sprite _cardImage;

    // ...

Expected behavior:
Should not change, basically.
public class Building : MonoBehaviour
{
    [SerializeField] private string _identifier;
    [SerializeField] private string _name;
    [SerializeField] private Sprite _cardImage;

    // ...

Notes
Issue template says "option requests are out of scope". Does this count as an option request?
I leave the possibility that this may be an issue on my side. I use the following command in CI to lint-check my Unity project:
dotnet csharpier --check --loglevel Debug .

The .editorconfig file is located at the root of the repository.

The only editorconfig options CSharpier takes into consideration are
indent_style = space
indent_size = 4
max_line_length = 100

If you want to keep the formatting of your attributes you'd need to use some form of ignoring code

I would need to add this a lot of times then. Unity components have a lot of private-but-serialized fields and all of them use this one-line formatting. I found CSharpier to be the only formatter that does not require solution files and can work with just code, which allows to format before building in CI.

It's been a while since I've used Unity, but I imagine it won't care if you just let csharpier format the files. Attributes on their own line seems to be the standard in c#.

I know but it is way more convenient when attributes are located on the same line. I think this should be possible to change this behavior of the formatter, especially conidering that it understands attributes and their position. Just a simple flag like preserve_attribute_formatting would be a good addition.
Example: Attributes above fields. This is how CSharpier formats the code.
public class EventCard : MonoBehaviour
{
    [SerializeField]
    private Image _image;

    [SerializeField]
    private TMP_Text _title;

    [SerializeField]
    private TMP_Text _description;

    [SerializeField]
    private TMP_Text _rewards;

    [SerializeField]
    private TMP_Text _requiredMoney;

    [SerializeField]
    private TMP_Text _duration;

    [SerializeField]
    private Button _button;

    private EventData _eventData;

    public void UpdateUI()
    {
        // Reflect new data in the UI
    }
}

Example: Attributes inline with fields. This is how JB Rider formats the code.
public class EventCard : MonoBehaviour
{
    [SerializeField] private Image _image;
    [SerializeField] private TMP_Text _title;
    [SerializeField] private TMP_Text _description;
    [SerializeField] private TMP_Text _rewards;
    [SerializeField] private TMP_Text _requiredMoney;
    [SerializeField] private TMP_Text _duration;
    [SerializeField] private Button _button;

    private EventData _eventData;

    public void UpdateUI()
    {
        // Reflect new data in the UI
    }
}

Option requests are out of scope for csharpier.


GH877 -- Clear up descriptor state validation messages

Plumbed function name through for more descriptive error messages from validate_and_update_drawtime_descriptor_state().
Addresses #877 .

LGTM :+1:

Pushed to Master.
commit e7f1fab24ce4b59bce87246a510b7e52638f83d0
Author: Mark Lobodzinski<EMAIL_ADDRESS>Date:   Tue Aug 23 11:12:05 2016 -0600
layers: GH877, Clear up descriptor state messages

Plumbed function name through for more descriptive error
messages from validate_and_update_drawtime_descriptor_state().

Change-Id: I109e14e07e6a5ba29c45dc3e0ad075ff3575d67f


Feat: avatar rendering

Challenges to solve:

[x] Irrecoverable failures in LoadSystemBase only accepts strings. This is wont work for POST requests
[ ] We need some system that downloads DefaultWearableAssetBundles. If it fails, the game should go into a Dead State
[x] Budget wearable requests (DTO, Manifest and AB)
[x] Create a Cache class for Wearable Catalog
[x] Create a catalyst url fetcher after connecting to realm. Pass the URL catalyst to the plugins that require it (IE Wearables)
[x] Load AvatarBase from Addressables
[ ] Fix wearable by param tests

Closed since the  work was moved to the branch SimpleGPUSkinning_ComputeShader


Skip check instead of test in Gradle

Real yolo-programmers™ do not just skip tests, they skip all sorts of verification tasks because, you know, yolo. :)

Wonderful!


python311Packages.mailchecker: 6.0.1 -> 6.0.3

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python311Packages.mailchecker is: Module for temporary (disposable/throwaway) email detection
meta.homepage for python311Packages.mailchecker is: https://github.com/FGRibreau/mailchecker
meta.changelog for python311Packages.mailchecker is: https://github.com/FGRibreau/mailchecker/blob/v6.0.3/CHANGELOG.md
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 6.0.3 with grep in /nix/store/wq86dkvakhrslkdkj0na64zjmwbb4r1s-python3.11-mailchecker-6.0.3
found 6.0.3 in filename of file in /nix/store/wq86dkvakhrslkdkj0na64zjmwbb4r1s-python3.11-mailchecker-6.0.3

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

4 total rebuild path(s)

4 package rebuild(s)

First fifty rebuilds by attrpath
python311Packages.mailchecker
python311Packages.python-benedict
python312Packages.mailchecker
python312Packages.python-benedict

Instructions to test this update (click to expand)

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

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

Or:
nix build github:r-ryantm/nixpkgs/6dcc771c82a7ac8f3133d2602e0eacc74bc1b205#python311Packages.mailchecker

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/wq86dkvakhrslkdkj0na64zjmwbb4r1s-python3.11-mailchecker-6.0.3
ls -la /nix/store/wq86dkvakhrslkdkj0na64zjmwbb4r1s-python3.11-mailchecker-6.0.3/bin

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

8 packages built:

python311Packages.mailchecker
python311Packages.mailchecker.dist
python311Packages.python-benedict
python311Packages.python-benedict.dist
python312Packages.mailchecker
python312Packages.mailchecker.dist
python312Packages.python-benedict
python312Packages.python-benedict.dist

Maintainer pings
cc @fabaff for testing.

Result of nixpkgs-review pr 303600 run on x86_64-linux 1

8 packages built:

python311Packages.mailchecker
python311Packages.mailchecker.dist
python311Packages.python-benedict
python311Packages.python-benedict.dist
python312Packages.mailchecker
python312Packages.mailchecker.dist
python312Packages.python-benedict
python312Packages.python-benedict.dist


Find a better way of representing complex numbers types in Rust

I plan to land parsing and code generation support for complex types. My initial plan is landing it as a constant array of items, but that doesn't mean we can't do better.
We'd need to add a new TypeKind::Complex(ItemId), then use that to represent complex types. Then, at code generation, we can do something like what we do with unions, and conditionally prepend a prelude that might look like:
#[repr(C)]
#[derive(ABunchOfThings)]
struct __BindgenComplex<T> {
    real: T,
    imaginary: T,
};

With arithmetic operations on top of it.

The TypeKind::Complex differentiation will also be needed to correctly pass complex types by value to functions.

Hello,
Should we rely on num-complex if we want the arithmetic?
Then the prelude would be:
extern crate num_complex;
use num_complex::*;

Otherwise, we could also provide a compatible, dumb generic if we want to limit dependencies (the arithmetic seems quite involved). then the prelude would be:
#[derive(PartialEq, Copy, Clone, Hash, Debug, Default)]
pub struct __BindgenComplex<T> {
    pub re: T,
    pub im: T
}

Would that make sense?
Which option would be best?
I'd be interested in trying to add one option.
Thanks,
JP

I think avoid bindgen dependencies is nice, so I think I'd prefer the second option. Also, we can't rely on num_complex having the expected representation (the type needs to be repr(C)), and anybody that needs the arithmetic can do a straight-forward conversion from our representation to num_complex's.
So yeah, definitely the second option is preferred. If you need any help, please shout out, I'll be happy to help. Should be straight-forward (sort of what we do for union fields).


Bump-up insights-operator-utils to 1.14

Bump-up insights-operator-utils to 1.14

Fixed in https://github.com/RedHatInsights/insights-results-smart-proxy/pull/610


feat: Add raise_on_unexpected_status flag to Client

Close #491
Not sure this is the right approach. Just wanted to raise a PR to gather feedback :)

Hey @JamesHinshelwood, thanks for the contribution! I am wondering if maybe we should just expose the underlying httpx.Response object within our own Response class that comes back from the _detailed functions. Then folks could more easily do whatever they want with it after the fact (e.g., calling the raise_for_status method). It also would let them choose per-request which responses should generate exceptions instead of doing it at the client level which is more explicit and therefore (I think) better?
This could come in the form of subclassing (if it doesn't get too messy to mix in with generics) or as an inner attribute to which we delegate some methods for easier access.
What do you think?

Hey @JamesHinshelwood, thanks for the contribution! I am wondering if maybe we should just expose the underlying httpx.Response object within our own Response class that comes back from the _detailed functions. Then folks could more easily do whatever they want with it after the fact (e.g., calling the raise_for_status method). It also would let them choose per-request which responses should generate exceptions instead of doing it at the client level which is more explicit and therefore (I think) better?
This could come in the form of subclassing (if it doesn't get too messy to mix in with generics) or as an inner attribute to which we delegate some methods for easier access.
What do you think?

For my use-case, what I really want is an API where I can just call an endpoint and handle the 'expected' responses, then I would get an exception raised for anything unexpected. Even exposing the response directly wouldn't be ideal for me, because then I still need to convert the 'unexpected' response to exceptions myself.
I've realised though that 'expected' doesn't necessarily mean 200 <= x < 300. I think the better behaviour would be to throw if the returned status code was something not listed in the openapi specification. Looking at the generated code, I think this would effectively mean changing the else branch in _parse_response:
def _parse_response(*, response: httpx.Response) -> Optional[GoodResponse]:
    if response.status_code == 200:
        response_200 = GoodResponse.from_dict(response.json())

        return response_200
    # return None
    raise Exception(f"Unexpected status code: {response.status_code})

Also tagging @theFong @ramnes @johnthagen @JorgeGarciaIrazabal who expressed an interest in the discussion, but might have missed this PR.

I've updated this PR with what I (hopefully) described above. Let me know what you think.

Raising on 2xx responses doesn't feel right to me, why do you feel it's needed? A lot of APIs use 201 and 204, for example.

Raising on 2xx responses doesn't feel right to me, why do you feel it's needed? A lot of APIs use 201 and 204, for example.

If the openapi.yaml specification doesn't list a status code in the responses list, then I consider it 'unexpected' and thus raise an exception. Therefore, if the specification only lists 200 as the expected response code, then yes this PR will raise an exception for other 2xx statuses.

Ah, right, sorry! I thought you were always raising on non-200 status codes. LGTM. :)

This seems really important, otherwise you need the full _detailed in order to check whether None means "expected 204" or "unexpected error".
From @dbanty response, it looks like we are only 3 small steps away from getting this in?
@JamesHinshelwood if you are too busy, I'll be happy to help and nudge it along.

@gwenshap Thanks for the offer. It will be a while before I can look at this again. If you're willing to rebase and address @dbanty 's comments I'd be very grateful! I've given you access to my fork, but feel free to just take my commits and raise a new PR if preferred.


How to add fabform.io to your theme ?

Hello
Is there anyway you can add https://fabform.io to your theme?
Geoff
https://fabform.io

Yes, you can just add it on any page template or create your own template.

Should I assume that you got your answer ? @derrygeoff

I will close this issue now.


Video file last modified date is equal to the date of video upload in windows

Checklist

[X] I'm reporting a bug unrelated to a specific site
[X] I've verified that I'm running yt-dlp version 2021.12.01. (update instructions)
[X] I've checked that all provided URLs are alive and playable in a browser
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Description
This occurs for all video files that I've downloaded. According to properties, the file created date is correct but file last modified date is the upload date of the video, so file created date is more recent than file last modified date. Below is the ls output. All the other files, such as subs, pics and description files are all correct in their date.
Verbose log
PS C:\Users\seong\archive\public\videos\3Blue1Brown - Videos\20211023-A few of the best math explainers from this summer> ls

    Directory: C:\Users\seong\archive\public\videos\3Blue1Brown - Videos\20211023-A few of the best math explainers
    from this summer

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        14/12/2021  08:40 PM           3952 20211023-A few of the best math explainers from this
                                                  summer-F3Qixy-r_rQ.description
-a----        14/12/2021  08:40 PM<PHONE_NUMBER>1023-A few of the best math explainers from this
                                                  summer-F3Qixy-r_rQ.info.json
-a----        24/10/2021  08:12 AM       86997704 20211023-A few of the best math explainers from this
                                                  summer-F3Qixy-r_rQ.mkv
-a----        14/12/2021  08:40 PM          44600 20211023-A few of the best math explainers from this
                                                  summer-F3Qixy-r_rQ.webp

This is the expected behavior. Use --no-mtime


enable SSL termination

may be colocated with nginx release? or does minio support its own SSL termination?
cc @dpb587

Not sure to be honest I will investigates.

Yes - if certs/private.key and certs/public.crt are present in minio's config directory TLS is used.


Prettier works on the CLI but not using VSCode / Neovim

Describe the bug
On a project created with npm create svelte editor plugins for prettier do not work. The problem gets resolved when bumping prettier and prettier plugin svelte to version 3:
		"prettier": "^3.0.1",
		"prettier-plugin-svelte": "^3.0.3",

Reproduction
npm create svelte
npm i

Open any of the svelte files, move code around, save.
Expected:
Prettier reformats the code on save.
Actual:
Code is not reformatted.
Logs
No response
System Info
System:
    OS: macOS 13.5
    CPU: (10) arm64 Apple M1 Max
    Memory: 2.92 GB / 32.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 19.9.0 - ~/.local/bin/node
    Yarn: 1.22.19 - /opt/homebrew/bin/yarn
    npm: 9.5.1 - /opt/homebrew/bin/npm
    pnpm: 8.6.9 - ~/.local/npm-global/bin/pnpm
  Browsers:
    Chrome: 115.0.5790.170
    Edge: 114.0.1823.67
    Safari: 16.6
  npmPackages:
    @sveltejs/adapter-auto: ^2.0.0 => 2.1.0
    @sveltejs/kit: ^1.5.0 => 1.22.5
    svelte: ^3.54.0 => 3.59.2
    vite: ^4.3.0 => 4.4.9

Severity
serious, but I can work around it
Additional Information
Again, bumping prettier and the svelte plugin to v3 fixes the problem.

This belongs on language tools, can you reopen it there? I can't transfer it myself unfortunately


made changes to allow python3 compatibility

This PR should be fine, it won't pass on travis until all the other PRs and my travis PR is accepted, but it does pass our bamboo integration tests.


Georgi Nizamski #10 10B klas - Homework 05

Georgi Nizamski #10 10B klas - Homework 05
Add Homework 05 - With task2.c (task1.c already merged)

Evaluating homework 05 on student 10 from B class

Evalutaing task1.c
	Test 1 passed

Evalutaing task2.c
	Test 1 passed

Summary

	task2 - 1/1
	task1 - 1/1


youtube-dl doesn't download videos from https://www.bestgore.com

Please be aware that the site header contains a very disturbing image and the content in general is extremely upsetting.
The video from the verbose log below doesn't have anything graphic though, just three men, one of which is talking/yelling aggressively.

Checklist

[x] I'm reporting a broken site support
[x] I've verified that I'm running youtube-dl version 2020.07.28
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar issues including closed ones

Verbose log
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', 'https://www.bestgore.com/police-brutality/russia-man-catch-police-hidden-camera-threaten-frame-plant-drug/']
[debug] Encodings: locale cp1251, fs mbcs, out cp1251, pref cp1251
[debug] youtube-dl version 2020.07.28
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.17134
[debug] exe versions: ffmpeg 4.3, ffprobe 4.3
[debug] Proxy map: {}
[generic] russia-man-catch-police-hidden-camera-threaten-frame-plant-drug: Requesting header
WARNING: Could not send HEAD request to https://www.bestgore.com/police-brutality/russia-man-catch-police-hidden-camera-threaten-frame-plant-drug/: HTTP Error 403: Forbidden
[generic] russia-man-catch-police-hidden-camera-threaten-frame-plant-drug: Downloading webpage
ERROR: Unable to download webpage: HTTP Error 403: Forbidden (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpq2whuxta\build\youtube_dl\extractor\common.py", line 627, in _request_webpage
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpq2whuxta\build\youtube_dl\YoutubeDL.py", line 2238, in urlopen
  File "C:\Python\Python34\lib\urllib\request.py", line 470, in open
  File "C:\Python\Python34\lib\urllib\request.py", line 580, in http_response
  File "C:\Python\Python34\lib\urllib\request.py", line 508, in error
  File "C:\Python\Python34\lib\urllib\request.py", line 442, in _call_chain
  File "C:\Python\Python34\lib\urllib\request.py", line 588, in http_error_default

The site has ceased to exist, so closing the issue.


vuesax prototype loading doesn't work outside of components

Using vuesax 3.11.7 version.
Hello, I updated my vuesax from version 3.9.0 to 3.11.7 and now i can't use the loading function outside of vue components.
Example:
This works:
export default {
  methods:{
    openLoading(){
      this.$vs.loading()
      setTimeout( ()=> {
        this.$vs.loading.close()
      }, 2000);
    },
  }
}

This doesn't work:
axios.interceptors.response.use(response => {
        Vue.prototype.$vs.loading.close()
    return response
})

does anyone have any idea how to fix?

I was digging more deeper and found this PR #701 , but I can't see how to control the loading component now.

any news?

Yes, I gave up on vuesax.

Yes, I gave up on vuesax.

what are you using?

Vuetify, the best framework for Vue in my opinion

After hours trying to make this component work, i gave up

My solution was to export the function to prototype again, and did work, but I don't have the code anymore :(

@Keilost don't know how to do this ...
My solution, althought it's no beautiful, was to call the close inside a timeout ...
`this.$vs.loading({
background: this.backgroundLoading,
color: this.colorLoading,
container: "#button-with-loading",
scale: 0.45,
});
            .......

            setTimeout(() => {
                this.$vs.loading.close("#button-with-loading > .con-vs-loading");
            }, 1);`

Although not pretty, my current workaround was to add $vs back to the prototype.
Vue.prototype.$vs = this.$vs;

As I can see you are trying to use $vs in a js file when you set up axios interceptor to take care of the loading indicator automatically.
I solved the issue as I set up a watcher in my main.vue for the isLoading boolean stored in Vuex store.
In the watcher the this.$vs is available for you to open the loader when an axios request is on the fly.
In the axios interceptor js file, you can just simply commit startLoading and stopLoading actions, which will take care of setting up the isLoading state for you.

@kelemenbalazs can you share a code example? I am having the same issue with not able to close the loader.

@Keilost don't know how to do this ...
My solution, althought it's no beautiful, was to call the close inside a timeout ...
                 this.$vs.loading({
                    background: this.backgroundLoading,
                    color: this.colorLoading,
                    container: "#button-with-loading",
                    scale: 0.45,
                });

                .......

                setTimeout(() => {
                    this.$vs.loading.close("#button-with-loading > .con-vs-loading");
                }, 1);```

Worked for me :)
setTimeout(() => {
                this.$vs.loading.close("#loading");
            }, 1);


http3: support WebTransport

This PR adds initial support for the WebTransport draft.
To see this in action, open these demos in Chrome Canary:

Simple demo: https://basic.webtransport.dev/
Multiplayer mouse cursor demo: https://cursors.webtransport.dev/

Background
Internally, it exposes a bit of additional API from the http3 package, including an http3.Conn which wraps quic.EarlySession and an http3.RequestStream which wraps quic.Stream.
An http3.Conn allows client and server code to share common stream and frame handling, as well as providing a foundation for (de)multiplexing datagrams in support of the MASQUE datagram draft. An http3.RequestStream is used to read and write HEADERS and DATA frames, as well as process other HTTP/3 frames like MASQUE CAPSULE frames.

An http3.ServerConn is constructed using http3.Accept(quic.EarlySession, Settings).
An http3.ClientConn is constructed using http3.Open(quic.EarlySession, Settings).
A server http3.RequestStream is accepted from (ServerConn).AcceptRequestStream(context.Context).
A client http3.RequestStream is opened with (ClientConn).OpenRequestStream(context.Context).

It is possible to construct alternate HTTP/3 clients or servers using these primitives.
This PR builds on #3238 and #3254. It fixes #3191, and replaces #3226. It also adds support for HTTP trailers, modeled after the trailers interface in the standard net/http package.
To do

[x] Datagram support
[x] Update existing tests
[x] Wait for SETTINGS: https://github.com/ietf-wg-webtrans/draft-ietf-webtrans-http3/pull/56
[x] Trailers support
[x] WebTransport support in http3.RoundTripper
[x] Tests for WebTransport features
[ ] Integration tests with headless Chromium

Screenshots
Chrome demonstrating WebTransport unidirectional, bidirectional streams, and datagrams:

@marten-seemann could I get your feedback on this PR?
thanks!

Not a complete review yet, but I already left some comments. Do you have an example how a WebTransport application would use this API? That would make it easier for me to understand.

Thanks!
I'll throw an example together. Are you OK with an examples directory, or would you prefer a separate repo?
FWIW I'm not happy yet with the WebTransport API here. It's still a bit clunky for the server side.

I'll throw an example together. Are you OK with an examples directory, or would you prefer a separate repo?

Since WebTransport will be explicitly supported by the http3 package, it’s justified (and super helpful!) to have an example in this repository.
Thank you for all the effort you’re putting into this!

@marten-seemann I merged my other WIP branch into this one, which reorganizes the HTTP/3 primitives into Conn, RequestStream, and FrameWriter. I was able to easily add support for HTTP trailers with this, and simplify some of the error handling to match the H3 spec.
Next up is building a WebTransport example and tests.
I’d love it if you could take another look, thanks!

@marten-seemann any reason you’re still keeping CircleCI around? Doesn’t GH Actions cover these?

Well that’s odd: https://github.com/lucas-clemente/quic-go/runs/3498414989?check_suite_focus=true#step:6:884

Demo server built on this code: https://basic.webtransport.dev/

Multiplayer mouse cursor demo: https://cursors.webtransport.dev/

@marten-seemann I merged my other WIP branch into this one, which reorganizes the HTTP/3 primitives into Conn, RequestStream, and FrameReader. I was able to easily add support for HTTP trailers with this, and simplify some of the error handling to match the H3 spec.
Next up is building a WebTransport example and tests.
I’d love it if you could take another look, thanks!

Hey @ydnar
Can you share an example to test this
I am trying this https://gist.github.com/ydnar/f73e1806c50c83f90f9b46e13bf751fc for localhost server,

@marten-seemann I updated the description on #3284 to clarify what it is. How can I help you get #3284 reviewed and merged so we can land datagram and WebTransport support?

Wow this looks great
can’t wait to try this compared to web sockets

@marten-seemann
is there a possibility that this will be merged ?
Are there technical blockers that your worried about or is it more just lack of time ?

@ydnar - I am very interested in this. I think that WebTransport support is important for the future of quic-go, and it's sad to see it has not yet been merged.
A couple of questions. @marten-seemann can you share whether this not being merged is due to lack of time or lack of interest? You sharing that with us would be very helpful to the community on how best to move forward.
@ydnar - can you kindly share the disco/DISCO bidirectional stream example client (in other words, what's running at 'the other end' of your browser screenshot) to make this easier to test? Thank you.

@ydnar - can you kindly share the disco/DISCO bidirectional stream example server (in other words, what's running at 'the other end' of your browser screenshot) to make this easier to test? Thank you.

Sure. I need to dust off the branch that enables this. I’d prefer not to maintain a fork of quic-go just to support WebTransport (or a fork of quic/http3).
There’s some relevant stuff in Go 1.18 that should improve QUIC performance too (allocation-free UDP, net/netip package).

Hi @ydnar - actually, I got it figured out.
I decided to develop a new Go package which implements a WebTransport server over HTTP/3 (updated per the latest IETF drafts). Its API is inspired by the PR’s API but it implements it with the standard quic-go package as a dependency. It has pretty complete support for all of WebTransport including datagrams, server and client initiated uni/bidi streams and so on. It’s currently fully functional but needs docs written and further testing. I’ll share the link when ready if interested.

Hi @ydnar - actually, I got it figured out.
I decided to develop a new Go package which implements a WebTransport server over HTTP/3 (updated per the latest IETF drafts). Its API is inspired by the PR’s API but it implements it with the standard quic-go package as a dependency. It has pretty complete support for all of WebTransport including datagrams, server and client initiated uni/bidi streams and so on. It’s currently fully functional but needs docs written and further testing. I’ll share the link when ready if interested.

Sure, I’ll take a look!

Sure, I’ll take a look!

@ydnar - great!
Package is here: github.com/adriancable/webtransport-go
Example server & client are here: github.com/adriancable/webtransport-go-example
GoDoc is here: pkg.go.dev/github.com/adriancable/webtransport-go
Hope that someone finds this useful.

Closing, since there's now a WebTransport implementation using quic-go: https://github.com/marten-seemann/webtransport-go.


Expandable ClientViewPanel for attributes that can have long inputs

Description

For most client attributes, there is no character limit for a user's inputs. This means that a user can purposely input long values for certain inputs (some of them might have no choice i.e. address), and the resulting ClientViewPanel will have truncated labels.
Thus, I have updated most of the client attributes to wrap text and expand if necessary, with the exception of values that are definitively short: ClientId, RiskAppetite and LastMet. A side effect of this change means that if multiple values are too long, the ViewPanel will end up eating into the Meeting List's space.

Alternatively, we can limit the number of characters to solve this issue as well
Type of change

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[X] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] Code quality improvements

How to test

Checklist

[ ] I have tested this code
[ ] I have updated the documentation

@wyrchris can I check how I can reproduce that? It would be great too if you could provide a screenshot so that I have a better understanding of the issue

@wyrchris can I check how I can reproduce that? It would be great too if you could provide a screenshot so that I have a better understanding of the issue

After editing the fields with sufficiently long inputs, this will occur and where if the view panel is long enough the client list panel is unable to be scrolled fully

@wyrchris can I check how I can reproduce that? It would be great too if you could provide a screenshot so that I have a better understanding of the issue

After editing the fields with sufficiently long inputs, this will occur and where if the view panel is long enough the client list panel is unable to be scrolled fully

Ahh. Okay in that case I think it's better if we cap the length of the string to prevent this from happening

Opened #212 to resolve the issues mentioned above. Will merge this in for now.


Add CreateIndex() method

Fixes #62
Signed-off-by: ArkaprabhaChakraborty<EMAIL_ADDRESS>

Still has lint error. @ArkaprabhaChakraborty

Yes Ill fix it by tomorrow.

@matrixji @yhmo how to fix the codecov error?

I guess codecov is decreased due to your PR not rebasing from the latest in master. We're not setting codecov as mandatory right now.
Look's good to me, except need to squash your 3 commits to one in this PR.

Then it should have had conflicts, shouldn't it? But it doesnt say any merge conflicts or something like that.

@matrixji @yhmo

Hi, @ArkaprabhaChakraborty. I see the reason why coverage failed, seems you have disabled your testing code.

Hi, @ArkaprabhaChakraborty. I see the reason why coverage failed, seems you have disabled your testing code.

Yes because the current test also depends on another method which is not yet completed

I want to make changes to this test later as it requires DescribeIndex() method too

I want to make changes to this test later as it requires DescribeIndex() method too

For now, as we are in the early stage, IMO it's acceptable to add test code later.
/lgtm


Unable to preventDefault inside passive event listener due to target being treated as passive. See

Iscroll  Cannot use normally
My Chrome warning
Unable to preventDefault inside passive event listener due to target being treated as passive. See

add “passive: false ” will solve this problem
document.addEventListener('touchmove', this._preventDefault, { passive: false });

thank you

@MofeLee  my Chrome Latest version 56.0.2924.87  。This is the latest version  I can't update IScroll code 。How to do it?

@ruanxiaoquan  哥们儿  你是不是  拉到最新版本的 IScroll 然后改源码了，

@MofeLee thanks, works perfect, but how is support for other browsers? Can User become some error if have no Support for Passive Event Listeners?

You could do this to cover older browsers also;
function supportsPassive(){
    var supportsPassiveOption = false;
    try {
        var opts = Object.defineProperty({}, 'passive', {
            get: function() {
                supportsPassiveOption = true;
            }
        });
        window.addEventListener('test', null, opts);
    } catch (e) {
        //
    }
    return supportsPassiveOption;
}

Then in your event listeners;
document.addEventListener('touchmove', this._preventDefault, supportsPassive ? { passive: true } : false);

@svanskivar https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection

What lines need to be adjusted in the iScroll code itself? Can anyone supply that?

I applied all examples like this.
https://github.com/cubiq/iscroll/blob/master/demos/2d-scroll/index.html#L19-L22

@sculove this still seems to be happening to me using iscroll probe set on probeType: 3. I have followed the above.. would something else be wrong?

Add touch-action style to the wrapper of the scrolling area
#wrapper {
    touch-action: none;
}


(types): ApplicationCommandNumberOptionBase is not extending base properly

Issue description
Since the 13.4.0 Djs release, compiling to js fails due to this error:
node_modules/@discordjs/builders/dist/index.d.ts(516,5): error TS2416: Property 'toJSON' in type 'ApplicationCommandNumberOptionBase' is not assignable to the same property in base type 'ApplicationCommandOptionWithChoicesBase<number>'.
         Type '() => { min_value: number; max_value: number; type: ApplicationCommandOptionType.String | ApplicationCommandOptionType.Integer | ApplicationCommandOptionType.Number; ... 4 more ...; required?: boolean; } | ... 5 more ... | { ...; }' is not assignable to type '() => APIApplicationCommandOption'.
           Type '{ min_value: number; max_value: number; type: ApplicationCommandOptionType.String | ApplicationCommandOptionType.Integer | ApplicationCommandOptionType.Number; ... 4 more ...; required?: boolean; } | ... 5 more ... | { ...; }' is not assignable to type 'APIApplicationCommandOption'.
             Type '{ min_value: number; max_value: number; type: ApplicationCommandOptionType.Subcommand | ApplicationCommandOptionType.SubcommandGroup; options?: APIApplicationCommandOption[]; name: string; description: string; required?: boolean; autocomplete?: undefined; }' is not assignable to type 'APIApplicationCommandOption'.
               Type '{ min_value: number; max_value: number; type: ApplicationCommandOptionType.Subcommand | ApplicationCommandOptionType.SubcommandGroup; options?: APIApplicationCommandOption[]; name: string; description: string; required?: boolean; autocomplete?: undefined; }' is not assignable to type 'APIApplicationCommandNumericAutocompleteOptions'.
                 Types of property 'type' are incompatible.
                   Type 'ApplicationCommandOptionType.Subcommand | ApplicationCommandOptionType.SubcommandGroup' is not assignable to type 'ApplicationCommandOptionType.Integer | ApplicationCommandOptionType.Number'.
                     Type 'ApplicationCommandOptionType.Subcommand' is not assignable to type 'ApplicationCommandOptionType.Integer | ApplicationCommandOptionType.Number'.

Code sample
No response
@discordjs/builders version
0.10.0
Node.js version
nodejs: 16.6.1, typescript: 4.5.4
Operating system
No response
Priority this issue should have
High (immediate attention needed)

Expected, conflicting versions of discord-api-types happened :(
We're planning on fixing this very soon!

Hey! Will this be fixed soon?

I think this has already been fixed with the latest PR! Just needs to be published

Oh, then I'm waiting (i really need it );)

Todays release did not fix the issue for me. You were talking about #68?

Yep! Make sure you installed the latest version of builders 👀

Yep! Make sure you installed the latest version of builders 👀

My bad, another non-discordjs related problem popped up.


Request: Drop utility classes in favor of Atomic OOBEMITSCSS or CSS Modules

Firstly, great job on Bootstrap 4!
It would be really super fantastic to see bootstrap also move beyond the use of utility classes to a solution that flexibly maps styles to markup. There are a couple solutions available for doing so
https://css-tricks.com/atomic-oobemitscss/
https://github.com/css-modules/css-modules

We'll be sticking with what we have today for v4. Too late to change to anything else.


Set CF Feature-flags page size to 25 and update page-size options to [10, 25, 50]

Also adds documentation for service_instance_sharing feature flag.

@richard-cox Don't know if this is due to the entity stuff - There is a bug with this PR - set the pageSize to 10 - it still shows all 13 results - and moving between the two pages shows the same 13 results - rather than 10 on page 1 and 3 on page 2.

@nwmac The list has been set to non-local but the api doesn't seem to have pagination. @irfanhabib What was the reason you set isLocal to false?

@KlapTrap I was seeing some weirdness with local pagination of feature flags.
I'll test with local pagination after merge with master.


Fix hash code collision for Vector2D and Vector3D

This commit modifies the hashCode() method for Vector2D and the Vector3D classes in order to ensure unique values are generated for non-identical instances of vectors.
The proposed approach for calculating the hash code value is the same that is used in JTS and HE_Mesh projects. And as quoted in JTS project, this approach was initially 'borrowed' from the Joshua Bloch book 'Effective Java, 1st ed, 2008 ( the 2nd edition doesn't contain this recipe ).
In the "Item 9: Always override hashCode when you override equals" he describes the recipe as follows:

Store some constant nonzero value, say 17, in an int variable called result.
For each significant field f in your object, do the following: a. Compute an int hash code c for the field:
i   ...
ii  ...
iii If the field is a long, compute (int)(f^(f>>>32))
iv  ...
v   If the field is a double, compute Double.doublToLongBits(f),
and then hash the resulting long as in step 2.a.iii
vi  ...
vii ...
b. Combine the hash code c computed in step 2.a into result as
follows:
result = 31 * result + c

@aherbert You're right, that is more readable and does the same.

@aherbert
You're correct this is more readable while keeping the overall approach the same.
I've checked, and all tests are passing.

I've checked, and all tests are passing.

@aherbert Well, not all apparently. Only the ones I've added.
I'll try to find out what causes the GreatCircleTest to fail.

@aherbert
GreatCircle class was using the Objects.hash() wrapper method to calculate hash value. In its turn, it was calling the Arrays.hashCode() method.
Unfortunately, somewhere during the process, this fails to prevent hash collisions when it's calculated for the GreatCircle instances. I haven't investigated the cause yet. As a guess, this might be related to that the Precision.DoubleEquivalence's hashCode() method is not overridden, not sure.
Anyways, the usage of the same approach as in Vector2D and Vector3D classes resolves the issue for the GreatCircle also.
@Override
public int hashCode() {
    int result = 1;
    long temp;
    temp = pole.hashCode();
    result = 31 * result + (int) (temp ^ (temp >>> 32));
    temp = u.hashCode();
    result = 31 * result + (int) (temp ^ (temp >>> 32));
    temp = v.hashCode();
    result = 31 * result + (int) (temp ^ (temp >>> 32));
    temp = getPrecision().hashCode();
    result = 31 * result + (int) (temp ^ (temp >>> 32));
    return result;
}

Additionally, I fixed my incorrect indentations and variable naming added previously to prevent check errors.
All tests are passing now when I run them through Maven.

Hi @aherbert
Can I ask if you want me to fix anything to get this moving on?

Even later to the party here... :-)
@singhbaljit, I would be on board with trying out EqualsVerifier. We already have GEOMETRY-107 for this.
@aherbert, @ivanshuba, we are still waiting on the requested changes, correct?

The changes I requested to the tests have not been implemented. Without them the tests could sporadically fail.


DataStore on iOS with Cognito user pools, websocket protocol error but works with an API key

Which Category is your question related to?
DataStore on iOS
Amplify CLI Version
4.18.0
You can use amplify -v to check the amplify cli version on your system
What AWS Services are you utilizing?
Cognito User Pools
API (GraphQL)
Storage
DataStore
various triggers and custom functions
Provide additional details e.g. code snippets
We started on iOS using AppSync API and now want to move onto using DataStore.
Our authorization is based on user pools and groups, and we don't really need/want API Key
When I add DataStore in this configuration, the WebSocket is unable to connect to the GraphQL API end point and I see the following in the iOS log:
2020-04-21 11:30:39.156357-0400 Appname[3544:99327] Connecting to url ...
USER IS SIGNED OUT <-- this is form AWSMobileClient
2020-04-21 11:30:39.262675-0400 Appname[3544:99035] [Snapshotting] Snapshotting a view (0x7ff350c0eb30, UIView) that has not been rendered at least once requires afterScreenUpdates:YES.
2020-04-21 11:30:39.452011-0400 Appname[3544:99324] WebsocketDidConnect
2020-04-21 11:30:39.452147-0400 Appname[3544:99324] WebsocketDidConnect, sending init message...
2020-04-21 11:30:39.452422-0400 Appname[3544:99324] Validating connection
2020-04-21 11:30:39.452626-0400 Appname[3544:99324] WebsocketDidReceiveMessage - {"payload":{"errors":[{"message":"Both, the \"header\", and the \"payload\" query string parameters are missing","errorCode":400}]},"type":"connection_error"}

followed by various messages like:
2020-04-21 11:30:39.466218-0400 Appname[3544:99325] [AWSModelReconciliationQueue] receiveCompletion: error: DataStoreError: subscription item event failed with error
Caused by:
APIError: subscription item event failed with error
Caused by:
jsonParse(nil, Optional(Swift.DecodingError.dataCorrupted(Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "type", intValue: nil)], debugDescription: "Cannot initialize RealtimeConnectionProviderResponseType from invalid String value connection_error", underlyingError: nil))))
2020-04-21 11:30:39.466220-0400 Appname[3544:99346] [AWSModelReconciliationQueue] receiveCompletion: error: DataStoreError: subscription item event failed with error

It looks like it's connecting but the payload sent to the endpoint appears to be invalid?
In awsconfiguration.json I see the config for AppSync as follows:
    "AppSync": {
        "Default": {
            "ApiUrl": "https://blahblahblahblahblahblah.appsync-api.us-east-1.amazonaws.com/graphql",
            "Region": "us-east-1",
            "AuthMode": "AMAZON_COGNITO_USER_POOLS",
            "ClientDatabasePrefix": "Appnamecapi_AMAZON_COGNITO_USER_POOLS"
        },
        "Appnamecapi_API_KEY": {
            "ApiUrl": "https://blahblahblahblahblahblahblah.appsync-api.us-east-1.amazonaws.com/graphql",
            "Region": "us-east-1",
            "AuthMode": "API_KEY",
            "ApiKey": "blahblahblahblahblahblah",
            "ClientDatabasePrefix": "Appnamecapi_API_KEY"
        }
    }

So I change this to an API key (but I then have to remove all the @auth directives on my schema--which is not gonna work for the app)
% amplify api update
? Please select from one of the below mentioned services: GraphQL
? Select from the options below Walkthrough all configurations
? Choose the default authorization type for the API API key
? Enter a description for the API key: Appnamecapikey
? After how many days from now the API key should expire (1-365): 365
? Do you want to configure advanced settings for the GraphQL API Yes, I want to make some additional changes.
? Configure additional auth types? No
? Configure conflict detection? Yes
? Select the default resolution strategy Auto Merge
? Do you want to override default per model settings? No

Now awsconfiguration.json has:
   "AppSync": {
        "Default": {
            "ApiUrl": "https://blahblahblahblahblahblah.appsync-api.us-east-1.amazonaws.com/graphql",
            "Region": "us-east-1",
            "AuthMode": "API_KEY",
            "ApiKey": "blahblahblahblahblahblah",
            "ClientDatabasePrefix": "blahblahblahblah_API_KEY"
        }

And now, happiness, and my DataStore operations work (albeit without ownership and groups):
2020-04-21 11:57:35.878735-0400 Appname[4052:122475] Header - Optional("{\"x-amz-date\":\"20200421T155735Z\",\"x-api-key\":\"blahblahblahblahblahblah\",\"host\":\"blahblahblahblahblah.appsync-api.us-east-1.amazonaws.com\"}")
2020-04-21 11:57:35.879285-0400 Appname[4052:122479] Connecting to url ...
2020-04-21 11:57:36.341543-0400 Appname[4052:122475] WebsocketDidConnect
2020-04-21 11:57:36.341634-0400 Appname[4052:122475] WebsocketDidConnect, sending init message...
2020-04-21 11:57:36.341772-0400 Appname[4052:122475] Validating connection
2020-04-21 11:57:36.342174-0400 Appname[4052:122484] Message type does not need signing - connectionInit("connection_init")
2020-04-21 11:57:36.342443-0400 Appname[4052:122484] Websocket write - {"type":"connection_init"}
2020-04-21 11:57:36.374642-0400 Appname[4052:122476] WebsocketDidReceiveMessage - {"type":"connection_ack","payload":{"connectionTimeoutMs":300000}}
2020-04-21 11:57:36.375220-0400 Appname[4052:122476] WebsocketDidReceiveMessage - {"type":"ka"}
2020-04-21 11:57:36.375249-0400 Appname[4052:122475] Start subscription

So, my question: how do I get DataStore to work with Cognito user pools?
Is this supported?
Config or code?

Hi @Tom-RulesCube thanks for opening this issue. We have added support for using DataStore with Cognito user pools enabled API

Please upgrade Amplify CLI to the latest (4.21.0)

npm install -g @aws-amplify/cli@latest

Podfile will need to depend on DataStore, API, and Auth

pod 'Amplify'
pod 'AmplifyPlugins/AWSAPIPlugin'
pod 'AmplifyPlugins/AWSDataStorePlugin'
pod 'AmplifyPlugins/AWSCognitoAuthPlugin'

Make sure to run pod install --repo-update too ensure you are picking up the 1.0.0 version

the API's auth mode will need to be set to Cognito User Pool. Either amplify add api or amplify update api to set the default auth mode to cognito user pool

? Please select from one of the below mentioned services:
  `GraphQL`
? Select from the options below
  `Update auth settings`
? Choose the default authorization type for the API
  `Amazon Cognito User Pool`

What schema are you using? Here's an example that you can use for restricting updates and deletes on your model data by other users. Other users can read the data. all operations are restricted to authenticated cognito user pool users.

type SocialNote
    @model
    @auth(rules: [
        { allow: owner, ownerField: "owner", operations: [create, update, delete] },
    ]) {
    id: ID!
    content: String!
    owner: String
}

Provisioning the backend. If using the CLI, run amplify push . if using AmplifyTools, update amplifytools.xcconfig's push=true

The configuration file has been consolidated to amplifyconfiguration.json. and there is no need for awsconfiguration.json or a dependency on AWSMobileClient

You will see something like this generated as:
{
    "api": {
        "plugins": {
            "awsAPIPlugin": {
                ....
    "auth": {
        "plugins": {
            "awsCognitoAuthPlugin": {
                ....

Configure Auth, DataStore, and API all through Amplify

do {
    try Amplify.add(plugin: AWSCognitoAuthPlugin())
    try Amplify.add(plugin: AWSAPIPlugin())
    try Amplify.add(plugin: AWSDataStorePlugin(modelRegistration: AmplifyModels()))
    try Amplify.configure()
    print("Initialized Amplify");
} catch {
    print("Could not initialize Amplify: \(error)")
}

When running the app, DataStore will try to start the sychronization with API and fail since the user is not authenticated. This will be attempted a few times and eventually fail. So there is no need to add a listener for auth events. DataStore.save() will continue to be persisted your data to the local store.

Sign the user in with Amplify.Auth

_ = Amplify.Auth.signIn(username: username, password: password) { event in
            switch event {
            case .success:
                print("Sign in successfully")
            case .failure(let error):
                print("Failed to sign in")
            }
        }

DataStore will automatically start again when any of the DataStore operations are triggered, such as DataStore.save() or DataStore.query().

Hi @lawmicha
I also have problems with @auth in my api when using DataStore. I dont really understand your solution. I use amplify 4.21.3 but im still not able to save anything in the cloud and my terminal gets spammed with subscription errors.
Do you simply run DataStore.save() after loggin in successfully? Can you please elaborate your point with 8) ?

Hi @Nicolaidam, in the current implementation, it's expected that the subscriptions fail on start-up and then once the user is signed in, any DataStore operation like DataStore.save will cause a reattempt to create subscriptions to the API. If the user is signed in, those subscriptions will be created successfully.
However, use auth directive in your schema does have its limitations as the support for it through DataStore is still in development. What does your schema look like? Feel free to open a new issue with the sample schema that you are trying to use, and any additional logs that you saw while running DataStore, after user has signed in, and still see failures. If you have any questions, we also have a discord channel

Hi @lawmicha
Thanks i will check it out.
As a start i need to get DataStore sync to cloud working with my API, but somehow it doesnt work right now. I've created a new issue:
https://github.com/aws-amplify/amplify-ios/issues/561

feel free to re-open this if there are any new issues

DataStore is working as expected now, and we can see the startup sequence re: Cognito login. In addition, the @auth directive is working fully as expected.
We do see some timeouts with the web socket at various intervals that can make our app appear to go braindead. Will be doing some more testing and if we see problems in Amplify we'll open a new issue.


feat: add support for generating marshalling functions in typescript (WIP)

Description
I am trying to solve the issue as per my understanding this is the probable solution if this is right please give green i will update the tests and change the relevant documentation after that

...
...
...

Related issue(s)
This Will Solve the Issue https://github.com/asyncapi/cli/issues/460

@NileshPant1999 need some help?

there are some conflicts
@NileshPant1999 if you want to continue with this one, I suggest opening a new PR and add missing tests


User improve

Focus.user has now the following methods:

hasRole
setRoles
getRoles
setProfile
getProfile
setLogin
getLogin

Fix #176

Style fixed


[Feature] Easy way to integrate storybook

Description
Doc-DocStoryBook is a great tool for documenting component libraries but doesn't have a good way of documenting APIs.
Ng-Doc is a great tool for documenting APIs and can do some of what StoryBook does with interactive demos.  But doesn't quite reach the features of StoryBook. While you could continue to embellish the features into Ng-Doc, it seems like it would be easier to provide some way of integrating the two.
Proposed solution
At this point, it is just a wish and I don't have a clear idea what this would look like.
I would imagine, you'd still need to build storybook separately.  But maybe there is some way of reading the hierarchy structure of storybook so that it would be integrated into the menu and then suck in the StoryBook component content into the right hand side of the window. 🤷♂
Alternatives considered
Right now, I just run them separately.

I am currently working on refactoring the builder to implement the capability of rendering APIs as an additional tab on the guide page in the future. Once the API stabilizes, I also plan to add the ability to create plugins for the builder that could be used to create custom tabs on guide or API pages.
Each page in NgDoc is pure HTML that is extended using PageProcessors to transform certain HTML elements into Angular components and make them more interactive. This could generally help achieve what you want; however, I'm not sure if such integration will be possible. NgDoc was created to generate documentation quickly and easily with minimal configuration, and I'm trying to automate as much as possible on the builder side.
In any case, if you have any feature ideas that you would like to have, I would be glad to hear them.


[Bug] The policy shown as an example skips validation of init containers with non-mesh images

Page link
https://kyverno.io/blog/2024/02/04/securing-services-meshes-easier-with-kyverno/#policies-in-kyverno
Description
The policy description implies that:

Any capability added beyond the allowed list is disallowed
Service mesh containers may only add NET_ADMIN and NET_RAW to the list

However the policy definition iterates only on istio and linkerd init containers. If there was another init container defined like this:
  initContainers:
  - name: hacktainer
    image: hack/hack:v1
    securityContext:
      capabilities:
        add:
          - ROOT
          - ACCESS_ALL

then the policy will skip it and will succeed the validation.
Expected behavior
The policy must fail.
Slack discussion
No response

Thank you for catching this. This is my fault for not testing enough scenarios. I have enhanced this policy and think I now cover all the scenarios. Would you please run this policy through its paces and provide your feedback?
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: disallow-capabilities
spec:
  validationFailureAction: Enforce
  background: true
  rules:
    - name: adding-capabilities-service-mesh
      match:
        any:
        - resources:
            kinds:
              - Pod
      preconditions:
        all:
        - key: "{{ request.operation || 'BACKGROUND' }}"
          operator: NotEquals
          value: DELETE
      context:
        - name: capabilities
          variable:
            value: ["AUDIT_WRITE","CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","MKNOD","NET_BIND_SERVICE","SETFCAP","SETGID","SETPCAP","SETUID","SYS_CHROOT"]
      validate:
        message: >-
          Any capabilities added beyond the allowed list (AUDIT_WRITE, CHOWN, DAC_OVERRIDE, FOWNER,
          FSETID, KILL, MKNOD, NET_BIND_SERVICE, SETFCAP, SETGID, SETPCAP, SETUID, SYS_CHROOT)
          are disallowed. Service mesh initContainers may additionally add NET_ADMIN and NET_RAW.
        foreach:
          - list: request.object.spec.initContainers[]
            preconditions:
              all:
              - key: "{{ element.image }}"
                operator: AnyIn
                value:
                - "*/istio/proxyv2*"
                - "*/linkerd/proxy-init*"
              - key: "{{ element.securityContext.capabilities.add[] || `[]` }}"
                operator: AnyNotIn
                value:
                  - NET_ADMIN
                  - NET_RAW
                  - "{{ capabilities }}"
            deny:
              conditions:
                all:
                - key: "{{ element.securityContext.capabilities.add[] || `[]` }}"
                  operator: AnyNotIn
                  value: "{{ capabilities }}"
                  message: The service mesh initContainer {{ element.name }} is attempting to add forbidden capabilities.
          - list: request.object.spec.initContainers[]
            preconditions:
              all:
              - key: "{{ element.image }}"
                operator: AnyNotIn
                value:
                - "*/istio/proxyv2*"
                - "*/linkerd/proxy-init*"
            deny:
              conditions:
                all:
                - key: "{{ element.securityContext.capabilities.add[] || `[]` }}"
                  operator: AnyNotIn
                  value: "{{ capabilities }}"
                  message: The initContainer {{ element.name }} is attempting to add forbidden capabilities.
          - list: request.object.spec.[ephemeralContainers, containers][]
            deny:
              conditions:
                all:
                - key: "{{ element.securityContext.capabilities.add[] || `[]` }}"
                  operator: AnyNotIn
                  value: "{{ capabilities }}"
                  message: The container {{ element.name }} is attempting to add forbidden capabilities.

Fix sent in #1254


Added tab feature to differentiate the content

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the maintainers.
What Type of PR is This?

[ ] Issue
[ ] Feature
[ ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screen Shoot.

Preview environment: https://ci.pr.harness.io/pr-735

Preview environment: https://ci.pr.harness.io/pr-735

@SudheendraKatte do you still need this, if not we can close.


add theme override: menu item selected + hover

This function solves the problem (这个功能解决的问题)
To style the text/icon/etc when a menu item is selected differently than when it's not selected while the user is hovering on that item
Expected API (期望的 API)
add new theme override props like: itemTextColorActiveHover
(don't forget the inverted variant!)

The design is originally designed like this, which is more convenient for users to adjust. If you need to keep the hover and active colors the same, you can set these two variables to be the same.

unless I'm mistaken, right now there is now way (using theme override) to have a different hover text/icon/etc color ONLY for the selected menu item:
to give an example this is what I implemented using n-menu + custom css:

when the menu item is selected the hover text/icon/etc should be a dark color (cause the selected menu item bg is light), when it's not selected, the opposite (cause the menu item bg is dark).
BONUS

would be nice to have a configurable hover bg like this as well

Sorry, we understand the instance you said, but you set the itemColorActive variable to set the bg, and then you can set the color of the hover through the itemTextColorHover and itemIconColorHover variables, the effect is as above.

yes but I need 2 different hover colors! I need a hover color for when I have the active bg and another hover color for when I don't have the active bg.

yeah, maybe add new theme override props

yes but I need 2 different hover colors! I need a hover color for when I have the active bg and another hover color for when I don't have the active bg.

This is really a tough problem. How to define the theme variable name.

there already is itemXXXColorActive and itemXXXColorHover. You could add itemXXXColorActiveHover.
Also. it'd be nice to have the term actve be changed to  selected. To better align it with the term used in the documentation and because active also represents another concept.

there already is itemXXXColorActive and itemXXXColorHover. You could add itemXXXColorActiveHover.
Also. it'd be nice to have the term actve be changed to selected. To better align it with the term used in the documentation and because active also represents another concept.

Active in naive ui is named as pressed.


Obj files

Would it be hard to add support for obj files?

Thank you very much for your suggestion. I faced a difficulty because my project was tightly coupled to the data structures of the initial library. To resolve this, I developed custom data structures for the project and wrote two translators: STL and OBJ. This turned out to be a better architectural approach, as it simplifies the addition of new formats to merely creating a new translator.
The new code is already in the main branch; please test it. I look forward to any new suggestions.

Primitive.screw024.obj.zip