Import additional columns from CR6

Thanks for putting this together! LMK if you need any input!

Thanks for putting this together! LMK if you need any input!

The added columns caused some current tests to fail. Should we only include fwr/cdr1,2 columns for CR6 outputs or include them regardless and use nan as values for non-CR6 outputs? Thank you!

Should we only include fwr/cdr1,2 columns for CR6 outputs or include them regardless and use nan as values for non-CR6 outputs?

Please only include those columns if they are present in the CR output.

Should we only include fwr/cdr1,2 columns for CR6 outputs or include them regardless and use nan as values for non-CR6 outputs?

Please only include those columns if they are present in the CR output.

Sounds good, thanks!

One more thing I was thinking about:
The CDR3 column of cellranger is called junction according to the AIRR standard because it contains the two conserved C and W/F residues. Now that there is also CDR1 and 2 it might be confusing that CDR3 is missing.
Do you think it might make sense to automatically add also a CDR3 column that is automatically generated as
chain['cdr3_aa'] = chain['junction_aa'][1:-1]
chain['cdr3'] = chain['junction'][3:-3]

?
ping @zktuong, (How) did you deal with that in dandelion?

One more thing I was thinking about:
The CDR3 column of cellranger is called junction according to the AIRR standard because it contains the two conserved C and W/F residues. Now that there is also CDR1 and 2 it might be confusing that CDR3 is missing.
Do you think it might make sense to automatically add also a CDR3 column that is automatically generated as
chain['cdr3_aa'] = chain['junction_aa'][1:-1]
chain['cdr3'] = chain['junction'][3:-3]

?
ping @zktuong, (How) did you deal with that in dandelion?

Hmm i don't parse that - i just use the junction column. Your suggestion sounds sensible and clean though.

@zktuong, thanks for your quick response! In any case, having an additional cdr3 column should not interfere with dandelion when running to_dandelion?
@naity, do you want to give it a go to additionally add the cdr3 column as described above?

yup should be no problem

@zktuong, thanks for your quick response! In any case, having an additional cdr3 column should not interfere with dandelion when running to_dandelion?
@naity, do you want to give it a go to additionally add the cdr3 column as described above?

Sure, I fixed the column names and added trimmed cdr3 as suggested. But the added cdr3 and cdr3aa seemed to cause the following test to fail:
    def test_convert_dandelion(anndata_from_10x_sample):
        """Test dandelion round-trip conversion"""
        anndata = anndata_from_10x_sample
        ddl = to_dandelion(anndata)
        anndata2 = from_dandelion(ddl)

        ir_objs1 = to_airr_cells(anndata)
        ir_objs2 = to_airr_cells(anndata2)

        assert len(ir_objs1) == len(ir_objs2) == anndata.shape[0]

        # Frame-level comparison is not possible as the "extra chains" field is different
        # due to 'sequence_id' being different.
        for ir_obj1, ir_obj2 in zip(ir_objs1, ir_objs2):
            assert len(ir_obj1.chains) == len(ir_obj2.chains)
            for tmp_chain1, tmp_chain2 in zip(ir_obj1.chains, ir_obj2.chains):
                # this field is expected to be different
                del tmp_chain1["sequence_id"]
                del tmp_chain2["sequence_id"]
>               assert tmp_chain1 == tmp_chain2
E               AssertionError: assert {'c_call': 'IGKC',\n 'cdr3': 'CAGCAGTATGGTAGCTCACTTACGTGGACG',\n 'cdr3_aa': 'QQYGSSLTWT',\n 'consensus_count': 5260.0,\n 'd_call': None,\n 'd_cigar': None,\n 'duplicate_count': 41.0,\n 'germline_alignment': None,\n 'j_call': 'IGKJ1',\n 'j_cigar': None,\n 'junction': 'TGTCAGCAGTATGGTAGCTCACTTACGTGGACGTTC',\n 'junction_aa': 'CQQYGSSLTWTF',\n 'locus': 'IGK',\n 'productive': 'True',\n 'rev_comp': None,\n 'sequence': None,\n 'sequence_alignment': None,\n 'v_call': 'IGKV3-20',\n 'v_cigar': None} == {'c_call': 'IGKC',\n 'consensus_count': 5260.0,\n 'd_call': None,\n 'd_cigar': None,\n 'duplicate_count': 41.0,\n 'germline_alignment': None,\n 'j_call': 'IGKJ1',\n 'j_cigar': None,\n 'junction': 'TGTCAGCAGTATGGTAGCTCACTTACGTGGACGTTC',\n 'junction_aa': 'CQQYGSSLTWTF',\n 'locus': 'IGK',\n 'productive': 'True',\n 'rev_comp': None,\n 'sequence': None,\n 'sequence_alignment': None,\n 'v_call': 'IGKV3-20',\n 'v_cigar': None}
E                 Common items:
E                 {'c_call': 'IGKC',
E                  'consensus_count': 5260.0,
E                  'd_call': None,
E                  'd_cigar': None,
E                  'duplicate_count': 41.0,
E                  'germline_alignment': None,
E                  'j_call': 'IGKJ1',
E                  'j_cigar': None,
E                  'junction': 'TGTCAGCAGTATGGTAGCTCACTTACGTGGACGTTC',
E                  'junction_aa': 'CQQYGSSLTWTF',
E                  'locus': 'IGK',
E                  'productive': 'True',
E                  'rev_comp': None,
E                  'sequence': None,
E                  'sequence_alignment': None,
E                  'v_call': 'IGKV3-20',
E                  'v_cigar': None}
E                 Left contains 2 more items:
E                 {'cdr3': 'CAGCAGTATGGTAGCTCACTTACGTGGACG', 'cdr3_aa': 'QQYGSSLTWT'}
E                 Full diff:
E                   {
E                    'c_call': 'IGKC',
E                 +  'cdr3': 'CAGCAGTATGGTAGCTCACTTACGTGGACG',
E                 +  'cdr3_aa': 'QQYGSSLTWT',
E                    'consensus_count': 5260.0,
E                    'd_call': None,
E                    'd_cigar': None,
E                    'duplicate_count': 41.0,
E                    'germline_alignment': None,
E                    'j_call': 'IGKJ1',
E                    'j_cigar': None,
E                    'junction': 'TGTCAGCAGTATGGTAGCTCACTTACGTGGACGTTC',
E                    'junction_aa': 'CQQYGSSLTWTF',
E                    'locus': 'IGK',
E                    'productive': 'True',
E                    'rev_comp': None,
E                    'sequence': None,
E                    'sequence_alignment': None,
E                    'v_call': 'IGKV3-20',
E                    'v_cigar': None,
E                   }

scirpy/tests/test_io.py:238: AssertionError

that looks alright, I think you can just update the test cases.

that looks alright, I think you can just update the test cases.

shall we add cdr3 and cdr3_aa by default or only if cdr1 and cdr2 exist? If the former, test_workflow would need to be modified as well.

I would say always.
But, maybe then we should implement an include_fields like in read_airr?
https://github.com/icbi-lab/scirpy/blob/2f02f16aa4e03b99c814515bcac70cbf7c251f08/scirpy/io/_io.py#L340
The behaviour would be that when converting the chain dicts to the anndata object, per default, only the columns defined here
https://github.com/icbi-lab/scirpy/blob/2f02f16aa4e03b99c814515bcac70cbf7c251f08/scirpy/io/_io.py#L36-L47
would get imported. If the user wants all attributes (including cdr1, 2, 3), they can set include_fields=None.
The idea is to avoid cluttering anndata with too many columns that are not needed for the most common use-cases.
What do you think?
That might be too much to ask from you though - I can always take over this PR if you prefer.

I would say always.
But, maybe then we should implement an include_fields like in read_airr?
https://github.com/icbi-lab/scirpy/blob/2f02f16aa4e03b99c814515bcac70cbf7c251f08/scirpy/io/_io.py#L340
The behaviour would be that when converting the chain dicts to the anndata object, per default, only the columns defined here
https://github.com/icbi-lab/scirpy/blob/2f02f16aa4e03b99c814515bcac70cbf7c251f08/scirpy/io/_io.py#L36-L47
would get imported. If the user wants all attributes (including cdr1, 2, 3), they can set include_fields=None.
The idea is to avoid cluttering anndata with too many columns that are not needed for the most common use-cases.
What do you think?
That might be too much to ask from you though - I can always take over this PR if you prefer.

Yes, that's a great idea. I added an include_fields parameter to 10x functions but it seems to cause several tests to fail including test_ir_objs_roundtrip_conversion. I'll try to sort them out and please let me know if you have any suggestions.
Additionally, should we verify that chain['junction_aa'] starts with "C" and ends with "W/F" like before trimming?

Additionally, should we verify that chain['junction_aa'] starts with "C" and ends with "W/F" like before trimming?

Not sure... In the example file I looked at, indeed all sequences start with C, but not all of them finish with [WF]. Here are a few:
CYSHSPTSMWVS
CARRGAGTTLCG
CTDLLRLAYTAWG
CATRLTRHLVRLTT
CQQYYSTPPI
CARWITGTPSL
CARDLKDIVLMVYASRLGGTLTT

Maybe @zktuong can help us again? Would it make sense to trim these sequences to [1:-1] as well? Or just set CDR3 to None?

Additionally, should we verify that chain['junction_aa'] starts with "C" and ends with "W/F" like before trimming?

Not sure... In the example file I looked at, indeed all sequences start with C, but not all of them finish with [WF]. Here are a few:
CYSHSPTSMWVS
CARRGAGTTLCG
CTDLLRLAYTAWG
CATRLTRHLVRLTT
CQQYYSTPPI
CARWITGTPSL
CARDLKDIVLMVYASRLGGTLTT

Maybe @zktuong can help us again? Would it make sense to trim these sequences to [1:-1] as well? Or just set CDR3 to None?

Are those sequences flagged as out of frame, not full V -> J, contains stop codon or not productive?

Are those sequences flagged as out of frame, not full V -> J, contains stop codon or not productive?

they are flagged as non-productive. So usually they get filtered out anyway.

Are those sequences flagged as out of frame, not full V -> J, contains stop codon or not productive?

they are flagged as non-productive. So usually they get filtered out anyway.

yea then skipping trimming and switching to None/"" should be fine.

ok, perfect. None in that case!

 Tried to add `{v}`."
                )
E               ValueError: Cell-level attributes differ between different chains. Already present: `False`. Tried to add `True`.

scirpy/io/_datastructures.py:113: ValueError

