Enabling multiple data providers

added an interface with factory
included ef core provider
included json provider
did some code reorganisation/move/rename

This is a POC/idea to implement the #4 issue. I know this is a big code change at once, my apologies for this. If some changes conflicts with the initial idea or concept of this project, again my apologies.
I hope this can kickstart a discussion on how to implement it.
PS there are a lot of parts in the code that can be improved or made more robust.

We would prefer a more focused pull-request that delivers just one feature from the issues list.  Some of these changes may be valuable, but its too many items changing all at once

No problem, if there is something I can change, so it is more tangible, let me know. It was a sort of concept or set of ideas to solve the multiple repository problem. Perhaps there is something salvable.

So I tried to break up the single commit in different steps to make it more understandable and rebased it from the new main branch. If there is anything else I can do to make it more acceptable, let me know.

The volume of the changes, and to things that weren't part of the
requirements are the problem I have.  Without documentation that shows how
to use your new configuration and objects, its confusing.
Once example:  The configuration system was deleted and completely
rebuilt.  Was that needed?  Not sure... but the other contributors to the
project don't get a chance to review and discuss that change because its
part of this larger change.
Why were the EF interactions completely rewritten?  It looks like you're
trying to simplify the interaction, but I can't tell what the value is of
this change without reading the entire pull-request and getting wrapped up
in the other changes
Can we focus on changing one thing at a time so that we can all understand
how this fits together?
Jeff
On Sun, Mar 20, 2022 at 2:53 PM Dries @.***> wrote:

No problem, if there is something I can change, so it is more tangible,
let me know. It was a sort of concept or set of ideas to solve the multiple
repository problem. Perhaps there is something salvable.
—
Reply to this email directly, view it on GitHub
https://github.com/csharpfritz/InstantAPIs/pull/57#issuecomment-1073310671,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAATF4NQA54A7XKC7SXRIOLVA5X3LANCNFSM5RBPW3ZA
.
You are receiving this because you commented.Message ID:
@.***>

Hi Jeff,
thanks for the response.    The thing I'm a bit lost with is how to handle those small steps.
For example, the first commit is using a single fixture to set up and teardown similar unit tests. As it isn't a real issue for the application, I'm reluctant to create an Issue for this.  But, should I instead create a single PR with only the first commit and start up a discussion with those changes?
I can do this step by step for every single commit if this would make it more open and allows others to comment or even pitch in different ideas. Let me know if that would be workable for you.
Kr
Dries


UI basic auth triggers browser login

Web-users that browse to a non-login with an unauthorized key should be directed to the login page and non be prompt by the default browser user/password.

The dialog will pop up but after #1397 it will redirect to the login page.


add the ability to pragmatically pass to xhyve whatever parameters we want.

rebase on current master and I'll merge.

just rebased.

This has #34 in it, so looks like you rebased against that rather than master?

ok, now really rebased against upstream/master :smile:

LGTM


Generated binit.rs has lots of mismatched types

error[E0308]: mismatched types
 --> src/binit.rs:6:18
  |
