UnsupportedProtocol Error when prompting with openai llm model in Windows wsl environment

Describe the bug

When testing OpenDevin with OpenAI , every prompt request produces an OpenAIException which is raised by an UnsupportedProtocol Error telling me that a Request URL is missing an 'http://' or 'https://' protocol. Did I miss something when setting up the config? Mine looks pretty similar to others that I have seen.
Setup and configuration
Running OpenDevin in a Windows 11 wsl Ubuntu environment.
Current version:

707ab7b3f84fb5664ff63da0b52e7b0d2e4df545

My config.toml and environment vars (be sure to redact API keys):
LLM_MODEL="gpt-3.5-turbo-0125"
LLM_API_KEY="s...."
LLM_EMBEDDING_MODEL="openai"
WORKSPACE_DIR="./workspace"

My model and agent (you can see these settings in the UI):

Model: gpt-3.5-turbo-0125
Agent: MonologueAgent

Commands I ran to install and run OpenDevin:
git clone https://github.com/OpenDevin/OpenDevin.git
cd OpenDevin
sudo make build
sudo make setup-config
sudo make run

Steps to Reproduce:

setting gpt-3.5-turbo-0125 as model and openai for embeddings
make run
Prompting the model

Logs, error messages, and screenshots:
ERROR:
OpenAIException - Traceback (most recent call last):
  File "/root/.cache/pypoetry/virtualenvs/opendevin-w_6MAHcD-py3.11/lib/python3.11/site-packages/httpx/_transports/default.py", line 69, in map_httpcore_exceptions
    yield
  File "/root/.cache/pypoetry/virtualenvs/opendevin-w_6MAHcD-py3.11/lib/python3.11/site-packages/httpx/_transports/default.py", line 233, in handle_request
    resp = self._pool.handle_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.cache/pypoetry/virtualenvs/opendevin-w_6MAHcD-py3.11/lib/python3.11/site-packages/httpcore/_sync/connection_pool.py", line 167, in handle_request
    raise UnsupportedProtocol(
httpcore.UnsupportedProtocol: Request URL is missing an 'http://' or 'https://' protocol.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/root/.cache/pypoetry/virtualenvs/opendevin-w_6MAHcD-py3.11/lib/python3.11/site-packages/openai/_base_client.py", line 931, in _request
    response = self._client.send(
               ^^^^^^^^^^^^^^^^^^
  File "/root/.cache/pypoetry/virtualenvs/opendevin-w_6MAHcD-py3.11/lib/python3.11/site-packages/httpx/_client.py", line 914, in send
    response = self._send_handling_auth(
               ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.cache/pypoetry/virtualenvs/opendevin-w_6MAHcD-py3.11/lib/python3.11/site-packages/httpx/_client.py", line 942, in _send_handling_auth
    response = self._send_handling_redirects(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.cache/pypoetry/virtualenvs/opendevin-w_6MAHcD-py3.11/lib/python3.11/site-packages/httpx/_client.py", line 979, in _send_handling_redirects
    response = self._send_single_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.cache/pypoetry/virtualenvs/opendevin-w_6MAHcD-py3.11/lib/python3.11/site-packages/httpx/_client.py", line 1015, in _send_single_request
    response = transport.handle_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.cache/pypoetry/virtualenvs/opendevin-w_6MAHcD-py3.11/lib/python3.11/site-packages/httpx/_transports/default.py", line 232, in handle_request
    with map_httpcore_exceptions():
  File "/usr/lib/python3.11/contextlib.py", line 158, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/root/.cache/pypoetry/virtualenvs/opendevin-w_6MAHcD-py3.11/lib/python3.11/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions
    raise mapped_exc(message) from exc
httpx.UnsupportedProtocol: Request URL is missing an 'http://' or 'https://' protocol.

Additional Context
The opendevin server is running fine, so I guess my setup seems to be correct. Maybe I am missing something obvious. I suppose I dont need the LLM_BASE_URL config parameter when using openai?

You're right, I don't have it set either and it works.
Can you please try the suggestion in this comment? https://github.com/OpenDevin/OpenDevin/issues/908#issuecomment-2046517745

You're right, I don't have it set either and it works.
Can you please try the suggestion in this comment? #908 (comment)

I tried that, didnt help unfortunately. I tried this:
https://github.com/OpenDevin/OpenDevin/issues/908#issuecomment-2046184211
Which then leads to this when doing "make run":
 File "/root/.cache/pypoetry/virtualenvs/opendevin-4oYb6y1w-py3.11/lib/python3.11/site-packages/litellm/router.py", line 199, in __init__
    self.set_model_list(model_list)
  File "/root/.cache/pypoetry/virtualenvs/opendevin-4oYb6y1w-py3.11/lib/python3.11/site-packages/litellm/router.py", line 2091, in set_model_list
    deployment = self._add_deployment(deployment=deployment)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.cache/pypoetry/virtualenvs/opendevin-4oYb6y1w-py3.11/lib/python3.11/site-packages/litellm/router.py", line 2127, in _add_deployment
    ) = litellm.get_llm_provider(
        ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/.cache/pypoetry/virtualenvs/opendevin-4oYb6y1w-py3.11/lib/python3.11/site-packages/litellm/utils.py", line 5850, in get_llm_provider
    raise e
  File "/root/.cache/pypoetry/virtualenvs/opendevin-4oYb6y1w-py3.11/lib/python3.11/site-packages/litellm/utils.py", line 5837, in get_llm_provider
    raise litellm.exceptions.BadRequestError(  # type: ignore
litellm.exceptions.BadRequestError: LLM Provider NOT provided. Pass in the LLM provider you are trying to call. You passed model=llama-7b-chat
 Pass model as E.g. For 'Huggingface' inference endpoints pass in `completion(model='huggingface/starcoder',..)` Learn more: https://docs.litellm.ai/docs/providers

Which is kinda weird because llama-7b-chat was something I used in the beginning but my current config still looks like this:
LLM_MODEL="gpt-3.5-turbo-1106"
LLM_API_KEY="s...."
LLM_EMBEDDING_MODEL="openai"
WORKSPACE_DIR="./workspace"
So maybe I have some problems with the poetry cache? I tried to clear the cache with poetry cache clear --all . but it says nothing is there to clear. How can I make sure that every cache or anything related to old stuff is cleaned before I start the make run again?

Aha, that's exactly the problem: your installation is sending stale information out there, but it's not poetry. We can fix it.
I'm going to reiterate some, but also complete here what I said in other threads on this. So the idea is simple: latest main branch now should work, but we need to get rid of leftover stale information on your environment.

stop opendevin backend, frontend, close localhost tabs
clear local storage in your browser, or use another browser you haven't used with opendevin in the last few days
git pull
delete ./cache folder in ./opendevin (important)
make build
make start-backend, allow it to finish until it says uvicorn ready or so
make start-frontend
open localhost:3001

Should be fixed with the new docker installation method!


improvement about excluding controls to be localized from storyboards

I've been using this project for months, basically it's working like a charm.
What I thought that it's not quite convenient of the 'excluded mechanism' for the localization of ui controls.
In my project there are a lot of controls that their contents should be dynamically changed. After I've finished the storyboard building, I have to mark most of them to be excluded from generating localized keys by '#bc-ignore!'.
So I think if there's a way to do it oppositely.
It's likely to have another argument '-w' or whatever, and if it's provided, only the controls with '#bc-include' will be exported to localized strings, else they won't be exported.
Looking forward to your opinion, thanks.

@Dschee Thanks for your reply.
Currently I'm using a dirty solution to do it, because I'm not very familiar with swift.
I cannot provide a better way to make a pr for it, sorry =(

Sorry for the late response. Having read the requested feature again, I don't feel like it's a good idea to have a localized Storyboard where most of the elements are dynamic. You should rather not localize the Storyboard then in my opinion. This way you would only add a few more outlets and set the few elements' localizations in Code as well.
But again, that doesn't mean I'm totally against adding this feature. But as I don't see much benefit in it personally, I'd need someone to vulonteer in implementing it. Is there anyone who would want to add this? I'm closing this for now due to inactivity. Will reopen if others are interested in this as well.


Editing in list view does not show changes that were triggered with a signal

Hi,
Thanks for Flask-admin, it is really awesome ! I have managed to do everything that I wanted with it so far but I am stumbling on a problem now :)
I have a model Purchase that has to recalculate the total_price of the Purchase when you save it.
Using peewee models :
class Purchase(BaseModel):
    quantity = IntegerField()
    product = ForeignKeyField(Product)
    total_price = IntegerField()

@pre_save(sender=Purchase)
def pre_save_purchase(model_class, instance):
     if not created:
         instance.total_price = instance.quantity * instance.product.price

The problem is: when I edit the quantity in the list view, I do not see the change to the total_price.
I have looked a bit at the code to find a work around. My idea would be to override the ajax_update route and send back the HTML code to replace in the cells. I would have then to add a success callback to the x-editable widget that would replace the data in the row with the data sent back by the server.
So far I have:
In the view:
    @expose('/ajax/update/', methods=('POST',))
    def ajax_update(self):
        """
            Edits a single column of a record in list view.
        """
        response = make_response(super(UserView, self).ajax_update())

        # do nothing if the update was not successful
        if response.status_code != 200:
            return response

        form = self.list_form()

        for field in form:
            # only the submitted field has a positive last_index
            if getattr(field, 'last_index', 0):
                record = self.get_one(str(field.last_index))

        t = Template(self.edit_template)
        ctx = t.new_context()

        get_value = lambda row, c: self.get_list_value(ctx, row, c)
        get_pk_value = lambda row: self.get_pk_value(row)

        cells = {}

        # replicate the list template logic
        for c, name in self._list_columns:
            if '.' in c:
                continue

            if self.is_editable(c):
                if getattr(form, 'csrf_token', None):
                    cell = form[c](pk=get_pk_value(record), value=get_value(ctx, record, c), csrf=form.csrf_token._value())
                else:
                    cell = form[c](pk=get_pk_value(record), value=get_value(record, c))
            else:
                cell = get_value(record, c)

            cells[c] = cell

        return jsonify({'cells': cells})

In the template:
{% block tail %}
    {{ super() }}
    <script type='text/javascript'>
    // customize fa-form
    var form = window.faForm;

    var onSuccessXEditable = function (data) {
        var $this = $(this);
        var cells = data.cells;
        var tr = $this.parents('tr')
        for (name in cells) {
            if (cells.hasOwnProperty(name)) {
                var td = tr.find('.col-' + name);
                var html = cells[name];
                td.html(html);
            }
        }
        form.applyGlobalStyles(tr);
    };

    $.extend($.fn.editable.defaults, {
        success: onSuccessXEditable
    });
</script>
{% endblock %}

It seems to work OK apart for the fields that have a dot in them, I could not get get_list_value on those.
I think it would be cool if this functionality was in Flask-admin. I would be ready to do a pull request if my approach seems reasonable. What do you think ?

Closing this, but please re-open if it's still a problem.

It's 2022 and I'm missing this too 😅
After editing inline values, update_on field and a few others are not refreshed so I'm forcing users to refresh a page on each change.


feat(batch): batch dml support index lookup

I hereby agree to the terms of the Singularity Data, Inc. Contributor License Agreement.
What's changed and what's your intention?

Batch dml (Update/Delete) support index lookup.
Batch insert select support complex input like join.
Unify dml and dql schedule logic: schedule dml just as distributed task instead of scheduling in one node which should be optimized later by support running batch dml in local mode.

Why we need to schedule batch dml in distributed mode?

For insert select its input can be complex as arbitrary query.
For update and delete, it is crucial to support index lookup, otherwise full table scan is unacceptable.

Checklist

[x] I have written necessary rustdoc comments
[x] I have added necessary unit tests and integration tests
[x] All checks passed in ./risedev check (or alias, ./risedev c)

Refer to a related PR or issue link (optional)
#4339 #4708

The dml fragment should be scheduled to those CNs that contains source writer, because we might have new CNs joining in and don't contains source writer.

The dml fragment should be scheduled to those CNs that contains source writer, because we might have new CNs joining in and don't contains source writer.

Got it. Let me see how to fix it properly.


strictFunctionTypes not working?

TypeScript Version:  version in playground at time of writing.

Search Terms:
Code
class Animal { }
class Dog extends Animal {}
class Cat extends Animal {}

declare let f1: (x: Animal) => void;
declare let f2: (x: Dog) => void;
declare let f3: (x: Cat) => void;

f1 = f2;  // Error with --strictFunctionTypes
f2 = f1;  // Ok
f2 = f3;  // Error

Expected behavior:
Based on the docs, I am expecting there to be a type error.
Actual behavior:
There's no error: see the screen shot:

Playground Link:
playground link
Related Issues:

TypeScript is a structural type system, not a nominal one.  None of the classes vary in structure (in fact empty interfaces are equivalent to any) therefore they are assignable to each other.
Having some basic differentiation between the classes will trigger the expected behaviour: playground link.

Relevant FAQ entry
(note to @kitsonk, I wouldn't say empty interfaces are equivalent to any or even the true top type unknown... with --strictNullChecks you can't assign null or undefined to {}.  Maybe {} is equivalent to object | number | string | boolean | symbol?)


Postforward configured with Postfix PIPE(8) resulting in bounced (mail forwarding loop)

Hello, I am configuring an email server for a company (not a hosting company, but a travel company). And I need help in configuring postforward to work with postfix pipe(8) delivery agents.
THE CONFIGURATION
The domains and mailboxes are stored in the MySQL Database so in /etc/postfix/main.cf:
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_base = /var/vmail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_expansion_limit=2500

The daemon postsrsd is running as well, this is the config for postsrsd in /etc/postfix/main.cf:
#follow postforward suggestion in github when use with postsrsd
#sender_canonical_maps = tcp:localhost:10001
#sender_canonical_classes = envelope_sender
recipient_canonical_maps = tcp:localhost:10002
recipient_canonical_classes= envelope_recipient,header_recipient

And also followed your suggestion for the postforward policy when configured in Postfix PIPE(8)
#postforward policy
postforward_destination_recipient_limit = 1

Then in my /etc/postfix/master.cf, I registered the postforward service:
postforward   unix  -  n  n  -  -  pipe flags=ODR user=vmail:vmail argv=/usr/local/bin/postforward --path /usr/sbin:/sbin:/usr/bin:/bin ${recipient}

Finally to make this all hooked, I created a transport map file /etc/postfix/transport, and put this line:
branddomainname.com postforward:

And went back to my /etc/postfix/main.cf, I added:
transport_maps = hash:/etc/postfix/transport

For now I wish the postforward only installs for the branddomainname.com and not other domain names (so other departments don't complain when something happens during this setup).
Of course I did not forget to do this:
postmap transport
systemctl restart postfix

AND NOW THE EXECUTION OF THE TEST
I sent an email from<EMAIL_ADDRESS>to<EMAIL_ADDRESS>where<EMAIL_ADDRESS>has only one alias that is to<EMAIL_ADDRESS>THE RESULT OF THE TEST AND IT IS THE ISSUE
Unfortunately after many trials, this does not work, In the log, I found out the email which was only sent once has doubled:
Apr 30 11:59:59 corp115486 postfix/cleanup[17988]: 671E024406B7: warning: header Subject: Test #2 30 April 2020 from mail-ua1-f48.google.com[<IP_ADDRESS>]<EMAIL_ADDRESS><EMAIL_ADDRESS>proto=ESMTP helo=<mail-ua1-f48.google.com>

Apr 30 12:00:00 corp115486 postfix/cleanup[17988]: AA7D82440708: warning: header Subject: Test #2 30 April 2020 from local<EMAIL_ADDRESS><EMAIL_ADDRESS>
And then, I followed both of the MAIL-ID, and here is what I found on the log:
671E024406B7:
Apr 30 11:59:59 corp115486 postfix/smtpd[17981]: 671E024406B7: client=mail-ua1-f48.google.com[<IP_ADDRESS>]
Apr 30 11:59:59 corp115486 postfix/cleanup[17988]: 671E024406B7<EMAIL_ADDRESS>Apr 30 11:59:59 corp115486 postfix/cleanup[17988]: 671E024406B7: warning: header Subject: Test #2 30 April 2020 from mail-ua1-f48.google.com[<IP_ADDRESS>]<EMAIL_ADDRESS><EMAIL_ADDRESS>proto=ESMTP helo=<mail-ua1-f48.google.com>
Apr 30 12:00:00 corp115486 opendkim[4178]: 671E024406B7: mail-ua1-f48.google.com [<IP_ADDRESS>] not internal
Apr 30 12:00:00 corp115486 opendkim[4178]: 671E024406B7: not authenticated
Apr 30 12:00:00 corp115486 opendkim[4178]: 671E024406B7: DKIM verification successful
Apr 30 12:00:00 corp115486 postfix/qmgr[17865]: 671E024406B7<EMAIL_ADDRESS>size=2916, nrcpt=2 (queue active)
Apr 30 12:00:00 corp115486 postfix-rate-limit-snail/smtp[17872]: 671E024406B7<EMAIL_ADDRESS><EMAIL_ADDRESS>relay=gmail-smtp-in.l.google.com[<IP_ADDRESS>]:25, delay=2.6, delays=2.3/0/0.14/0.14, dsn=2.0.0, status=sent (250 2.0.0 OK<PHONE_NUMBER> z16si463811wrl.168 - gsmtp)
Apr 30 12:00:00 corp115486 postfix/pipe[17992]: 671E024406B7<EMAIL_ADDRESS>relay=postforward, delay=2.6, delays=2.3/0.01/0/0.34, dsn=2.0.0, status=sent (delivered via postforward service)
Apr 30 12:00:00 corp115486 postfix/qmgr[17865]: 671E024406B7: removed

AA7D82440708:
Apr 30 12:00:00 corp115486 postfix/pickup[17864]: AA7D82440708: uid=5000<EMAIL_ADDRESS>Apr 30 12:00:00 corp115486 postfix/cleanup[17988]: AA7D82440708<EMAIL_ADDRESS>Apr 30 12:00:00 corp115486 postfix/cleanup[17988]: AA7D82440708: warning: header Subject: Test #2 30 April 2020 from local<EMAIL_ADDRESS><EMAIL_ADDRESS>Apr 30 12:00:00 corp115486 opendkim[4178]: AA7D82440708: no signing table match for<EMAIL_ADDRESS>Apr 30 12:00:00 corp115486 opendkim[4178]: AA7D82440708: DKIM verification successful
Apr 30 12:00:00 corp115486 postfix/qmgr[17865]: AA7D82440708<EMAIL_ADDRESS>size=4440, nrcpt=2 (queue active)
Apr 30 12:00:00 corp115486 postfix/pipe[17992]: AA7D82440708<EMAIL_ADDRESS>relay=postforward, delay=0.26, delays=0.2/0/0/0.07, dsn=5.4.6, status=bounced (mail forwarding loop for<EMAIL_ADDRESS>Apr 30 12:01:01 corp115486 postfix-rate-limit-snail/smtp[17873]: AA7D82440708<EMAIL_ADDRESS><EMAIL_ADDRESS>relay=gmail-smtp-in.l.google.com[<IP_ADDRESS>]:25, delay=61, delays=0.2/60/0.15/0.29, dsn=2.0.0, status=sent (250 2.0.0 OK<PHONE_NUMBER> d6si1137819wrv.413 - gsmtp)
Apr 30 12:01:01 corp115486 postfix/bounce[18004]: AA7D82440708: sender non-delivery notification: 3DBCC24406F9
Apr 30 12:01:01 corp115486 postfix/qmgr[17865]: AA7D82440708: removed

If you take a look at the second message with ID AA7D82440708, postforward is working and has rewrote the from to the following:
<EMAIL_ADDRESS>
Now I do not understand where was the first message with ID 671E024406B7 was triggered from or is this how postfix works or postforward sent it again after it rewrote it?
I hope that I could get some answers on this problem.
#Staysafe
Thank you,
Dismas

Hi Dismas,

Now I do not understand where was the first message with ID 671E024406B7 was triggered from or is this how postfix works or postforward sent it again after it rewrote it?

Postforward indeed submits new mail into the queue (by executing sendmail) which is why you'll see a pickup entry with a new message ID.
This problem in your configuration that is causing postfix to run into a mail forwarding loop appears to be in the service definition:
postforward   unix  -  n  n  -  -  pipe flags=ODR user=vmail:vmail argv=/usr/local/bin/postforward --path /usr/sbin:/sbin:/usr/bin:/bin ${recipient}

The argument to postforward needs to be the email address that needs to be forwarded to, not the original recipient.
By using ${recipient} above, you're specifying the original recipient, which postfix correctly determines ends up in a forwarding loop (if it accepts this mail, it goes through postforward again, which submits it back to itself, puts it through postforward again, and so on and so on).
If all mail for branddomainname.com needs to go to the same forwarded recipient, you could put that address in place of ${recipient} above. If you have multiple different addresses, I cannot think of any way to achieve this other than to define specific transports for each of them so you end up with something like:
# /etc/postfix/master.cf
postforward_foo   unix  -  n  n  -  -  pipe flags=ODR user=vmail:vmail argv=/usr/local/bin/postforward --path /usr/sbin:/sbin:/usr/bin:/bin<EMAIL_ADDRESS>postforward_bar   unix  -  n  n  -  -  pipe flags=ODR user=vmail:vmail argv=/usr/local/bin/postforward --path /usr/sbin:/sbin:/usr/bin:/bin<EMAIL_ADDRESS>
# /etc/postfix/transport
<EMAIL_ADDRESS>postforward_foo:
<EMAIL_ADDRESS>postforward_bar:

Hi Zoni,
Thank you for your time and answer. I hope you and your family are in good health in this pandemic era.
Unfortunately, I have tried it and it does not work. But anyhow, if it would need manual addition on every forwarding email addresses (aliases), then I guess I just have to accept to live with the fact that aliases would be forwarded as unauthenticated and would broke the SPF.
The world does not have COVID-19 vaccine yet as I am writing this comment, and so what is the big deal with forwarded emails breaking the SPF ;).
Once again, thank you,
Dismas.


Table and plot from one control?

Hi there,
this is rather a question than an issue, but maybe there is a simple answer to it.
Assume that it is quite expensive to calculate some data. Is there a way to have just one control button which starts the calculation and then displays the data in a table and thereafter displays the data in a plot without having the calculation done twice, like in the code below (which of course does not work since getPlot does not know to wait for getData ...)?
Hope this is not a too silly question. Thanks a lot.
Ralph
import pandas
from spyre import server
import time

def calculate():
    time.sleep(5)
    data = {'x': range(100), 'y': range(100)}
    df = pandas.DataFrame(data, columns = ['x', 'y'])
    return df

class SlowDummyApp(server.App):
    title = 'Slow Dummy'
    controls = [
        {
            'control_type' : 'button',
            'label'        : 'Calculate',
            'control_id'   : 'calculate'
        },
    ]
    outputs = [
        {
            'output_type'  : 'table',
            'output_id'    : 'table_id',
            'tab'          : 'Data',
            'control_id'   : 'calculate',
            'on_page_load' : False
        },
        {
            'output_type'  : 'plot',
            'output_id'    : 'plot_id',
            'tab'          : 'Plot',
            'control_id'   : 'calculate',
            'on_page_load' : False
        },
    ]
    tabs = ['Data', 'Plot']

    def getData(self, params):
        self.df = calculate()
        return self.df

    def getPlot(self, params):
        fig = self.df.plot().get_figure()
        return fig

app = SlowDummyApp()
app.launch(host='local')

@ralphschreyer this is a great question. Unfortunately there's not a simple solution to this problem since the requests get made asynchronously. However, I just pushed an update to the stocks_example app which implements a caching mechanism that you might find useful: https://github.com/adamhajari/spyre/blob/master/examples/stocks_example.py
Here's how it works:

initialize two caching variables, one for your data and one for your params
have your getData method update the cached data and the cached params (after dropping the output_id key in the params dict).
have your getPlot method check it's params against the cached params (again, make sure to drop the output_id key). While the cached params and it's params differ, have it wait.
once the getPlot method's params match the cached params, have it use the cached data.

inline comments added here: https://github.com/adamhajari/spyre/commit/488d9fdd8b95273853595a006ae3f50ac0038c03


Merge VariantAnnotation and DatabaseVariantAnnotation records

Supercedes #1144

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

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

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

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/ADAM-prb/1587/Build result: FAILURE[...truncated 3 lines...]Building remotely on amp-jenkins-worker-05 (centos spark-test) in workspace /home/jenkins/workspace/ADAM-prbWiping out workspace first.Cloning the remote Git repositoryCloning repository https://github.com/bigdatagenomics/adam.git > /home/jenkins/git2/bin/git init /home/jenkins/workspace/ADAM-prb # timeout=10Fetching upstream changes from https://github.com/bigdatagenomics/adam.git > /home/jenkins/git2/bin/git --version # timeout=10 > /home/jenkins/git2/bin/git -c core.askpass=true fetch --tags --progress https://github.com/bigdatagenomics/adam.git +refs/heads/:refs/remotes/origin/ # timeout=15 > /home/jenkins/git2/bin/git config remote.origin.url https://github.com/bigdatagenomics/adam.git # timeout=10 > /home/jenkins/git2/bin/git config --add remote.origin.fetch +refs/heads/:refs/remotes/origin/ # timeout=10 > /home/jenkins/git2/bin/git config remote.origin.url https://github.com/bigdatagenomics/adam.git # timeout=10Fetching upstream changes from https://github.com/bigdatagenomics/adam.git > /home/jenkins/git2/bin/git -c core.askpass=true fetch --tags --progress https://github.com/bigdatagenomics/adam.git +refs/pull/:refs/remotes/origin/pr/ # timeout=15 > /home/jenkins/git2/bin/git rev-parse origin/pr/1250/merge^{commit} # timeout=10 > /home/jenkins/git2/bin/git branch -a --contains 7eff06161dcee656f3c48996818a95cb92e96267 # timeout=10 > /home/jenkins/git2/bin/git rev-parse remotes/origin/pr/1250/merge^{commit} # timeout=10Checking out Revision 7eff06161dcee656f3c48996818a95cb92e96267 (origin/pr/1250/merge) > /home/jenkins/git2/bin/git config core.sparsecheckout # timeout=10 > /home/jenkins/git2/bin/git checkout -f 7eff06161dcee656f3c48996818a95cb92e96267First time build. Skipping changelog.Triggering ADAM-prb ? 2.6.0,2.11,1.5.2,centosTriggering ADAM-prb ? 2.6.0,2.10,1.5.2,centosTouchstone configurations resulted in FAILURE, so aborting...Notifying endpoint 'HTTP:https://webhooks.gitter.im/e/ac8bb6e9f53357bc8aa8'
Test FAILed.

@heuermh - is it reasonable / useful  for me to try to build the code in this PR locally to test it out at this point?   I tried to compile it, but can't seem to find a version bdg-formats that works with it.
I tried both
https://github.com/heuermh/bdg-formats/tree/master as it was a 0.9.1-SNAPSHOT version and then tried changing to current bdg-formats  0.10.1-SNAPSHOT, but bdg-formats compile problems with both.

@jpdna As is this branch will not compile due to the filter-related changes in bdg-formats.  I've made the code changes locally but they need more unit tests.  I'll push these in a commit tomorrow morning.

Pushed new commits that fixes the separate variant and genotype filters issue and updates bdg-formats to the release version 0.10.0.  I implemented the filter stuff to the best that htsjdk makes available to us; I could either continue to hack on it so that Genotype.filtersApplied is set correctly or punt until a later issue.

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

Fixes #194

I tried to load this VCF:
https://drive.google.com/open?id=0B6jh69UgixwpTDlSemtreklDNUU
which is the ClinVar VCF with ANN column added by SNPEff
It seems to fail, but without an error message
val x = sc.loadVariantAnnotations("/home/paschallj/ADAM/nov11_annot/run1/test1.200.vcf")

scala> x.rdd.count
res13: Long = 0

This VCF does seem to load into a VariantRDD with loadVCF fine.
I suspect there is something unexpected about the format of my VCF file ANN field, but if this is current snpeff output then it could be problem for some users.
Can you point me to a test VCF with a ANN field that is working properly that I can compare to?

@jpdna do you get any error/warning messages in the logs? If you have ValidationStringency.LENIENT set, I'd expect to see error messages there.

Where do I set `ValidationStringency.LENIENT"  ?
currently I don't see any error messages in adam.log when I run this in adam-shell

@jpdna It might be hard to follow, since things are spread over several issues, but this pull request does not yet support populating VariantAnnotation.transcriptEffects from VCF INFO reserved key ANN values.  See https://github.com/bigdatagenomics/adam/issues/1044#issuecomment-260015756

Sure, but even then @jpdna should be getting one VariantAnnotation record per Variant, no?

Maybe, I don't know how well that part of the code works. Based on recent conversations on gitter, not too well?

this pull request does not yet support populating VariantAnnotation.transcriptEffects

ah, thanks for clarifying @heuermh  - I'll plan to watch this PR then for the further commits and try my test  again when you ping that reading ANN field into transcriptEffects is ready.   Perhaps some rows of the  VCF I linked to above can be a useful in the test suite - both a VEP and SNPeff derived example annotated VCF would be good.

Pushed commit with some additional unit tests.  Let me know if I've addressed all the review comments, and thank you for volunteering to merge this manually.

LGTM now! I will merge this manually shortly.

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

Merged into upgrade-to-0.10.0 as c750830d0f4da906048d76edc7201c4845cdcc70 and c06143be29a0937a803e3aeef3fb7ec256438331. Thanks @heuermh! It is fantastic to get this refactor in. I will merge in the upgrade-to-0.10.0 branch on tests rerunning and passing.

Woot!  Thank you, @fnothaft!


Identifying the goal of the proposal

I see two distinct goals of this proposal:

an ergonomic, intuitive way to check that an object is what it says it is (much like the goal of a brand check)
a way to ensure that a class has fully instantiated.

for 1, I would like to better understand how ergonomic brand checks are doing right now. The happy path for both of these results in the same -- a check if an object is what it says it is. So how is that doing? what are people using it for? Is it primarily library authors? polyfill authors? who did we reach?
As mentioned in your presentation, maybe a "brand check" isn't something developers are actually interested in. Maybe they have a more abstract concept -- something like "instanceof" -- but instanceof is broken in javascript.
As I mentioned, this is a problem that impacts the language more broadly. I'd love to see a broad solution, but maybe we can do something just for classes to solve a subset of that problem.
for 2) we might be able to reuse this for this guarentee, but if this is the primary goal, I would expect a different name. Something like class.initiatedAs(o) or class.isInitiated(o).

Is it possible to do both

constructor completed successfully check
prototype check

I think it's the same goal. It's no sense to check not fully instantiated object.

I think it's the same goal. It's no sense to check not fully instantiated object.

There is some sense in checking this: object construction can fail. So, if you want to verify an instance is correctly constructed, this proposal provides that mechanism -- after which the author may freeze the object to prevent any modification. It gives you guarantees that the object you are working with has not been tampered with and is complete.
That said -- this doesn't have to be the goal of this proposal. this grew out of the discussion with how this proposal differs from ergonomic brand checks. It certainly has use cases but they are very specific. On the other hand, if we are overlapping in terms of the happy path (constructor does not throw), then the question about "what does an instance mean to developers" is a relevant question to answer. This might be, as @Jack-Works suggested, a mental model which also includes checking the prototype. I don't have very strong opinions -- you folks are the experts here.

if we are overlapping in terms of the happy path (constructor does not throw)

@codehag It's not only "not throw". Actually throw is common. We use throw to express that the request of constructing a new object is not valid.
The happy path we discussed should be:

it's not throw
if throw, the broken instance should not leak

The self-contradict part of the #x in o proposal is, when we argued whether class.hasInstance or #x in o is better solution for common usage (aka. happy path) in previous meeting, the champions and the supporters of #x in o use the cases of unhappy path to demonstrate #x in o is qualified to add to the language. And after three blocks to that proposal lonely I was so tired and let it go.
I will be VERY VERY VERY frustrate if now committee refuse this proposal by the reason "because the happy path we don't need class.hasInstance".

I will be VERY VERY VERY frustrate if now committee refuse this proposal by the reason "because the happy path we don't need class.hasInstance".

This isn't what is happening here. I am seeking clarification, which may lead to changing the name in order to better communicate, or possibly adding behavior to address an issue you also brought up -- that "brand check" may not be strictly meaningful for developers.
As I mentioned, for me personally the is problem represented here is broader than class instances, and ideally we would look at how this might be done more broadly -- I also know this might be impossible or not your goal. This isn't a blocking concern.

Sorry I may misunderstand the things due to language barrier  (this is a long term issue for me and all chinese delegates).

As I mentioned, for me personally the is problem represented here is broader than class instances,

I'm not sure I fully understand your concern. Do u want some more general brand check mechanism not only for classes?
As I said, I don't think brand check is a familiar  concept to average programmers. So this proposal is named as "brand check" just to match the TC39 jargon.
And another problem is it's hard for me to imagine how we could have a much general "brand check" out of classes. It seems currently only classes need that. Builtins and platform apis also need brand but it's out of the scope of this proposal, I remember 2021 Jan meeting already have a topic for that. And it's possible that we could have tagged record/tuple or struct which have brands to differentiate the values of different kind of struct, but definitely it could use other syntax, or i guess very likely don't need special syntax.

I also know this might be impossible or not your goal.

I don't treat "impossible", I just not fully understand your (and some others) expectation on this area, so i even don't know whether it could be my goal.

the question about "what does an instance mean to developers" is a relevant question to answer

As a JavaScript developer who wrote and maintains a library (that is about the size of lodash), to me:

an instance means an object that obeys the implicit and explicit contract clauses (e.g. pre-conditions, post-conditions, side-effects, types) indicated by documentation and JSDoc annotations (or similar) for a constructor/prototype (old-style) or class (modern-style). An implicit clause is that the instance must have the expected prototype.
instanceof checks if an object claims to be an instance that obeys the contract.

This is a little like the Liskov's Substitution Principle, but applied to instances in a dynamically-typed, prototype-based language. However, neither instanceof nor brand check could, in general, guarantee that an object passing the checks does actually obey the contract. No guarantee is needed for instances/prototypes that don't escape an suitable boundary.
Based on my current understanding, the utility of brand check, for me,  would be that the runtime could provide the desired guarantee for classes I author, or review, when the prototype and all constructed instances are frozen.

And another problem is it's hard for me to imagine how we could have a much general "brand check" out of classes. It seems currently only classes need that. Builtins and platform apis also need brand but it's out of the scope of this proposal, I remember 2021 Jan meeting already have a topic for that.

yes, this is a harder problem. I don't know how to solve it myself. But this is what I mean by more general. This is also one of the more difficult parts of javascript and the spec just because of how dynamic things are.
I think this proposal can be justified in it's own right, but there are two independent reasons for this proposal to exist: 1) a descriptive api (better for reading and understanding), and 2) a way to guarantee the initialization of the class. These two distinct things are linked by the history of the proposal rather than by the intent.
In my initial comments, I was focused on the first -- if we are adding this new ergonomics, how has the existing proposal been doing, what can we learn from that? We don't need to rush forward with proposals, we can take our time and fully understand the holes left behind by previous work. I won't press on this issue though.
For the second one, I don't think many developers would realize that class.hasInstance communicates this just from the name. However this second behavior in particular adds quite a bit of value for contexts which require high integrity (mark's comment), and is what brought this to stage 1.
Correct me if I am wrong, I think you may be more interested in the ergonomic use case? So my question in this case is, is this a complete solution for this use case? Including situations like what shu described about changing the prototype chain? Traditionally, instanceof in JS has been checking for the constructor on the prototype chain. Consider the following example:
class Z { z = 1; checkMe(o) { class.hasInstance(o) }
class Y extends Z { y = 2; checkMe(o) { class.hasInstance(o) } }
class X { x = 3; checkMe(o) { class.hasInstance(o) }}

const zInst = new Z();
const xInst = new X();
const yInst = new Y();

yInst instanceof X // false
xInst.checkMe(yInst) // false
yInst instanceof Y // true
yInst.checkMe(yInst) // true
yInst instanceof Z // true
zInst.checkMe(yInst) // false

Object.setPrototypeOf(yInst, xInst);

yInst instanceof X // true
xInst.checkMe(yInst) // false
yInst instanceof Y // true
yInst.checkMe(yInst) // true
yInst instanceof Z // false
zInst.checkMe(yInst) // false

The above may be confusing. Arguably, this is a problem with our original naming, as instance is more frequently associated with class based languages, but in JS the behavior is about the prototype chain. In my opinion, I think a naming change will be clearer. In an ideal world, "instance" would not be ambiguous. For this use case, maybe class.isConstructorOf, and this is a clearly communicated guarantee? Or, is prototype behavior something you are interested in exploring? (this may be hard).
I think, however, intentionally incorporating the use case that Mark has in mind makes this stronger overall. That is why I initially suggested a past tense verb.

If brand check would be understood to be a fixed instanceof, I think many developers would intuitively expect

when instanceof is false, the brand check must fail
when instanceof is true, the brand check can fail or succeed
when the brand check succeeds, instanceof must be true
when the brand check fails, instanceof can be true or false

So, I think Jack Works' suggestion would need to be assumed.

an ergonomic, intuitive way to check that an object is what it says it is (much like the goal of a brand check)
a way to ensure that a class has fully instantiated.

@codehag
I don't think these two things is separated, at least for most people who use classes, follow the OOP concept, "fully instantiated" is the prerequisite of "an object is what it says it is".
There may be the gap: I don't think people "check that an object is what it says it is" means they want to do "brand check". This proposal add class "brand check" as the mechanism of "check instance", but "brand check" is not the goal. We also don't want to expose "brand" concept to developers.
What "brand" check is ?
As I understand, a "brand" as TC39 term, means some code have the power to classify the objects into two category: those have the brand, those not have. And no other code can change or forge it.
So it's a very general concept, most time too general.
We already have the right tool for branding, that's weakset. I don't think we need any other feature to make branding much ergonomic in general way. Because 1. it seems just invent another way to do the same thing, 2. you can't make a "too general" thing really ergonomic, because there is no enough context.
This is why I feel #x in o is wrong --- Private fields are for internal states, private methods/ are for internal operations. They are not designed for branding. The use cases of per field checking are just branding usage. They just do it in a different way for taste or engineering reason (gc or perf effect in engines). And, if u see their pattern, using inheritance and base class return trick , the pattern is already geek enough, it make no sense to improve the ergonomic for geek usage, and also #x in o doesn't really improve the ergonomic much in such pattern.
On the other side, the common usage of the private fields do not need per field check.
Logically, an object has the private field because "it's the object what it says it is", not: "it's the object what it says it is" because the object has the private field. Using "#priv in o" to "check that an object is what it says" inverse the effect and the cause, so it's no surprise that  it has the flaw that hard to use "#priv in o" to ensure "fully instantiated".
So "check that an object is what it says" is really the task we should provide much ergonomic, intuitive way for programmers. And "check the object has fully instantiated by the class" is the part of the definition of "check that an object is what it says". It's doesn't make sense to say it's the object what it says but not fully instantiated or in a broken state. So I think that's why @XGHeaven said "it's the same goal."

I think we are talking past each other. Lets take ergonomic brand checks out of the picture. It has been an unhelpful distraction to this proposal.
You have mentioned that you do not actually care about the completed object -- thats also fine, and it answers my question. So we can ignore item 2.
The problem, as I understand, that you want to solve is that instanceof doesn't really work. You mentioned (and I fully agree) that "brand check" doesnt mean much to developers. The question raised at plenary by shu was "what guarantees should this provide". Let's check our shared understanding of that, using the following code:
var _set1 = new WeakSet();
var _set2 = new WeakSet();
var _set3 = new WeakSet();

class X {
  constructor() {
    _set1.add(this);
  }

  equals(range) {
    return _set1.has(range);
  }
}
class Z {
  constructor() {
    _set3.add(this);
  }

  equals(range) {
    return _set3.has(range);
  }
}
class Y extends Z {
  constructor() {
    super();
    _set2.add(this);
  }

  equals(range) {
    return _set2.has(range);
  }
}

var yInst = new Y;
var xInst = new X;
var zInst = new Z;

Object.setPrototypeOf(yInst, xInst);

console.log(zInst.equals(yInst)) // what should this be and why?

The way I’d describe it is: zInst has all the slots/fields/constructor behavior of Z and Y, and has all the methods of Z, Y, and X - so it’s a “true instance” of Z and Y (because it meets both sets of criteria) and it inherits from X (which may, or may not, allow it to “work like an X”, depending on X’s internal implementation details).
Knowing the former means i can borrow methods (.call, etc) and expect them to work reliably; knowing both means i can directly call methods reliably; knowing only the latter requires me to make assumptions or know implementation details.

The way I’d describe it is: zInst has all the slots/fields/constructor behavior of Z and Y, and has all the methods of Z, Y, and X - so it’s a “true instance” of Z and Y (because it meets both sets of criteria) and it inherits from X (which may, or may not, allow it to “work like an X”, depending on X’s internal implementation details).

To quickly clarify, In this case (sorry it isn't well written), Y inherits from Z, not Z inheriting from Y. So Z does not have access to Y's slots. The prototype has been moved for yInst from Z, to xInst (X). You can see a full runnable example of this here

Right; but it means Y’s methods can access Y’s fields, and Z’s methods Z’s; I’m assuming each class’ methods are written to use their own fields.

Interestingly we have the following for yInst in this case: console.log(yInst.equals(yInst)) // false

but it means Y’s methods can access Y’s fields, and Z’s methods Z’s

Right, so -- this was what i was thinking of when i thought "it is interesting to be able to verify what this was constructed with, not what it might be now. I wonder if this translates to an OOP model as hax is citing, in a language that is prototypical, to something that should be called an "instance" -- especially since it is giving a fundamentally different answer than instanceof. For this case, which i think is valid, i would expect this to be named something like class.isConstructor(o) or class.isInstantiatedAs(o), to make this intended behavior clear. This was what I was trying to get across in my first comment.

class.constructed(o)


E2E Test: improve flaky tests

Noticed the @-symbol test fails frequently because the ts language was not ready before we performed the search.
This PR moves the timeout before we perform the search to make sure it gives the server enough time.
The update-notice.test.ts is also failing frequently because the chat window was created before the close button was clicked based on the recordings returned from the CI. Updated the test to get the close button by label instead.
Test plan

Green CI

Thank you so much for always looking out for our test health @abeatrix 🤗

That worked before, but it's still failing on main 😭


Should the location of the cell center in stretched cells be half way between the faces?

Title sounds ridiculous but @jm-c mentioned that for stretched grids, models (e.g. WRF) usually place the cell center halfway between the two cell faces, but apparently this choice can be relaxed so that you can specify cell centers to be slightly offset from the true center.
I guess they won't be "cell centers" anymore, but just opening an issue in case there's anything to discuss.
Without assuming cell centers are halfway between the two faces then interpolation operators are a bit more complicated
@inline ℑz_aac(i, j, k, grid::VerticallyStretchedCartesianGrid, f) =
    @inbounds ((grid.zC[k] - grid.zF[k]) * f[k, j, i] + (grid.zF[k+1] - grid.zC[k]) * f[k+1, j, i]) / grid.ΔzF[k]

and if we assume e.g. grid.zC[k] - grid.zF[k] = grid.ΔzF[k]/2 then the interpolation operators simplify.
So it seems maybe we should just assume that the cell centers are exactly halfway between the faces, unless there's a good reason or important use case for having custom/offset cell center locations.

why wouldn't they be just defined at cell centers?
Suggest make that assumption.
John
On Mon, Oct 21, 2019 at 2:29 PM Ali Ramadhan<EMAIL_ADDRESS>wrote:

Title sounds ridiculous but @jm-c https://github.com/jm-c mentioned
that for stretched grids, models (e.g. WRF) usually place the cell center
halfway between the two cell faces, but some models relax this choice so
that you can specify cell centers to be slightly offset from the true
center.
I guess they won't be "cell centers" anymore, but just opening an issue in
case there's anything to discuss.
Without assuming cell centers are halfway between the two faces then
interpolation operators are a bit more complicated
@inline ℑz_aac(i, j, k, grid::VerticallyStretchedCartesianGrid, f) =
@inbounds ((grid.zC[k] - grid.zF[k]) * f[k, j, i] + (grid.zF[k+1] - grid.zC[k]) * f[k+1, j, i]) / grid.ΔzF[k]

and if we assume e.g. grid.zC[k] - grid.zF[k] = grid.ΔzF[k]/2 then the
interpolation operators simplify.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/climate-machine/Oceananigans.jl/issues/491?email_source=notifications&email_token=AKXUEQROF3YBCYTVKZUUNMLQPXYINA5CNFSM4JDC6IX2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HTI3OWQ,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKXUEQQAZQL25R7ZQ4S7J63QPXYINANCNFSM4JDC6IXQ
.

--
John Marshall
Cecil and Ida Green Professor of Oceanography
Massachusetts Institute of Technology
http://oceans.mit.edu/JohnMarshall/

@johncmarshall54 I agree that makes the most sense. Was just curious about something @jm-c said.
Apparently he was mostly referring to the binary choice between having cell centers be exactly halfway between the cell faces, or having the faces be exactly halfway between the cell "centers".
In general, he says that having custom/offset locations is generally a bad idea, although it has been implemented in MITgcm.
He linked to a couple of older papers where they discuss this:

Yin & Fung (1991). Net diffusivity in ocean general circulation models with nonuniform grids, JGR Oceans 96(C6), 10773-76.
Marti et al. (1992). Comment [on “Net diffusivity in ocean general circulation models with nonuniform grids” by F. L. Yin and I. Y. Fung], JGR Oceans 97(C8), 12763-66.

Is the idea that there is some kind of compromise with putting the u-points at the "center" of the u control volumes, versus putting the tracer points at the center of the tracer control volumes? I see that it is impossible to achieve both.
In other words, certain assumptions about "interpolation" are baked into the interpolation operators (we do not do a true interpolation between the different grids for u, v, w, etc).

The basic munerics of oceananigans is the same as MITgcm: we use a scheme
which conserves tracer variance: e.g. D/Dt (T**2) = exactly 0 in the
absence of sources and sinks. This is ensured by just taking the average of
the T between adjacent boxes when one is computing the flux of T across the
cell face. This is true even in the vertical when del_z is not constant.
John
On Tue, Oct 22, 2019 at 1:41 PM Gregory L. Wagner<EMAIL_ADDRESS>wrote:

Is the idea that there is some kind of compromise with putting the u-points
at the "center" of the u control volumes, versus putting the tracer
points at the center of the tracer control volumes? I see that it is
impossible to achieve both.
In other words, certain assumptions about "interpolation" are baked into
the interpolation operators (we do not do a true interpolation between the
different grids for u, v, w, etc).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/climate-machine/Oceananigans.jl/issues/491?email_source=notifications&email_token=AKXUEQRCTHJHAZRI5GKCT6TQP43NXA5CNFSM4JDC6IX2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEB6S3NQ#issuecomment-545074614,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKXUEQSMDJBGJELHENZ6XVLQP43NXANCNFSM4JDC6IXQ
.

--
John Marshall
Cecil and Ida Green Professor of Oceanography
Massachusetts Institute of Technology
http://oceans.mit.edu/JohnMarshall/

I see, @jm-c pointed this out but I didn't realize it was to conserve tracer variance. I'll add this to the documentation once we have a vertically stretched grid.
I guess this means you don't want crazy amounts of stretching between adjacent grid cells and might be the reason for @jm-c's rule of thumb for stretching: that adjacent cells shouldn't be stretched by more than √2.

Cell centers are assumed to lie halfway between the faces.


Only Action Acounts account shown

Hi
In the wizard only action accounts seems to be usable as runas ?
I need to connect to the SQL Database using a Windows run as account.

Hi, I think you need to use a Simple Auth RunAs account...


iam help corrected for update-policy action

Guys, can you pls merge this?

done

Thanks much much


Determining servicebus connection at runtime

We deploy our function apps as docker containers and store secrets/connection string in a key vault, associating each environment's key vault to the function app in ConfigureAppConfiguration.
However, with the managed identity configuration the required name is "servicebus__fullyQualifiedNamespace" and "_" is not a valid character in a key vault secret name.
What is the recommended solution to configuring the service bus connection string at runtime?

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

ID: dab2626a-9579-fe2b-f11b-0ffec8666fcf
Version Independent ID: 9f48d2bc-eda0-57e8-1ecd-a2489f1cb862
Content: Azure WebJobs Service Bus client library for .NET - Azure for .NET Developers
Content Source: api/overview/azure/microsoft.azure.webjobs.extensions.servicebus-readme-pre.md
Service: webjobs
Product: azure
Technology: azure
GitHub Login: @ramya-rao-a
Microsoft Alias: ramyar

Thank you for your feedback.  Tagging and routing to the team member best able to assist.

Hi @phatcher,
When using Key Vault you would need to use ':' or '/' in place of the underscore. This doc provides more details.


Contribute upstream

From readme:

Fix OptiFabric / Optifine compatibility with many mods
Ex: (Lithium, Phosphor, REI, and more)

Perhaps you'd be interested in forking and maintaining OptiFabric?

Allow ModUpdater to update all mods without having to download them one by one

opt-in many mods to mod updater that haven't

Why make a new mod for that instead of contributing the changes to upstream? That way everyone could benefit.

Fix crash in many mods

Seems like something suited for Fabric API itself
Note: I haven't tested the mod yet but it seems promising, just wondering why you'd create a new mod instead of contributing patches.

The way FabricZero hook Fabric is by using reflection and the latest version of java block reflection

I almost destroyed my health by trying to fix the previous issue because I have an unstable health

I actually don't have the health to upstream anything but If the original mod author want to steal my code they explicitly can
For now, I don't have the strength to do anything you said here.

Huh, alright. That brings a question though - are your changes sustainable to update when new major versions come or is this more like a current proof-of-concept.

@Fox2Code
Thank you for the mod,
Hope you get well soon,
just an advice ,please take care of your health,don't ditch it in favour of modding,Your health is MUCH MUCH MUCH more important.
Again,get well soon❤

If someone does pull request I will still review them but from now I will take a pause on FabricZero because it's not just a simple random mod and because I am not in my best condition I made a lot of coding mistakes.
And if a dev has the will to fix the stupid mistake I made I will accept it and add the person to the author inside fabric.mod.json if the person wants.


作者你好，请问你论文里多模态中交叉注意力可视化在代码哪个部分

Thank you for your interest. Could you translate your issue in English? I cannot understand Chinese.

Hi author, your matrn text recognition algorithm is very good, can you teach me how to visualise the image above?
2439512017
@.***

------------------ 原始邮件 ------------------
发件人:                                                                                "byeonghu-na/MATRN"                                                                                @.>;
发送时间: 2023年9月11日(星期一) 下午3:47
@.>;
<EMAIL_ADDRESS>主题: Re: [byeonghu-na/MATRN] 作者你好，请问你论文里多模态中交叉注意力可视化在代码哪个部分 (Issue #19)
Thank you for your interest. Could you translate your issue in English? I cannot understand Chinese.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

I cannot see the image. If the image is in our paper, you can tell me the figure number.

Fig. 4. Examples of self-attention maps in multi-modal FE. Attention maps on the
top-right and the bottom-left indicate the cross attentions between two modalities.

2439512017
@.***

------------------ 原始邮件 ------------------
发件人: "Byeonghu @.>;
发送时间: 2023年9月11日(星期一) 下午4:02
收件人: @.>;
抄送: @.>; @.>;
主题: Re: [byeonghu-na/MATRN] 作者你好，请问你论文里多模态中交叉注意力可视化在代码哪个部分 (Issue #19)
I cannot see the image. If the image is in our paper, you can tell me the figure number.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

You can extract this self-attention maps from this module.
https://github.com/byeonghu-na/MATRN/blob/dee0641ca90839daec57b92719f7e5d909e19d4d/modules/model_semantic_visual_backbone_feature.py#L97
https://github.com/byeonghu-na/MATRN/blob/dee0641ca90839daec57b92719f7e5d909e19d4d/modules/transformer.py#L789-L791

Thank you very much.love you

2439512017
@.***

------------------ 原始邮件 ------------------
发件人: "Byeonghu @.>;
发送时间: 2023年9月11日(星期一) 下午4:15
收件人: @.>;
抄送: @.>; @.>;
主题: Re: [byeonghu-na/MATRN] 作者你好，请问你论文里多模态中交叉注意力可视化在代码哪个部分 (Issue #19)
You can extract this self-attention maps from this module.
https://github.com/byeonghu-na/MATRN/blob/dee0641ca90839daec57b92719f7e5d909e19d4d/modules/model_semantic_visual_backbone_feature.py#L97
https://github.com/byeonghu-na/MATRN/blob/dee0641ca90839daec57b92719f7e5d909e19d4d/modules/transformer.py#L789-L791
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>


Rename WORKER to TENSIX in CoreType

This is not a high priority

Makes sense.

TENSIX enum was added to CoreType, there will be a separate PR for removing WORKER and renaming everything to TENSIX


Reduce duplication

There is so so so much duplication here that could be factored out.

I think this is good enough to close now, but there's always more to do! If anyone sends in refactoring PRs, I'll gladly take them.


dockerfile: update alpine & go, run rootless

Update Go to 1.22 since 1.19 is EOL, and run on basic Alpine image (no need for golang to execute).
Run the service as "nobody" rather than root for security.
Also, added health check.

Hi @teapot9,
Thanks a lot for your contribution! :smile:


HDFS and HBASE role depend on hostname

HDFS and HBASE bootstrap.sh scripts inspect hostname to decide the role of the container.
This can lead to wrong role assignements if helm chart-release name have "master" or "datanode" words on it.
We should change it to explicitly set the container role through a bash argument.

Solved in commit:
2db79be5f2c59486f5b4c1fe26480aa3730f26c8


AsyncAutoResetEvent -  Now way to DequeueAll

Hi,
If I have multiple tasks waiting on the reset event, the Set function only dequeues one. there's no way to detect the number of waiters and empty the queue.
DefaultAsyncWaitQueue is internal, so I can't use that.
There isn't another way to dequeue all, so perhaps I'm using the wrong synchronization primitive.
What's the best way to have a single signal unblock all waiters?

What's the best way to have a single signal unblock all waiters?

You might just be looking for a TaskCompletionSource, if you're OK with a non-reusable primitive.

Yup. Sorry. I figured that out as I was looking through DefaultAsyncWaitQueue.
I've ended up using AsyncManualResetEvent, which is basically your more elegant wrapper around TaskCompletionSource.
I closed the thread, but thanks for responding anyway! Thanks so much for making and maintaining the lib. It's fantastic.


introduce flag for insecure communication

this is particularly useful in development environments so that folks don't have to setup TLS in their collector

Let's double check there isn't a way to do this with environment variables first.

Closing - you can achieve this by using OTELs OTEL_EXPORTER_OTLP_ENDPOINT env var like http://localhost:4318. Otel library calls WithInsecure if http is set.
https://github.com/open-telemetry/opentelemetry-go/blob/main/exporters/otlp/otlptrace/internal/otlpconfig/envconfig.go#L97-L104

@jzelinskie I've reopened this. Even though it's possible to enable insecure communication via OTEL environment variables, it's not immediately obvious to users of applications using cobrautil. For example SpiceDB offers --help flag with all options, including those related to OTEL provided by cobrautil. It would be a better UX - we cannot expect folks to go and check the opentelemetry go library source code to figure out they can achieve it with OTEL_EXPORTER_OTLP_ENDPOINT.
Until it's decided to deprecate cobrautil/otel flags in favour of OTEL's native envs, we should provide a cohesive interface in cobrautil.

I think that's reasonable, is there an equivalent for Jaeger though? Because the cobrautil flag is not tied to a particular provider, ideally it can also trigger the behavior for Jaeger.

@jzelinskie

I think that's reasonable, is there an equivalent for Jaeger though? Because the cobrautil flag is not tied to a particular provider, ideally it can also trigger the behavior for Jaeger.

in Jaeger the endpoint must have the protocol as prefix, so it's defined through that. Nothing in the API showed the equivalent, but I can dig a bit more


make existing mod3 constant uppercase

This makes for consistency and more importantly enables the case sensitive mod_name_is_active check to work.
fixes #49

@rtbo what's the chance of getting a new tag sometime soon?


libsass.so stays in ext/ - but should be in lib/

I would have provided a PR if I knew rake a little better. But openSUSE packages gems so that ext/ is left as sources not for production.
Every other gem moves/copies libraries required to lib/, sassc sticks out there.

There is actually more information here.
Starting from a while ago rubygems installs dynamic libraries to /usr/lib/ruby/gems/$VER/extensions/x86_64-linux/$VER/ as a primary destination. Installing *.so files to lib is done for historical reason. Some distros such as Fedora and Arch Linux disabled installation to lib already and the so files available under extensions only.


Refactor and restyle the implementation, add Javadocs, and enable checkstyle

Refactoring and Javadocs. If the entire PR looks complicated, please have a look at commits for each.

Thanks!


Add sample for buttons with image as icon

See: https://vaadin.com/docs/latest/components/button#buttons-with-images

Online at: http://demo.jmix.io/ui-samples/sample/button-image


Add Skeletal Animation.

M2Loader does not yet support skeletal animation which is however the most important animation technique for character models.
I've tried to implement the feature and tested it with druidcat2.m2 however the geometry gets distorted and not properly animated. Unfortunately, https://wowdev.wiki/ does not provide enough information about how the skeleton should be built and integrated in the scene graph.

Initial support for skeletal animation was added via a2fa9e333b0ecad6e34c37df7dbe6e2a29312ce6.


Restructure the disco project

As suggested by @tharvik , it makes more sense to have the server in its own folder both for the logic but also for having it as its own package. We would refactor to the following:
Disco
  DiscoJS (core JS code)
  Server  (Server code)
  Browser (Vue3 + manager for DiscoJS)

Currently all the code is living in disco/mobile-bowser-….

@tharvik, it's probably a good idea to do this in two steps (2 PR's):

Rename mobile-broswer-... to DiscoJS && move the Server out of DiscoJS, to be at the same level.
Move the Vue3 code out of DiscoJS to and put it in a Broswer folder.

I think the first part should be relatively easy to do, so you can actually do it once you are done with simple-peer. For 2. we can discuss in our meeting tomorrow, but it's also something that we will do a bit later since it's not a priority.


Added option to share kernel namespaces in libpod and podman.

See notes for my current thoughts and confusions. Most notably:
I have had  a decent amount of trouble setting up the pause container. The cyclical dependencies between create config and libpod are turning out to be very difficult to avoid. This patch sets up kernel namespaces based on the first container added to the pod, so it will work in conjunction with the pause container once that is set up.
I'm iffy on where to set up the container namespaces. I added a hacky work around because it feels like runtime_ctr is a good spot for it, but that involves skipping setting up net namespace in createconfig.
I also want to find a better name for pause container/podInfracontainer.
Signed-off-by: haircommander<EMAIL_ADDRESS>

@haircommander I wouldn't even use CreateConfig. Use a fresh OCI generator and fill in the bare minimum required to start the container, we can add more as needed later.

@mheon yeah I started doing that, then got anxious about duplicate code, and moved on to this. I will work on that.

Things left TODO (this will be a changing list):
Allow containers to opt out of sharing.
Improve documentation
Add tests (and refactor to be able to be run in the e2e test suite).
If you want to see my current direction @baude @mheon @rhatdan PTAL

Definitely seems to be going in the right direction now, nice work @haircommander

bot, retest this please

I've updated this PR to be able to handle containers opting out of sharing namespaces, as well as added tests and heavily refactored. PTAL

I think we're going to need changes to RemoveContainer() to prevent pause containers from being removed without removing the entire pod, and to RemovePod() to always remove the pause container (even if force is not set).

@mheon OK, pods now can be removed without -f if they only have a pause container, and pause containers can't be removed by a normal podman rm. this PR is ALMOST done :)

bot, add author to whitelist

@baude @rhatdan I fininished implementing @mheon 's suggestions. This pr won't be ready until #1266 lands but it's pretty much done. PTAL

@baude @jwhonce updated pod create in varlink. PTAL

@rhatdan @TomSweeneyRedHat @umohnani8 @vrothberg this should be ready for review/merge, PTAL.

They definitely do not share a PID namespace by default in Kube - you'd
need a proper init system in your pause container in that case, not just a
pause binary
On Wed, Aug 22, 2018, 15:56 Peter Hunt<EMAIL_ADDRESS>wrote:

@haircommander commented on this pull request.
In cmd/podman/pod_create.go
https://github.com/containers/libpod/pull/1187#discussion_r212087190:

@@ -11,6 +12,11 @@ import (
"github.com/urfave/cli"
)

+var (

// CRI-O default kernel namespaces
DefaultKernelNamespaces = "ipc,net,pid"

http://cri-o.io/ Mentions "Pods are a kubernetes concept consisting of
one or more containers sharing the same IPC, NET and PID namespaces and
living in the same cgroup." Totally open to leaving it as ipc,net,uts but
thought I'd throw it out there @rhatdan https://github.com/rhatdan
@mheon https://github.com/mheon
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/containers/libpod/pull/1187#discussion_r212087190,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHYHCH5ci0s5JxpELdDpCu_ZGAwxQIzeks5uTbdWgaJpZM4Vmiim
.

@mheon As of the 3.1 kubernetes pause image (that which is our default), they say that they handle it https://github.com/kubernetes/kubernetes/blob/afbbd394c125ff443fb711741e6e06f996920ffd/build/pause/CHANGELOG.md
Still looking for evidence they share pid namespace other than a year old article from google. will get back to you.

LGTM. Let's see about getting this merged.

LGTM, and all green test buttons.

Sorry to rain on the parade of green tests but I need to update it so pod_top_tests don't break CI. fingers crossed the CI gods look upon us forgivingly.

I'll trigger a merge once we're green again

@rh-atomic-bot r+


file not recognized: file format not recognized

I'm trying to build better-sqlite3 but I get the following
yarn install v1.22.5
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
[1/2] â   better-sqlite3
error /home/pi/isfb/node_modules/better-sqlite3: Command failed.
Exit code: 1
Command: prebuild-install || npm run build-release
Arguments:
Directory: /home/pi/isfb/node_modules/better-sqlite3
Output:
prebuild-install WARN install No prebuilt binaries found (target=14.15.4 runtime=node arch=arm libc= platform=linux)
npm WARN lifecycle The node binary used for scripts is /tmp/yarn--1611565682996-0.850443338690402/node but npm is using /home/pi/.nvm/versions/node/v14.15.4/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.

><EMAIL_ADDRESS>build-release /home/pi/isfb/node_modules/better-sqlite3
> node-gyp rebuild --release

make: Entering directory '/home/pi/isfb/node_modules/better-sqlite3/build'
  TOUCH b857c92884e9598d609f6be182a2595df7a8e00f.intermediate
  ACTION deps_sqlite3_gyp_locate_sqlite3_target_extract_sqlite3 b857c92884e9598d609f6be182a2595df7a8e00f.intermediate
  TOUCH Release/obj.target/deps/locate_sqlite3.stamp
  CC(target) Release/obj.target/sqlite3/gen/sqlite3/sqlite3.o
  AR(target) Release/obj.target/deps/sqlite3.a
  COPY Release/sqlite3.a
  CXX(target) Release/obj.target/better_sqlite3/src/better_sqlite3.o
In file included from ./src/better_sqlite3.lzz:10,
                 from ../src/better_sqlite3.cpp:4:
/home/pi/.cache/node-gyp/14.15.4/include/node/node.h:778:51: warning: cast between incompatible function types from â€˜void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Context>)â€™ to â€˜node::addon_context_register_funcâ€™ {aka â€˜void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, v8::Local<v8::Context>, void*)â€™} [-Wcast-function-type]
       (node::addon_context_register_func) (regfunc),                  \
                                                   ^
/home/pi/.cache/node-gyp/14.15.4/include/node/node.h:796:3: note: in expansion of macro â€˜NODE_MODULE_CONTEXT_AWARE_Xâ€™
   NODE_MODULE_CONTEXT_AWARE_X(modname, regfunc, NULL, 0)
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/pi/.cache/node-gyp/14.15.4/include/node/node.h:827:3: note: in expansion of macro â€˜NODE_MODULE_CONTEXT_AWAREâ€™
   NODE_MODULE_CONTEXT_AWARE(NODE_GYP_MODULE_NAME,                     \
   ^~~~~~~~~~~~~~~~~~~~~~~~~
./src/better_sqlite3.lzz:67:1: note: in expansion of macro â€˜NODE_MODULE_INITâ€™
./src/objects/database.lzz: In static member function â€˜static void Database::JS_new(const v8::FunctionCallbackInfo<v8::Value>&)â€™:
./src/objects/database.lzz:172:21: warning: variable â€˜statusâ€™ set but not used [-Wunused-but-set-variable]
./src/util/data.lzz: In function â€˜v8::Local<v8::Value> Data::GetValueJS(v8::Isolate*, sqlite3_stmt*, int, bool)â€™:
./src/util/data.lzz:75:92: warning: this statement may fall through [-Wimplicit-fallthrough=]
./src/util/data.lzz:75:197: note: here
./src/util/data.lzz: In function â€˜v8::Local<v8::Value> Data::GetValueJS(v8::Isolate*, sqlite3_value*, bool)â€™:
./src/util/data.lzz:79:81: warning: this statement may fall through [-Wimplicit-fallthrough=]
./src/util/data.lzz:79:175: note: here
  SOLINK_MODULE(target) Release/obj.target/better_sqlite3.node
/usr/lib/gcc/arm-linux-gnueabihf/8/../../../arm-linux-gnueabihf/libc.so: file not recognized: file format not recognized
collect2: error: ld returned 1 exit status
make: *** [better_sqlite3.target.mk:147: Release/obj.target/better_sqlite3.node] Error 1
rm b857c92884e9598d609f6be182a2595df7a8e00f.intermediate
make: Leaving directory '/home/pi/isfb/node_modules/better-sqlite3/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/pi/.nvm/versions/node/v14.15.4/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:277:12)
gyp ERR! System Linux 5.4.72-v7l+
gyp ERR! command "/home/pi/.nvm/versions/node/v14.15.4/bin/node" "/home/pi/.nvm/versions/node/v14.15.4/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--release"
gyp ERR! cwd /home/pi/isfb/node_modules/better-sqlite3
gyp ERR! node -v v14.15.4
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>build-release: `node-gyp rebuild --release`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build-release script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/pi/.npm/_logs/2021-01-25T09_11_19_783Z-debug.log
info Visit https://yarnpkg.com/en/docs/cli/install for documen

Not sure whats causing it but I can't seem to figure it out. It's working in the past for me. Thanks for your help.

Any updates on this issue?

Closing this due to inactivity.


REQ: Regenerate MP3 buttons for last comment and all

It would be nice if the mp3 files of the last comment or all comments could be regenerated. For the last one, because if I edit the reply, the mp3 is not regenerated, so that would be good, and for all replies, so that there is also sound for the previous dialogs. In this case, the sound tag should be inserted in front of each one in the "visible" block in the JSON file.

I believe the current version of TGWUI already has this.on the hamburger menu to the left of the text prompt box.

You mean the Regenerate button? That will regenerate the last bot post. I was thinking of the TTS sounds, that one click generates the sound for the most recent comment or all comments based on the visible post.

This does sound like a great idea, however I feel it's beyond the scope of this extension. This extension is primarily for low-bandwidth data consumption and quick results.
For example, one could use this in a car so that they can stay hands-free and safe.
If one were to need more options, one could use the JSON text output from my AutoSave extension and send that text to any number of high quality TTS engines, external to TGWUI.
If you are considering using generated speech for other projects, you might want to check Bark from suno-ai

That's why I thought of this, because it's offline, so it would regenerate the sounds faster than other online services...

I could be wrong, but I believe that Silero, Bark, Tortise, Coqui are all AI TTS projects found on GitHub that all can run locally and offline.
Definitely slower than my extension -but immensely better audio output!

Thanks for the tips. These are good features, but in Hungarian only coqui could be used via fairseq model, but it's not in oobabooga and I'm not a programmer, so that's it.
Thanks for what you have developed so far, I will give up using TTS for now.


Fix build on darwin wrt #21

Depends on https://github.com/haskell-hvr/lzma-clib/pull/2
@hvr @carter

This will require a revbump.


The library generated by x64-mingw-dynamic is not available in the CMake toolchain file.

Description.
When using the x64-mingw-dynamic target platform with vcpkg, the generated libraries are not properly recognized and linked in the CMake toolchain file. Although the relevant dependency packages were installed via vcpkg and vcpkg was configured correctly during the CMake build process, the resulting libraries were not found during the build process, resulting in linking errors.
Reproduction steps.

Install vcpkg and configure the toolchain file. 2.
Install dependent libraries (e.g., zlib) using vcpkg.
``bash
. /vcpkg install zlib:x64-mingw-dynamic

3. Configure the CMake project and specify the `vcpkg` toolchain file.
```bash
cmake -DCMAKE_TOOLCHAIN_FILE=<path-to-vcpkg>/scripts/buildsystems/vcpkg.cmake .

Try to build the project and see if you get a linking error indicating that the dynamic libraries installed by vcpkg could not be found.

Expected behavior.
It should be possible to correctly link dynamic libraries generated by x64-mingw-dynamic during the CMake build process, and these libraries should be auto-discovered via the vcpkg toolchain file.
Actual behavior.
Although CMake successfully loaded the vcpkg toolchain file and configured the relevant dependency libraries, the link phase failed to find the x64-mingw-dynamic generated libraries. It is possible that vcpkg did not pass the dynamic library path to CMake correctly.
Environmental information.

vcpkg version: 2024-11-12
Operating System:Windows 11
Compiler:MinGW-w64-x86_64-Clang
CMake version: 3.20.1

Translated with DeepL.com (free version)

It is not enough to set the toolchain. You must also control the triplets. The default (x64-windows) is not mingw,

It is not enough to set the toolchain. You must also control the triplets. The default (x64-windows) is not mingw,

But I want to use mingw, how do I need to set it up?

https://learn.microsoft.com/en-us/vcpkg/users/buildsystems/cmake-integration#settings-reference

https://learn.microsoft.com/en-us/vcpkg/users/buildsystems/cmake-integration#settings-reference

Thanks very much for your


Removed the email not null check

#33 Remove the email not null check to support anonymous account.

Codecov Report

Merging #34 into master will decrease coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             master    #34      +/-   ##
==========================================
- Coverage     67.01%    67%   -0.02%
  Complexity      644    644
==========================================
  Files            45     45
  Lines          3271   3270       -1
  Branches        469    469
==========================================
- Hits           2192   2191       -1
  Misses          899    899
  Partials        180    180

Impacted Files
Coverage Δ
Complexity Δ

...th/src/main/java/com/google/api/auth/UserInfo.java
100% <ø> (ø)
5 <0> (ø)
:arrow_down:

Continue to review full report at Codecov.

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


Allow use in a web worker

This allows the use of the IndexedDB in a web worker scope, where the API is also available.

I already tried but unfortunately I wasn't able to get the IndexedDB to work (even in the main thread). To use web workers the SharedArrayBuffer should be enabled, and in Rust the way to do so is to recompile the std library with some additional features for the wasm32-unknown-unknown target. I used this config.toml:
[build]
target = "wasm32-unknown-unknown"
rustflags = ["-C", "target-feature=+atomics,+bulk-memory,+mutable-globals"]

[unstable]
build-std = ['std', 'panic_abort']

Just by enabling these features the current tests will fail :(

Actually I think I found it: my guess is it's this code of wasm-bindgen:
https://github.com/rustwasm/wasm-bindgen/blob/64e4a258a8be912702c54ae9c19e9cc720f6ca50/crates/futures/src/lib.rs#L56-L64
This switches the runtime to multithread, which probably means that transactions can auto-commit early. I'll try to figure out some way to avoid that auto-commit-early behavior :)

https://github.com/Ekleog/indexed-db/blob/wasm-bindgen-reproducer/tests/js.rs#L12-L53 showcases the difference in behavior between the singlethread and the multithread executor. I chatted with @daxpedda about that issue upstream, but I do think it's a bug in my IndexedDB crate (in which, granted, literally everyone else doing an async crate for indexeddb also fell), because it assumed a property that's not actually documented as holding, aka waking a task will make it run instantaneously.
I'll try to fix it on my end, and maybe the futures-based executor will also change to fix the other IndexedDB crates, and let you know when it's done :)

Ok, I have a fix up at https://github.com/Ekleog/indexed-db/pull/3 ; that said I'll wait until https://github.com/rustwasm/wasm-bindgen/issues/3798 sees a decision to land, because it slightly changes the API and would thus require a breaking change.
This being said, feel free to use that branch for now to unblock yourself, and for this specific PR I can land it as soon as you have a very simple test for it :)

I looked a bit more at how to implement a test with a web worker, and it seems like it's quite a mess to do it directly with web-sys. Feel free to add a dev-dependency on gloo-worker to implement worker spawning :)

Welp, after a week no one had any ideas about how to fix this any other way, so I just released 0.4.0 that fixes the issues with the multi-threaded executor :)

Sorry for my late reply and contribution, I had a super busy week!
Thank you for the fix, I tested it and it worked. After spending some time trying to use message passing to test the crate in a worker scope I noticed that wasm-bindgen-test can be configured to run the tests in a web worker, so I added a test-worker feature for this. Let me know if you are fine with this 😄

Looks like a great way to test!
Just, I don't really feel good about adding a feature for that, given that indexed-db is published on crates.io. How about instead we:

Move the contents of js.rs and js-panic.rs to some other folder, that is not the integration tests itself
Make 4 files in the integration-tests folder. Each of them would first setup wasm-bindgen-test with either browser or worker, and then include the js.rs or js-panic.rs. The include could happen with either the include!() macro, or the #[path = "../test-utils/js.rs"] pub mod tests, if wasm-bindgen-test likes it enough

It should also help with running the tests, as this way a single cargo test would be enough to test all the situations, without requiring one cargo test and one cargo test --features test-worker.
WDYT? :)

Actually I just noticed this does not require include! or #[path] magic: serde-wasm-bindgen seems to have a similar working setup without all this complexity, with just a common module :)

That's great! It should be ready now :)

The diff looks great to me! Just, you apparently didn't check the "allow maintainer edits" checkbox, so I can't resolve the conflicts for you without losing your authorship on the commits (I'll squash-merge once it's done). Can you just resolve them?
Then we can land, and I'll release 0.4.1 with the fixes! :)

I just noticed that you had quite a bit of luck with CI, because putting a panicking test in the same overarching test as any other test is UB, and currently fails if the test order is wrong :sweat_smile:
Anyway, I fixed it with https://github.com/Ekleog/indexed-db/commit/e31df688ccfa84fcb0c4c6dac49ee6a704dad724, and also made the code a bit more defensive with https://github.com/Ekleog/indexed-db/commit/85d1733a80a2bab35560f8f3a28c52f57b0f1e43 wrt. multi-threading.
I also just released 0.4.1, hopefully that version will work for you! :D


Governance change follow-up items

Follow-up items to #203

[x] Remove @fluxcd/oversight-committee team
[x] Rename @fluxcd/flux2-maintainers team to @fluxcd/core-maintainers
[x] Add @fluxcd/org-admins team
[x] Update https://github.com/fluxcd/community/tree/main/project to work with new structure
[ ] Replace https://github.com/fluxcd/flux2/blob/main/MAINTAINERS content with link to https://github.com/fluxcd/community/blob/main/CORE-MAINTAINERS
[ ] Review Org Admin team - see if we have new applicants
[ ] Set up annual reminder to review Org Admin team
[ ] Document that the process for reporting CoC violations is to reach out to the private Flux maintainers list

I added "reviewing the org admins team" to the agenda for the next Flux Dev meeting (25 May).


Cleaning setup

Right now setup.py places some GANDLF repo files to site-packages/ of the user's python env. This cleaning helps to keep all gandlf files in site-packages/GANDLF so keeping user env tidy + removes other unused parts of setup.py

Hi!
Concerning pytest failure - the failed test is actually brought by https://github.com/mlcommons/GaNDLF/pull/889/ - new augmentations. Let's proceed there, restored branch & PR
Concerning linter issues - I'll fix it in this PR

Hey!
I agree with your approach @VukW for the setup file. Regarding the augmentations - interesting thing, I did not receive any errors during tests for this pr. Will also take a look, if you find some cause of that earlier please let me know.

Thanks, folks!


add contributors json file

we need to strore all our contributors details
Name
Profile Picture
GitHub link
file name: contriutors.json
demo
{
  "profiles": [
    {
      "name": "DevvSakib",
      "avatarUrl": "https://avatars.githubusercontent.com/u/88339569?v=4",
      "github": "devvsakib",
      "twitter": "devvsakib"
    }
 ]
}

for avatar, goto user profile, right click on image, COPY IMAGE LINK. that's it

Please assign this to me

Please assign this to me

assigned

@devvsakib
Please let me know

@devvsakib Please let me know

don't add  twitter now

sure

I can add twitter of those who have it on. and remove it for those who don't

I can add twitter of those who have it on. and remove it for those who don't

exactly!

The file was added - #59

@devvsakib
Please review it.

@devvsakib Please review it.

really nice job

Solved by #59


Disable feed_sync in config.yaml

Is this a request for help?:
Yes
Is this a BUG REPORT or a FEATURE REQUEST? (choose one):
FEATURE REQUEST

Version of Anchore Engine and Anchore CLI if applicable:
latest
What I want:
I want to be able to turn off the feed_sync functionality but retain the rest of the features provided by the policy_engine service. I see in the code to do that you can change this line:
https://github.com/anchore/anchore-engine/blob/fa7d52cd09435c807ed0c9179d521437276a89e4/anchore_engine/services/policy_engine/__init__.py#L32
from True to False (untested, but in my head I think that's what should happen). Would it be possible to move this option into the config.yaml file rather than hard coded?

If you just want to turn off the actual feed updates you can add this to your config.yaml:
feeds:
  selective_sync:
    enabled: True
    feeds:
      vulnerabilities: False
      packages: False

That should skip the actual data syncs. Just note that if you don't have the feed sync enabled you won't get any CVE data. If you ran it once and want to turn it off (e.g. already have info in the db) then this effectively freezes the cve data so it won't update.
I'll make a note to simplify the full disable mode. Should be an easy addition to the config moving forward.

Awesome! Thanks for your help @zhill :)

We've added a new configuration parameter that allows feed syncs to be disabled in commit 'd61f643d3652579d105b4500e6da6bf804cbf073', which is also available in the latest unstable container build (docker.io/anchore/anchore-engine:dev), for from-scratch testing purposes.
The new parameter is called 'sync_enabled: <True|False>', inside the 'feeds' section of config.yaml.


Should we self-host all static content

Currently we use some libraries hosted on cdnjs (run by Cloudflare)
https://github.com/rust-lang/docs.rs/blob/664577aa55756d77124efc29e891ccbe44cf7897/templates/base.html#L12-L17
This has caused issues at least once. To reduce our points of failure it might be worth self-hosting these files.

Yeah, I'd go for it.


Revert change in Quadicon style

Fixes quadicon position in show view
before

after

/cc @skateman @martinpovolny

@miq-bot add_label ui, bug

I wonder if we could remove all this listnav check if we fix all the non-listnav uses by handling the centering of the quadicon in the wrapping DOM element? It would simplify the logic. What do you think?

@martinpovolny Yes agreed.


HTML format not properly inheriting token background colors through "transparency"

Consider the "colorful" style and how it formats String.Doc.  According to the code, the style for such tokens includes the specifier "bg:", which the documentation states means a "transparent background," which (as far as I can tell) should mean that the background for String.Doc is inherited from String and thus should be #fff0f0.  However, when Pygmentizing Python code containing docstrings to HTML with "colorful", the only CSS class applied to such strings is sd, which has no background color.  Contrast this with the output for the LaTeX and terminal256 formats (among others?  I didn't check them all), which do give docstrings a background color.

Can you please provide a small repro case for this?

@Anteru Here is a gist demonstrating the problem. code.py is a Python file containing a docstring.  code.html is the output from pygmentize -f html -O full,style=colorful -o code.html code.py; when viewed in Firefox, Safari, or Chrome, the page looks like this:

Note the lack of a background on the docstring.
For comparison, the gist also includes code.tex, the output from pygmentize -f latex -O full,style=colorful -O 'preamble=\usepackage{bold-extra}' -o code.tex code.py; when typeset, it looks like this:

Note that, in this format, the docstring has a background.

Thanks for the example. Is your desired output the LaTeX or the HTML one? I'm interpreting bg: transparent as transparent, meaning no background color. In that case the LaTeX output would be wrong but HTML output would be correct.

@Anteru I have no strong feelings on which output should be the correct one; I just want the outputs to match.


Update Composer dependencies (2020-10-02-00-10)

Visual regression test passed!
View the visual regression test report


Some code would be cool to test out

Currently working on it!
The initial version is expected to be released within the next few hours.


Update Dockerfile generated by datasette publish

The generated Dockerfile currently looks something like this:
FROM python:3.8
COPY . /app
WORKDIR /app

ENV DATASETTE_SECRET 'edab49cbc5d5f6f33238f54852037e3fee710821960b73edd2ce743454182ae2'
RUN pip install -U datasette datasette-auth-passwords datasette-tiddlywiki datasette-graphql
RUN datasette inspect fixtures.db other.db --inspect-file inspect-data.json
ENV PORT 8080
EXPOSE 8080
CMD datasette serve --host <IP_ADDRESS> -i fixtures.db -i other.db --cors --inspect-file inspect-data.json --metadata metadata.json --create --port $PORT /data/*.db

This is still on Python 3.8, and it generates a pretty large image compared to the Dockerfile used for https://hub.docker.com/datasetteproject/datasette - https://github.com/simonw/datasette/blob/0.60.2/Dockerfile
Here's the code that generates it: https://github.com/simonw/datasette/blob/7d24fd405f3c60e4c852c5d746c91aa2ba23cf5b/datasette/utils/init.py#L389-L400

Starting it with FROM datasetteproject/datasette might be a good idea.

Could also bump this up to Python 3.10: https://github.com/simonw/datasette/blob/0.60.2/Dockerfile#L1

Looks like 3.10.2 is the latest: https://hub.docker.com/_/python?tab=tags&page=1&name=3.10.2-slim-bu

I noticed the image was large when using fly. Is it possible to use a -slim base?


Added scroll for overflow

#8837
I added overflow: auto
This adds a scroll to the container when there there is overflow.
Testing Plan:
I tested on development with longer sentences to verifty.
GIFs or Screenshots: <!-- If a UI change.  See:
https://zulip.readthedocs.io/en/latest/tutorials/screenshot-and-gif-software.html
-->

Closing as I don't think we intend to make any more changes to the old hotspots system before replacing it with a more modern tutorial.


[BUG] no-contradicting-classname throw unexpected error

Describe the bug
 52:11  error  Classnames bg-[url('/example.jpg')], bg-center are conflicting!  tailwindcss/no-contradicting-classname

To Reproduce
Steps to reproduce the behavior:

add bg-center bg-[url(/example.jpg)] on same HTML tag
npx eslint . --ext .ts,.tsx

Expected behavior
No warning or error when we use bg-center and **bg-[url(.jpg)] together
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):

OS: windows 11
Softwares + version used:

Node 16.17.0
eslint-plugin-tailwindcss 3.8.0
tailwindcss 3.1.8

Additional context
Add any other context about the problem here.
eslint config file or live demo
By providing a link to a live demo, a demo video or a github repo fixing the issue will be easier.

@johnxu77 why did you close the issue?

A duplicated issue #186 exists


Debugger crashes when using Django's Development Server with a Proper Launch Profile

This issue was locked and reported to be fixed upstream, but it is not fixed. I am on VS Code version 1.41.1 and Python extension version 2020.1.57204. The quick fix described here, which consists of setting django: false in the debug configuration does fix the issue for me, but this solution is anything but obvious and the problem seems significant enough to warrant a re-submission.

@garytyler  Can  you provide the launch configuration you are using? also, can you share the Python logs output, (specifically the lines that say "user belongs to")

Also, please use the bug template, it helps us narrow down issues faster.

This is fixed in the latest version of the extension. We switched to using the new debugger, see issue https://github.com/microsoft/debugpy/issues/128


Add another auto-generated file to .gitignore.

Update tools/kconfig/.gitignore for auto-generated file *.o.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for the PR, @sarenameas, and sorry for the slow turn-around. Has been cherry-picked as e24ac7a!


brainstorm on enhancing UX and UI

some ideas coming to mind:

avoid duplicating the mapping config (now at bottom of the analyze tab and at top of unify tab)
give quick dashboard linke insights on possible issues (e.g. based on #29 )

on the overview page of all vocabs it would be good to give some health indication / highlight vocabs that need attention
add dashboard tab to each vocab with clear health/stats indications (how many entities / where in the pipe, how many searches, size and last update of index, .dates of last access/ingest/update, ..  )

avoid starting the obvious next step explicitely  --> but do it automatically e.g.

when the ingest is done --> start the analysis
when saving the mapping config --> launch the unification

support larger setups --> allow filtering, searching sorting in the list of vocabs
allow reusing the mapping-config from another vocab (all skos-like bodc vocabs are essenjtially the same)

further ideas welcome at this stage / to further discuss - document and plan for

one more as a suggestion from #35

when pressing the [DELETE] the end user should get a decent and immediate feedback to make clear the event / action got accepted at least --> this could be through (i) dimming the button, (ii) changing its caption to [deleting...], (iii) replacing the dialog text with a message about the delete-job being started and the possible time it will take, (iv) closing the dialog, or some smart combination of the above
while a running delete job is known to be associated on a vocab, its listing should be dimmed in the list of vocabs, and no further actions should be possible on it -- at least for a reasonable timeout (~30 minutes acceptable?)

late idea to consider -- the UX of the real target result (being the actual widget) is also something we might want to discuss and consider -- motivation: its use of it should be manyfold the use of the admin pages -- thus the payback should be far bigger
ideas popping up:

allow for self controlled selection/feedback and actual value-reading api
allow for multivalue select too (eg similar to how  the admin UI has now the property-path widget)