It might result from
        if barcode not in airr_cells:
            ir_obj = AirrCell(
                barcode,
                logger=logger,
                cell_attribute_fields=["is_cell", "high_confidence"],
            )
            airr_cells[barcode] = ir_obj
        else:
            ir_obj = airr_cells[barcode]

as multi_chain" is not included in cell_attribute_fields by default in contrast to read_airr`.

multi_chain should definitely be a cell-level attribute. If that doesn't help, I need to take a closer look next week!

multi_chain should definitely be a cell-level attribute. If that doesn't help, I need to take a closer look next week!

Sounds good, it would be great if you could take a look at it. Thanks!

@naity, just to be sure: Did you push all your changes? I'll hopefully find some time later today to debug this.

@naity, just to be sure: Did you push all your changes? I'll hopefully find some time later today to debug this.

Yes, I have.

Will take a final look tomorrow and then merge.

Thanks again @naity  and @zktuong!

Thanks again @naity and @zktuong!

Awesome, thank you!


Having issue running FCC in production

Describe your problem and - if possible - how to reproduce it
I have to run FCC in production because I’m one of the maintainers of FCC china website, we launch the new site on 15th, and through some offline activity, users are increasing, but they also report some bugs and performance issue.  I check the code and notice on production server npm run start-production don’t actually pass the env=production environment variables to the node app. and when I debug locally and manually pass the env=production and run npm run start-production again. all the routes don’t work, meaning not even hitting the routes.
Add a Link to the page with the problem
Tell us about your browser and operating system

Browser Name: chrome
Browser Version:  Version 69.0.3497.92 (Official Build) (64-bit)
Operating System: Mac os 10.12.6 (16G1510)

If possible, add a screenshot here

Passing environment variable like this works but it causes the route not working issue

Hi @stanleyyylau sorry about the delay in getting back to you. You should set the NODE_ENV in the .env file along with anything else that you would like to tweak in the pm2Start config.
That's how we have done it for freeCodeCamp.org
I am not sure, what routes issues you are facing. But feel free to drop me a query with the details if you would like additional help mrugesh at freecodecamp dot org

I'll add further comments on the linked PR to better guide the workflow.


Rancher catalog install not setting built-in helm variables like .Release.IsInstall

Rancher versions:
rancher/server or rancher/rancher: v2.0.2
rancher/agent or rancher/rancher-agent:
Operating system and kernel: (cat /etc/os-release, uname -r preferred)
NAME="Ubuntu"
VERSION="16.04.4 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.4 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

Type/provider of hosts: (VirtualBox/Bare-metal/AWS/GCE/DO)
Custom OpenStack VM
Setup details: (single node rancher vs. HA rancher, internal DB vs. external DB)
single node rancher
Environment Template: (Cattle/Kubernetes/Swarm/Mesos)
Kubernetes
Steps to Reproduce:

Turn on helm stable catalog under global settings
Install keycloak (create an answer with key=keycloak.password and value=test)
Create ingress that maps / to keycloak on port 8080

Results:
The keycloak helm tests are run. These should not be run when installing.
The password is not set. This is because .Release.IsInstall does not appear to be set.
The Rancher catalogue does not appear to be doing a standard helm install. Installing manually with helm install works fine.

hi @nuwang
Can you try it with Rancher v2.1.0, please?
In 2.1.0, we are using Tiller.


Loading pretrained weight achiving not accurate result

Hello, we were using 001_classicalSR_DIV2K_s48w8_SwinIR-M_x2.pth pretrained weight and tested it on manga-109 but the result we got is much worst than one reported in the paper.
Our result: psnr: 29.23; ssmi: 0.9387
Reported: psnr: 39.6, ssmi: 0.9792
We test on on both torch 1.10 and 1.8 and the results we received are the same.
So how to reproduce the inference accuracy with the pretrained models

maybe your LR images  not generated by  matlab


fuzzy match under index support

hello,i have a question about fuzzy  match . attribute support fuzzy match but cost a lot of memory ，it will use all memory of content node under mass data. Index will not cost many memory ,but seems only support text\word\exact\gram models， fuzzy match for term not support, lucence can support fuzzy match under index model，can vespa support this match model?

The various match modes supported is described here https://docs.vespa.ai/documentation/reference/search-definitions-reference.html#match.
n-gram indexing is supported for index fields which I think could be categorised as fuzzy matching.

under n-gram indexing, could the string "hi blue"(gram-size is 2) be search for "blu" or "lue"?

That would be 3-grams. See https://github.com/vespa-engine/vespa/blob/master/linguistics/src/main/java/com/yahoo/language/process/GramSplitter.java if you are interested in the details of how tokens are generated. This is done automatically both on indexing and query time if a field is set to n-gram matching.
By default the query over the grams uses AND matching. You may want to use OR instead (or perhaps NEAR/ONEAR or WAND). To do that you need to replace the NGramSearcher in the "local" search chain (which you use by default) by a subclass which returns another composite item than AndItem as the root item, see https://github.com/vespa-engine/vespa/blob/master/container-search/src/main/java/com/yahoo/search/querytransform/NGramSearcher.java#L139
Let me know if you need help with that. I would like to make that controllable by a config parameter instead but haven't gotten around to it yet.

@jobergum @bratseth thanks your reply, I practice n-gram in cluster,it take effect in most fuzzy matching  scenes,but it does not take effect in that  scene such as the string "hi blue" (gram-size is 3)  be searched for substing ("i b"),but it can mostly satisfy my requirement。
I have an other question about attribute，it store in memory from cluster  start and never be cleared， when the docments insterted  becomes more and more,the attribute will use all the memory of the mechine，and the cluster become not available ，how can I slove this problem？  Today I insert 5  hundred million to cluster，there are 20 index filed and 20 attribute ,the ram of machine(64G) is eat up,and the service of cluster become not available。

If you are running out of memory you need to add more nodes or increase the memory per available per node. Fields which are attributes are in memory for fast random access during search/ranking/sorting/grouping.
Some resources on attributes and sizing:

https://docs.vespa.ai/documentation/performance/sizing-search.html
https://docs.vespa.ai/documentation/attributes.html
https://docs.vespa.ai/documentation/performance/attribute-memory-usage.html

Is there some mechanism  for attribute that it clear unused memory when the memory reach the limit，then fetch the data from the disk when the data is required，similar with Cache. if vespa can do this, we don't worry that memory is eat up，trade off a litte query efficiency。

There is no such mechanism in Vespa currently for attribute fields. What type of attribute fields do you have ? Numeric types or primary strings?

now the type that I test is strings,length is 20-30

For my understanding, the primary reason you want to use attribute for these string fields is?

My scene is descripted  as follows:
I have 3 mechine with 4T*6 SATA disks and  64G memery， I start one content node on every disk，18  content node is put together to comprise one cluster. the average size of document is  1K，the field num is 150，the index and attribute num is each 20，most is string type. I found that the memory is eat up when I insert  5 hundred million docments，but these documents size  stored in disks is only 23G in one content node，this num is  far away with 2T. In this case，it appear that  a lot of disks couldn't be used because the memory is eat up.
This is the problem I now meet，could you give some good suggest？

In this case you don't have memory enough to support this amount of documents.
Do you have the output of 'top' (Use shift-m to sort process output by memory usage).

Why do you make these strings attributes? Storing most of it on disk is precisely what "index" fields do, while attributes are always in memory to support fast forward lookup (access during aggregation/ranking). Forward lookup is usually not that useful for text fields.

@jobergum  yes，the output of top is that memory is used up to 8G * 6 , mostly nealy 64G, that is to say that  in this case, if this is not enough memory , vespa can't process and store so much data. In my understand, the amount of the yahoo's data is very large, it should  exceed very a lot of my case,how should you  deal with these data？or there is a little of fields  for group\order\sum in yahoo's in business? if this ,should vespa is suitable for realtime query ,but not suitable  to compute for more fields?

@baldersheim  if i  pick up the int field as  attribute，in my case，the memory used also is very large，we can figure that it cost  almost 96 G (4T/1k * 4B /1k/1k/1k * 6 ) in one machine for one int attribute. if there is four attribute,it will cost 96*4=384 G . the most machine server doesn't have these amount of memory.

It sounds like you are starting the sizing in the wrong end.
You need to figure out what is the limiting factor first. Disk space I have never experienced to be a limiting factor. It is either cpu or memory.
I assume that you have a latency requirement. Based on that you can see how many documents makes sense to have on a single node.
I have never seen the need for more than 1T disk on any node. Long before that you will have used all available cpu, or memory.

it should exceed very a lot of my case,how should you deal with these data？or there is a little of fields for group\order\sum in yahoo's in business? if this ,should vespa is suitable for realtime query ,but not suitable to compute for more fields?

Make large fields (i.e text) index, not attribute. Only structured text such as numbers and enum values are suitable for grouping and aggregation and they don't require much memory.

could I  be gave some suggestions about how to select the volume of memory and disk of a content node at general scene?

thanks for your reply .
could I be gave some suggestions about how to select the volume of memory and disk of a content node at general scene?
@baldersheim  do you mean that in your content node ,the volume of disk doesn't exceed 1T，and  if there is 500T data,perhaps it needs at least 500 content node，and every content node correspond to one machine ？ if this , in my work scene，the data size is far more then 500T，perhaps I need far more content node and machine.

perhaps I need far more content node and machine.

probably yes. maybe you can open a separate ticket for the sizing, with relevant data and load numbers - and we can get you started and design a load testing experiement

I got it，thanks for your valuable reply .

For others who find this issue:
An example  block from in services.xml that replaces the NGram searcher for a content cluster called "mycontent":
<search>
    <chain id='default'>
        <federation id='federationSearcher'>
            <source id='local'/>
        </federation>
    </chain>
    <provider cluster='mycontent' excludes='com.yahoo.search.querytransform.NGramSearcher' id='local' type='local'>
        <searcher bundle='basic-application' id='ai.vespa.example.OrNGramSearcher'/>
    </provider>
</search>

And the searcher:
package ai.vespa.example;

import com.yahoo.search.Query;
import com.yahoo.prelude.query.CompositeItem;
import com.yahoo.prelude.query.OrItem;
import com.yahoo.search.querytransform.NGramSearcher;
import com.yahoo.language.Linguistics;

/**
 * Changes NGram recall from AND to OR
 */
public class OrNGramSearcher extends NGramSearcher {

    public OrNGramSearcher(Linguistics linguistics) {
        super(linguistics);
    }

    @Override
    protected CompositeItem createGramRoot(Query query) {
        return new OrItem();
    }

}

Fuzzy matching is now officially support since vespa 7.585. #21689
See: https://docs.vespa.ai/en/reference/query-language-reference.html#fuzzy