6 |     while (low < high) {
  |                  ^^^^ expected `i32`, found `usize`
  |
help: you can convert a `usize` to an `i32` and panic if the converted value doesn't fit
  |
6 |     while (low < high.try_into().unwrap()) {
  |                  ^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
 --> src/binit.rs:7:43
  |
7 |         let middle: _ = i32::from(((low + high) / 2));
  |                                           ^^^^ expected `i32`, found `usize`

error[E0277]: cannot add `usize` to `i32`
 --> src/binit.rs:7:41
  |
7 |         let middle: _ = i32::from(((low + high) / 2));
  |                                         ^ no implementation for `i32 + usize`
  |
  = help: the trait `Add<usize>` is not implemented for `i32`

error[E0277]: the type `[i32]` cannot be indexed by `i32`
 --> src/binit.rs:8:19
  |
8 |         if item < data[middle] {
  |                   ^^^^^^^^^^^^ slice indices are of type `usize` or ranges of `usize`
  |
  = help: the trait `SliceIndex<[i32]>` is not implemented for `i32`
  = note: required because of the requirements on the impl of `Index<i32>` for `Vec<i32>`

error[E0308]: mismatched types
 --> src/binit.rs:9:20
  |
9 |             high = middle;
  |                    ^^^^^^ expected `usize`, found `i32`
  |
help: you can convert an `i32` to a `usize` and panic if the converted value doesn't fit
  |
9 |             high = middle.try_into().unwrap();
  |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the type `[{integer}]` cannot be indexed by `i32`
  --> src/binit.rs:23:9
   |
23 |         bins[bisect_right(limits, d)] += 1;
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ slice indices are of type `usize` or ranges of `usize`
   |
   = help: the trait `SliceIndex<[{integer}]>` is not implemented for `i32`
   = note: required because of the requirements on the impl of `Index<i32>` for `Vec<{integer}>`

Changes needed to binit.rs to make it pass:
https://paste.ubuntu.com/p/r26NzcFxQm/

https://github.com/adsharma/py2many/pull/100 introduces some rewriting infra for cpp.
We could implement a similar rewriter for rust that rewrites:
for d in &limits {
  // use d
}

to
for __tmp1 in &limits {
   d = *__tmp1;
  // use d
}


Finish initial ECS implementation

ECS is split into Entities, Components, and Systems.
Systems manage all of the Components relevant to their Update or Draw
cycle. Each Component is registered to a "Parent" Entity. Entities are
little more than an ID, providing helper methods to interact with the
relevant Components. These helper methods are expensive to call, but the
use case would be that on a BehaviorComponent initialization, the
necessary Components would be retrieved via these slow helper methods.
Systems manage the lifetimes of Components. When an Entity is deleted,
all of the Components are queued up for deletion. On the next Update
cycle, each System will delete whatever components it has queued up for
deletion.
When the Application closes down, all of the Entities are unregistered
and the Components are immediately deleted.
Closes #17

There is no direct integration with the event system as of yet. This is a very barebones implementation, defining the basic APIs for the objects and their object lifetimes.

The BGFX submodule should not be deleted too if I'm not wrong

Wasn't actually deleting BGFX. If you notice, the path had two slashes. This was a bad path from when the .gitmodules still have two slashes instead of 1. I have BGFX locally from the .gitmodules still.


Tracking number of moves and direction for best score and current score

Added a new feature to support scoring, number of moves.
the total number of moves are shown, divided into the direction of moves.
the ratio of the moves in each direction will be represented by the shade of the arrow.
the moves for the best score are stored.

Hmm, the code is good enough albeit with a bunch of incorrect whitespace, but the way it looks is awkward and I can't quite see the point in tracking directions.

If this has to be done, I'd suggest it's implemented like it is in the 2048 app (the one I made, not the popular one). The move count is shown as small text below the board, in a non-obtrusive way.
Also, in my opinion there's no point at all in showing the "best overall" move count, if that's the reason why two numbers are displayed. =

What I thought was.- if you knew the type of moves made to get to your
previous best score, at any time you can change your move pattern to match
the best pattern.
I agree that it looks a little smashed , but if the feature is acceptable
then design can be changed.  Just showing number of moves would by useless,
it has to include direction count.
On Saturday, January 3, 2015, Gabriele Cirulli<EMAIL_ADDRESS>wrote:

If this has to be done, I'd suggest it's implemented like it is in the
2048 app (the one I made, not the popular one). The move count is shown as
small text below the board, in a non-obtrusive way.
Also, in my opinion there's no point at all in showing the "best overall"
move count, if that's the reason why two numbers are displayed. =
—
Reply to this email directly or view it on GitHub
https://github.com/gabrielecirulli/2048/pull/283#issuecomment-68568605.

In that case, I wouldn't consider it important enough to be included in the core of the game like this. Such a display would take a certain amount of space no matter where you put it and I'm not sure the value it provides justifies the visual changes. That's just my opinion though. I would still like to hear what the others think.

https://github.com/gabrielecirulli/2048/pull/283


[Azure Bot Service] Deployment not updating after code changes?

Bot Info

App ID: c5fe715d-abf0-47d3-a0fd-80468896cf74
SDK Platform: .NET
SDK Version: v4.7
Active Channels: Skype
Deployment Environment: Azure Bot Service

Issue Description
I have configured a bot with qnamaker and the Azure bot service.
In the Azure portal I have changed the default message that it responds with in BasicQnAMakerDialog.cs using the online code editor by changing the line shown below. That now shows correctly in the test panel within the Azure portal when I enter a question it can't answer.
Code Example
public BasicQnAMakerDialog() : base(new QnAMakerService(new QnAMakerAttribute(ConfigurationManager.AppSettings["QnASubscriptionKey"], ConfigurationManager.AppSettings["QnAKnowledgebaseId"], "Not sure how to help with that. Try asking about the roadmap, launch dates, and scope to find more info or get in touch with harry.peek@alfresco.com")))
Reproduction Steps

Edit BasicQnAMakerDialog.cs in the online code editor as above to change the default message
Run build.cmd in the terminal of the online code editor
Check the new message is shown in the test panel in the azure portal
Check if the new message is also shown by the Skype channel

Expected Behavior
I expected that edited default message to also be returned when using the bot in Skype.
Actual Results
I continue to get "No match found!" as the response in Skype.

Please try manually restarting the App Service in Azure:

Many thanks Eric. I did that and there was no change in Skype. However, I then tried adding the bot to a new Skype account and I did get the new message in that account. Unfortunately I don’t know if that would have also been the case before the restart.. So, the problem seems to be getting the update into Skype accounts that have already had the contact added.
From: Eric Dahlvang<EMAIL_ADDRESS>Reply-To: Microsoft/BotBuilder<EMAIL_ADDRESS>Date: Tuesday, 7 November 2017 at 21:36
To: Microsoft/BotBuilder<EMAIL_ADDRESS>Cc: Harry Peek<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [Microsoft/BotBuilder] [Azure Bot Service] Deployment not updating after code changes? (#3730)
Please try manually restarting the App Service in Azure:
[mage]https://user-images.githubusercontent.com/11055362/32519102-7be366f4-c3c0-11e7-975d-e29f8d4d3f62.png
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/BotBuilder/issues/3730#issuecomment-342630177, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AUX3N4tf_SQqYFGDJ59TIlDL6BGqmGxRks5s0M09gaJpZM4QVGqV.

Restarting the service does not resolve. I also restarted all of the associated app services but still experience the issue in both the Test webchat and in Teams/Skype.

@patlewisnc It might take up to 15 minutes for settings changes to propagate to skype and teams.  Sometimes changing the messaging endpoint, saving, and changing it back can force the propagation.
If you continue to experience problems, please open a new issue.

hello every one i have same issue in webcaht direct line ... the changes in jason adeptive card and controler its good working in emulator bur when i deployed on azure web deploy update never come old version with out update is runing

Hi @Tamoormughal  This is a closed issue.
Please ask your question on Stack Overflow using the Bot Framework tag: https://stackoverflow.com/questions/tagged/botframework

Hi @Tamoormughal  This is a closed issue.
Please ask your question on Stack Overflow using the Bot Framework tag: https://stackoverflow.com/questions/tagged/botframework


Kernel error trigerred by an asyncio conflict with SpyderKernelApp

Problem Description
Since the update to 5.1.5 a patch software called nest_asyncio that  deals with async issues has stopped working due to a conflict that Spyder raises when it is run.  The nest_asyncio  code is on github and it patches asyncio to allow nested event loops.  I upgraded from Spyder ver 5.0.5 (when everything was working fine) now going back to version Spyder 5.0.5  doesn't solve the problem because some files have been altered with the upgrade to 5.1.5.
What steps reproduce the problem?

pip install nest_asyncio (Install in terminal window)
import nest_asyncio
nest_asyncio.apply()

What is the expected output?
It solves an  API issue with nested event loops.  It should not raise any error messages.
Paste Traceback/Error Below (if applicable)
[SpyderKernelApp] ERROR | Exception in message handler:
Traceback (most recent call last):
File "C:\Users\ynika\anaconda3\lib\site-packages\spyder_kernels\comms\frontendcomm.py", line 164, in poll_one
asyncio.run(handler(out_stream, ident, msg))
File "C:\Users\ynika\anaconda3\lib\site-packages\nest_asyncio.py", line 32, in run
return loop.run_until_complete(future)
File "C:\Users\ynika\anaconda3\lib\site-packages\nest_asyncio.py", line 60, in run_until_complete
f = asyncio.ensure_future(future, loop=self)
File "C:\Users\ynika\anaconda3\lib\asyncio\tasks.py", line 680, in ensure_future
raise TypeError('An asyncio.Future, a coroutine or an awaitable is '
TypeError: An asyncio.Future, a coroutine or an awaitable is required
[SpyderKernelApp] ERROR | Exception in message handler:

PASTE TRACEBACK HERE
Traceback (most recent call last):
  File "C:\Users\ynika\anaconda3\lib\site-packages\spyder_kernels\comms\frontendcomm.py", line 164, in poll_one
    asyncio.run(handler(out_stream, ident, msg))
  File "C:\Users\ynika\anaconda3\lib\site-packages\nest_asyncio.py", line 32, in run
    return loop.run_until_complete(future)
  File "C:\Users\ynika\anaconda3\lib\site-packages\nest_asyncio.py", line 60, in run_until_complete
    f = asyncio.ensure_future(future, loop=self)
  File "C:\Users\ynika\anaconda3\lib\asyncio\tasks.py", line 680, in ensure_future
    raise TypeError('An asyncio.Future, a coroutine or an awaitable is '
TypeError: An asyncio.Future, a coroutine or an awaitable is required

## Versions
* Spyder version:  5.1.5
* Python version:  3.9.7
* Qt version: 5.9.7
* PyQt version: 5.9.2
* Operating System name/version: Win 10 Pro

### Dependencies

# Mandatory:
atomicwrites >=1.2.0          :  1.4.0 (OK)
chardet >=2.0.0               :  4.0.0 (OK)
cloudpickle >=0.5.0           :  2.0.0 (OK)
cookiecutter >=1.6.0          :  1.7.3 (OK)
diff_match_patch >=20181111   :  20200713 (OK)
intervaltree                  :  None (OK)
IPython >=7.6.0               :  7.27.0 (OK)
jedi >=0.17.2;<0.19.0         :  0.18.0 (OK)
jsonschema >=3.2.0            :  3.2.0 (OK)
keyring >=17.0.0              :  23.2.1 (OK)
nbconvert >=4.0               :  6.1.0 (OK)
numpydoc >=0.6.0              :  1.1.0 (OK)
paramiko >=2.4.0              :  2.7.2 (OK)
parso >=0.7.0;<0.9.0          :  0.8.2 (OK)
pexpect >=4.4.0               :  4.8.0 (OK)
pickleshare >=0.4             :  0.7.5 (OK)
psutil >=5.3                  :  5.8.0 (OK)
pygments >=2.0                :  2.10.0 (OK)
pylint >=2.5.0;<2.10.0        :  2.9.6 (OK)
pyls_spyder >=0.4.0           :  0.4.0 (OK)
pylsp >=1.2.2;<1.3.0          :  1.2.2 (OK)
pylsp_black >=1.0.0           :  None (OK)
qdarkstyle =3.0.2             :  3.0.2 (OK)
qstylizer >=0.1.10            :  0.2.1 (OK)
qtawesome >=1.0.2             :  1.0.3 (OK)
qtconsole >=5.1.0             :  5.1.1 (OK)
qtpy >=1.5.0                  :  1.11.1 (OK)
rtree >=0.9.7                 :  0.9.7 (OK)
setuptools >=49.6.0           :  58.0.4 (OK)
sphinx >=0.6.6                :  4.2.0 (OK)
spyder_kernels >=2.1.1;<2.2.0 :  2.1.1 (OK)
textdistance >=4.2.0          :  4.2.1 (OK)
three_merge >=0.1.1           :  0.1.1 (OK)
watchdog                      :  2.1.5 (OK)
zmq >=17                      :  22.2.1 (OK)

# Optional:
cython >=0.21                 :  0.29.24 (OK)
matplotlib >=2.0.0            :  3.4.3 (OK)
numpy >=1.7                   :  1.19.3 (OK)
pandas >=1.1.1                :  1.3.3 (OK)
scipy >=0.17.0                :  1.7.1 (OK)
sympy >=0.7.3                 :  1.8 (OK)

Hey @yiorgosn, thanks for reporting. Please close Spyder, open the Anaconda Prompt and run there
conda install jupyter_client=6.1.12

That should solve your problem, but let us know if works for you.

Thank you very much for getting back to me on this, this issue has terminated my ability to do my job from Spyder.
The instruction you provided did NOT work.    jupyter_client ver 6.1.12 was already installed by this morning's reinstall of Anaconda.   I did fresh reinstalls of everything as you can imagine and that is the only thing that crashes.  The author of nest_asyncio insists it is a Spyder issue.

Hey @yiorgosn, after a bit more thought I realized the nest_asyncio maintainer is right: this is a problem in our side. Fortunately, it'll be solved in our next version (5.2.0) to be released next week (see PR #16872).

Carlos,  thank you very much for your attention on this.  I will await the update while I use a secondary laptop with the old installation in the meantime.  I also want to thank you and your team for delivering and maintaining a stellar no nonsense product.  Version 5 had its transition issues but it is a total hit.  All the best, YN

Thanks a lot for your kind words @yiorgosn! They are really important to us.

anaconda doesnt have the 5.2.0 Spyder version available through the navigator. And if I manually update to 5.2.0, spyder then does not recognise the modules installed (eg. plotly, websockets) in my code. What am i doing wrong? Thanks @ccordoba12

You have two options:

Use our Windows installer, which you can find here.

Create a new environment with conda-forge packages. For that, please close Spyder, open the Anaconda Prompt and run the following commands there:
 conda create -n spyder-cf -c conda-forge spyder
 conda activate spyder-cf
 spyder

Unfortunately, you need to reinstall all the modules you already have in both cases.

@ccordoba12 Thks for your help! I solve the problem by creating a new environment.


Search by keywords

I've given up. Will finish this by today since this is a MANDATORY PROJECT REQUIREMENT


Definition of an unrelated pydantic class causes code to stop failing

Initial Checks

[X] I have searched GitHub for a duplicate issue and I'm sure this is something new
[X] I have searched Google & StackOverflow for a solution and couldn't find anything
[X] I have read and followed the docs and still think this is a bug
[X] I am confident that the issue is with pydantic (not my code, or another library in the ecosystem like FastAPI or mypy)

Description
When upgrading from pydantic 1.9 to 1.10 see a failure because the parse_obj function fails to convert a nested object from a dict to a python object. However, this failure does NOT occur if there is a different class defined.
Looking at the release notes for 1.10.0, I suspect it is related to the dataclasses rewrite.
This is an example of code that works for 1.9 (and 2.0):
from typing import List
from dataclasses import dataclass
from pydantic import BaseModel

@dataclass
class Child:
    name: str

@dataclass
class Parent:
    children: List[Child]

class ShimParent(Parent):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        for child in self.children:
            assert len(child.name) > 0
            print(f"{child} has long enough name")

class Grandparent(BaseModel):
    parent: ShimParent

if __name__ == "__main__":
    payload = {"parent": { "children": [{"name": "child"}] } }
    gp = Grandparent.parse_obj(payload)
    print(gp)
    print("child name is " + gp.parent.children[0].name)

Here is an example of me installing various versions of pydantic and then executing the test file:
(venv) ➜  pydanticbug pip3 install pydantic==1.9 -q
(venv) ➜  pydanticbug python test.py
parent=_Pydantic_ShimParent_140546976972720(children=[_Pydantic_Child_140546976948272(name='child')])
child name is child
(venv) ➜  pydanticbug pip3 install pydantic==2.0 -q
(venv) ➜  pydanticbug python test.py
...REMOVED WARNING....
parent=ShimParent(children=[Child(name='child')])
child name is child
(venv) ➜  pydanticbug pip3 install pydantic==1.10 -q
(venv) ➜  pydanticbug python test.py
Traceback (most recent call last):
  File "/Users/andydodd/dev/pydanticbug/test.py", line 26, in <module>
    gp = (Grandparent.parse_obj(payload))
  File "pydantic/main.py", line 526, in pydantic.main.BaseModel.parse_obj
  File "pydantic/main.py", line 340, in pydantic.main.BaseModel.__init__
  File "pydantic/main.py", line 1076, in pydantic.main.validate_model
  File "pydantic/fields.py", line 884, in pydantic.fields.ModelField.validate
  File "pydantic/fields.py", line 1101, in pydantic.fields.ModelField._validate_singleton
  File "pydantic/fields.py", line 1148, in pydantic.fields.ModelField._apply_validators
  File "pydantic/class_validators.py", line 318, in pydantic.class_validators._generic_validator_basic.lambda13
  File "pydantic/dataclasses.py", line 337, in pydantic.dataclasses._validate_dataclass

  File "pydantic/dataclasses.py", line 344, in pydantic.dataclasses._validate_dataclass
    def _tuple_str(obj_name, fields):
  File "pydantic/dataclasses.py", line 297, in pydantic.dataclasses._add_pydantic_validation_attributes.new_init
    'frozen',
  File "pydantic/dataclasses.py", line 264, in pydantic.dataclasses._add_pydantic_validation_attributes.handle_extra_init
    f'default_factory={self.default_factory!r},'
  File "/Users/andydodd/dev/pydanticbug/test.py", line 18, in __init__
    assert len(child.name) > 0
AttributeError: 'dict' object has no attribute 'name'

However, this example defines the UnrelatedClass which is just defined, and it not used anywhere:
from typing import List
from dataclasses import dataclass
from pydantic import BaseModel

@dataclass
class Child:
    name: str

@dataclass
class Parent:
    children: List[Child]

class ShimParent(Parent):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        for child in self.children:
            assert len(child.name) > 0
            print(f"{child} has long enough name")

class Grandparent(BaseModel):
    parent: ShimParent

# If the class below here is defined, then the code works in Pydantic 1.10.
class UnrelatedClass(BaseModel):
    items: List[Parent]      # NB: This is NOT the ShimParent, it is the Parent type

if __name__ == "__main__":
    payload = {"parent": { "children": [{"name": "child"}] } }
    gp = Grandparent.parse_obj(payload)
    print(gp)
    print("child name is " + gp.parent.children[0].name)

The file now behaves as expected:
(venv) ➜  pydanticbug python test.py
Child(name='child') has long enough name
parent=ShimParent(children=[Child(name='child')])
child name is child

Questions:

I notice that the 1.10 version is the only version that triggers the print() that is inside the ShimParent.__init__ method.  Is this correct?
It seems that the conversion done by parse_obj depends on the UnrelatedClass being defined. Why? Is this definition updating the Parent dataclass somehow?

Example Code
See above
Python, Pydantic & OS Version
(venv) ➜  pydanticbug python -c "import pydantic.utils; print(pydantic.utils.version_info())"
             pydantic version: 1.10.0
            pydantic compiled: True
                 install path: /...REDACTED.../pydanticbug/venv/lib/python3.9/site-packages/pydantic
               python version: 3.9.6 (default, Aug 11 2023, 19:44:50)  [Clang 15.0.0 (clang-15<IP_ADDRESS>)]
                     platform: macOS-13.5.2-x86_64-i386-64bit
     optional deps. installed: ['typing-extensions']

Affected Components

[X] Compatibility between releases
[X] Data validation/parsing
[ ] Data serialization - .model_dump() and .model_dump_json()
[ ] JSON Schema
[X] Dataclasses
[ ] Model Config
[ ] Field Types - adding or changing a particular data type
[ ] Function validation decorator
[ ] Generic Models
[ ] Other Model behaviour - model_construct(), pickling, private attributes, ORM mode
[ ] Plugins and integration with other tools - mypy, FastAPI, python-devtools, Hypothesis, VS Code, PyCharm, etc.

Hi @andrewdodd,
Thanks for reporting this. This does seem like a bug in 1.10. We're prioritizing fixes for v2.5+ at this point, so this isn't a high priority issue.
That being said, it sounds like you've done some digging and found some promising leads as far as the source of the issue goes. Feel free to open a PR with a fix and we can add that to the next v1 patch release 👍, though a better recommendation would be to just use V2 as it's fixed there 😄.

Thanks @sydney-runkle ,
Sure, if I can find the time I'll see if I can cut a PR.
Do you have any hints as to where I should start looking? In particular, should I be figuring out what is happening in the parse_obj through to contructor path, and/or why defining a class seems to change the behaviour (or both)?
Additionally, any tips on how to get pdb to debug with the installed pydantic package? When I try to step into parse_obj I just see a few stops about string.__init__ and then the function returns...i.e. no stepping in at all.

@andrewdodd,
Good questions. Sounds like you looked into a potential source as the dataclasses rewrite - maybe best to start there. Otherwise, I think looking at why defining a class seems to change the behavior would be best.
We’re no longer actively developing Pydantic V1 (although it will continue to receive security fixes for the next year or so), so we’re closing issues solely related to V1. Feel free to continue working on this, but for now we're going to leave it as closed for organizational purposes.


test: Collect client test data from E2E tests (DSP-724)

resolves DSP-724

[x] Add ClientTestDataCollector class that E2E tests can use.
[x] Move client test data generation from routes and SharedTestDataADM into E2E tests:

[x] API v2 routes:

[x] ResourcesRouteV2 -> ResourcesRouteV2E2ESpec
[x] OntologiesRouteV2 -> OntologyV2R2RSpec
[x] ValuesRouteV2 -> ValuesRouteV2E2ESpec
[x] SearchRouteV2 -> SearchRouteV2R2RSpec
[x] ListsRouteV2 -> ListsRouteV2R2RSpec

[x] Admin routes:

[x] UsersRouteADM -> UsersADME2ESpec
[x] GroupsRouteADM -> GroupsADME2ESpec
[x] ProjectsRouteADM -> ProjectsADME2ESpec
[x] PermissionsRouteADM -> PermissionsADME2ESpec
[x] ListsRouteADM -> ListsADME2ESpec

[x] Change Makefile to do the following when running E2E tests:

[x] Start the Redis container defined in docker-compose.yml.
[x] Remove any client test data previously stored in Redis.
[x] Remove any previously downloaded Zip file containing client test data.
[x] After tests complete, download the client test data from Redis into a Zip file.
[x] Check the contents of the the downloaded Zip file.

[x] Move shared test data classes from main to test.
[x] Update docs.

When you add a separate Makefile target for the generation of the client-test-data, maybe it would also make sense to add an additional Github-CI job for this target?

When you add a separate Makefile target for the generation of the client-test-data

I thought of that, but the problem is as I wrote above: if Redis isn't running, the E2E tests will fail, because ClientTestDataCollector will throw an exception if it fails to connect to Redis. We would need some way of telling it not to try to connect to Redis if it isn't being run by that Makefile target.

I guess I could do it with an environment variable...

You could add a KnoraSetting, which could be configured through an environment variable. The default could be false, i.e., don't try to actually write to the cache. You could then test for it in the TestDataCollector implementation.

@benjamingeer if you need help, I could quickly add the environment variable part. Just let me now.

@benjamingeer @SepidehAlassi There is an e2e test, which responses should also be gathered: https://github.com/dasch-swiss/knora-api/blob/wip/DSP-724-client-test-data/webapi/src/test/scala/org/knora/webapi/e2e/HealthRouteE2ESpec.scala

Regarding the health route, @tobiasschweizer would like that the data goes into a system folder and not admin or v2.

There is an e2e test, which responses should also be gathered

Let's do that in a separate PR.

There is an e2e test, which responses should also be gathered

Let's do that in a separate PR.

Just wanted to suggest that. There is a new Youtrack story: https://dasch.myjetbrains.com/youtrack/issue/DSP-743

You could add a KnoraSetting, which could be configured through an environment variable. The default could be false, i.e., don't try to actually write to the cache. You could then test for it in the TestDataCollector implementation.

I implemented it in fd0d3cf, but it doesn't work: KnoraSettings never gets the value of the environment variable. Could you have a look?

You could add a KnoraSetting, which could be configured through an environment variable. The default could be false, i.e., don't try to actually write to the cache. You could then test for it in the TestDataCollector implementation.

I implemented it in fd0d3cf, but it doesn't work: KnoraSettings never gets the value of the environment variable. Could you have a look?

sure, will do after lunch

@benjamingeer the generation works now.

the generation works now.

Excellent, thank you! Could you give me a hint about how to do this:

To use the SharedTestDataADM object in it, you would need to add a dependency in the Bazel build file which points to the Bazel package under test.

To use the SharedTestDataADM object in it, you would need to add a dependency in the Bazel build file which points to the Bazel package under test.

OK I figured it out. I think that's everything you asked for.

@subotic Thanks for the review and the help!


Add new libuv based IO thread to RTS

This adds a new IO thread based on libuv. It doesn't really do anything besides existing but lays the foundation for using libuv in the RTS, env and modules. While we have yet to properly use it, I think this is correct, like linking is done as it should etc.
libuv header files are in dist/include. Previously we've had header files that are required at actonc run time in dist/builtin and dist/rts but I think it would be good to collect them in a single place so rather than create a uv specific directory, I added dist/include and endgame might be to move rts.h and builtin/*.h in there!?
libuv_.a is placed in dist/lib. We do not compile it differently for rel/dev profile (as of yet). It is linked in at actonc run time. I think this is the only way, for example; we could try to link io.o with libuv at compile time but as we would also need to link any module interacting with libuv with libuv, we would end up with duplicate symbols. Thus I think it's better we ship the libuv.a archive as part of the Acton system.
Part of #691

I've verified this is working by implementing DNS lookups in an acton module. I won't merge that code just yet since it's wrong; it runs synchronously and blocking which is the opposite of what we want. Nonetheless, it proves the libuv loop works as it should so it validates the code in this MR, thus I'll go ahead and merge this. There are some build issues currently, which I'm working to fix.


Limit of 20 accounts?

Hi,
whenever I want to add account 21 and do "set loginfile", the file of 20 gets overwritten. When I set it on 20 again, the 21 is overwritten. Whatever I do, I see 21 accounts in the list, but when I try to start 20 and 21, it always starts the last one I did set the login file to.
Please allow more than 20...
I also noticed before, that when I add a new account, another one often gets damaged, so I have to set the login file again.
When I manually want to add another account, it even deletes the 21st login.dat.

You can try adding the account to the accts.xml file located in your %appdata%\Gw2 LaunchBuddy folder
Depending on if you use a custom gfx file.. the following template should work.
    <ID>21</ID>
    <Nickname>Account 21</Nickname>
    <Settings>
      <AccountID>21</AccountID>
      <Arguments>
        <Argument>
          <Flag>-32</Flag>
          <IsActive>false</IsActive>
          <Description>Forces the game to run in 32 bit.</Description>
        </Argument>
        <Argument>
          <Flag>-bmp</Flag>
          <IsActive>true</IsActive>
          <Description>Forces the game to create lossless screenshots as .BMP files. Use for creating high-quality screenshots at the expense of much larger files.</Description>
        </Argument>
        <Argument>
          <Flag>-dx9single</Flag>
          <IsActive>false</IsActive>
          <Description>Enables the Direct3D 9c renderer in single-threaded mode. Improves performance in Wine with CSMT.</Description>
        </Argument>
        <Argument>
          <Flag>-forwardrenderer</Flag>
          <IsActive>false</IsActive>
          <Description>Uses Forward Rendering instead of Deferred Rendering (unfinished). This currently may lead to shadows and lighting to not appear as expected.It may increase the framerate and responsiveness when using AMD graphics card</Description>
        </Argument>
        <Argument>
          <Flag>-log</Flag>
          <IsActive>false</IsActive>
          <Description>Enables the creation of a log file, used mostly by Support. The path for the generated file usually is found in the APPDATA folder</Description>
        </Argument>
        <Argument>
          <Flag>-mce</Flag>
          <IsActive>false</IsActive>
          <Description>Start the client with Windows Media Center compatibility, switching the game to full screen and restarting Media Center (if available) after the client is closed.</Description>
        </Argument>
        <Argument>
          <Flag>-nomusic</Flag>
          <IsActive>false</IsActive>
          <Description>Disables music and background music.</Description>
        </Argument>
        <Argument>
          <Flag>-noui</Flag>
          <IsActive>false</IsActive>
          <Description>Disables the user interface. This does the same thing as pressing Ctrl+Shift+H in the game.</Description>
        </Argument>
        <Argument>
          <Flag>-nosound</Flag>
          <IsActive>false</IsActive>
          <Description>Disables audio system completely.</Description>
        </Argument>
        <Argument>
          <Flag>-prefreset</Flag>
          <IsActive>false</IsActive>
          <Description>Resets game settings.</Description>
        </Argument>
        <Argument>
          <Flag>-uispanallmonitors</Flag>
          <IsActive>false</IsActive>
          <Description>Spreads user interface across all monitors in a triple monitor setup.</Description>
        </Argument>
        <Argument>
          <Flag>-useOldFov</Flag>
          <IsActive>false</IsActive>
          <Description>Disables the widescreen field-of-view enhancements and restores the original field-of-view.</Description>
        </Argument>
        <Argument>
          <Flag>-windowed</Flag>
          <IsActive>false</IsActive>
          <Description>Forces Guild Wars 2 to run in windowed mode. In game, you can switch to windowed mode by pressing Alt + Enter or clicking the window icon in the upper right corner.</Description>
        </Argument>
        <Argument>
          <Flag>-umbra gpu</Flag>
          <IsActive>false</IsActive>
          <Description>Forces the use of umbra's GPU accelerated culling. In most cases, using this results in higher cpu usage and lower gpu usage decreasing the frame-rate.</Description>
        </Argument>
        <Argument>
          <Flag>-maploadinfo</Flag>
          <IsActive>true</IsActive>
          <Description>Shows diagnostic information during map loads, including load percentages and elapsed time.</Description>
        </Argument>
      </Arguments>```

ID and Account ID represent the .dat file  So in this case 21.dat  You can change `Account 21` to whatever you like.

I tried that, but the 21.dat gets deleted when I exit LaunchBuddy.

I tried that, but the 21.dat gets deleted when I exit LaunchBuddy.

Have you tried a previous version of LaunchBuddy to see if it still happens?

what version would you suggest?

Tested workflows:
Test1:

Created 21 accounts
Set  login data for account nr 19,20 and 21.
Clicked closed Launchbuddy.
Reopened it, all accounts are present. Loginfiles did not get mixed up or corrupted.

Test2:

Created 21 accounts
Set  login data for account nr 19,20 and 21.
Overwrite logindata for account nr 20.
Tried to launch account 20 --> success, loginfile was successfully overwritten

Test3:

Created 5 accounts
Relaunched Launchbuddy
Added 5 accounts
Reapeatet step 2 and 3 up until 50 accounts
All 50 accounts are present and saved accordingly.

As you can see I am having quite some trouble finding this described issue.
Would it be possible to post a workflow that can reproduce this issue?
If possible a small videoclip would be even better.

I guess I found out what I did wrong. I cloned one entry, changed the name and then I tried do set the login file. If I'm right, when cloning an account, both entries will reference the same login file.


Implement writer::AssertNormalized

Synopsis
Revealed from https://github.com/cucumber-rs/cucumber/issues/177#issuecomment-988606648
Solution
Implement writer::AssertNormalized
Checklist

Created PR:

[x] In draft mode
[x] Name contains Draft:  prefix
[x] Name contains issue reference
[x] Has assignee

[x] Documentation is updated (if required)
[x] Tests are updated (if required)
[x] Changes conform code style
[x] CHANGELOG entry is added (if required)
[ ] FCM (final commit message) is posted

[ ] and approved

[ ] Review is completed and changes are approved
Before merge:

[ ] Milestone is set
[ ] PR's name and description are correct and up-to-date
[ ] Draft:  prefix is removed
[ ] All temporary labels are removed

FCM
Implement `writer::AssertNormalized` (#182)


Azima: Asynchronous Programming , 3weeks

Learning Objectives
🥚 You understand the JavaScript Event Loop, and can demonstrate this by using setTimeout and setInterval to schedule simple tasks.
🥚 You can explain why Asynchronous Programming is important for programs that have blocking and non-blocking tasks.
🥚 You can explain the basics of the Client/Server model and HTTP requests and can fetch data from RESTful APIs.
🐣 You can break down an asynchronous problem into smaller tasks and solve it using promises. This includes identify which tasks depend on each other and which are independent:
dependent tasks: The return value from one task is required to start the next task, these must be completed in a specific order - .then
independent tasks: These tasks do not use each other's return values, they can be completed at the same time - Promise.allsystem.
🐣 You can fetch data from an API and render it into the DOM using /api-calls, /handlers and async/await syntax.
🐣 You can write unit tests for functions that return promises using async/await syntax.

my fork of module repository

Learning Objectives

Week 1

[ ] I have pushed my progress to my fork of exercises repo

I Need Help With:
mostly i am stuck with exercises from study lenses
What went well?
Just simple understanding what async and sync.js and difference between them, and understanding js promise.
What went less well?
exercises
Lessons Learned
promise, async await
Sunday Prep Work

Hi @AzimaKai, did you find any difficulties with the exercices?
I'm also available on Slack if you prefer.


Switch to canonical invocation of 'tail'.

'tail +2' does not work with the GNU version of tail, use 'tail -n +2', which does.
I'm not sure if there is some platform out there where this form does not work.

Thank you! Note: I wrote and tested this in GNU/Linux and my version of tail certainly appears to be GNU. What system did you test on?

This is Ubuntu 16.04. I don't recall installing any particular tail program.

$ tail --version
tail (GNU coreutils) 8.25

And example invocations

$ echo hello |tail +1
tail: cannot open '+1' for reading: No such file or directorỳ

$ echo hello |tail -n +1
hello

The build and tests did pass, actually, with the 'tail +2' syntax. It just printed the above error. I would probably not have even noticed it, but the issue #243 caused the build to stop at the same place.

I'm running Debian Stretch and I get:

tail (GNU coreutils) 8.26

I wonder if they changed the interface or whether Debian just uses different build options. Either way, it is more robust now. Thanks.


Implement GraphQLQueryBodyParameter and GraphQLQueryBody annotation

This pull request is to address issue #1523.
GraphQLQueryBodyParameter is implemented to parse request body, and match with GraphQLQueryBody annotation
GraphQLQuery annotation renamed to GraphQLQueryUrl, and GraphQLQueryParameter renamed to GraphQLQueryUrlParameter
The test is on progress.
next step is to refactor GraphQLProvider.processGraphQlRequest into GraphQLProvider.processGraphQlGetRequest and GraphQLProvider.processGraphQlPostRequest

tests have been added to GraphQLR4RawTest. also, processGraphQlRequest have been refactored into processGraphQlGetRequest and processGraphQlPostRequest.

hapi-fhir-docs/src/main/java/ca/uhn/hapi/fhir/docs/ServerOperations.java on operation $manualInputAndOutput raise Cross-site scripting error.

@ibrohimislam I'm not sure why it's notifying you about that, it's not related to your changes so for sure you can ignore it.
That's just a code snippet used for the documentation, I guess GitHub's new code scanner is pretty thorough!


gha: disable sccach

We're currently seeing an issue with some tests that use the trybuild
crate to run. When trybuild is compiled it looks at the CARGO env var
in order to determine which cargo binary to use during tests.
Unfortunately sccache isn't able to properly cache artifacts which
depend on environment variables at compile time, resulting in the cached
version of trybuild trying to use a nonexistent version of cargo. This
should be fixed once https://github.com/mozilla/sccache/issues/804 is
fixed.

/land

/land


vm.dumpState inconsistent ordering of accounts

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
forge 0.2.0 (ef62fdb 2024-07-12T00:19:17.932227488Z)
What command(s) is the bug in?
forge script
Operating System
Linux
Describe the bug
When using vm.dumpState, the order of the addresses in the produced json changes with subsequent executions.
Reproduction steps

forge init dumpState
Append the following function to test/Counter.t.sol:function multiple_counters() public {
    for (uint256 i; i <= 2; ++i) {
        counter = new Counter();
        counter.setNumber(i);
    }
    vm.dumpState(string.concat(vm.projectRoot(), "/dumpState.json"));
}

forge script ./test/Counter.t.sol:CounterTest --sig multiple_counters ; cat dumpState.json | jq .

Executing step 3 produces jsons containing the same information but in a different order:
{
  "0x2e234dae75c793f67a35089c9d99245e1c58470b": {
    "nonce": "0x1",
    "balance": "0x0",
    "code": "0x6080604052348015600f57600080fd5b5060043610603c5760003560e01c80633fb5c1cb1460415780638381f58a146053578063d09de08a14606d575b600080fd5b6051604c3660046083565b600055565b005b605b60005481565b60405190815260200160405180910390f35b6051600080549080607c83609b565b9190505550565b600060208284031215609457600080fd5b5035919050565b60006001820160ba57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220091e48831e9eee32d4571d6291233a4fdaaa34b7dced8770f36f5368be825c5264736f6c63430008190033",
    "storage": {
      "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000000"
    }
  },
  "0x5991a2df15a8f6a256d3ec51e99254cd3fb576a9": {
    "nonce": "0x1",
    "balance": "0x0",
    "code": "0x6080604052348015600f57600080fd5b5060043610603c5760003560e01c80633fb5c1cb1460415780638381f58a146053578063d09de08a14606d575b600080fd5b6051604c3660046083565b600055565b005b605b60005481565b60405190815260200160405180910390f35b6051600080549080607c83609b565b9190505550565b600060208284031215609457600080fd5b5035919050565b60006001820160ba57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220091e48831e9eee32d4571d6291233a4fdaaa34b7dced8770f36f5368be825c5264736f6c63430008190033",
    "storage": {
      "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000002"
    }
  },
  "0xf62849f9a0b5bf2913b396098f7c7019b51a820a": {
    "nonce": "0x1",
    "balance": "0x0",
    "code": "0x6080604052348015600f57600080fd5b5060043610603c5760003560e01c80633fb5c1cb1460415780638381f58a146053578063d09de08a14606d575b600080fd5b6051604c3660046083565b600055565b005b605b60005481565b60405190815260200160405180910390f35b6051600080549080607c83609b565b9190505550565b600060208284031215609457600080fd5b5035919050565b60006001820160ba57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220091e48831e9eee32d4571d6291233a4fdaaa34b7dced8770f36f5368be825c5264736f6c63430008190033",
    "storage": {
      "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001"
    }
  }
}

Rerunning step 3 produces:
{
  "0xf62849f9a0b5bf2913b396098f7c7019b51a820a": {
    "nonce": "0x1",
    "balance": "0x0",
    "code": "0x6080604052348015600f57600080fd5b5060043610603c5760003560e01c80633fb5c1cb1460415780638381f58a146053578063d09de08a14606d575b600080fd5b6051604c3660046083565b600055565b005b605b60005481565b60405190815260200160405180910390f35b6051600080549080607c83609b565b9190505550565b600060208284031215609457600080fd5b5035919050565b60006001820160ba57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220091e48831e9eee32d4571d6291233a4fdaaa34b7dced8770f36f5368be825c5264736f6c63430008190033",
    "storage": {
      "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001"
    }
  },
  "0x5991a2df15a8f6a256d3ec51e99254cd3fb576a9": {
    "nonce": "0x1",
    "balance": "0x0",
    "code": "0x6080604052348015600f57600080fd5b5060043610603c5760003560e01c80633fb5c1cb1460415780638381f58a146053578063d09de08a14606d575b600080fd5b6051604c3660046083565b600055565b005b605b60005481565b60405190815260200160405180910390f35b6051600080549080607c83609b565b9190505550565b600060208284031215609457600080fd5b5035919050565b60006001820160ba57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220091e48831e9eee32d4571d6291233a4fdaaa34b7dced8770f36f5368be825c5264736f6c63430008190033",
    "storage": {
      "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000002"
    }
  },
  "0x2e234dae75c793f67a35089c9d99245e1c58470b": {
    "nonce": "0x1",
    "balance": "0x0",
    "code": "0x6080604052348015600f57600080fd5b5060043610603c5760003560e01c80633fb5c1cb1460415780638381f58a146053578063d09de08a14606d575b600080fd5b6051604c3660046083565b600055565b005b605b60005481565b60405190815260200160405180910390f35b6051600080549080607c83609b565b9190505550565b600060208284031215609457600080fd5b5035919050565b60006001820160ba57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220091e48831e9eee32d4571d6291233a4fdaaa34b7dced8770f36f5368be825c5264736f6c63430008190033",
    "storage": {
      "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000000"
    }
  }
}

FYI, while now the order of the accounts is consistent across subsequent calls to vm.dumpState, it is still inconsistent regarding the order in which the contracts are deployed.
In the example above, we orderly deploy counter0, counter1, and counter2, setting counterN.number() to N. However, the order of the accounts in the produced JSON is counter0, counter2, counter1.
Is vm.dumpState meant to record the order in which contracts are deployed?
cc @DaniPopes @EdwardJES

This issue is about inconsistent output in between runs.
I don't know what the semantics of this are supposed to be, I don't think the order of a JSON map matters, but I also don't mind keeping it in the same order.
Please open another issue for tracking this


Add unique IDs to flowchart edges

I'd like to attach a onClick event handler to every edge to display context information. But (different from the nodes), the edge don't get a unique ID.
My suggestion for this ID is a concatenation of the node's IDs they connect.
Regards
Sebastian

I would also love to see this feature.

It looks like the lack of an ID on the edges is an issue with the dagre-d3 library that mermaid depends on, and isn't something the author of mermaid can do anything about (at least it doesn't seem so at first glance.) I have a very messy workaround that requires you to edit this library after running "yarn install" on a copy of the current repo. Just in case it helps you in your particular use case, I'm posting it here.
cd mermaid
yarn install
vim node_modules/dagre-d3-renderer/dist/dagre-d3.core.js (or use your other favorite text editor)
Then, in your editor:

search for the line "function createEdgePaths(selection, g, arrows) {"
Scroll through that function until you find the line "if (edge.id) {"
Right before that line, add the following extra line of code: "edge.id = _util2.default.edgeToId(e);"

Exit your editor.
cd back to mermaid
yarn build
copy the resulting mermaid.js to your webroot. Now, each edge will have an id that includes the ids of the start and end nodes. Very helpful.
I'm sure this is a terrible solution, but for now, I'm not sure what else to do. At least it works for me ;)

Alternatively, you can build mermaid, then edit the resulting mermaid.js afterward.

More digging, and I discovered the proper fix for this, and one that could easily be integrated into the mermaid library, where it belongs.
Edit src/diagrams/flowchart/flowRenderer.js and add this line just before the call to g.setEdge:
edgeData.id = edge.start + '_' + edge.end;
This change is trivial to make and will, I believe, help other people, so I'm going to open a separate issue with a proposed patch.

I've just posted a patch in #701. I hope the maintainers will consider adding it to Mermaid, as it's simple and I think it would help some people out :)

Just as a besides note:
Actually you can do the following in mermaid, resulting in 2 connectors being drawn from A to B:
A-->B
A-->B

This may not be a commonly used case, but it is valid and would definitely result in an ID conflict using:
edgeData.id = edge.start + '_' + edge.end;


[NodeJS SDK, LUIS] builtin.datetimeV2 doesn't work on EntityRecognizer.resolveTime

SDK Platform: Node.js
SDK Version: 3.8.4
Active Channels: Skype, MS Teams, Slack, Direct Line
Deployment Environment: ngrok, Azure App Service

Issue Description
builtin.datetime is deprecated for english so I have to use builtin.datetimeV2, and
EntityRecognizer.resolveTime is not working anymore.
Code Example
results.entities = [
    {
        entity: '6th of october',
        type: 'builtin.datetimeV2.date',
        startIndex: 24,
        endIndex: 37,
        resolution: {
            values: [
                { timex: 'XXXX-10-06', type: 'date', value: '2017-10-06' },
                { timex: 'XXXX-10-06', type: 'date', value: '2018-10-06' }
            ]
        }
    },
    {
        entity: 'entityA',
        type: 'entityA.company',
        startIndex: 16,
        endIndex: 19,
        score: 0.963010132
    }
]

let dateTwo = builder.EntityRecognizer.resolveTime(results.entities);

Expected Behavior
dateTwo = '2017-10-06'
Actual Results
dateTwo = undefined

Is there a target date to fix this?

There is not a deadline, thx

Can you please let us know if the issue still persists?

Thank you for opening an issue against the Bot Framework SDK v3. As part of the Bot Framework v4 release, we’ve moved all v3 work to a new repo located at https://github.com/microsoft/botbuilder-v3. We will continue to support and offer maintenance updates to v3 via this new repo.
From now on, https://github.com/microsoft/botbuilder repo will be used as hub, with pointers to all the different SDK languages, tools and samples repos.
As part of this restructuring, we are closing all tickets in this repo.
For defects or feature requests, please create a new issue in the new Bot Framework v3 repo found here:
https://github.com/microsoft/botbuilder-v3/issues
For Azure Bot Service Channel specific defects or feature requests (e.g. Facebook, Twilio, Teams, Slack, etc.), please create a new issue in the new Bot Framework Channel repo found here:
https://github.com/microsoft/botframework-services/issues
For product behavior, how-to, or general understanding questions, please use Stackoverflow.
https://stackoverflow.com/search?q=bot+framework
Thank you.
The Bot Framework Team


The :let-heredoc feature isn't supported

Using the example from help:
let var1 =<< END
Sample text 1
    Sample text 2
Sample text 3
END

let data =<< trim DATA
	1 2 3 4
	5 6 7 8
DATA

Possible output syntax tree
(let_statement
  (identifier)
  (heredoc
    (heredoc_endmarker)
    (heredoc_body)
    (heredoc_endmarker)))

(let_statement
  (identifier)
  (heredoc
    (heredoc_options)
    (heredoc_endmarker)
    (heredoc_body)
    (heredoc_endmarker)))

Or as an output of tree-sitter's playground:
let_statement [0, 0] - [4, 3]
  identifier [0, 4] - [0, 8]
  heredoc [0, 13] - [4, 3]
    heredoc_endmarker [0, 13] - [0, 16]
    heredoc_body [1, 0] - [3, 13]
    heredoc_endmarker [4, 0] - [4, 3]
let_statement [6, 0] - [9, 4]
  identifier [6, 4] - [6, 8]
  heredoc_options [6, 13] - [6, 17]
  heredoc_endmarker [6, 18] - [6, 22]
  heredoc_body [7, 0] - [8, 8]
  heredoc_endmarker [9, 0] - [9, 4]

Current output syntax tree
let_statement [0, 0] - [0, 3]
ERROR [0, 4] - [0, 16]
  identifier [0, 4] - [0, 8]
  keyword [0, 13] - [0, 16]
user_command [1, 0] - [1, 13]
  command_name [1, 0] - [1, 6]
  arguments [1, 7] - [1, 13]
    command_argument [1, 7] - [1, 11]
    command_argument [1, 12] - [1, 13]
user_command [2, 4] - [2, 17]
  command_name [2, 4] - [2, 10]
  arguments [2, 11] - [2, 17]
    command_argument [2, 11] - [2, 15]
    command_argument [2, 16] - [2, 17]
user_command [3, 0] - [3, 13]
  command_name [3, 0] - [3, 6]
  arguments [3, 7] - [3, 13]
    command_argument [3, 7] - [3, 11]
    command_argument [3, 12] - [3, 13]
user_command [4, 0] - [4, 3]
  command_name [4, 0] - [4, 3]
let_statement [6, 0] - [6, 3]
ERROR [6, 4] - [8, 8]
  identifier [6, 4] - [6, 8]
  keyword [6, 13] - [6, 17]
  keyword [6, 18] - [6, 22]
user_command [9, 0] - [9, 4]
  command_name [9, 0] - [9, 4]

Similar to this, :lua-heredoc isn't supported either.
lua << EOF
...
EOF

By inspecting the source code, it seems there is some code written to handle heredocs for :lua, :ruby, :python, and :perl (here).  However, that code is never called.

By inspecting the source code, it seems there is some code written to handle heredocs for :lua, :ruby, :python, and :perl (here). However, that code is never called.

Looking at the code (an knowing it :wink:) this is actuall called here.
There is issues with this part of the code though, and that makes problems (https://github.com/vigoux/tree-sitter-viml/issues/80), so errors about this should be reported into that other issue (which should, then, be reopened)


Update Android SDK to 6+

Google recently adds new subscription api and it's useful for multiple base plans.
Please update SDK as RevenueCat gives this api in newer versions.
Now when I've added new products and checked "SDK Support in Offering Setup" in Android app settings to v6+, I have an error: "Backend Code: 7728 - This SDK version is not supported for this app.".

Hello that will come with capacitor 5

hey @zhaivoronok this is on old, RevenueCat SDK for 6+ need many changes, so they will do the PR when it's ready

will be great to get this one in!^

This is really crucial! Otherwise I'm worried I'll have to migrate away from using RevenueCat really soon, which would make me sad since it so easy to use :(
Is anyone looking at merging the linked PR?

Hey folks, we're on it! We're working on a new version of the SDK that migrates to latest native SDKs. We will also enable release trains for it so it will get automatic updates to the latest iOS and Android SDKs weekly. We should have it ready in the next couple of weeks. Stay tuned!

Hi everyone! We finally released the first beta of the plugin after revenuecat took over, version 6.0.0-beta.1. This update points to the latest changes in the iOS and Android SDKs. There are some migration docs here: https://github.com/RevenueCat/purchases-capacitor/blob/main/migrations/v6-MIGRATION.md.
Please try it out and let us know if you have any issues or feedback!

I'm tentatively closing out this issue since we're officially stable now! 🎉


How to use the edge agent

Question:
I have used the latest portainer, How to use the edge agent?
I have run the edge agent on my edge host, now how can i join my edge host as a endpoint?
Where should I put the "Join Token"

Standby, just posting user guides, will reply with a link shortly.
From: nevenchen<EMAIL_ADDRESS>Sent: Friday, 26 July 2019 5:48 PM
To: portainer/portainer<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Subject: [portainer/portainer] How to use the edge agent (#3047)
Question:
I have used the latest portainer, How to use the edge agent?
I have run the edge agent on my edge host, now how can i join my edge host as a endpoint?
Where should I put the "Join Token"
[image]https://urldefense.proofpoint.com/v2/url?u=https-3A__user-2Dimages.githubusercontent.com_3069043_61928617-2D9aa0ab00-2Dafab-2D11e9-2D867e-2Dd2b1ea86a6be.png&d=DwMCaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=0fx0h4vB56iTLpw2McH1ZD6TqG_QGpbggVOB-PfMJpM&m=e2HTvDEO0IJhNU3TXCs6V_rnxi6hNsxCbD13k77Bexk&s=652yjVmhPKD69r9bgJuAi6Tgs0dy2WYfXhldP78byBo&e=
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_portainer_portainer_issues_3047-3Femail-5Fsource-3Dnotifications-26email-5Ftoken-3DAFQ2XFIS3KCAWRO727CVUCDQBKFYHA5CNFSM4IHAVFFKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HBUIZSA&d=DwMCaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=0fx0h4vB56iTLpw2McH1ZD6TqG_QGpbggVOB-PfMJpM&m=e2HTvDEO0IJhNU3TXCs6V_rnxi6hNsxCbD13k77Bexk&s=FgQE0EIQHtwFXNgk2OjFQ9xiqGKJDrdH72BV93zzUvI&e=, or mute the threadhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AFQ2XFPBCAC6GTZEYDUN4LLQBKFYHANCNFSM4IHAVFFA&d=DwMCaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=0fx0h4vB56iTLpw2McH1ZD6TqG_QGpbggVOB-PfMJpM&m=e2HTvDEO0IJhNU3TXCs6V_rnxi6hNsxCbD13k77Bexk&s=4TZ7u1CEPieVVm1z6Cka3zKtsFAT52jiz8c7JOQ2AyY&e=.

Here you go.. https://downloads.portainer.io/edge_agent_guide.pdf user guides (first pass, so please advise if any errors/omissions).

Ok, thanks, I will. :)

seems something wrong.
I run portainer as this:
sudo docker run -d \ --name=portainer \ --publish=9000:9000 \ --publish=8000:8000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer
Then, I run the edge agent as this:
![image](https://user-images.githubusercontent.com/3069043/61949359-3c8cbb80-afdd-11e9-9a6f-c886ebe03cf3.png)
I was able to input my "Join token" and the page says OK.
But, there is no change pappens to my endpoint:
![image](https://user-images.githubusercontent.com/3069043/61949470-955c5400-afdd-11e9-818d-4b14a04452a4.png)
I check the logs form the agent container, it gives the error as bellow:
![image](https://user-images.githubusercontent.com/3069043/61949581-e5d3b180-afdd-11e9-9435-6fbee95b88c6.png)
I think there is two things not normal.
first we have not export the port 8080 on the portainer server yet .
Second, as it saids on the page, the tcp should use the port 8000.
![image](https://user-images.githubusercontent.com/3069043/61949792-8a55f380-afde-11e9-8f24-713f42d202fc.png)
But the agent seems try to use 8080.
Can you give some help? @ncresswell  :)

Is your portainer instance behind a reverse proxy?
When you created the endpoint, the portainer url the agent will try to connect to is shown, is that the correct name and port?
Rgds,
Neil Cresswell
On 26/07/2019, at 11:51 PM, nevenchen <notifications<EMAIL_ADDRESS>wrote:
seems something wrong.
I run portainer as this:
sudo docker run -d \ --name=portainer \ --publish=9000:9000 \ --publish=8000:8000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer
Then, I run the edge agent as this:

I was able to input my "Join token" and the page says OK.
But, there is no change pappens to my endpoint:

I check the logs form the agent container, it gives the error as bellow:

I think there is two things not normal.
first we have not export the port 8080 on the portainer server yet .
Second, as it saids on the page, the tcp should use the port 8000.

But the agent seems try to use 8080.
Can you give some help? @ncresswellhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_ncresswell&d=DwMCaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=0fx0h4vB56iTLpw2McH1ZD6TqG_QGpbggVOB-PfMJpM&m=lqGWea7KC58DyZfKUNxAt0-laxOpg4WpZ3xu6oKSll8&s=c_QPebDrqp2skfH7Rc-Fe-KGnyAwhHofilbL5nbgVxQ&e= :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_portainer_portainer_issues_3047-3Femail-5Fsource-3Dnotifications-26email-5Ftoken-3DAFQ2XFMZOJGOODRKWZCAZLTQBLQMNA5CNFSM4IHAVFFKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD24LPLY-23issuecomment-2D515422127&d=DwMCaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=0fx0h4vB56iTLpw2McH1ZD6TqG_QGpbggVOB-PfMJpM&m=lqGWea7KC58DyZfKUNxAt0-laxOpg4WpZ3xu6oKSll8&s=VgwresGd_ciI0VTEfOB5ivVIElEliTGQY3OeGWD2lv4&e=, or mute the threadhttps://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AFQ2XFIBY5KLUG4BQ3N3Q5DQBLQMNANCNFSM4IHAVFFA&d=DwMCaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=0fx0h4vB56iTLpw2McH1ZD6TqG_QGpbggVOB-PfMJpM&m=lqGWea7KC58DyZfKUNxAt0-laxOpg4WpZ3xu6oKSll8&s=6ae7XP4OyLHVGgExqIKLevBbvoUXrzqZmvdNWZ5Q5ZE&e=.

my endpoint is a virtual linux sys up by vagrant, there is no reverse proxy

@ncresswell
Sorry it's my fault. The error happens as I start the portainer server container without exporse the port 8000 before you give the pdf, document.
After clean all container(server and agent), volume and redo again as the document. everything is ok now.

How did you add the token on the edge client side?
Doc says ":8000" and insert token but I just get a "Not found" response from Portainer.

@Sveeeeeen that would be "edge-ip:80"

@Sveeeeeen that would be "edge-ip:80"
Portainer is not listening on port 80? Did I miss something?

@Sveeeeeen you need to access the IP of the machine hosting the Edge agent to enter the key, hence the edge-ip:80 and not portainer-ip:80.
Portainer is using the port 8000 for Edge communications.

You can also check our Edge agent user guide available here: https://downloads.portainer.io/edge_agent_guide.pdf

I know the guide. But in the guide its port 8000. You're telling me right now its port 80.
On both ports nothing is listening. What should be running on that port? The Edge Agent container?
No ports are exposed by it.

@Sveeeeeen Ah yes sorry, there is a mistake in our user guide, we will fix it.
Basically you can run the Edge agent in two differents ways:

you pass the EDGE_KEY environment variable when you start the Edge agent (this is the deployment command recommended inside the Portainer UI when you created an endpoint)

you do not use the EDGE_KEY environment variable when you start the Edge agent and you expose port 80 to provide the key later on (this is known as pre-staging)

so it all depends on how you deployed the Edge agent and if you specified the EDGE_KEY environment variable.

The edge agent guide is out of date now that I changed the default behaviour in #3117, I am going to update it now.
@Sveeeeeen if you copied the command shown in the UI in Portainer 1.23.0 or newer, you would have had the EDGE_KEY variable in your command already meaning the agent would have automatically paired and shut down the web server on edge-ip:80.
Navigate to the home view and click on the edge endpoint, you should see it paired.

In copied the command shown in the UI. I think everything is clear now. I gonna try it when I am back home.
One last question: Can I force the Edge Agent to use a specific IP address to access Portainer at port 8000? Or even use ipv6?
My main ipv4 is unfortunately not accessible from the internet but I got s additional public ipv4 which supports NAT.

the edge agent connects to Portainer using a URL, so whatever IP DNS resolves that to is what the agent will attempt to connect to.

Hi everyone,
I have the same issue, when i add an edge agent.

i run the cmd in the remote docker, and it's stay 'not associated'
for information, the master is on RPi4, and the remote is on RPi3.

@Kawabountou have a look at the logs of the agent, it will give you more details about its state.
You can also start the agent with DEBUG enabled (update the deployment command with -e LOG_LEVEL=debug).

this is the log of the agent :
2020/05/12 13:50:33 [INFO] [main,edge] [message: Edge key loaded from options]
2020/05/12 13:50:33 [INFO] [http] [server_addr: <IP_ADDRESS>] [server_port: 9001] [secured: false] [api_version: 1.5.1] [message: Starting Agent API server]
2020/05/12 13:50:38 [ERROR] [edge,http,poll] [message: an error occured during short poll] [error: short poll request failed]

@Kawabountou that's basically saying that the agent can't reach your Portainer instance. Enable the debug logs for more details.

Are you sure port 8000:8000 is exposed on your Portainer instance?

The Edge agent polls on the regular HTTP port.

@ncresswell yes, the port 8000 is exposed
@deviantony sorry for my bad question, but how enable the debug mode, and where is shoud use it? on the worker, or the master?

@Kawabountou debug mode can be enabled when deploying the Portainer agent, you need to add -e LOG_LEVEL=debug (or the equivalent in a stackfile) to the agent deployment command.

@Kawabountou I was having the same issue, I changed the "Portainer server URL" in my endpoint configuration to the IP address of the instance of Portainer that I am setting up the endpoint on and it works.

Hi everyone. Had the same issue, and didn't want to use IP address in "Portainer Server URL" as my IP address can change (even if @indymx solves my issue, because it's temporary).
Found that this can be a DNS problem inside the docker container, and so I set up my portainer-edge-agent with --dns <IP_ADDRESS> and this solved my issue.
Hope it helps ;)


v2: SplitInfo has no field named filepathTemplate and DatasetInfo has no field named releaseNotes

Many datasets are throwing these 2 errors in particular. (over 200 tasks in Flan alone) I'll give 2 examples:
seqio.get_mixture_or_task("ag_news_subset_template_0to10_x_shot").get_dataset(sequence_length={"inputs": 512, "targets": 512})
Error:
Failed to parse splits field: Message type "tensorflow_datasets.SplitInfo" has no field named "filepathTemplate".
Available Fields(except extensions): ['name', 'numShards', 'shardLengths', 'numBytes', 'statistics'].

seqio.get_mixture_or_task("cnn_dailymail_template_0to10_no_opt_x_shot").get_dataset(sequence_length={"inputs": 512, "targets": 512})
Error:
Message type "tensorflow_datasets.DatasetInfo" has no field named "releaseNotes".
 Available Fields(except extensions): ['name', 'description', 'version', 'configName', 'configDescription', 'citation', 'sizeInBytes', 'downloadSize', 'location', 'downloadChecksums', 'schema', 'splits', 'supervisedKeys', 'redistributionInfo', 'moduleName', 'disableShuffling', 'fileFormat']

I think these problems are solved by updating to the most recent version of tfds-nightly, the default version I got from pip wasn't updated.

@TheExGenesis Could you confirm this specific issue was fixed? (If so we will close this issue.)


landscape mode

Expected Behavior
How to open this picker in landscape mode
Actual Behavior
Steps to Reproduce the Problem

Specifications

Image Picker Version:
Android OS:
Phone:

@daniyalsalim94 i don't think we have orientation lock, so you just have to set the device orientation to landscape.
In fact, we support landscape mode quite well


linting and formatting notebooks

Most of our documentation is written using Jupyter; but we're not applying flake8/black on them; which slows down PRs since style errors are not automatically captured and requires us to do manual formatting.
nbQA allows running flake and black on notebooks (ipynb, md, etc), so we should ensure we run it as part of the CI:
nbqa flake8 .

Note that JupySQL notebooks might yield to "variable undefined" when using the variable << feature.
We should also document this in the contributing guidelines and add it to the pkgmt pre-commit hook.

we ignore certain flake8 rules in notebooks, we can apply notebook-only config to flake8 like this


wipe all traces of "has unit" etc

thanks for you help debugging @sujaypatil96
@pkalita-lbl I am tempted to merge this and make a 10.0.1 release, but you had written a slack message suggesting that we refrain from doing that kind of thing before the next scheduled nmdc ecosystem release.
This PR removes has unit and some other slots whose names begin with 'has' and a whitespace. They were never used anywhere.

In addition to removing unused, old-style elements from the schema, this PR also improves the expereince of searching for "has unit" or "has_unt" in the online docs.


MSTest V2 tests won't run when targeting net5.0-windows10.0.19041

Description
Tests will not run when targeting net5.0-windows10.0.19041 with MSTest version greater than 2.2.3.
Steps to reproduce

Create MSTest project targeting net5.0-windows10.0.19041.
Attempt to run tests
Change MSTest version to 2.2.3
Clean solution and run tests again

Expected behavior
Tests should run in the test explorer
Actual behavior
All tests are skipped. VS Test log incorrectly reports .dll does not exist.
VS Test Log Output:
[MSTest][Discovery][WinUI3-Demo\WinUI3-UnitTests\bin\Debug\net5.0-windows10.0.19041\WinUI3-UnitTests.dll] Failed to discover tests from assembly WinUI3-Demo\WinUI3-UnitTests\bin\Debug\net5.0-windows10.0.19041\WinUI3-UnitTests.dll. Reason:File does not exist: WinUI3-Demo\WinUI3-UnitTests\bin\Debug\net5.0-windows10.0.19041\WinUI3-UnitTests.dll

MSTest log:
pTrace Information: 0 : 4580, 4, 2021/10/01, 16:05:24.725,<PHONE_NUMBER>9384, testhost.x86.dll, AssemblyResolver.OnResolve: Resolved assembly: Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices, from path: \WinUI3-Demo\WinUI3-UnitTests\bin\Debug\net5.0-windows10.0.19041\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll
TpTrace Information: 0 : 4580, 4, 2021/10/01, 16:05:24.725,<PHONE_NUMBER>2103, testhost.x86.dll, MSTestExecutor.RunTests: Running tests from sources.
TpTrace Information: 0 : 4580, 4, 2021/10/01, 16:05:24.728,<PHONE_NUMBER>4421, testhost.x86.dll, CollectSourceInformation value Found : False
TpTrace Error: 0 : 4580, 4, 2021/10/01, 16:05:24.773,<PHONE_NUMBER>0636, testhost.x86.dll, Exception of type 'System.InvalidOperationException' was thrown.

Environment
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
<PackageReference Include="MSTest.TestAdapter" Version="2.2.5" />
<PackageReference Include="MSTest.TestFramework" Version="2.2.5" />

AB#1415159

I'm seeing the same problem.

Duplicate of #982 ?

I posted #851  half a year ago. Just tested it with v2.2.8 and .NET 6, but it still doesn't work. The root cause could be the same?

Quoting @Scott1js's reply in https://github.com/microsoft/CsWinRT/issues/1047 for reference:

There's no reason MSTest cannot execute unpackaged C#/WinRT projection code. This is a regression in MSTest, which was introduced with the WinUI support. That support is triggered via a specific test method attribute, UITestMethod. But independently, the test project's TFM also determines the test adapter to copy from the nuget. E.g., a value of net5.0-windows10.0.19041 copies the PlatformServices.WinUI adapter from "%NUGET_PACKAGES%\mstest.testadapter\2.2.5\build\net5.0-windows10.0.18362.0\Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.dll". The problem is that the WinUI test adapter assumes packaged execution in calls [like this]:https://github.com/microsoft/testfx/blob/19acefa11712c387774784a79dafcf7b3dbee64c/src/Adapter/PlatformServices.WinUI/Services/WinUIFileOperations.cs#L109
        public string GetFullFilePath(string assemblyFileName)
        {
            return (SafeInvoke<string>(() => Path.Combine(Windows.ApplicationModel.Package.Current.InstalledLocation.Path, assemblyFileName)) as string) ?? assemblyFileName;
        }

The test code here is not using WinUI, so it could just rely on the PlatformService.Desktop adapter code, but the TFM behavior above doesn't support that. You can back off to an earlier version of MSTest (I verified that 2.23 works) and you could also enter a bug in the MSTest repo to support unpackaged: https://github.com/microsoft/testfx

@Haplois can we get some traction on this?

Honestly I'd prefer the back out that WinUI Support, and make support for packaged apps a different separate test adapter you reference. The UITestMethod attribute that was added is pretty much useless anyway, as it doesn't suppor task tasks, but is easily worked around by using the existing test method and dispatching to the current window. (WinUIEx does this and uses a code generator to help you avoid having to write that extra code each time, although a simple helper will do the trick for you)

We are also running into the same issue where a basic net5 based unittest project is working fine when not pinning to a specific Windows Sdk version, but fails to execute at all when a specific Windows Sdk is used (e.g. 10.0.19041) .
Downgrading to 2.2.3 also fixed this specific issue.

I'm seeing the same problem with .net6-windows10.0.19041.0

The same problem with .net 6 also. I would like to test some C++/winrt components wrapped with a C#/winrt project... I hope this will be solved because I have no way to test those components !

@Haplois is there anything we can do to help get this fixed in a next version?

I am currently working on fixing this. Our next preview (probably on next friday) will include a fix. I'll update this thread with PR once it is ready.


Validation of package products should check that a library product doesn't try to include executable targets

Currently a library product that includes an executable target in its targets array only results in a warning.  This was the best that could be done before executableTarget was introduced, since further checking was needed to see if a target was a library or executable target.  Since we have explicit types now, we should promote this to an error since people are running into it and it's not clear what the problem is.
This check is limited to tools version 5.7 or later.  This change includes a new test fixture and unit test.
rdar://95782540

@swift-ci please smoke test

Added the target names to this new message.  We can go back and add to the existing messages in a separate PR.


driverskeleton: fix broken link

Codecov Report

Merging #347 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #347   +/-   ##
=======================================
  Coverage   72.97%   72.97%
=======================================
  Files         102      102
  Lines        9436     9436
=======================================
  Hits         6886     6886
  Misses       2380     2380
  Partials      170      170

Impacted Files
Coverage Δ

experimental/driverskeleton/driverskeleton.go
100% <ø> (ø)
:arrow_up:

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 e3b244d...74e1fc4. Read the comment docs.

Thanks!


Failing file name in debugging output

Including the file name in the stack trace output would greatly improve usability

 flutter pub run build_runner build -vvv
[INFO] Generating build script...
[INFO] Generating build script completed, took 267ms

[INFO] BuildDefinition:Initializing inputs
[INFO] BuildDefinition:Reading cached asset graph...
[INFO] BuildDefinition:Reading cached asset graph completed, took 94ms

[INFO] BuildDefinition:Checking for updates since last build...
[INFO] BuildDefinition:Checking for updates since last build completed, took 837ms

[INFO] Build:Running build...
[INFO] Build:Running build completed, took 27ms

[INFO] Build:Caching finalized dependency graph...
[INFO] Build:Caching finalized dependency graph completed, took 53ms

[SEVERE] artemis:artemis on lib/$lib$ (cached):

NoSuchMethodError: The getter 'selections' was called on null.
Receiver: null
Tried calling: selections
dart:core                                                               Object.noSuchMethod
package:artemis/generator.dart 435:28                                   _extractClasses.<fn>
dart:collection                                                         SetMixin.forEach
package:artemis/generator.dart 423:23                                   _extractClasses
package:artemis/generator.dart 99:19                                    generateQuery
package:artemis/generator.dart 21:21                                    generateLibrary.<fn>
dart:_internal                                                          ListIterable.toList
package:artemis/generator.dart 22:8                                     generateLibrary
package:artemis/builder.dart 75:29                                      GraphQLQueryBuilder.build
package:build                                                           runBuilder
package:build_runner_core/src/generate/build_impl.dart 478:19           _SingleBuild._runForInput.<fn>.<fn>.<fn>
package:build_runner_core/src/generate/performance_tracker.dart 300:15  _NoOpBuilderActionTracker.trackStage
package:build_runner_core/src/generate/build_impl.dart 476:23           _SingleBuild._runForInput.<fn>.<fn>
package:timing/src/timing.dart 222:44                                   NoOpTimeTracker.track
package:build_runner_core/src/generate/build_impl.dart 434:22           _SingleBuild._runForInput.<fn>
package:pool/pool.dart 127:28                                           Pool.withResource
package:build_runner_core/src/generate/build_impl.dart 430:17           _SingleBuild._runForInput
package:build_runner_core/src/generate/build_impl.dart 378:38           _SingleBuild._runBuilder.<fn>
dart:async                                                              Future.wait
package:build_runner_core/src/generate/build_impl.dart 377:36           _SingleBuild._runBuilder
package:build_runner_core/src/generate/build_impl.dart 323:20           _SingleBuild._runPhases.<fn>.<fn>
package:build_runner_core/src/generate/performance_tracker.dart 184:15  _NoOpBuildPerformanceTracker.trackBuildPhase
package:build_runner_core/src/generate/build_impl.dart 319:47           _SingleBuild._runPhases.<fn>
package:timing/src/timing.dart 222:44                                   NoOpTimeTracker.track
package:build_runner_core/src/generate/build_impl.dart 313:32           _SingleBuild._runPhases
package:build_runner_core/src/logging/logging.dart 25:30                logTimedAsync
package:build_runner_core/src/generate/build_impl.dart 270:26           _SingleBuild._safeBuild.<fn>
dart:async                                                              runZoned
package:build_runner_core/src/generate/build_impl.dart 265:5            _SingleBuild._safeBuild
package:build_runner_core/src/generate/build_impl.dart 212:24           _SingleBuild.run
package:build_runner_core/src/generate/build_impl.dart 97:56            BuildImpl.run
package:build_runner_core/src/generate/build_runner.dart 25:14          BuildRunner.run
package:build_runner                                                    BuildCommand.run
package:args/command_runner.dart 197:27                                 CommandRunner.runCommand
package:args/command_runner.dart 112:25                                 CommandRunner.run.<fn>
dart:async                                                              new Future.sync
package:args/command_runner.dart 112:14                                 CommandRunner.run
package:build_runner                                                    run
.dart_tool/build/entrypoint/build.dart 31:22                            main

[SEVERE] Build:
Failed after 145ms
pub finished with exit code 1

I have a similar issue since artemis 4 or 5... in 3.1 everything was working fine, but in version 5.0.1 i get this error:

Log output
```
[INFO] Generating build script...
[INFO] Generating build script completed, took 437ms
[INFO] Creating build script snapshot......
[INFO] Creating build script snapshot... completed, took 13.2s
[INFO] Initializing inputs
[INFO] Building new asset graph...
[INFO] Building new asset graph completed, took 828ms
[INFO] Checking for unexpected pre-existing outputs....
[INFO] Checking for unexpected pre-existing outputs. completed, took 1ms
[INFO] Running build...
[SEVERE] artemis:artemis on lib/$lib$:
NoSuchMethodError: The getter 'operationTypes' was called on null.
Receiver: null
Tried calling: operationTypes
[INFO] Generating SDK summary...
[INFO] 3.9s elapsed, 1/17 actions completed.
[INFO] Generating SDK summary completed, took 3.7s
[INFO] 4.9s elapsed, 1/17 actions completed.
[INFO] 5.9s elapsed, 2/18 actions completed.
[INFO] 6.9s elapsed, 2/18 actions completed.
[INFO] 8.7s elapsed, 2/18 actions completed.
[INFO] 9.8s elapsed, 2/18 actions completed.
[INFO] 10.9s elapsed, 2/18 actions completed.
[INFO] 12.0s elapsed, 9/24 actions completed.
[INFO] 13.2s elapsed, 11/25 actions completed.
[INFO] 15.0s elapsed, 13/28 actions completed.
[INFO] 16.1s elapsed, 17/32 actions completed.
[INFO] Running build completed, took 17.0s
[INFO] Caching finalized dependency graph...
[INFO] Caching finalized dependency graph completed, took 86ms
[SEVERE] Failed after 17.1s
pub finished with exit code 1
</details>

<details>
<summary>SDL Schema</summary>

type BaseSchoolEntity {
id: String!
name: String!
city: String!
theme: SchoolTheme!
authRequired: Boolean!
}
type DocumentDataEntity {
type: DocumentDataType!
data: String!
 SickReportEntity!
}
type PdfDataEntity {
pdf: String!
}
type Query {
school: SchoolEntity
schools: [BaseSchoolEntity!]
moduleDataSubst(moduleId: String!): [SubstitutionPlanEntity!]
moduleDataExams(moduleId: String!): [ExamEntryEntity!]
moduleDataDocuments(moduleId: String!): [DocumentEntity!]
moduleDataDocumentsData(id: String!, moduleId: String!): DocumentDataEntity!
pdfData(moduleId: String!): PdfDataEntity!
}
type SchoolEntity {
id: String!
name: String!
city: String!
theme: SchoolTheme!
authRequired: Boolean!
website: String!
image: String!
hidden: Boolean!
codeOfConduct: [String!]!
features: [SchoolFeatureEntity!]!
modules: [SchoolModuleEntity!]!
substData: [[SubstitutionPlanEntity!]!]!
}
type SchoolFeatureEntity {
type: SchoolInformationFeatureType!
}
School information feature type
enum SchoolInformationFeatureType {
SICK_REPORT
}
School module category
enum SchoolModuleCategory {
SUBST
EXAMS
CAFETERIA
NEWS
DOCUMENTS
OTHER
}
type SchoolModuleEntity {
dataType: SchoolModuleType!
id: String!
category: SchoolModuleCategory!
suffix: String!
}
School module type
enum SchoolModuleType {
SUBST
EXAMS
NEWS
CAFETERIA
PDF
DOCUMENTS
}
School theme
enum SchoolTheme {
RED
PINK
PURPLE
DEEP_PURPLE
INDIGO
BLUE
LIGHT_BLUE
CYAN
TEAL
GREEN
LIGHT_GREEN
AMBER
ORANGE
DEEP_ORANGE
BROWN
GREY
BLUE_GREY
}
input sickReport {
name: String!
sClass: String!
message: String!
attested: Boolean!
duration: sickReportDuration!
specialEvent: String!
}
input sickReportDuration {
start: String!
end: String!
}
type SickReportDurationEntity {
start: String!
end: String!
}
type SickReportEntity {
name: String!
sClass: String!
message: String!
attested: Boolean!
duration: SickReportDurationEntity!
specialEvent: String!
 It's missing the schema definition, which defines the query root object: http://spec.graphql.org/June2018/#sec-Root-Operation-Types

@comigor Having the same issue using https://github.com/Urigo/graphql-cli to download the schema first, if you download as .graphql it does not include the root schema definition.

Uhh, I get, reading the docs again, there's a default name for those root types (Query, Mutation and Subscription) if the schema definition is omitted. I'll fix this!

@comigor @lazylazyllama  Using the graphql-codegen cli @ https://graphql-code-generator.com/ instead and with the following plugin and config it seems to work and does include the root schema with includeDirectives: true.
codegen.yml
schema: http://localhost:5003
generates:
  schema.g.graphql:
    plugins:
      - schema-ast
    config:
      includeDirectives: true

Oh, sorry for auto-closing this, but please reopen if the issue persists.


python3Packages.ytmusicapi: 0.14.3 -> 0.15.0

Motivation for this change
Things done

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

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

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

Result of nixpkgs-review pr 117613 at 47f7045a run on x86_64-linux 1

2 packages built successfully:

python38Packages.ytmusicapi
python39Packages.ytmusicapi


tutorial: Copy editing in sections 8 and 9

This can probably be merged safely :) @nikswamy, is one person in particular responsible for the tutorial?

I've merged this but removing the part that got Clément (and I) confused. Apologies for the delay, this is a helpful patch.


Reduce size of cache keys

This can be done by reducing the amount of characters used from the hasFile expression function.

Reduced compile cache keys by reducing the hash string to 8 characters.


Add an app delete command

syntax: argocd-autopilot app delete <app_name> --project <project_name>
Will delete the overlay folder. If there are no more overlays for this app, will delete the whole app folder (including the base)

Do we want to add a flag (--global?) that immediately deletes the entire app folder (and causes it to be deleted from all projects)?

SGTM


Please add support for replacing header with pattern matching

now modify headers function only works as setting fixed header value
thanks for providing excellent exension

@MonwF Thanks for opening a ticket. Can you please give me an example ?
Maybe I can help you unblock on this particular feature.

Imagine a redirect response after logining with openID,  I need to change the host of location.
However, openID 's callback location is preset，and the Set-Cookie header is always present.
Location: https://foo.online.com/callback => http://my.dev.com/callback
my.dev.com resolves to my  lan ip ( every developer has a different domain )

@xionjie
As far as I understand your issue, you want to change the host header.
Is it possible to use Redirect Rule which says something like this:
Source Url contains https://foo.online.com/callback
Destination https://my.dev.com/callback
I know above is definitely not the right answer but I want to understand
more about your use case. Thanks!

I used this solution before and it works.
sorry for my bad English
Usually it redirects to an online service after openID login, but i want it redirects to my development env.
What's more, the csp header  mostly includes hosts and paths which should be replaced with pattern matching


Implement linear interploation handler for drive systems

Implement linear interploation (exponentional moving average) to smooth out changes in speed.
Refer to SetWheelSpeed() within rover_drive_system.hpp

std::lerp might be a solution but this would require cmath which might be too cumbersome

I'm not sure why including  would be cumbersome. It would be far less cumbersome then you implementing std::lerp yourself. Lets not reinvent the wheel when we don't need to.
But just using lerp won't solve the problem. You need to lerp at several time intervals to produce what looks like acceleration.

Noted. I was thinking that maybe cmath would be too large of a package for the microcontrollers. Do you think that using a fixed delay between lerps would be good solution? i.e.
lerp(current_speed, target_speed, 0.25f);
sjsu::delay(500ms);
lerp(current_speed, target_speed, .50f);
sjsu::delay(500ms);
... --> .75f --> 1.0f

Or what would you suggest as a better time interval?

With lerp you set a fixed value for alpha. You don't change it. Also you don't want to have multiple delays in your code as that will mean that, for 500ms you are not processing anything. It would look something more like this:
auto new_speed = std::lerp(previous_speed, target_speed, 0.5f);
SetMotorSpeed(new_speed);

Now you may ask where the delay comes from? Well you have a delay between each call t mission control. In your single threaded code (and in multi-threaded code as well) you want to ensure that there is just a singular delay that controls how fast things operate. BUT! You may notice that if we wait 100ms per lerp step that would probably be super long, so we may need to speed the main loop sample rate something like this:
int loop_counter = 0;
for (int loop_counter = 0; ;loop_counter++)
{
  if((loop_counter % 10) == 0)
  {
     GetMissionControlData();
  }

  OperateDriveSystems();
  sjsu::Delay(10ms);
}

By changing the delay to 10ms we can lerp the motor speed 100 times a second, creating smoother control of the speed. But we don't want to get data from mission control that fast. We only need it every 100ms, so we can use a loop counter and check if it is divisible by 10. Everytime the counter counts up to 10, the modulus is zero and we can get our latest data that way.
This is usually how you would handle single threaded systems. One single loop and a bunch of systems that check if its their turn to operate. All of them must ensure that none of them delay, otherwise the timing would be off.
Going 1 step even further, to ensure that the delay time is ALWAYS 100ms, there are a number of options. The issue with using sjsu::Delay() is that the sample rate will always be greater than 100ms if we did it this way. Getting data from mission control, doing calculations like lerp and commanding the motors takes time. Lets say 50ms on average. Thus an additional delay of 100ms will result in a sample rate of 150ms. To fix this, rather than delay for 100ms, you can record the previous uptime count, calculate when the next sample rate time should be and run when the uptime() function is at or above that number.
For example lets say we call Uptime() and we get 1025ms. Add 100ms to that and we get 1125ms. The code before the delay takes 50ms so now uptime is 1075ms. We need to delay/loop for another 50ms before we can run our code again. So that is what we do.
while (1)
{
  auto next_same_time = Uptime() + 100ms;

  // Do all of the work you'd normally do at this stage

  while (Uptime() < next_sample_time)
  {
      continue;
   }
}

But there is a way that requires less math that you can do using the sjsu::TimeoutTimer class
while (1)
{
   sjsu::TimeoutTimer timeout_timer(100ms);
   // Do stuff ...

   // If doing stuff took 75ms, then timeout_timer.TimeLeft() will report 25ms
   sjsu::Delay(timeout_timer.TimeLeft());
}

sjsu::TimeoutTimer gets what the current time is on construction of the object. And each call to TimeLeft() will give you the time between construction the timeout time and the current time.

NGL though, this may all be moot if we can set the acceleration of the RMD-X motors (their PID P value) and it not cause them to be unstable. The P value can be considered the smoothing or acceleration term. Setting it badly could result in a unstable system that oscillates. But this may not be the case and the motor could potentially do some smart stuff to prevent that. If we can control the P value and it still retains its original behavior, strength and stability, then we can let the motors lerp themselves internally.
But if they cannot, then we must lerp them ourselves.

There is an acceleration parameter, but...

This states that it doesn't actually work and that we need to hit the PI parameters. Which, if set badly could cause the motors to perform badly. But it should be dangerous to the motor though.

Closing this since there is a newer issue #171 that is more current. This is referenced in that issue so this info is documented


Add Exec struct for easier manipulation of exec instances

What did you implement:
This PR adds possibility for a user of this crate to manipulate Exec instances through newly added Exec struct. Main motivation was to be able to check the exit_code of a given exec after its completion or to check its status while it's still running (inspect it).
Any suggestions on how to handle it better, or to change naming are welcome.
Closes: #219
How did you verify your change:
Briefly tested locally on one or two instances.
What (if anything) would need to be called out in the CHANGELOG for the next release:
A new Exec struct was introduced that allows dynamically creating exec instances, manipulating them and inspecting their status.

I was also thinking of adding a wrapper struct Exec as its handled with other api endpoints if that would be something worth looking into.

So I went ahead and added Exec as a struct and I think this solution is much cleaner than my initial attempt of passing a mutable string to a function to get an ID back.
I've played around a little bit locally and did not notice any problems so far. Both examples worked in runtime.


in patients list - allow user with admin role to create account

allow user with admin role in patients list to have access to create account button

@achen2401 Thanks for the explanations!


Add wiki please

Here is suggestion for this wiki...
South African ID verification demo

No maintenance further... Closing Issue now.


worktop/cache POST requests

https://developers.cloudflare.com/workers/examples/cache-post-request
worktop already sets Cache-Control to private, no-cache so a good solution may be to apply POST caching when this header gets modified.
Main use case for this is to cache GraphQL queries

I've tried my hand at implementing this in worktop/cache but running into some issues hashing the request body since I consume it in a handler.

There will be a req.cachekey (name tbd) that allows you to customize the Cache's keyname to be used.
Until then, all the Cache methods already support custom keys w/ their final request?: string|Request parameter. A string is treated as a GET request.
So you may want to do something like:
import { Router } from 'worktop';
import * as Cache from 'worktop/cache';

const API = new Router;
// ...

addEventListener('fetch', event => {
  let request = event.request;

  if (request.method !== 'POST') {
    return Cache.reply(API.run)(event);
  }

  let clone = request.clone();
  let key = toBodyHash(clone); // string

  // basically the same as Cache.reply, but w/ custom request
  event.respondWith(
    Cache.lookup(event, key).then(prev => {
      return prev || handler(event).then(res => {
        return save(event, res, key);
      });
    })
  );
});

Looking at this, Cache.reply should probably take an optional request? parameter.

With the changes, and the next release, the above example can be consolidated into this:
import { Router } from 'worktop';
import * as Cache from 'worktop/cache';

const API = new Router;
// ...

// reusable function
const main = Cache.reply(API.run);

addEventListener('fetch', event => {
  let request = event.request;

  if (request.method !== 'POST') {
    return main(event);
  }

  let clone = request.clone();
  let key = toBodyHash(clone); // string

  // use new `key` for cache lookup
  return main(event, key);
});

@lukeed When the next release will be on npm?

I suppose it can be today 🙇 I was gunna get JWT stuff in, but I didn't have any time last week or over the weekend.
I'll merge in #54 and cut a new minor version later today

@dhrubabasu released 0.7.0 btw~!

With the latest changes in worktop@next, this snippet (https://github.com/lukeed/worktop/issues/53#issuecomment-840825730) changes a little bit.
Now Cache.reply returns a Module.Worker definition (object), and there's no method that does the lookup -> save sequence for you, but it's pretty straightforward & it's more configurable now too:
import { Router } from 'worktop';
import * as Cache from 'worktop/cache';

const API = new Router;
// ...

const worker = Cache.reply(API.run);

export default {
  fetch(req, env, ctx) {
    let key = req.method === 'POST'
      ? new Request(toBodyHash(clone))
      : req;

    return worker.fetch(key, env, ctx);
  }
}