Hi. Can we stop n-gram matching at the time of querying?
My requirement is to use fuzzy matching in case of index fields, which I am possibly doing with the help of n-gram indexing. But it is again giving some results which we don't want because of n-gram matching. So, I want to do a simple search first without any gram matching and then do fuzzy matching using n-gram indexing. Is there any possible way to achieve that?

Not with the same field, as once you gram it, that has happened during indexing, so you cannot switch between exact and gram matching. You need to define an additional field:
schema doc {
  document doc {
    field foo type string {
       indexing: summary |  index
    }
  } # end document
  field foo_fuzzy type string {
      indexing: input foo | index
      match {
        gram
        gram-size: 3
      }
  }
}

Thanks for the reply @jobergum
I also had one more doubt. I am facing a problem while doing fuzzy matching through n-gram matching. I am doing 3-gram matching in a string field. When I am searching for "archetype", it is giving me the desired results, but when I am searching for "archtype" i.e skipping an e, it is not performing fuzzy matching and not giving any results.
Interestingly, when I am searching for "achetype" i.e removing an r in the start, it is giving me the desired results.
I wanted to understand, how exactly this n-gram matching is happening and how this particular test case can be resolved.
Thanks for your help.

Hi @Nistha314e  I suggest using https://docs.vespa.ai/en/query-api.html#query-tracing to understand exactly how the query is tokenized using n-gram, and see https://docs.vespa.ai/en/text-matching-ranking.html for how to inspect the tokens in the index - then you can do a controlled experiment to understand n-gram tokenization and matching.
Finally, this is a closed ticket and has already multiple topics. If you have questions after trying the above, maybe create a question on https://stackoverflow.com/questions/tagged/vespa for n-gram matching in Vespa? It helps if the schema, data and query is posted so people can reproduce also

Ngram matching is by AND by default - did you switch to OR as detailed in this comment above?

@bratseth
Hey, I would like to know where should we add this searcher code.
package ai.vespa.example;

import com.yahoo.search.Query;
import com.yahoo.prelude.query.CompositeItem;
import com.yahoo.prelude.query.OrItem;
import com.yahoo.prelude.query.HasIndexItem;
import com.yahoo.search.querytransform.NGramSearcher;
import com.yahoo.language.Linguistics;

/**
 * Changes NGram recall from AND to OR
 */
public class OrNGramSearcher extends NGramSearcher {

    public OrNGramSearcher(Linguistics linguistics) {
        super(linguistics);
    }

    @Override
    protected CompositeItem createGramRoot(HasIndexItem term, Query query) {
        return new OrItem();
    }

}

See doc or better look at this sample app.
Note that changing to OR will dramatically increase the number of hits queries will produce.

Use a standard maven layout on your vespa application project files, as done in the Vespa sample apps which includes Java code. This means you code will be placed somewhere under src/main/java.


[$500] Grey box is shown instead of bank icon

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.18-1
Reproducible in staging?: y
Reproducible in production?: not able to check
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @shubham1206agra
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1703677023896169
Action Performed:

Go to Workspace > Bank Account
Select Connect online via plaid
Select any bank, and complete the plaid process
Observe the icon next to bank name

Expected Result:
Bank Icon should be shown
Actual Result:
Grey Box is shown
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~018bcfe6522be3b9f5
Upwork Job ID:<PHONE_NUMBER>181048832
Last Price Increase: 2023-12-28
Automatic offers:

shubham1206agra | Contributor | 28071698
Pujan92 | Contributor | 28071779

Proposal
Please re-state the problem that we are trying to solve in this issue.
Bank icon filled with grey color
What is the root cause of that problem?
In this PR, for many places we have added fill property to Illustrations or images. In some screenshots just showing the image issue in diff component.

ImageCropView
AddPlaidBankAccount
DeeplinkRedirectLoadingIndicator
ValidateCodeModal
LogInWithShortLivedAuthTokenPage

What changes do you think we should make in order to solve the problem?
Remove fill property for Illustrations or images from all these components.

Sorry everyone, but I am working on this already actually. I just reported this for GH issue

this indeed has already been worked on by @shubham1206agra
This is not a blocker since this is already in production
Taking over since I was involved in the similar fixes @srikarparsi if thats ok

@mountiny can we hire @Pujan92 for partial compensation (he helped me to find extra places where icon has problems)?, and let's fix all places at once

@shubham1206agra do you want to let them fix it and you will be c+?

I will be fine as C+. And I will finish that PR and @Pujan92 open another PR to fix remaining places

I just dont want to do extra payments given we would need another C+ for this

I think in the same PR we can update other occurrences.

Why not in same PR as they have the same root cause?
As said in https://github.com/Expensify/App/issues/33664#issuecomment-1870761546, this GH was just created for tracking purpose. No need separate fix

Yep we should make one PR @shubham1206agra

@shubham1206agra do you want to let them fix it and you will be c+?

Lets do this in single PR then, and I will be C+ here then :)

@mountiny Can you hire @Pujan92 in this case then?

In this case, I think @Pujan92 can do reviewer role. Code is simple and just let them double test changes.
And full compensation to him.

If you have the PR, then raise it @shubham1206agra if not, than lets ask @Pujan92 to make the PR

I do have the PR already. I just need to update the remaining places

@Pujan92 Can you do C+ role in this case then?

Yes @vitHoracek , I will test and share update here once PR is raised.

@Pujan92 @shubham1206agra Whats the latest on this one, could we focus on getting this PR merged?

We are stuck on ImageCropView. Requires your input there.

@dannymcclain You need to comment on https://github.com/Expensify/App/pull/33607#issuecomment-1874054095.

I'm sorry but I don't think I'm understanding what the issue is? cc @shawnborton in case you have more context on this (if not just ignore).

@dannymcclain You need to comment that which design is better in case of ImageCropView. The different view is in https://github.com/Expensify/App/pull/33607#issuecomment-1874054095

Ah, I had reported something similar here
But yeah, seems like the bank account icon went missing and we should be showing the default bank icon when we don't have a logo available to us. cc @grgia @madmax330 in case you have more context too

@shawnborton i think thank bank icon issue should be handled already in the PR, but @shubham1206agra has this question they need help with https://github.com/Expensify/App/pull/33607

False alert above as PR is already in prod.

@Pujan92 - Paid 👍
@shubham1206agra can you complete the checklist above and also accept this offer

@shubham1206agra will you be able to complete the above checklist in the next day or two?

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[x]  [@shubham1206agra] The PR that introduced the bug has been identified. Link to the PR: https://github.com/Expensify/App/pull/30905
[x]  [@shubham1206agra] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: https://github.com/Expensify/App/pull/30905/files#r1463416802
[x]  [@shubham1206agra] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: https://expensify.slack.com/archives/C049HHMV9SM/p1706022333430269
[x]  [@shubham1206agra] Determine if we should create a regression test for this bug. No
[x]  [@shubham1206agra] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
[ ]  [@slafortune] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

Thanks @shubham1206agra Pd 👍


Bug: Can not header reponse as file image

PHP Version
8.1
CodeIgniter4 Version
4.1.5
CodeIgniter4 Installation Method
Composer (using codeigniter4/appstarter)
Which operating systems have you tested for this bug?
Windows
Which server did you use?
apache
Database
MySQL
What happened?
i use this code
$this->response->setHeader('Cache-Control', 'max-age=600, s-maxage=900, must-revalidate');
$this->response->setHeader('Content-Type', "image/png, charset=UTF-8");
$this->response->setHeader('Content-Length', filesize($filename));
return @readfile($filename);
"It returns as a broken image, but it works well for files like CSS or JavaScript. Specifically for SVG files, it works well when I add the flush() code. However, it doesn't work for JPG, PNG, or other image formats. When I checked with 'view source', the file has a broken line space on the first line, which I think is causing the problem.
Steps to Reproduce
--
Expected Output
its not working well in prev version like 4.4
Anything else?
No response

Returns the number of bytes read from the file on success, or false on failure
https://www.php.net/manual/en/function.readfile.php#refsect1-function.readfile-returnvalues

We use GitHub issues to track BUGS and to track approved DEVELOPMENT work packages. We use our forum to provide SUPPORT and to discuss FEATURE REQUESTS.


Customise Launch URL for launch.json different to `url param & server public URL

1. Describe the bug
In complex port/reverse proxy scenarios the developer services and launch URL might be different, or short-lived.
Can we please override the launch URL with something custom?
This was somewhat discussed in #7373 and #6807 but we'd like to point it to an entirely different URL altogether that isn't derived from either the usePublicURLFromServer OR the url parameter in launch.json.
2. To Reproduce
n/a
3. Expected behavior
Allow the launch URL to be customised.
4. Actual behavior
A clear and concise description of what happened accompanied by images, animations, or a link to a video showing the issue occurring
5. Versions:

AL Language: v11.0.787898
Visual Studio Code: v1.78.2
Business Central: all
List of Visual Studio Code extensions that you have installed: n/a

Final Checklist
Please remember to do the following:

[x] Search the issue repository to ensure you are reporting a new issue
[x] Reproduce the issue after disabling all extensions except the AL Language extension
[x] Simplify your code around the issue to better isolate the problem

Hi @ShadowXVII, can you please provide examples  of what you want to achieve? Considering the information provided so far I think this sounds more like an idea then actual bug.

Duplicate of #7419


Merge google -> main

93dc9475 Set TF OSS flags in bazelrc
35bae01e Remove control overhead in loop -> workgroup distribution.
a20d9d17 Synchronize submodules
5a974cb3 Update TF Submodule and LLVM BUILD files.
c1ec9152 Enable tiling using parallel loops and add pattern to map parallel..
c8dc96da Merge pull request #2368 from GMNGeoffrey:main-to-google
69509d1a Update ModelBuilder after upstream MLIR changes
1c3b8e7e Synchronize submodules
0c0c8920 Integrate LLVM at https://github.com/llvm/llvm-project/commit/7d95..
a88e55bb Synchronize submodules
4a9a7045 Integrate LLVM at https://github.com/llvm/llvm-project/commit/2501..
e6e5839c LLVMAOTTarget compilation and linking - Introduce FLAGS for target..

Missing cla is for copybara-worker, which is just an unregistered bot account doing the merge commits. We've reconfigured things to use our iree-copybara-bot account instead, which should prevent this issue in the future


Supportive v1

@abake-enova Hey Alex...please remove the non-supportive files and resubmit. Thanks!


Firebase Storage Issue

Hi,
I am using FirebaseStorage.net for uploading image in my c# project
Below is the piece of code i am using for upload purpose
var task = new FirebaseStorage("path")
.Child("data").Child("random").Child("file.png").PutAsync(xmlStream);
However i am getting below listed error
The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
I have added reference to required assembly.
Please do the needful.

Can you try the sample project? It works for me

Above issue is resolved.
Now i am getting below error
{
"error": {
"code": 400,
"message": "Invalid HTTP method/URL pair."
}
}

This could be either authentication issues or simply the format of your bucket name.

Me too was getting this error-
{ "error": { "code": 400, "message": "Invalid HTTP method/URL pair." }
But after simplifying bucket name from "gs://XXXXXX-bdded.appspot.com/" t o "XXXXXXX-bdded.appspot.com" solved my issue

Yes @pallavbohara , it worked for me too. Thank you!

Yes @pallavbohara , this worked for me as well. Thanks!!!

@pallavbohara  Worked for me! Thank you very much!

@pallavbohara i am new here in firebase can you guide me how to change gs://

Me too was getting this error-
{ "error": { "code": 400, "message": "Invalid HTTP method/URL pair." }
But after simplifying bucket name from "gs://XXXXXX-bdded.appspot.com/" t o "XXXXXXX-bdded.appspot.com" solved my issue

This solved the problem. Thanks

Also worked, thank you !!!

Me too was getting this error-
{ "error": { "code": 400, "message": "Invalid HTTP method/URL pair." }
But after simplifying bucket name from "gs://XXXXXX-bdded.appspot.com/" t o "XXXXXXX-bdded.appspot.com" solved my issue

Still not working
Code

Issue

Me too was getting this error-
{ "error": { "code": 400, "message": "Invalid HTTP method/URL pair." }
But after simplifying bucket name from "gs://XXXXXX-bdded.appspot.com/" t o "XXXXXXX-bdded.appspot.com" solved my issue

Thank you so much !! Relieved me

Thanksssss

@pallavbohara hundred thanks man !!! :')

Me too was getting this error-
{ "error": { "code": 400, "message": "Invalid HTTP method/URL pair." }
But after simplifying bucket name from "gs://XXXXXX-bdded.appspot.com/" t o "XXXXXXX-bdded.appspot.com" solved my issue

I'm having the same issue, but my bucket name is already in the format "XXXXXXX-bdded.appspot.com"

Me too was getting this error-
{ "error": { "code": 400, "message": "Invalid HTTP method/URL pair." }
But after simplifying bucket name from "gs://XXXXXX-bdded.appspot.com/" t o "XXXXXXX-bdded.appspot.com" solved my issue

Can you help me in doing that. I don't know how to do it.

Me too was getting this error- { "error": { "code": 400, "message": "Invalid HTTP method/URL pair." } But after simplifying bucket name from "gs://XXXXXX-bdded.appspot.com/" t o "XXXXXXX-bdded.appspot.com" solved my issue

can you explain that i am getting the same issue. please

how does one change the bucket name? Will all download links still be able to work?

This still occurs to me. Never had this before. I also removed those gs:// and still getting this error, I hope someone will help.


Url pattern findMany()

How an url must be structured to access multiple resources simultaneously (findMany).
I'm trying something like this (/api/v1/articles/552,43,12) on an non-eloquent adapter and expecting the findMany method to be called.

on an Eloquent adapter you can do use: /api/v1/articles?filter[id]=552,43,12
On a non-Eloquent adapter you would need to implement the filter yourself.
The findMany() method on the adapter interface is called when looking up multiple resources to modify a has-many relationship... i.e. it's not a method that's used for a URL.


The managed identity configuration is invalid: Managed identity is not enabled for the current resource -- Document Intelligence

Describe the bug
The application does not process new documents successfully when AI services are private endpoints enabled.
See the error bellow, its logged in Application Insights:

Traceback (most recent call last):
File "/usr/local/lib/python3.11/site-packages/opentelemetry/trace/init.py", line 590, in use_span
yield span
File "/usr/local/lib/python3.11/site-packages/azure/core/tracing/decorator.py", line 105, in wrapper_use_tracer
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/azure/ai/formrecognizer/_document_analysis_client.py", line 198, in begin_analyze_document_from_url
return _client_op_path.begin_analyze_document(  # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/azure/core/tracing/decorator.py", line 105, in wrapper_use_tracer
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/azure/ai/formrecognizer/_generated/v2023_07_31/operations/_document_models_operations.py", line 518, in begin_analyze_document
raw_result = self._analyze_document_initial(  # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/azure/ai/formrecognizer/_generated/v2023_07_31/operations/_document_models_operations.py", line 443, in _analyze_document_initial
raise HttpResponseError(response=response)
azure.core.exceptions.HttpResponseError: (InvalidRequest) Invalid request.
Code: InvalidRequest
Message: Invalid request.
Inner error: {
"code": "InvalidManagedIdentity",
"message": "The managed identity configuration is invalid: Managed identity is not enabled for the current resource."
}

Hi @jmasengeshomsft - Thanks for your feedback, We are investigating the issue from our end.
Based on the exception, we see its failing for Azure Form Recognizer resource. Will keep you posted.

Hello @jmasengeshomsft , Could you please provide the steps to reproduce this issue? This will help us identify and troubleshoot it more effectively.

Hi @jmasengeshomsft this is an enhancement request no private endpoint in CWYD accelerator. So changing it from bug to enhancement request


Generate descriptors from charged molecules

Hi all,
First, thanks for continuing this community, I use the mordred library on a regular basis.
In a more recent project that I'm working, I need to calculate all the descriptors for some charged molecules however mordred is complaining about the valence of the charged atoms (Explicit valence for atom # 8 N, 4, is greater than permitted).
If I generate the mol file from the smiles string and then calculate the descriptors, everything is ok.
However, if a calculate the descriptors from a xyz or sdf file I'm getting that error.
Is there a way to tell it that certain atoms have different valence or perhaps overwrite this and force the callculation of the descriptors?
Smiles string: "CCCCCCCCN+(CCCCCCCC)CCCCCCCC" (protonated atom is on square brackets)
sdf file (in .txt):
molecule_1.txt
xyz file ( in .txt):
molecule_1.txt
Thank you so much for any feedback in advance :)

Hi @brunocalcada thanks for the kind words.
That error is likely coming from RDKit, not mordred. Could you verify that the xyz, sdf, and mol files actually turn into the same molecule in RDKit? i.e. load all of the molecules into RDKit and then check if they are the same molecule. You can see which functions mordred uses to do this here: https://github.com/JacksonBurns/mordred-community/blob/fdbd0d9121370f6e4bb3ffe4dd9f4d5b521c775b/mordred/main.py#L33

@JacksonBurns thanks for your reply.
Indeed my error was in the sdf file, something was in fact missing there :)

Glad the issue was discovered!


can we put an automatic creditor for child/spousal support

Is it the crown? similar to taxes, can we autofill?

DWP - Department for Work and Pensions
They do all things benefits, child support and maintenance
Can have an informal arrangement which is not paid - priority to debtor in the family relationship, but not in the creditor


Improve webserver for saving data

First of all thanks for sharing this great project! I love how simple it is made for us to write experiments with it! You describe a PHP webserver at https://www.jspsych.org/overview/data/ and I thought about maybe implementing a similar but a bit more secure webserver in Python. Could we add it in that section as well? Or make it a small separate project? Especially the first implementation without MySQL looks quite dangerous if misused.
Best wishes!

I'm happy to add alternate approaches to the documentation. I don't want to bundle a server with jsPsych, but would support a small separate project to provide an easy-to-use server. There's a half-baked node.js based server sitting in this project.

After some thinking I came up with a very simplistic and general solution: CouchDB. And everything shipped with docker. I hope I will be able to publish my project soon and then I will add a link here, but the sketch goes like this:
docker-compose.yml
version: "3"
services:
    db:
      image: couchdb
      ports:
       - "5984:5984"
    nginx:
      build: nginx
      ports:
       - "80:80"

nginx Dockerfile
FROM nginx:alpine

COPY html/ /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/nginx.conf
COPY default.conf /etc/nginx/conf.d/default.conf

EXPOSE 80

default.conf
server {
    listen 80;
	root /usr/share/nginx/html/;

	location /experiment-results {
		rewrite /experiment-results/(.*) /experiment-results/$1 break;
		proxy_pass http://docker-coachdb;
		proxy_redirect off;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	}
}

So what it does is running two Docker containers, one with the database and one with the nginx server. The static files are hosted in ngninx and one database called experiment-results is also accessible. By now everything is quite open, no security, no users etc. - That could be changed if needed. But everything is only available to the localhost by default. And who of our colleagues or participants would be so mean and start to invoke rest calls on our database API or start to play around with Fouton, the GUI interface?
The results can later be picked up at Fouton at http://localhost:5984/_utils/#database/experiment-results/_all_docs and there is a cool API for that as well. That minimizes a lot of effort!

Now it runs, sample project available at https://github.com/1kastner/memory-test


Add readline support for Windows OS

Hey!
Read line does not work on Windows except if you include the pyreadline in the requirements file 👍

Hello there :)
Hoaxshell was not designed to run on windows. It's what some people call a "kali tool". Adding the pyreadline in the requirements makes the script run and even work at some level, but there are serious encoding issues that makes it hard to use and unreliable.
Nevertheless, your input was really useful. I don't intent to make hoaxshell (fully) compatible with windows atm. I will leave this PR open, it might be useful for someone looking to run hoaxshell on windows and maybe i can look into it again in the future.
Thanks again :)

windows python >= 3.9
pip3 install pyreadline3
https://github.com/pyreadline/pyreadline/pull/78


TypeError occurs when formatting detail when raising BadRequestError with garbage relationships in post_collection

Here is a test that should return a BadRequestError:
    def test_add_resource_with_invalid_relationships(self):
        """Create resource with unknown OneToMany relationship key returns 400.

        A BadRequestError is raised.
        """
        payload = {
            'data': {
                'attributes': {
                    'first': 'Sally',
                    'last': 'Smith',
                    'username': 'SallySmith1',
                    'password': 'password',
                },
                'type': 'users',
                'relationships': {
                    'posts': {
                        'data': [{
                            'type': 'posts',
                            'id': 1
                        },
                        {
                            'type': 'posts',
                            'id': 2
                        }]
                    },
                    'dogs': {
                        'data': [{
                            'id': 1,
                            'type': 'dogs'
                        }]
                    }
                }
            }
        }

        with self.assertRaises(errors.BadRequestError) as error:
            models.serializer.post_collection(
                self.session, payload, 'users')

        self.assertEqual(error.exception.detail, 'dogs not relationship for users')
        self.assertEqual(error.exception.status_code, 400)

However this test will never actually return this detail message because when this check happens:
         data_keys = set(map((
            lambda x: resource.__jsonapi_map_to_py__.get(x, None)),
            data['data'].get('relationships', {}).keys()))
        model_keys = set(resource.__mapper__.relationships.keys())
        if not data_keys <= model_keys:
            raise BadRequestError(
                '{} not relationships for {}'.format(
                    ', '.join(list(data_keys -
                                   model_keys)), model.__jsonapi_type__))

When we take the difference between data_keys and model_keys we are getting {None} because
data_keys = {'posts',None'} and model_keys = {'posts','comments',logs'}.
When the BadRequestError is raised we get a TypeError: sequence 0: expected str instance, NoneType found.
This happens on both python3 and python2.
I will look at more as to how to fix this.

This same TypeError: sequence 0: expected str instance, NoneType found also occurs in patch_resource when trying to raise a BadRequestError. Will put up issue.

Do you know what the expression not data_keys <= model_keys is trying to figure out?

Yes. Basically if you look at the test I posted above, we are trying to make sure we flag relationships that are not existant and raise a BadRequestError for those. So someone could send garbage input for the relationship keys, as I did in that test with dogs, and we would give a meaningful error message back so they understand the relationship between 'dogs' and 'users' does not exist. In otherwords, we are checking if data_keys is a subset of model_keys.


Built Fabric jar using incorrect refmap

When I try to build my JAR file for Fabric, I get this error:
 Mixin apply for mod kambrik failed kambrik.mixins.json:StructurePoolAccessor from mod kambrik -> net.minecraft.class_3785: org.spongepowered.asm.mixin.gen.throwables.InvalidAccessorException No candidates were found matching elements:Lit/unimi/dsi/fastutil/objects/ObjectArrayList; in net/minecraft/class_3785 for kambrik.mixins.json:StructurePoolAccessor from mod kambrik->@Accessor[FIELD_GETTER]::getElements()Lit/unimi/dsi/fastutil/objects/ObjectArrayList; [INJECT Applicator Phase -> kambrik.mixins.json:StructurePoolAccessor from mod kambrik -> Apply Accessors ->  -> Locate -> kambrik.mixins.json:StructurePoolAccessor from mod kambrik->@Accessor[FIELD_GETTER]::getElements()Lit/unimi/dsi/fastutil/objects/ObjectArrayList;]

StructurePoolAccessor is a Mixin in Kambrik, my mod.
I noticed that the .jar file contains a Kambrik-common-refmap.json. It's unused in kambrik.mixins.json. If I add the following line to kambrik.mixins.json:
	"refmap": "Kambrik-common-refmap.json"

The mod will launch successfully. As such, it seems that refmaps aren't being linked properly. I don't know much about how refmaps work, or how they're supposed to work, but this is what seems to be happening. It happens with ArchLoom 1.4-SNAPSHOT and 1.5-SNAPSHOT.

Do you have Architectury Plugin installed? It should fix this issue, which really isn't a Loom issue (the mixin config is in the common Gradle project, so its refmap property would need to be added in :common:remapJar, which isn't run here due to the project structure).

What would I have to set in my remapJar task?
Here is my current remapJar, but it doesn't run for common:
https://github.com/ejektaflex/Bountiful/blob/96f85f641b2d0c42f7de77834482deaee21789e3/build.gradle.kts#L111

Cool, I've fixed this by doing:
loom {
    mixin {
        defaultRefmapName.set("Bountiful-common-refmap.json")
    }
}

Do you have an example of how this is done using Architectury Plugin? I'm depending on it in my gradle setup, but I don't exactly know how to utilize it.
Thanks so much!

If you include the common classes in the Fabric jar by bundling :common's transformProductionFabric configuration, it'll apply the transformers. Example from Arch API's code:
https://github.com/architectury/architectury-api/blob/cd74016d85b562affb21890cb8796b1e34ac2ca9/fabric/build.gradle#L33

It's my understanding that I'm already doing this. Could the problem arise because I'm not including transitive dependencies?
My code: https://github.com/ejektaflex/Bountiful/blob/d6e52965fc5b631e2160534f4fa83ccc63104b49/fabric/build.gradle.kts#L50C1-L50C114

No, I don't think it affects anything since that project dependency won't even have any transitive deps. As far as I can tell, the code should already work 🤔
I also don't think this is directly related to Loom, so I'm moving the issue to Arch Plugin's repo.


Cancel on exception.

from stories import I, Story

class Action(Story):
    I.one(
        ~I.cancel_one,
    )
    I.two(
        ~I.cancel_two_a,
        ~I.cancel_two_b,
    )
    I.three

    def one(self, state):
        print("one")

    def two(self, state):
        print("two")

    def three(self, state):
        print("three")
        raise Exception

    def cancel_two_a(self, state, error):
        print("cancel_two_a")

    def cancel_two_b(self, state, error):
        print("cancel_two_b")

    def cancel_one(self, state, error):
        print("cancel_one")

>>> Action().do()
one
two
three
cancel_two_a
cancel_two_b
cancel_one
Exception()
>>>

This example harms readability of the main story. We advise users to move each method with rollbacks into a separate substory.

class Action:

    @story
    def do(I):
        I.one
        I.two
        I.three

    @story
    def one(I):
        with I.first:
            ~I.cancel_first

    @story
    def two(I):
        with I.second:
            ~I.cancel_second_a
            ~I.cancel_second_b

We can also rollback not the whole story but one substory.
from stories import Rollback, Skip, Success, story

class Action:
    @story
    def main(I):
        I.before
        I.do
        I.after

    @story
    def do(I):
        with I.one:
            ~I.cancel_one
        I.two

    def before(self, ctx):
        print("before")
        return Success()

    def one(self, ctx):
        print("one")
        return Success()

    def two(self, ctx):
        print("two")
        return Rollback(to=Skip())

    def cancel_one(self, ctx):
        print("cancel_one")
        return Success()

    def after(self, ctx):
        print("after")
        return Success()

>>> Action().do()
before
one
two
cancel_one
after
>>>

Deny using I expressions inside with block without ~ operator.

def execute():
    nuxt = first
    while nuxt:
        returned = nuxt.method(ctx)
        nuxt, result = returned.__handle(ctx, runner, nuxt)
    return result()

Superseded by #627


Adapted C++Makefile template

functions outside the class definition (hopefully) do not result in errors anymore

Good call, thanks for the patch.


chore: demo-sdr to 0.0.1

chore: Promote demo-sdr to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


JCS-226 - Use toArray with zero-length array argument

I thought we discussed this already in #33

True.I'm really sorry @tvand


Supported glTF extensions

I am creating this issue to track the support of officially published extensions, and their support by glTF-insight.
One of the most interesting parts of the glTF format is that it can be extended to add missing features or applications specific metadata.
For reminder, there's 3 majors level of extensions: KHR ones are ratified by Khronos. We should expect theses to be present in assets, are they both contains features that are really missing from the base format, and that are generally supported by implementations.
EXT extensions are extensions ratified by multiple vendors. They could be promoted to the KHR level, but aren't yet. They are "industry consensus" addition to the file format. I'm personally really interested by the one about IBL as it permits a glTF scene to provide it's own HDR environment map to define more natural lighting.
Other are vendor specific, and thus have been published because they could be interesting for the comunity, but they aren't that important for us as of now.
glTF-insight extension support
Below are the most relevant extensions our software should support:
general:

[ ] KHR_draco_mesh_compression Note: This is supported directly inside tinygltf

material:

[x] KHR_materials_unlit
[ ] KHR_materials_pbrSpecularGlossiness (TODO only suport fallback to metal_roughness ATM. Dedicated shader needed)
[ ] KHR_texture_transform

lighting:

[ ] EXT_lights_image_based

Vendor specific extension with planned support:

[ ] MSFT_audio_emitter (see issue #42)
[ ] MESHOPT_quantized_geometry
[ ] MESHOPT_compression

Hi! (I'm the one who opened this issue at tinygltf and from there you told me about this project, which is really exciting, and it's progressing at a really promising pace!! Congratulations, and thanks a lot!!
Regarding extensions, I must say I'm a bit disappointed about glTF 2.0 because there are two features that I need for my global illumination scenes, and they are not supported yet (I already posted about this at the issues in the official glTF repository):

Quads: If you do either subdiv surfaces or radiosity patches, you want quads. AFAIK, there's no extension for quads. Are you aware of any workaround for quads? How are you supposed to save a Catmull-Clark subdivision surface without quads?
PBR transparency and refraction: I feel disappointed that the current glTF PBR materials don't support PBR transparency/translucency/refraction. Yes, it's a complex topic, not suitable for realtime in GPU yet, but... come on!!!, there are plenty of BRDF/BTDF/BSDF models published throughout the years, and if they chose a BRDF similar to the Disney one as the BRDF for PBR in glTF, they could also have chosen to support some BTDF model as well. When posting about this in the glTF repository, I was suggested to take a look at the ADOBE_materials_thin_transparency extension. But, as you mention, it's a vendor-only extension. Too bad!!

These two things (quads and PBR transparency) are must-have features for my global illumination scenes, so somehow I believe glTF is not yet ready for proper GI work. Until they add these features, maybe it would be possible to create a "container format" that combines glTF with other files, like Wavefront OBJ, enclosing everything in a TGZ for example (similar to the Microsoft Office docx/xlsx formats which are actually ZIP containers with several files inside). I mean, maybe it would be possible to save a glTF file together with a companion file that adds all the missing things, and enclosing both files in a container.

Quads

You can use this.
https://github.com/KhronosGroup/glTF/pull/1620
Although ngon extension is currently neither supported in TinyGLTF nor gltf-insight. You can implement it and send us PR.

PBR transparency and refraction:

This is rather off topic, but we have implemented exporting Maya Arnold PBR(close to Disney principled BSDF) parameter to glTF as an extension.
https://github.com/lighttransport/glTF-Maya-Exporter/blob/development/src/glTFExporter/glTFExporter.cpp#L1756
You can use this definition and follow https://github.com/Autodesk/standard-surface to implement your own PBR model.
FYI, we've successfully implemented corresponded Arnold StandardSurface PBR material in our private monte carlo raytracer.

Quads

You can use this.
KhronosGroup/glTF#1620
Although ngon extension is currently neither supported in TinyGLTF nor gltf-insight. You can implement it and send us PR.

PBR transparency and refraction:

This is rather off topic, but we have implemented exporting Maya Arnold PBR(close to Disney principled BSDF) parameter to glTF as an extension.
https://github.com/lighttransport/glTF-Maya-Exporter/blob/development/src/glTFExporter/glTFExporter.cpp#L1756
You can use this definition and follow https://github.com/Autodesk/standard-surface to implement your own PBR model.
FYI, we've successfully implemented corresponded Arnold StandardSurface PBR material in our private monte carlo raytracer.

Both suggestions are great!! Regarding the ngon encoding extension, didn't know about that, but I was also thinking about the possibility of encoding quads by simply considering that every two triangles in a mesh constitute a quad. That extension actually makes this more powerful, extending it to ngons.
I think I'm going to try to use this extension. I'm not sure if a PR is required for it to be supported in TinyGLTF, as it's only a matter of interpreting the order of vertices, so maybe it's not even a task for TinyGLTF, but for the software that uses TinyGLTF. I'll study it.
Regarding your PBR extension, have you considered proposing it at the glTF official repository as an extension? They are in fact asking in a couple of issues about wishlists for future >2.0 glTF versions.

@cesss The way extensions are defined in a glTF assets, and the fact that tinygltf just expose you the glTF data in a low level (but convenient) way in C++ makes it that, unless the extensions has to do with decoding the binary buffers (e.g:. draco compression), or decoding images (e.g.: KTX texture format), they mostly are about adding more metadata to some part of the JSON description of the object. In that case, the metadata is added to the "extension" parameters where they belong (like, on a mesh or a material or a texture object).
In that case, it's mostly the responsibility of the client program using TinyGLTF to support the extension.
We are thinking about, only for the case of the KHR extensions, to try to detect them and explicitly expose them through the API, but it's a convenience feature discussed here https://github.com/syoyo/tinygltf/issues/152

I really need quads for my work. If I try to implement the ngon-extension myself in gltf-insight, what would be your preferred way for doing it? I mean: should I add quad faces (or even n-gon faces although I don't need them) in the data structures? Or would you prefer that I store n-gons as pointers to triangles?
I'm asking because I really don't know how quads/ngons would interfere with your skinning/morphing implementation at this point, and I'd like to follow the path you prefer.

I just had a very simple idea to implement quads and n-gons in a very simple way: no need to new data structures, nor even to store the "collection of triangles" which make each n-gon. Instead of doing that, I think it would be enough just to flag every mesh as "normal" or "with n-gon extension enabled". When a mesh is flagged as n-gons, you can work on it the same way as if it was triangles (because IT IS triangles indeed!!), but however, when rendering in OpenGL, you can use the vertex order to figure out how many vertices each face has, and render it accordingly (quite likely you would only notice the difference if you render in wireframe mode).
Also, when saving a OBJ or a glTF, you can check if the flag is enabled, and save the mesh accordingly (in the case of OBJ, save real quads, while in the case of glTF just output the extension name and keep the vertices order).
I'm of course supposing that tinygltf doesn't reorder vertices when loading, does it?
What do you think about this idea? I can try to implement it and issue a PR if you like it.

As a side note : I am not familiar with the ngon glTF extension, but I have some input for you:
For skinning and morphing, it's done vertex per vertex. Thus, skinning and morphing don't depend on the fact that 3 of these vertex put together draw a triangle or not.
For rendering tho, as far as I know, to render a quad in OpenGL, you end up drawing triangles anyway, same for any kind of polygon with more than 3 vertices. There are a few drawing mode in OpenGL that speed up drawing of a bunch of triangle by permitting to specify the next triangle with only one vertex after the 3 first ones
Notably,
GL_TRIANGLE_FAN  to draw something like this

This can be drawn as a triangle list using the index order 0; 1; 2; 0; 2: 3; 0; 3; 4... or a a triangle fan using the index order `0; 1; 2; 3; 4..."
GL_TRIANGLE_STRIP to draw something like that:

Again, as a triangle list, this needs to have the index buffer 1; 2; 3; 3; 2; 4 (for example, there are other valid solutions), but as a triangle strip this can be specified just by using 1; 2; 3; 4. This is the best
You can draw both of theses as a list of triangle too. The only thing that changes is the index buffer.
Note that flat normal generation code in glTF-insight (we generate normal vectors when they aren't specified) assume the index buffer exposes a triangle list. This technically already need to be extended as glTF can already use the triangle list/fan modes. If that scenario arise, current code will print a warning in the console if that's not the case. It seems to be pretty rare than an exporter will generate a mesh primitive that don't use a triangle list, and will also not export explicit vertex normal.

I'm of course supposing that tinygltf doesn't reorder vertices when loading, does it?

It doesn't even load "vertices". It only exposes the data defined in the glTF asset for you in a low level manner. It's not a high level "mesh loader" like assimp. So no, it will not reorder them for you.

At some point in the near future, it would be nice to implement #40

Added a list of "planned support" for a few vendor-level extensions at the end of original post. The ones mentioned in other issues.


[Addresses #9466] API to configure TempDirectory used by HttpBuffering

Addresses #9466
This is still not ready but before implementing it in all the callers I'd like to check if the logic looks right.
Currently the HttpBufferingOptions is the one configured in the DI, and IOptions<HttpBufferingOptions> resolved in the callers, such EnableRewind or the MVC formatters.
For the creation of the Streams, a new Factory is added (HttpFileBufferingFactory) in Microsoft.AspNetCore.Http which gets in the ctor the options. This factory could be resolved instead of being manually created, in that case, what should be the right place to be registered into the Service Collection?
Another option would be making the factory more generic, just getting the TempDirectoryPath as string in the ctor instead of being tied to the HttpBufferingOptions, so it could be added to the WebUtilities project.
@Tratcher, @anurse could you please take a look and let me know what you think?

I haven't been following this closely but I'm not a fan of adding more services to hosting to enable this to work. I strongly recommend looking for an alternative design. We've been slowly moving away from adding these "default services" to hosting (see https://github.com/aspnet/AspNetCore/issues/5944).

Would it make sense to add the required services with AddHttpBuffering() in the places that is used? Currently in Mvc:

Mvc.Formatters.Xml\src\XmlDataContractSerializerOutputFormatter.cs
Mvc.Formatters.Xml\src\XmlSerializerOutputFormatter.cs
Mvc.NewtonsoftJson\src\NewtonsoftJsonOutputFormatter.cs
Mvc.NewtonsoftJson\src\NewtonsoftJsonResultExecutor.cs
Mvc.ViewFeatures\src\ViewComponentResultExecutor.cs

For these ones, Mvc.Core or the individual component?
It's also used in Http\src\Internal\BufferingHelper.cs, called from from FormFeature:
https://github.com/aspnet/AspNetCore/blob/a4a08a68f3a01b6f89a357de2cef67b6b823b348/src/Http/Http/src/Features/FormFeature.cs#L140
https://github.com/aspnet/AspNetCore/blob/a4a08a68f3a01b6f89a357de2cef67b6b823b348/src/Http/Http/src/Features/FormFeature.cs#L187-L191
but exposed publicly via HttpRequest extension methods in
https://github.com/aspnet/AspNetCore/blob/a4a08a68f3a01b6f89a357de2cef67b6b823b348/src/Http/Http/src/Extensions/HttpRequestRewindExtensions.cs#L21-L24
So, in these cases, do you know of another place more specific than hosting that could work? Having a fallback in case is not registered (not sure if this would be clean)?

No, features exposed directly from HttpContext need to work with pre-registered services. Adding it by default in Hosting should be adequate.

@davidfowl I'll follow-up with you directly.

Offline discussion:

Options and services for things used by HttpContext are problematic.
A temp dir is a more fundamental app level concern, we should move this to IHostEnvironment
https://github.com/aspnet/Extensions/blob/master/src/Hosting/Abstractions/src/IHostEnvironment.cs
or IWebHostEnvironment
https://github.com/aspnet/AspNetCore/blob/master/src/Hosting/Abstractions/src/IWebHostEnvironment.cs
then it would be configured through the host APIs, not via options and services.

@glennc to check if IHostEnvironment vs IWebHostEnvironment makes the most sense.

Thanks @Tratcher, I like it. This way it's not just the temp dir for HttpBuffering but a way for setting/getting the temp dir for everyone.
The consumers still need to create the Buffering Read and Write Stream, in this case if we use the host APIs to configure the TempDirectory, we check if the Directory exists on configuration and everything there, could we resolve the HostEnvironment and do this for the accessor?
new FileBufferingWriteStream(tempFileDirectoryAccessor: () => _environment.TempDirectory);
Or is still better and safer to pass a Func like this in case there's something in the middle breaking it?
https://github.com/aspnet/AspNetCore/blob/a4a08a68f3a01b6f89a357de2cef67b6b823b348/src/Http/Http/src/HttpFileBufferingStreamFactory.cs#L47-L52
Regarding the default path, are we still keeping the default behavior in the Streams for getting the accessor or deprecating/marking obsolete (this is the breaking-change itself)?
https://github.com/aspnet/AspNetCore/blob/a4a08a68f3a01b6f89a357de2cef67b6b823b348/src/Http/WebUtilities/src/FileBufferingWriteStream.cs#L58

Or is still better and safer to pass a Func like this in case there's something in the middle breaking it?

Yeah, reading and validating TempFileDirectory should be lazy because it may not be created until after startup, and could even be deleted later.

Regarding the default path, are we still keeping the default behavior in the Streams for getting the accessor or deprecating/marking obsolete (this is the breaking-change itself)?

Yes, we'll keep any back-compat that's reasonably possible, but may decided to Obsolete(Warning) some of them.

Yeah, reading and validating TempFileDirectory should be lazy because it may not be created until after startup, and could even be deleted later.

Makes sense. We could keep the factory then but just in WebUtilities this way:
public class FileBufferingStreamFactory : IFileBufferingStreamFactory
{
     public FileBufferingStreamFactory(string tempPath)
     {
         _tempPath = tempPath;
         _getTempDirectory = () => _tempDirectory;
     }

     private string _tempDirectory
     {
          get
           {
               if (!Directory.Exists(_tempPath))
               {
                   throw new DirectoryNotFoundException(_tempPath);
               }

               return _tempPath;
           }
       }
}

And create it when needed resolving HostEnvironment to get TempDirectory. Or just keep creating the BufferingStreams in the consumers manually.

@glennc to check if IHostEnvironment vs IWebHostEnvironment makes the most sense.

Glenn, could you please take a look to see in which one it suits better? Specially as the former would make it cross-repo.

@Tratcher I've started with this on a new branch (https://github.com/cjaliaga/AspNetCore/commit/8b9625a3585f8a7c19ae541fedd9db9fd6207dcf), adding it on IWebHostEnvironment for the time being.
Is it better to create a new PR with the new branch linking this one or to reset this one to master and do it here to keep the PR active?

This got backburnered during the run up to 3.0. We'll try to look at this for 5.0 now!

Let's close this in favor of #12555


Fixed Latin-1 decode problems

Fixes Latin-1 decode problems
What this Pull Request (PR) does
Fixes Latin-1 decode problems
Related issues
For example, https://youtu.be/f2BjFilLDqQ threw a Latin-1 decode error.
Screenshots
Old behaviour:

New behavior

Hi @danielmiessler  @Loibl33,  I think this error is very likely caused by the  locale and/or environment is broken, not installed, not set to UTF-8, see here
Therefore, this fix might be unnecessary and will also break other languages output: see #370


fix(tests,virtctl): Partially revert cleanups

What this PR does
This partially reverts the cleanups of
be4d5584723cf9205976d37b6c9753285c02ee5c, because the now reverted
changes invalidate the results of the changed tests.
For the tests to have a meaningful result, the actual virtctl binary
needs to run (CreateCommandWithNS) instead of running the virtctl
command as part of the test binary (NewRepeatableVirtctlCommand).
Before this PR:
Tests do not have a meaningful result
After this PR:
Tests have a meaningful result

Fixes #
Why we need it and why it was done in this way
The following tradeoffs were made:
The following alternatives were considered:
Links to places where the discussion took place:
Special notes for your reviewer

Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

[ ] Design: A design document was considered and is present (link) or not required
[ ] PR: The PR description is expressive enough and will help future contributors
[ ] Code: Write code that humans can understand and Keep it simple
[ ] Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
[ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required
[ ] Testing: New code requires new unit tests. New features and bug fixes require at least on e2e test
[ ] Documentation: A user-guide update was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature / API change.
[ ] Community: Announcement to kubevirt-dev was considered

Release note

None

/apporve

/lgtm

/apporve

@alicefr Typo

/approve

Not enough coffee this morning, thanks!

:coffee: Here's one for you! :slightly_smiling_face:


argo logs errors out with rpc error: code = PermissionDenied desc = unknown (get pods)

Summary
argo logs errors out with rpc error: code = PermissionDenied desc = unknown (get pods). It should return logs from the corresponding Kubernetes pod.
Diagnostics
What version of Argo Workflows are you running?
Client
$ argo version
argo: v2.10.0+195c6d8.dirty
  BuildDate: 2020-08-18T23:05:49Z
  GitCommit: 195c6d8310a70b07043b9df5c988d5a62dafe00d
  GitTreeState: dirty
  GitTag: v2.10.0
  GoVersion: go1.13.4
  Compiler: gc
  Platform: linux/amd64

Server
$ kubectl exec -it argo-server-***** -- argo version
argo: v2.10.0
  BuildDate: 2020-08-18T23:15:20Z
  GitCommit: 195c6d8310a70b07043b9df5c988d5a62dafe00d
  GitTreeState: clean
  GitTag: v2.10.0
  GoVersion: go1.13.4
  Compiler: gc
  Platform: linux/amd64

I can get the logs from kubectl, argo logs from the server, but got RPC error when I call it from the client.
$ kubectl logs my-wf-***** -c main
{"asctime": ....

$ kubectl exec -it argo-server-***** -- argo logs my-wf-*****
{"asctime": ....

$ argo -v logs my-wf-*****
DEBU[0000] CLI version                                   version="{v2.10.0+195c6d8.dirty 2020-08-18T23:05:49Z 195c6d8310a70b07043b9df5c988d5a62dafe00d v2.10.0 dirty go1.13.4 gc linux/amd64}"
DEBU[0000] Client options                                opts="{{argo-server:2746 true true}  0x17081a0 <nil> 0x17081f0}"
FATA[0000] rpc error: code = PermissionDenied desc = unknown (get pods)

Here is my rbac, I have added logs into it but that doesn't help
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: argo-server-role
rules:
  - apiGroups:
      - ""
    resources:
      - configmaps
    verbs:
      - get
      - watch
      - list
      - logs
  - apiGroups:
      - ""
    resources:
      - secrets
    verbs:
      - get
  - apiGroups:
      - ""
    resources:
      - pods
      - pods/exec
      - pods/log
    verbs:
      - get
      - list
      - logs
      - watch
      - delete
  - apiGroups:
      - ""
    resources:
      - secrets
    verbs:
      - get
  - apiGroups:
      - argoproj.io
    resources:
      - workflows
      - workflowtemplates
      - cronworkflows
    verbs:
      - create
      - get
      - list
      - logs
      - watch
      - update
      - patch
      - delete

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

Your role looks correct to me. Can you please share the argo-server logs for the request?

@alexec
argo list (which is a successful call, so rule out networking issues):
time="2020-09-16T15:11:29Z" level=info msg="finished unary call with code OK" grpc.code=OK grpc.method=ListWorkflows grpc.service=workflow.WorkflowService grpc.start_time="2020-09-16T15:11:29Z" grpc.time_ms=68.264 span.kind=server system=grpc

argo logs which raises the rpc error: code = PermissionDenied desc = unknown (get pods) error:
time="2020-09-16T15:12:00Z" level=warning msg="finished streaming call with code PermissionDenied" error="rpc error: code = PermissionDenied desc = unknown (get pods)" grpc.code=PermissionDenied grpc.method=PodLogs grpc.service=workflow.WorkflowService grpc.start_time="2020-09-16T15:12:00Z" grpc.time_ms=17.42 span.kind=server system=grpc

Duplicate of #3913.

@ozooxo could I please ask you to look at #3913 and see if you agreed (I'm not sure myself).

Hi @alexec ,
I checked https://github.com/argoproj/argo/issues/3913
Yes we have the auth mode enabled, and we setup the JWT token as (client side) ARGO_TOKEN environment variable where the argo-cli commands can access. The token we are using is for a jenkins service account, which is different to the token you can get from kubectl exec argo-server-***** -- argo auth token.
        - args:
            - server
            - --auth-mode
            - client
            - --auth-mode
            - sso
            - --secure
            - --namespaced

It is the same log command, and the same behavior that other commands (tried get/list/submit) are working fine but argo logs raises error. However, the actual error content we have is different from https://github.com/argoproj/argo/issues/3913.

I try to use the kubectl exec argo-server-***** -- argo auth token instead, and actually the log can be seen successfully. Log:
time="2020-09-17T13:51:10Z" level=info msg="finished streaming call with code OK" grpc.code=OK grpc.method=PodLogs grpc.service=workflow.WorkflowService grpc.start_time="2020-09-17T13:51:10Z" grpc.time_ms=66.973 span.kind=server system=grpc

The service account and JWT token are generated from https://argoproj.github.io/argo/access-token/ . So maybe it is a bug on the service account/service account setup?

FYI, this is my argo-role (I previously passed you the argo-server-role setup):
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: argo-role
rules:
- apiGroups:
  - ""
  resources:
  - pods
  - pods/exec
  verbs:
  - create
  - get
  - list
  - logs
  - watch
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - watch
  - list
  - logs
- apiGroups:
  - ""
  resources:
  - persistentvolumeclaims
  verbs:
  - create
  - delete
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  - workflows/finalizers
  verbs:
  - get
  - list
  - logs
  - watch
  - update
  - patch
  - delete
  - create
- apiGroups:
  - argoproj.io
  resources:
  - workflowtemplates
  - workflowtemplates/finalizers
  verbs:
  - get
  - list
  - logs
  - watch
- apiGroups:
  - ""
  resources:
  - serviceaccounts
  verbs:
  - get
  - list
  - logs
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - get
- apiGroups:
  - argoproj.io
  resources:
  - cronworkflows
  - cronworkflows/finalizers
  verbs:
  - get
  - list
  - watch
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
- apiGroups:
    - "policy"
  resources:
    - poddisruptionbudgets
  verbs:
    - create
    - get
    - delete

I kind of add logs everywhere but it doesn't help.

@ozooxo the role show in https://argoproj.github.io/argo/access-token/ is only enough permission to submit a workflow. You need add more to tail logs.
You can change this as follows:
kubectl edit role jenkins

Hi @alexec ,
So our Jenkins role is something like this. And we added the logs verb to it (see comment inside of YAML. However, after that we are still seeing the same permission error.
Could you provide more detail where exactly we should be adding/modified? Thanks!
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"rbac.authorization.k8s.io/v1","kind":"Role","metadata":{"annotations":{},"labels":{*******},"rules":[{"apiGroups":["argoproj.io"],"resources":["workflows"],"verbs":["get","list","watch","update","patch","delete","create"]},{"apiGroups":["argoproj.io"],"resources":["workflowtemplates"],"verbs":["get","list","watch"]},{"apiGroups":["argoproj.io"],"resources":["cronworkflows"],"verbs":["get","list","watch","update","patch","delete"]}]}
  creationTimestamp: "2020-08-28T13:45:38Z"
  labels:
    app.kubernetes.io/instance: *******
  name: *******
  namespace: *******
  resourceVersion: "1117840331"
  selfLink: /apis/rbac.authorization.k8s.io/v1/namespaces/*******
  uid: *******
rules:
- apiGroups:
  - argoproj.io
  resources:
  - workflows
  verbs:
  - get
  - list
  - watch
  - update
  - patch
  - delete
  - create
  - logs               # <-------------------------- This is newly added.
- apiGroups:
  - argoproj.io
  resources:
  - workflowtemplates
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - argoproj.io
  resources:
  - cronworkflows
  verbs:
  - get
  - list
  - watch
  - update
  - patch
  - delete

You need pods/logs as per https://argoproj.github.io/argo/workflow-rbac/ for tailing logs.

There are several roles mentioned in the issue, to be very clear

argo-server role is used by the Argo Server. This should either (a) be left unmodified or (b) restricted to ready-only permissions.
workflow role (sometime just argo) is used by your workflow and should be give these permissions: https://argoproj.github.io/argo/workflow-rbac/
jenkins role used by third-party APIs for the API or CLI. This should be given permission appropriate to the work it need to do: https://argoproj.github.io/argo/access-token/

Yup. So we added this on the jenkins role and argo logs works again.
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - get
  - watch
  - patch
  - list
- apiGroups:
  - ""
  resources:
  - pods/log
  verbs:
  - get
  - watch

Wonder what that default service account role comes from? Can this step be codified (so we only need to manually kubectl create role jenkins-or-some-other-service-account --verb=list,update --resource=workflows.argoproj.io to create a role, instead to need to manually create it and manually modified it)? Thanks!

It is up to you how you create your resources. I don't think kubectl create is sophisticated enough for many usecases and you need to use kubectl apply -f...

Resolved?

@alexec Yup. Sorry I didn't come back to check it.


Graphql

Hello, just looking into using this module but I'll be using graphql rather than the rest api. Just wanted to check if it will work in particular with Incremental Static Regeneration.

Yes. The Next module works with both JSON API and GraphQL.
The next-drupal however works only with JSON API right now.

are you planning on implementing GraphQL for next-drupal?

Not for now. However we are following @jmolivas work on schema generation and will decide on how best to support it.

See also https://www.chapterthree.com/blog/nextjs-drupal-and-graphql-how-to-use-graphql-next-drupal


Delete incorrect profile of  CR-C Fios in 501st Data Core

CR-C Fios has multiple Profiles incorrect ones need to be Deleted in Roster
Correct:
CR-C Fios - 24571
Incorrect:
fios - 1270
Fios - 24517
Fios - 2

Done.


TypeError: Cannot read property 'trigger' of null, js engine: hermes

TypeError: Cannot read property 'trigger' of null, js engine: hermes

I am unable to find the root cause of this issue, it's happening frequently while hot reloading the app
OS :  Android 13

https://github.com/wuba/react-native-echarts/issues/92

i also the same problem as you

i also the same problem as you

https://github.com/wuba/react-native-echarts/issues/92#issuecomment-1742007174

Experiencing the same in my react native app, when the application hot reloads the issue is getting in some cases, not every time.
May be the trigger is not getting correctly.

zrender 5.5.0
echarts 5.5.0-rc.1
The new version fixes this problem, you can try it.


Video Tutorial Help?

Hello! I was wondering if you could possibly do a Video Tutorial on how to install this bot. I have followed the necessary steps to do so, yet i come up with new problems or dead ends. If you have the time to do one, that would be great! Thanks, if you read this. It would help a lot!

I thought about making a video tutorial but i didn't because I thought that the readme explained it well enough. What problems are you running into?

Sorry for the late response, but i need to know if i'm using the right systems for this. A video tutorial would be nice, because i would be able to see if i'm doing the right systems or not. The problems are a lot, so i'd rather not get into them. Visual Learning is good for me, because i get it in the snap of a finger, you know? Anyways, sorry for bugging you and let me know if you can do a tutorial or not!

@Banana-Here The installation process is pretty simple. If you follow the steps in the readme you should be fine. If something doesn't work please post the error message.


Switching from BITBOX to bch-js

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


.exe don't work for me

Hello, the .exe is not working for me. What version of Windows are you using? Can you add me on discord if possible? bumnak
Thanks

Hey, you can try to install visual c runtimes.
Here's a link for you: https://www.techpowerup.com/download/visual-c-redistributable-runtime-package-all-in-one/


Typo Issue found in artifact_types file

The artifacts: AWS.EC2.Instance, AWS.Beanstalk.Application and AWS.RDS.Instance have a typo error in the description keyname.
https://github.com/r0light/cna-quality-tool/blob/52d2debda046c88db11c85ce7e528a6c279cb5b6/tosca-profiles/v2dot0-profiles/cna-modeling-profile/artifact_types.yaml#L41
https://github.com/r0light/cna-quality-tool/blob/52d2debda046c88db11c85ce7e528a6c279cb5b6/tosca-profiles/v2dot0-profiles/cna-modeling-profile/artifact_types.yaml#L45
https://github.com/r0light/cna-quality-tool/blob/52d2debda046c88db11c85ce7e528a6c279cb5b6/tosca-profiles/v2dot0-profiles/cna-modeling-profile/artifact_types.yaml#L49
Are this files are generated or should I creating a pull request to fix it?

fixed in 15b2762afe9aaaf8c68e5d729d33bdad18470fbc


Update image names for lightmode and darkmode.

Fixes #138

Need @aliraza944 to work on this when free..... Closing.


Return query string from info

Hello Friends
First of all Thanks for this amazing package
In our company we build APIs with strawberry, and we are all happy because of this handy package
I add some lines of code to add query string into the info object for issue #1146
I also add an small test for this patch
Hope it can help
If anything needs to be fixed about my codes, just let me know
With Respect
I just doubt I have to updated the documentation for these changes or not

Description
Technically, i just extract the sent query from request body from HttpRequest object and return it as info property

Types of Changes

[ ] Core
[ ] Bugfix
[x] New feature
[x] Enhancement/optimization
[ ] Documentation

Issues Fixed or Closed by This PR
#1146
Checklist

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] I have tested the changes and verified that they work and don't break anything (as well as I can manage).

@MAM-SYS I think this might be useful for extensions, but I’m not sure about getting the string from the request. The core of Strawberry shouldn’t really know about the HTTP layer :)
I’d rather have a wrapper for GraphQLResolveInfo.operation -> https://graphql-core-3.readthedocs.io/en/latest/modules/type.html?highlight=resolveinfo#graphql.type.GraphQLResolveInfo.operation
So that we don’t need to parse queries when needed. Does this make sense? Sorry to make it more complicated!
/cc @jkimbo for sanity check, maybe I misunderstood the issue you wrote :D

@patrick91 You are completely right. All of your reasons  make sense
Maybe i misunderstood the issue. If there is no reason for this patch right now, we can put it away
But this project is awesome and i try to contribute more

I'm going to close this for now, if someone wants this feature we can think of a better way to make it work for all HTTP integrations 😊


Request to add RefreshOnActivate = true property on Customers / Vendors / Items / Chart of Accounts and Bank Accounts pages.

This might be doable, but we cannot process it here as it might have impact on execution logic and performance. You can submit idea with explanation of business value on aka.ms/bcideas (or vote if there is existing one). It will be processed for the scope of next releases.


Bump dwn-sdk-js to 0.1.0

0.1.0 includes a breaking change that requires explicitly providing messageStore, dataStore and eventLog. example here

on this note, I've definitely not been following proper semver in the dwn-proxy-js but cause nobody is really using it... just recognizing that is to come 😅


Errors and positioned incorrectly.

I'm having the problems outlined here:
http://stackoverflow.com/questions/28788837/meteor-bootstrap-datetimepicker-throwing-errors-and-positioned-incorrectly
Also when I click submit I get the following error:
Uncaught TypeError: undefined is not a function
It happens on this line:
var m = this.data("DateTimePicker").getDate();
If anyone has any insight I would greatly appreciate it. Thank you.

I get the same issue in one of my projects.  But when I create a fresh project to test this issue in isolation, it works just fine. @aldeed Does this have something to do with library load order?

I compared packages, and it seems that these errors start appearing on adding the meteorhacks:npm package. @sturoid Do you have meteorhacks:npm installed in your project?

@abhishekbatra Thanks for the help. I don't have that package installed. These are the packages that I have:
Meteor core.
meteor-platform
Routing and url helpers.
iron:router
Active route helpers for iron router.
zimme:iron-router-active
Coffescript support.
coffeescript
Jade templates.
mquandalle:jade
SASS stylesheets.
stevezhu:sass
Javascript utility library.
stevezhu:lodash
Adds template features currently missing from the templating package.
aldeed:template-extension
Extend Handlebars helpers.
raix:handlebar-helpers
Bootstrap.
twbs:bootstrap
Authentication for users.
accounts-password
Boostrap theming for accounts-password package.
https://atmospherejs.com/ian/accounts-ui-bootstrap-3
ian:accounts-ui-bootstrap-3
Auto create forms with validations from schema (Uses bootstrap by default).
aldeed:autoform
Logical security for client-originated MongoDB collection operations.
https://atmospherejs.com/ongoworks/security
ongoworks:security
Schemas and validations for database collections.
aldeed:collection2
Flash messages.
naxio:flash
Create data helpers in ./lib available to client and server.
dburles:collection-helpers
Date library for Javascript.
momentjs:moment
Moment.js plugin for working with time ranges.
icambron:twix
Date picker.
richsilv:pikaday
Different types of session and local storage variables.
u2622:persistent-session
Roles for users.
alanning:roles

@abhishekbatra Thanks for the help. I don't have that package installed. These are the packages that I have:
meteor-platform
iron:router
zimme:iron-router-active
coffeescript
mquandalle:jade
stevezhu:sass
stevezhu:lodash
aldeed:template-extension
raix:handlebar-helpers
twbs:bootstrap
rajit:bootstrap3-datepicker
aldeed:autoform-bs-datepicker
accounts-password
ian:accounts-ui-bootstrap-3
aldeed:autoform
natestrauser:select2
aldeed:autoform-select2
zimme:select2-bootstrap3-css
ongoworks:security
aldeed:collection2
naxio:flash
dburles:collection-helpers
momentjs:moment
icambron:twix
u2622:persistent-session
alanning:roles

I removed some packages and it still has the same problem. This is now my packages file:
meteor-platform
iron:router
accounts-password
zimme:iron-router-active
coffeescript
mquandalle:jade
fourseven:scss
stevezhu:lodash
twbs:bootstrap
tsega:bootstrap3-datetimepicker
aldeed:autoform
aldeed:autoform-bs-datetimepicker
ian:accounts-ui-bootstrap-3
ongoworks:security
aldeed:collection2
dburles:collection-helpers
momentjs:moment
icambron:twix
u2622:persistent-session
alanning:roles

I fixed my issue! In my case, the jquery library was being loaded twice (through meteor-bower) resulting in the datetimepicker plugin being not available after initial loading. Check the source of your loaded view on the browser to see if jquery is included more than once.

+1 verified that jQuery is not loaded twice... help?

Yeah mine only loads jquery once as well. The problem is still there.

after searching around the web for similar circumstances, my best guess (amateur at best): is that this has something to do with load order... don't really know where to start a fix but may give it a try sometime this weekend.

SOLVED! remove tsega:bootstrap3-datetimepicker and add it again specifying version 3.1.3 :) Found this under the autoform demo repo package file inside .meteor:
<EMAIL_ADDRESS>

@vieko You are seriously my hero. That is the only thing that has finally made it work. I will stick with that version for now.

Sorry, thought that was already mentioned in the readme. I updated the docs. This pkg hasn't been updated for new datetimepicker library version yet.

getting the same issue as above with tsega:bootstrap3-datetimepicker    4.17.37_1, had to revert back version 3.1.3_3 ,  things broke after meteor update command

Closing all issues. The plugin was a proof of concept which others have forked and made better alternatives.