As a Project Coordinator, I want to the optional tasks in the list to be initially hidden, so that I am not overwhelmed by the amount of forms

Description:
Brief description of the work involved, including any user research context or key decisions.
Acceptance Criteria:
Given
When
Then
Development Checklist:

[ ] Checklist item
[ ] Checklist item
[ ] Checklist item
[ ] Meets the DOD

Notes:

Maybe this requires a bit of UX design: how do we hide those tasks? What is the interaction to show/hide them? And do they need to be hidden depending on how many there are, or can we achieve the same result (user not overwhelmed) with some clever symbology?

Oh there is a design, it's just that triangle to the right of the project details heading. I just hadn't had the chance to add it to the issue. I do have some questions for @suhafa though:

do we rotate it when it's collapsed? 90 degrees or 180 degrees?
do we expand/collapse when clicking the entire list item (heading + icon)?

@matthieu-foucault @pbastia

When the list is collapsed, the icon (the caret/triangle in this case) would be pointing upwards. When opened, it would rotate 180 degrees.
Having the heading + icon to be clickable is a great idea, would increase surface area for user to click - making it easier. (referenced https://www.nngroup.com/articles/accordion-icons/ to ensure this is a good idea)

Another point or a good-to-consider (perhaps a question for development): Let us assume a project is in its infancy, would it make sense for only relevant items from the task list to be open by default? For the rest of the items that would be irrelevant at that time (say Milestone Reporting), could we have it collapsed and greyed out? (although the user can click on it and navigate if need be to give them additional flexibility) Perhaps this ties in with our questions about the approval process and roping it in the UX/UI - as the different stages get approval, more items would appear open and/or only relevant items would be open. Another instance that comes to mind is if there is a need for approval, we could have items that need reviewing open by default so that the team can directly navigate to the task that needs their attention. Just a note, we could explore this with a task of its own.

@suhafa I think the initial goal was to leave things as open as possible, to get towards a usable system as early as we can, so maybe we don't have to worry about approval process and project stage quite yet.
I'm wondering how to handle the "resume creation" when some of the optional forms have been started? Do we hide the ones that haven't been started yet? How does the UI make it clear that there are some hidden forms and some shown? Or do we simply just show all the available forms in that case?

Good point. I think that if any of the forms has a status other than Not Started, then the section should be expanded by default

Hey team! Please add your planning poker estimate with ZenHub @BCerki @dleard @gurjmatharu @pbastia @Sepehr-Sobhani


Web index resize

Temporarily have something for users who try to access web on mobile. We will discuss this on Monday meeting.

@Tebza17 Yah boi you have to explain what's up with this PR in the meeting..


analyzer: Add support for the Conda package manager

Implement support for the Python package manager Conda [1].
Code that this implementation shares with the existing Pip
implementation is moved to a PythonSupport class.
[1] https://docs.conda.io/en/latest/
Co-authored-by: Martin Nonnenmacher<EMAIL_ADDRESS>Signed-off-by: Bryan K. Woods<EMAIL_ADDRESS>

Marking PR as 'on hold' as python-inspector project is planning to add Conda support so it might be wise to wait for them then for ORT to implement and support this feature ourselves.

Marking PR as 'on hold' as python-inspector project is planning to add Conda support

There's the reference: https://github.com/nexB/python-inspector/issues/104

Marking PR as 'on hold' as python-inspector project is planning to add Conda support

Here's the reference more explicitly: nexB/python-inspector#104

Closing this in favor of a future implementation in python-inspector.


Use one version code for all apks

We can move away from having separate version code for each build type now that we're publishing app bundle
This change should also help resolve issues with AGP 8.1 upgrade

Lgtm. One possibly tricky thing is that we either need to do a release with this cherry-picked onto a branch from the previous non-kotlin 1.9 update or do them all at once. What do you think?

I think I'd prefer the latter cause it's easier 😅 I've been testing locally the upgrade with this change and it should work 🤞

Kk I'll take care of it


AVPro + Vimeo SDK doesn't work on my iPad 4

The video path is not being set by Vimeo SDK on the AVPro Video MediaPlayer component
The issue is explained well here:
https://github.com/RenderHeads/UnityPlugin-AVProVideo/issues/413
Unity version is 2018.2.14f1
AVPro version 1.11.3
Vimeo SDK version 0.9.5
Operating system Windows but I build for iOS by Unity Cloud

Hi,
another question: how Can I force video url by code in Vimeo Player? Because I get Vimeo video url by a Json and not directly by Vimeo Component.
Thanks

Hi,
another question: how Can I force video url by code in Vimeo Player? Because I get Vimeo video url by a Json and not directly by Vimeo Component.
Thanks

Hey did you manage to get them to work on webGL? I could get sound using AVpro but no video.

Hey did you manage to get them to work on webGL? I could get sound using AVpro but no video.

No, I'm sorry but I needn't to develop for webGL so I haven't tried it


Add listeners for @BeforeTest/@AfterTest and @BeforeClass/@AfterClass

There are methods @BeforeTest/@AfterTest, but there are no corresponding listeners.
I have planned to create and dispose a context for all methods in the specific test of the suite using such listener depending on parameters declared in the test.
The listener should have an access to XmlTest and it should be executed in the same thread, if the corresponding test methods are not run in the parallel.

In fact, ITestListener already exists for @Before/AfterTest usage.


Attempt to correct document math display error.

Docs Build status updates of commit 62230d4:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/libraries/chemistry/concepts/second-quantization.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

This is an improvement but doesn't fix the whole section.

I suspect that "=" on a separate line makes the lines above be treated as a header, but I haven't verified it.

Docs Build status updates of commit ef79d7d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/libraries/chemistry/concepts/second-quantization.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


swagger2csclient specify additional using directives (or fully qualified dto class name)?

Is it possible with swagger2csclient to specify additional using directives?
I don't want the DTO's generated for me, I already have a project with those. However, I'm trying to figure out how to either A) tell swagger2csclient to namespace (fully qualify) those dto's correctly inline or b) add a using directive automatically so it can resolve the dto class names.
Is any of that possible?
My command line (build even in VS) for reference:
$(NSwagExe) swagger2csclient /input:swagger-public.json /classname:FooClient /namespace:Foo /GenerateDtoTypes:false /output:$(ProjectDir)FooClientGen.cs

You can use the AdditionalNamespaceUsages setting for that

@rsuter Thank you very much.
For anyone else that needs to use this from the command line, this worked for me:
$(NSwagExe) swagger2csclient /input:swagger-public.json /classname:FooClient /namespace:Foo /GenerateDtoTypes:false /AdditionalNamespaceUsages:Foo.DTO /output:$(ProjectDir)FooClientGen.cs


LuaLock not working on a cluster

I have implemented this simple code:
@pytest.fixture
async def redis_client() -> redis.RedisCluster:
    return RedisCluster(host=host, port=port, decode_responses=decode_responses)

async def test_lock(redis_client):
    from coredis.recipes.locks import LuaLock
    async with LuaLock(redis_client, 'OUR-SEQUENCE-KEY'):
        current_value = await redis_client.get('OUR-SEQUENCE-KEY')
        next_value = int(current_value) + 1
        await redis_client.set('OUR-SEQUENCE-KEY', next_value)

but I am getting the following error:
test_session.py::test_session_can_save_a_product_with_images FAILED      [100%]
tests/integration/test_session.py:11 (test_session_can_save_a_product_with_images)
Traceback (most recent call last):
  File "/home/joan/apps/product-images/tests/integration/test_session.py", line 18, in test_session_can_save_a_product_with_images
    async with LuaLock(redis_client, 'OUR-SEQUENCE-KEY'):
  File "/home/joan/virtualenvs/product-images/lib/python3.10/site-packages/coredis/recipes/locks/lua_lock.py", line 128, in __aenter__
    if await self.acquire():
  File "/home/joan/virtualenvs/product-images/lib/python3.10/site-packages/coredis/recipes/locks/lua_lock.py", line 159, in acquire
    if await self.__acquire(token, stop_trying_at):
  File "/home/joan/virtualenvs/product-images/lib/python3.10/site-packages/coredis/recipes/locks/lua_lock.py", line 216, in __acquire
    return await self.client.set(
  File "/home/joan/virtualenvs/product-images/lib/python3.10/site-packages/coredis/commands/_validators.py", line 90, in wrapped
    return await func(*args, **kwargs)
  File "/home/joan/virtualenvs/product-images/lib/python3.10/site-packages/coredis/commands/_wrappers.py", line 196, in wrapped
    async with command_cache(callable, *args, **kwargs) as response:
  File "/home/joan/.pyenv/versions/3.10.5/lib/python3.10/contextlib.py", line 199, in __aenter__
    return await anext(self.gen)
  File "/home/joan/virtualenvs/product-images/lib/python3.10/site-packages/coredis/commands/_wrappers.py", line 90, in __call__
    yield await func(*args, **kwargs)
  File "/home/joan/virtualenvs/product-images/lib/python3.10/site-packages/coredis/commands/core.py", line 638, in set
    return await self.execute_command(
  File "/home/joan/virtualenvs/product-images/lib/python3.10/site-packages/coredis/_utils.py", line 167, in inner
    return await func(*args, **kwargs)
  File "/home/joan/virtualenvs/product-images/lib/python3.10/site-packages/coredis/client/cluster.py", line 696, in execute_command
    node = self.connection_pool.get_node_by_slot(slot, command)
  File "/home/joan/virtualenvs/product-images/lib/python3.10/site-packages/coredis/pool/cluster.py", line 418, in get_node_by_slot
    return self.get_primary_node_by_slot(slot)
  File "/home/joan/virtualenvs/product-images/lib/python3.10/site-packages/coredis/pool/cluster.py", line 397, in get_primary_node_by_slot
    return self.nodes.slots[slot][0]
KeyError: 5195

I am using this as a Redis Cluster Image

This actually seems like the cluster isn't completely initialized at the time test_lock runs.
I was able to run a variant of your example:
async def test():
    from coredis.recipes.locks import LuaLock
    redis_client = coredis.RedisCluster('localhost', 7000)
    async with LuaLock(redis_client, 'OUR-SEQUENCE-KEY'):
        current_value = await redis_client.get('OUR-SEQUENCE-KEY-2')
        next_value = int(current_value or 0) + 1
        await redis_client.set('OUR-SEQUENCE-KEY-2', next_value)

How are you starting up redis-cluster before running pytest?
As an example in coredis' tests - the redis_cluster fixture isn't provided to the test until the cluster is stable (reference)

I think you are right. Cause SET command doesn't work either. Taking a look at it. Thanks

I think you are right. Cause SET command doesn't work either. Taking a look at it. Thanks
closing the issue


Consider new control-plane label

Checklist

[x] Update changelog in CHANGELOG.md.

Couldn't test it.


Landing Page Added

Issue number: #170
Title
Landing Page for the website

Proposed Changes
Instead of just showing the same boring " the website is coming up ", I have made a simple, beautiful and responsive landing page.

Check List (Check all the applicable boxes)

[ ] Bug(s) fixed
[x] Enhancement done
[x] New Feature(s) added
[ ] Documentation changed
[ ] All new and existing tests passed.
[x] My code follows the code style of this project.

Screenshots (if any)
Before:

After:

@thekavikumar ser made the changes and linked it to the issue number.

@thekavikumar

@thekavikumar are we not merging this ? or is there any issue with it ?


Possibility to have one-off execution of commands

Hey Abiola,
first: awesome library! Really-really enjoying it. The amount of functionality I get from just including it is staggering. Autocomplete, shell history, password masking, process bars, multiline input, paged output...  So useful. Especially in devops context. Thank you for this package!
What I was thinking: how hard would it be to also allow non-interactive use? Just parsing args, executing that one single command and then exit? It would be very useful in scripted environments, like CI and such.
What are your thoughts on this?
Best,
Roman

Thanks for your kind words :)
Can you explain a bit more about how that is expected to work and the usecases.
If I get you right, instead of getting into interactive mode, just execute the command and exit.

I think I get you now. Basically ishell without the interactiveness.
That sure can be done. I'm just thinking there are better libraries out there doing this already. e.g. spf13/cobra.
But I like the idea of toggling interactive and non-interactive mode with same code base.

Yes, targeting different use cases with the same code base. I understand that this would be probably not that trivial - if we would add proper flag parsing and such... But we could start with the low hanging fruit: same command as in the interactive mode, just non-interactively executed. That alone would help a lot. All other bells & whistles might be non required. Just to keep the surface of this feature as small as possible.
If you think I could help somehow, just ask me. Glad to be lend a hand on this :)

This is a start https://godoc.org/github.com/abiosoft/ishell#Shell.Process.
e.g. shell.Process(os.Args[1:])

I think it's safe to close this as the feature has been added.
Processing flags e.t.c are extra features and this thread can still be used for that discussion.

😻  @abiosoft It's awesome, thank you! This is exactly what I wanted!  I will make a pull request with a Readme update later.


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_e76d_a7jlr/clone/recipe/meta.yaml:14: pip_install_args: pip install should be run with --no-deps.
ERROR: /tmp/abs_e76d_a7jlr/clone/recipe/meta.yaml:20: missing_wheel: For pypi packages, wheel should be present in the host section
ERROR: /tmp/abs_e76d_a7jlr/clone/recipe/meta.yaml:28: has_imports_and_run_test_py: Imports and python test file cannot coexist.
ERROR: /tmp/abs_e76d_a7jlr/clone/recipe/meta.yaml:32: missing_pip_check: For pypi packages, pip check should be present in the test commands
WARNING: /tmp/abs_e76d_a7jlr/clone/recipe/meta.yaml:45: documentation_overspecified: Using doc_url and doc_source_url is overspecified
Errors were found


Add 2.x.latest 3.latest upgrade coverage

@knifewine and/or @ptnapoleon to review code-wise. @pcmanus, can you confirm that this is the coverage you mentioned you wanted yesterday?

Yep, looks good, thanks.

+1

Thanks, all. Merging.


Laptop Lid Closed, Single Exterior Monitor activated using W +P. Unable to proceed after selection in Editor.

Microsoft PowerToys version
v.O.47.1
Running as admin

[X] Yes

Area(s) with issue?
FancyZones Editor
Steps to reproduce
Here (below) I have selected the 3-Column format.  (Hidden behind the ‘phantom’ 3-columns I have some screens open).  It is the next move that perplexes.
Through failure I have found it is NOT a) Press ENTER to get at the 3 columns b) click on the single Monitor at the top c) click on create new layout (for I have already made the selection and don’t want a custom version d) clicking away from the Editor, clicking on a column.
Where now was my Query, essentially ...?
✔ Expected Behavior
To be able to move on and apply items to Fancy Zones template chosen in Editor. i.e. Editor closes leaving Shift + Mouse selection of items to apply to (say) a 3-Column choice.
❌ Actual Behavior
Forced to close (x) Editor, which removed it and the 3 phantom columns chosen and enforced a return to PowerToys Fancy Zones (i.e. as displayed when PowerToys opens) with FancyZones chosen.  My apologies for any lack of clarity.
Other Software
No response

does this issue still happen with v0.73.0? /needinfo

Hi Joseph
My Winver is 22H2.22621.2283, which I keep updated as often as I can.
The problem has persisted for so long – related to W11, not specifically Power Toys – that I now work with the Lid half-open, as this is the only way to force image to the external monitor when I ‘set’ Windows + P to keep the Laptop screen blank/OFF.  I simply gave up trying to find out why I cannot close the lid fully and have an image on my Iiyama external screen only.

One advantage (though I don’t wish to impose this just for that reason) is that the recent high Summer ambient temperatures meant that with the lid-half open the laptop runs cooler.  (I did have one a few years ago, where with the lid shut (W10) the finger plate started to lift off, to my dismay.  Fortunately, the device was due for an upgrade, but this added to my preference to keep the lid half-open with my current one.
Despite this tale, I do want this ‘fault’ to be corrected, but haven’t had any feedback from MS, when posted.
Kind regards
Gerald Thorburn
From: Joseph Finney @.>
Sent: Saturday, September 16, 2023 7:43 PM
To: microsoft/PowerToys @.>
Cc: Flaxhigh @.>; Author @.>
Subject: Re: [microsoft/PowerToys] Laptop Lid Closed, Single Exterior Monitor activated using W +P. Unable to proceed after selection in Editor. (#13836)
does this issue still happen with v0.73.0? /needinfo
—
Reply to this email directly, view it on GitHub https://github.com/microsoft/PowerToys/issues/13836#issuecomment-1722291141 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AWBPTUUMY4L2B6NJA3KWHKTX2XXLLANCNFSM5GAMJ3UA .
You are receiving this because you authored the thread.  https://github.com/notifications/beacon/AWBPTUQ7XTEQPUU3H5TEXNTX2XXLLA5CNFSM5GAMJ3UKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOM2UBHRI.gif Message ID: @.*** @.***> >

Since this is a Windows issue I'm going to close this.


Add support for multiple external specifiers

This PR implements multiple external specifiers by:

Using our current method for a single external specifier to calculate an initial clade, rather than a single pinning node.
Intersecting that clade with the clade formed from each subsequent external specifier. This will always result in a clade smaller than or equal to the initial clade.

Note that this method returns the set of all nodes included in the clade, not just the pinning node.
In progress: Still needs to be thoroughly tested, and we need to decide whether to the other kinds of phyloreferences and the Curation Tool should also return the entire clade instead of just the pinning node.
WIP

This code was written to work with model 1.0 ontologies, but model 2.0 ontologies don't need anything special to work with multiple specifiers correctly. Closing.


NPE fixes - issue #155

I've experienced this issue when some Maven plugin (I don't remember which one) added non existing classpath entries, typically the default directory src/main/resources even if the directory does not exist.

@vojtechsoban closing this, welcome to resubmit


test

Jira issue:
https://glia.atlassian.net/browse/MOB-xxx
What was solved?
Release notes:

[ ] Feature
[ ] Ignore
[ ] Release notes (Is it clear from the description here?)
[ ] Migration guide (If changes are needed for integrator already using the SDK - what needs to be communicated? Add underneath please)

Additional info:

[ ] Is the feature sufficiently tested? All tests fixed? Necessary unit, acceptance, snapshots added? Check that at least new public classes & methods are covered with unit tests
[ ] Did you add logging beneficial for troubleshooting of customer issues?
[ ] Did you add new logging? We would like the logging between platforms to be similar. Refer to Logging from Android SDKs → Things to consider for newly added logs in Confluence for more information.

Screenshots:

Can this be removed now?


Refactor event saving and searching

No more symlinks to try and speed searching. Just get a directory's contents and check the filename, which will contain metadata about the event.
#no-changelog because it's parter of a larger change

How are you measuring performance?

Right now, I'm not. The whole library is async and I'm currently more concerned with robustness than performance.


"Invalid regular expression" and a CRASH on huge text search

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.60.0
OS Version: Win10

Steps to Reproduce:

Go to here, select all text and copy to clipboard
Open VSCode, create new document, paste, go to top
Ctrl+F and paste (bug 1 - text is not found)
Press escape to close search
Ctrl+F, observe the error on the screenshot below

This issue can also cause a crash. I believe that it's not deterministic and depends on the size of the stack or something like this, but I'm able to reproduce it with 1.59.1 32-bit (VSCode-win32-ia32-1.59.1). I tried a couple of other versions and they don't crash, but I believe that's accidental, not because the issue is fixed.


Test all lesson submissions in production and review necessary content

[ ] Error 1: I couldn't connect to Discord

[ ] Error 2: When sharing on Twitter, the copy is in Portuguese and has the word 'undefined' at the end.

[ ] Error 3: When sharing on Linkedin, there is no suggested or predetermined copy.

[ ] Error 4: When you click on the 'copy link' button and paste it elsewhere, you get the word: undefined

[ ] Error 6: The 'Add to calendar' option appears twice

[ ] Error 7: The event that appears in google calendar has an undefined title. Note: In production it is ok.

Error 8: In production, when I click on the first add to calendar option, a document with an .ics extension is downloaded.

[ ] Error 9: The Twitter icon is no longer this one, but X

[ ] Error 10: Clicking on the linkedin link at the bottom of the page sends the user to another organization: https://www.linkedin.com/company/web3dev/

The correct link is https://www.linkedin.com/company/w3d-community/

[ ] Error 11: Update the word WEB3DEV in the sentence below the footer with the following link: https://www.w3d.community/

currently: https://links.w3d.community/links

[ ] Suggestion - Add the following missing links to the footer: Instagram, Twitch, Solidity Guide, Homepage, Spanish article portal and Google community calendar. As well as fixing the icons according to the issue

Bug on white theme


Buildkite plugin to export EJSON secrets as environment variables

Exports secrets stored in an ejson file (default .buildkite/secrets.ejson) with ejson2env. This approach makes it easier for developers to add/change build secrets, see what secrets already exist. Secret changes would go through the PRs in this scenario, but they can't be changed outside the codebase like they can be currently.

@orien yep it sure does! I'll do that tomorrow.
The main issue I have right now is that secrets are exported after the repository's pre-command hook runs. Ideally it would export secrets before then, but I'm not sure if it's possible with the hooks currently available. We need to access the repo so the environment hook won't work.

Looks like there's post-checkout hook we could use.
https://buildkite.com/docs/agent/v3/hooks#available-hooks

@orien that works! Thanks :)

👍


work to be more docker ready

you've helped me code this.

I merged in the three commits with the port changes and left the others since they dealt with the docker build. For some reason, github doesn't show the commits I merged in this view. I think this approach won't conflict with your local changes. Let me know if you find otherwise.
Closing this as the relevant bits have been merged.


[Question] Create new release for vllm compatibility

Required prerequisites

[X] I have read the documentation https://nvitop.readthedocs.io.
[X] I have searched the Issue Tracker that this hasn't already been reported. (comment there if it has.)
[ ] I have tried the latest version of nvitop in a new isolated virtual environment.

Questions
Because of conflicting dependency issues with the latest nvitop release (1.3.1), you cannot install the latest vllm in the same virtualenv with nvitop:
$ pip3 install vllm==0.6.4 nvitop
ERROR: Cannot install nvitop==0.10.0, nvitop==0.10.1, nvitop==0.10.2, nvitop==0.11.0, nvitop==0.9.0, nvitop==1.0.0, nvitop==1.1.1, nvitop==1.1.2, nvitop==1.2.0, nvitop==1.3.0, nvitop==1.3.1, nvitop==1.3.2 and vllm==0.6.4 because these package versions have conflicting dependencies.

The conflict is caused by:
    vllm 0.6.4 depends on nvidia-ml-py>=12.560.30
    nvitop 1.3.2 depends on nvidia-ml-py<12.536.0a0 and >=11.450.51
    vllm 0.6.4 depends on nvidia-ml-py>=12.560.30
    nvitop 1.3.1 depends on nvidia-ml-py<12.536.0a0 and >=11.450.51
    vllm 0.6.4 depends on nvidia-ml-py>=12.560.30
    nvitop 1.3.0 depends on nvidia-ml-py<12.536.0a0 and >=11.450.51
    vllm 0.6.4 depends on nvidia-ml-py>=12.560.30
...

This is fixed @ HEAD so it would be great if there was a new pypi release with this version bump fix!

Thanks for raising this. I will create a version bump for this.

you cannot install the latest vllm in the same virtualenv with nvitop

Also, I'd suggest to install nvitop using pipx or uvx instead of install it in your virtual environment:
pipx run nvitop
# or
uvx nvitop

You can add alias in your shell rc:
alias nvitop='pipx run nvitop'
# or
alias nvitop='uvx nvitop'

A new release is made.

thanks!


Drax starting issue

On start up I’m greeted with the donate box, due to old laptop and dodgy mouse managed to click donated already, now the application won’t launch (briefly launches and then straight off, fraction of a second). Even after deleting the app and reinstalling problem still persists, any help you can give would be greatly appreciated as I haven’t even had chance to use it yet.

That sounds strange, because Drax should start smoothly, if you have clicked "already donated". It doesn't matter if you have actually donated or not. There is no detailed validation.
What you can try is to 1) uninstall Drax again, 2) additionally delete the corresponding registry key, that is, "HKEY_CURRENT_USER\Software\drax", and 3) install Drax again.
Hope this helps.

Thanks for the reply I appreciate it. It turns out it’s my fault it wouldn’t work, I wanted to install it in a folder with all my dvd tools. Uninstalled it and reinstalled it the folder it chose and now it works fine. Thank you


⚠ Bofrost.be has degraded performance

In cb41bc0, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1248 ms

Resolved: Bofrost.be performance has improved in 6425acd after 6 minutes.


Create auto-merge.yaml

Ref. https://issues.redhat.com/browse/HACBS-2470

Codecov Report

Merging #740 (03624fc) into main (bf41cc9) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main      #740   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           84        84
  Lines         3054      3054
=========================================
  Hits          3054      3054


Create CI.yml

Squash and merge to avoid unnecessary amount of extra commits
Compilation will fail because you're using bin2s, Wich was removed recently.
Merging #3 should make it work again


Consistent CMake coding standards across projects

Ensure CMake style is consistent across projects. Note that linting is handled in a separate issue: #1132
This may involve building out a common set of CMake utilities.
But more likely just means that similar CMake tasks are accomplished in a similar way across projects, so that it's easier to grok one project given familiarity with another, and easier to copy-paste and customise snippets from one project to another.

Inconsistent styling does come up in reviews too e.g. https://github.com/OpenAssetIO/OpenAssetIO/pull/1348#discussion_r1678140343
Perhaps cmake-lint can enforce more than we've currently got it configured for?
Otherwise we can at least document as part of our style guide, so we can point to it when it comes up in a review.


Revise token list fetch function to fetch lists from github

The current implementation of the fetchPreparedTokenList function fetches the token lists from google drive. The new implementation of the token lists script as a GitHub action will render this function useless. The function needs to be revised to fetch from the scripts repository on Github.
This implementation also posed another issue for datax.js in general. As a developer using datax.js to build their dapp, they would need to have a google service account and implement the token list operations exactly how Datapolis did, as well as a standalone server dedicated to hosting the script. Their application would also need multiple env variables for authentication and what have you. With the scripts repository now being open source, it was also very tailored to the Datapolis legacy use case and didn't pose much value to a developer who wasn't interested in maintaining a server to have the token list preparation on a cron schedule.
Having the token lists available in the scripts on top of having the GitHub action to update the token list on a schedule poses more value to developers using datax.js, and alleviates the need to maintain another server and google cloud account dedicated to this purpose.

 datax.js repo issues

The function is updated https://github.com/dataxfi/datax.js/blob/main/src/TokenList.ts#L325
so I think we can close this one.


Introduce mutation tracking query helper

Seeking feedback. Some initial thoughts:

Bikeshedding welcome on the names of things
Modified::unset might be annoying to invoke, particularly if you have lots of them. Is some sort of helper needed? What might that look like?

CC @cart, @sdleffler

To be clear on the user side, if you don't use a query with Tracked<T> the change will go untracked?  Does this mean you can only query either: all instances of component T with no tracking or just Tracked<T> with tracking?

Correct. You might legitimately want to exempt a system from mutation tracking, even.

Bevy has query transformers that yield only the mutated items, which I think is the only reason for a mechanism more involved than a mundane dirty: bool field on user side. (In Bevy that's built on Fetch::should_skip().)
Side note, this transformer approach to tracking is quite elegant. Might it be warranted to officially expose Fetch, so that users could implement their own convenience transformers?

Is some sort of helper needed? What might that look like?

Right now resetting tracking for all components of type T looks like this (is that correct?):
for (_, mut modified) in world.query::<Modified<T>>().iter() {
    modified.unset();
}

Perhaps something as simple as World::reset_tracking_for_all<T: Component>(&self), doing just that?
Additionally, unset() method(s) on Tracking itself should allow solving the situation of "do something with component and reset it's tracking" in one query, rather than two. Alternatively, another specialized transformer just for that case.
Combining this with filtering queries from the first point creates a "drain" iterator for mutated components.

query transformers that yield only the mutated items .. built on Fetch::should_skip()

I feel like this is a bit redundant to filtering the iterator. Is the interface significantly more convenient?

Might it be warranted to officially expose Fetch, so that users could implement their own convenience transformers?

I think this is a great extension point in principle. I'd be much happier if it wasn't so unsafe, though. I wonder if there's some way we can expose composition primitives without requiring people to implement all the hazardous methods.

Perhaps something as simple as World::reset_tracking_for_all<T: Component>(&self), doing just that?

I'm not sure we need a oneliner to replace a threeliner. I'm more concerned about bevy's case, where there's a large number of modification states to reset (one per component). If they're currently relying on hard-coded pseudo-components, they might be having an easier time iterating over and clearing them than this interface permits, particularly given that the set of components bevy wants to reset tracking state for isn't statically known.

do something with component and reset it's tracking

Would it be sufficient to just query the T and Modified<T> separately for that case?

Is the interface significantly more convenient?

Tentatively, yes, if only because it's more conscise. However, Bevy does expose a lot of transformers for that, to the point where I don't know which one I want without looking at docs. I suppose examples of this filtering in docs would be a better solution than exposing more types.

I'm more concerned about bevy's case, where there's a large number of modification states to reset (one per component).

Right; I haven't had an idea about that yet.

Would it be sufficient to just query the T and Modified<T> separately for that case?

Honestly, that didn't occur to me, somehow in this instance I forgot that those two are actually orthogonal components. Yes, it is sufficient (with doc examples).

I think this approach is probably the right call for hecs because it (1) lets users opt-in to tracking without touching the default hecs code path at all (2) very straightforward.
It also might be a good call for bevy. Functionally its basically the same, but there are a few UX issues I'd probably want to solve (either in hecs upstream or in a bevy fork). First, I'm a little bit hesitant to make users filter like this:
// this pr
for mut modified in world.query::<&mut Modified<T>>().iter().filter(|m| m.is_set()) {
}

// bevy
for mut modified in world.query::<&mut Modified<T>>().iter() {
}

If Bevy continues with the "universal" track-everything approach, it would probably mean we'd need to fork to prevent people from "breaking out" of the tracking. Ex: un-impling Query for &mut T. (which is what we currently do).
Additionally, resetting the trackers using this pr requires somehow composing a strongly-typed "reset system" for each component. Automatically resetting all component trackers on behalf of users presents a bit of a challenge.
And as mentioned in the other pr, auto-inserting the tracking components on behalf of users is also a challenge (but probably a solveable one).
I'd also like to point out that tracking "added" components doesn't fit (directly) into this model, which is something Bevy would need.

First, I'm a little bit hesitant to make users filter like this:

Yeah, that does kind of suck, especially for more complex queries where you have to pick out the right field. I don't think incorporating linear filtering into queries incurs any cost or significant complexity, so ergonomics is sufficient argument to support it.

we'd need to fork to prevent people from "breaking out" of the tracking

auto-inserting the tracking components on behalf of users

I suspect this can be accomplished with some sort of wrapper, though perhaps tediously. A bevy-owned newtype of World could then apply the wrapper internally to the interfaces it chooses to expose, without duplicating the heavy lifting/unsafe stuff.

Automatically resetting all component trackers on behalf of users presents a bit of a challenge.

There's a pattern that comes up a lot which we could use here: accumulate a Vec<Box<dyn Fn(&World)>> with an entry for every unique component. It's not super graceful and it's (very fractionally) less efficient than iterating over archetypes first, though. I wonder if there's some way we could instead have one or more Box<dyn Fn>s per archetype with user-controlled per-component code inside...

tracking "added" components doesn't fit (directly) into this model

What are the semantics of that, exactly? Can a component be deemed both added and modified, or are they mutually exclusive?
One interesting trick might be to store, for each entity, the archetype it was last in. You could infer added and removed components freely by diffing the component lists against the current one.

(also, as much as it's a juicy extension point, I'm glad we haven't exposed Fetch just yet because #95 and #96 just brought us a spectacular speedup by vigorously breaking it)

Well thats really cool. I'm curious to see if those wins will apply to bevy_hecs too, or if the changes I made result in similar assembly as the PRs above. Compiler optimizations are random enough that it always just feels like magic to me.
Lets hope these wins stack :)

Yeah, that does kind of suck, especially for more complex queries where you have to pick out the right field. I don't think incorporating linear filtering into queries incurs any cost or significant complexity, so ergonomics is sufficient argument to support it.

Yeah I think its a nice ergo win. But I do want to point out that the "linear filter" breaks things like cheap iterator length via ExactSizeIterator.

I suspect this can be accomplished with some sort of wrapper, though perhaps tediously. A bevy-owned newtype of World could then apply the wrapper internally to the interfaces it chooses to expose, without duplicating the heavy lifting/unsafe stuff.

Yeah that could definitely be possible. Regardless, I don't think its fair to constrain hecs' design according to bevy's constraints. I do want us to consume upstream directly if we can (for the benefit of both projects), but I also don't want to force hecs in a direction thats suboptimal for non-bevy scenarios.

There's a pattern that comes up a lot which we could use here: accumulate a Vec<Box<dyn Fn(&World)>> with an entry for every unique component. It's not super graceful and it's (very fractionally) less efficient than iterating over archetypes first, though. I wonder if there's some way we could instead have one or more Boxs per archetype with user-controlled per-component code inside...

Cool yeah that would would / seems acceptable to me. User-configurable per-archetype/component code is also an interesting prospect.

What are the semantics of that, exactly? Can a component be deemed both added and modified, or are they mutually exclusive?

We store "added" and "mutated"  flags for each component. "Added" is set when the component is first inserted.  "Mutated" is set only when a user mutates the component. We then have Added, Mutated, and Changed queries/pointers where Added and Mutated correspond to their component states and Changed is added | mutated.
Mutated vs Changed is a little confusing, but it lets us capture every relevant scenario.
I've thought a lot about removed states (which we also support). Right now we just store a list of removed entities for each component and reset it each frame. But I really want us to be able to query removed components. I think this is possible because part of the removal process is swapping the removed component to the end of the "array". As long as that space isn't overwritten by a new component, the memory there is still valid. With a little bit of extra state management we could ensure that space isn't overwritten until a frame later.

User should be able to convert Mut<'a, T> into &'a mut T, which is now impossible as there's only DerefMut which returns mutable reference with lifetime limited by Mut value itself.

Closing in favor of https://github.com/Ralith/hecs/pull/366, which is more ergonomic and should perform better in most cases.


Feature/users

Added the resources for My Climate Watch as well as the authentication using the GFW Control Tower.

Two new environment variables were created to run it in development and testing modes.
DEV_USER_ID and DEV_USER_TOKEN.
There's also a task db:user_creation to create a default user in dev


LAB_01_Implementing_identity_services_and_Group_Policy.md

Source:
and then locate the Control
Panel/Personalization section.
Current Translation:
然后找到“Control Panel/Personalization”部分
Suggested Translation:
然后找到“控制面板/个性化”部分

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

fixed already

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team

Hello contributor,
Thank you for your contribution! We are processing your suggestions and we will update you shortly.
Kind regards,
Microsoft Worldwide Learning Team


Switch to using pathlib everywhere

We are dealing with a lot of file paths, some of which may come as semi-broken Unicode thanks to the unix file system conventions. We should be passing around pathlib objects rather than strings of any sort in order to make path traversal happen.

We had this problem with Hoover. If you only pass around in-memory Python strings, you're fine, any broken unicode bytes will be surrogate-escaped (btw, pathlib uses strings internally anyway). Things get tricky if you want to store paths in a DB, because database drivers don't like Python's surrogate-escape mechanism, so you have to e.g. save them as bytes instead of text.
https://github.com/hoover/snoop2/blob/master/snoop/data/models.py#L246-L251

Thanks for the pointer! I hope that we can move away from storing paths in our database more and more, in part to account for stuff like this. The idea would be to store only hashes and file names which are purely descriptive, thus can be normalised in those surrogate edge cases.

Here's the error message that we get from ingesting some files just for reference:
INFO:alephclient.tasks.crawldir:Upload [1144]: -(24.08.2015)/12.2. \udcf1\udcd1\udcf5\udcbd\udcb4ԫ\udcd3\udcd9 .xlsx
ERROR:alephclient.tasks.crawldir:Failed [1144]: (partial)/Archives/-______(24.08.2015)/12.2. \udcf1\udcd1\udcf5\udcbd$
dcb4ԫ\udcd3\udcd9 .xlsx
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/alephclient/tasks/crawldir.py", line 56, in _upload
_crawl_path(q, api, collection_id, languages, root_path, path)
File "/usr/local/lib/python3.7/site-packages/alephclient/tasks/crawldir.py", line 45, in _crawl_path
_upload_path(api, collection_id, languages, root_path, path)
File "/usr/local/lib/python3.7/site-packages/alephclient/tasks/crawldir.py", line 41, in _upload_path
api.ingest_upload(collection_id, file_path, metadata=metadata)
File "/usr/local/lib/python3.7/site-packages/alephclient/api.py", line 238, in ingest_upload
'file': (file_path.name, fh, MIME)
File "/usr/local/lib/python3.7/site-packages/requests_toolbelt/multipart/encoder.py", line 125, in init
self._prepare_parts()
File "/usr/local/lib/python3.7/site-packages/requests_toolbelt/multipart/encoder.py", line 246, in _prepare_parts
self.parts = [Part.from_field(f, enc) for f in self._iter_fields()]
File "/usr/local/lib/python3.7/site-packages/requests_toolbelt/multipart/encoder.py", line 246, in
self.parts = [Part.from_field(f, enc) for f in self._iter_fields()]
File "/usr/local/lib/python3.7/site-packages/requests_toolbelt/multipart/encoder.py", line 236, in _iter_fields
field.make_multipart(content_type=file_type)
File "/usr/local/lib/python3.7/site-packages/urllib3/fields.py", line 174, in make_multipart
(('name', self._name), ('filename', self._filename))
File "/usr/local/lib/python3.7/site-packages/urllib3/fields.py", line 134, in _render_parts
parts.append(self._render_part(name, value))
File "/usr/local/lib/python3.7/site-packages/urllib3/fields.py", line 114, in _render_part
return format_header_param(name, value)
File "/usr/local/lib/python3.7/site-packages/urllib3/fields.py", line 45, in format_header_param
value = email.utils.encode_rfc2231(value, 'utf-8')
File "/usr/local/lib/python3.7/email/utils.py", line 246, in encode_rfc2231
s = urllib.parse.quote(s, safe='', encoding=charset or 'ascii')
File "/usr/local/lib/python3.7/urllib/parse.py", line 785, in quote
string = string.encode(encoding, errors)
UnicodeEncodeError: 'utf-8' codec can't encode characters in position 6-10: surrogates not allowed

Fixed in #34.


[Feature Request] Support TLS on published metrics endpoint

Communication via TLS is supported to/from the Anka controller, but this does not seem to be the case for the metrics being published in turn by this exporter.

Blocked by https://github.com/prometheus/exporter-toolkit/issues/254. Seems like their toolkit outputs logs not as JSON in specific situations. We can't have that :(

RC1 ready for testing: https://github.com/veertuinc/anka-prometheus-exporter/releases/tag/v4.0.0-rc1


Add example of data table using createColumnHelper from Tanstack Table

createColumnHelper function in my opinion makes the TypeScript experience much better. It would be great to have it in the docs. The current example works at run time but gives a type error

Yes, I am trying to make this work... I've done everything, but I can't get the DataTable component columns prop to accept my columns generated by createColumnHelper.
Here's what I mean:

A you can see in the image, I can send columns to the normal useReactTable hook, but not to the DataTable component columns prop....
I'm trying to make this work. Does anyone know the solution?

I kind of 'fixed it' by removing TValue generic in the  component,a nd placing any for ColumnDef<TData, TValue>[]; instead of TValue

Do you know if this "Type instantiation is excessively deep and possibly infinite" related to columnHelper has already been fixed?

Hi. I didn't know that issue existed. I will look into it.

I kind of 'fixed it' by removing TValue generic in the component,a nd placing any for ColumnDef<TData, TValue>[]; instead of TValue

I'm just ts-ignore'ing where I pass the columns prop for now.

Here's what I got. I'm new to typescript but I bashed my way through it by trying to understand the IDE errors and looking up expected values. Probably lots to improve here.
One trick is defining the object returned from columnHelper.accessor() as ColumnDef<Task>.
Without this, it complains:
Type 'ColumnDef<{ id: string; title: string; status: string; label: string; priority: string; }, string>' is not assignable to type 'ColumnDef<{ id: string; title: string; status: string; label: string; priority: string; }>'.
Alternatively, you can declare the column array definition as ColumnDef<Task, string> and remove as ColumnDef<Task> from each column.
I couldn't figure out how to do this with just the exported constant, so I added a createColumns() function that the constant calls to get values. Is there a better way to do this?
function createColumns(): ColumnDef<Task>[] {
  const columnHelper = createColumnHelper<Task>()

  return [
    columnHelper.display({
      id: "select",
      header: ({ table }) => (
        <Checkbox
          checked={table.getIsAllPageRowsSelected()}
          onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}
          aria-label="Select all"
          className="translate-y-[2px]"
        />
      ),
      cell: ({ row }) => (
        <Checkbox
          checked={row.getIsSelected()}
          onCheckedChange={(value) => row.toggleSelected(!!value)}
          aria-label="Select row"
          className="translate-y-[2px]"
        />
      ),
      enableSorting: false,
      enableHiding: false,
    }),

    columnHelper.accessor('id', {
      header: ({ column }) => (
        <DataTableColumnHeader column={column} title="Task" />
      ),
      cell: ({ row }) =>
{row.getValue("id")}
,
      enableSorting: false,
      enableHiding: false,
    }) as ColumnDef<Task>,

    columnHelper.accessor('title', {
      header: ({ column }) => (
        <DataTableColumnHeader column={column} title="Title" />
      ),
      cell: ({ row }) => {
        const label = labels.find((label) => label.value === row.original.label)

        return (

            {label && <Badge variant="outline">{label.label}</Badge>}

              {row.getValue("title")}

        )
      },
    }) as ColumnDef<Task>,

    columnHelper.accessor('priority', {
      header: ({ column }) => (
        <DataTableColumnHeader column={column} title="Status" />
      ),
      cell: ({ row }) => {
        const status = statuses.find(
          (status) => status.value === row.getValue("status")
        )

        if (!status) {
          return null
        }

        return (

            {status.icon && (
              <status.icon className="mr-2 h-4 w-4 text-muted-foreground" />
            )}
            {status.label}

        )
      },
      filterFn: (row, id, value) => {
        return value.includes(row.getValue(id))
      },
    }) as ColumnDef<Task>,

    columnHelper.accessor('status', {
    header: ({ column }) => (
      <DataTableColumnHeader column={column} title="Priority" />
    ),
    cell: ({ row }) => {
      const priority = priorities.find(
        (priority) => priority.value === row.getValue("priority")
      )

      if (!priority) {
        return null
      }

      return (

          {priority.icon && (
            <priority.icon className="mr-2 h-4 w-4 text-muted-foreground" />
          )}
          {priority.label}

      )
    },
    filterFn: (row, id, value) => {
      return value.includes(row.getValue(id))
    },
    }) as ColumnDef<Task>,

    columnHelper.display({
      id: 'actions',
      cell: ({ row }) => <DataTableRowActions row={row} />,
    })
  ]
}

export const columns: ColumnDef<Task>[] = createColumns()

I kind of 'fixed it' by removing TValue generic in the component,a nd placing any for ColumnDef<TData, TValue>[]; instead of TValue

This fixed the error.. Bit of a hack..
interface DataTableProps<TData> {
  columns: any;
  data: TData[];
}

I still don't get it, why don't the docs use column helper @shadcn ?

I still don't get it, why don't the docs use column helper @shadcn ?

agreed, using column helper for better type safety @shadcn, thanks for all your works..

This seems to work for me
const columnHelper = createColumnHelper<Contact>()
export const columns: ColumnDef<Contact>[] = [

	columnHelper.accessor('firstName', {
		header: 'First Name',
		cell: (info) => info.getValue(),
	}),

	columnHelper.accessor('lastName', {
		id: 'lastName',
		header: 'Last Name',
		cell: (info) => info.getValue(),
	})
] as Array<ColumnDef<Contact, unknown>>

This seems to work for me
const columnHelper = createColumnHelper<Contact>()
export const columns: ColumnDef<Contact>[] = [

	columnHelper.accessor('firstName', {
		header: 'First Name',
		cell: (info) => info.getValue(),
	}),

	columnHelper.accessor('lastName', {
		id: 'lastName',
		header: 'Last Name',
		cell: (info) => info.getValue(),
	})
] as Array<ColumnDef<Contact, unknown>>

interface DataTableProps<TData, TValue> {
	columns: ColumnDef<TData, TValue>[]
	data: TData[]
}

You actually just need the last part as Array<ColumnDef<Contact, unknown>>. Thanks for the solution.

This issue has been automatically closed because it received no activity for a while. If you think it was closed by accident, please leave a comment. Thank you.


@Zylox @slokomisu @Mill1893 @dbothwe @2501 @jedibob5

not necessary, but how do you feel about reacting to the user's message as well as kicking them?

Optional: Could you also remove To_Implment.md as part of this PR? I've created issues for everything in there now

@Mill1893 before so long as you formatted your request correctly anyone could submit
a post request to the url and it would run it. Now the request has to be hashed using a signing key. which only Slack and AWS know

@slokomisu good catch. done!

@Zylox @slokomisu @Mill1893 @dbothwe @2501 @jedibob5 One more round of reviews 😎


"Domnești" is listed in the drop-down menu

Description:
"Domnești" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Domnești" in the search bar.

Expected results
The location is listed in the drop-down menu as "Domnești, Argeș (Domnești)".


Couldn't have scroll view in bottom pop up bar in screen.

@viveeeeeek Please assign me the issue. I will work on it.


update badge url

part of: https://github.com/pyOpenSci/software-peer-review/issues/293

@all-contributors please add @sneakers-the-rat for code, review


Messaging always does a IPFS lookup for the peer's public key, even when you already have it

In order-related messaging, the sender already has the public key of the recipient, as it is stored in the listing, but instead of using this information an IPFS lookup is performed (in core.EncryptMessage()). This forces all nodes to publish their public keys to IPFS, which is not useful for Duo or other buyer-only portals.
I propose a second function, core.EncryptMessageWithKey, which allows you to directly specify a public key instead of the peerID, and core.SendOfflineMessageWithKey which uses this. We could then adapt all contract-related functions in net to pull out the public key (of either buyer or seller) and use these new functions.
This is more efficient, and also opens the door for buyers that are not nodes, and given the new offline message relay functionality, that have no interaction with IPFS at all.

That's probably fine to do. I would maybe just make the net functions take in an optional key and use it if it's passed in and if not, just look it up.

Does #274 close this issue?

Yup!


Logging

@luwi1993 Thank you for your contribution. We'll merge this into a temporary branch for the internal review and updating the eManual, then merged into the master branch. This process may take some time due to other development schedules.

Hello ROBOTIS Team,
please remove the db_config dictionary from
turtlebot3_dqn/nodes/utils/log_utils.py
this should be passed by a config.json
our version works in a docker container on different systems so i had to
put the configuration there like this
looking forward to future contributions,
Greetings, Lukas Widowski
Am Mi., 9. Sept. 2020 um 10:46 Uhr schrieb Will Son <
<EMAIL_ADDRESS>
Merged #47
https://github.com/ROBOTIS-GIT/turtlebot3_machine_learning/pull/47 into
feature-update-master.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ROBOTIS-GIT/turtlebot3_machine_learning/pull/47#event-3744688419,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ALUSATFTLQOA55AF7QQSZN3SE46GRANCNFSM4QYH6ZIA
.

@luwi1993 Thank you for the heads up. Hope you and your team are safe from the Covid-19.


Milestone 4

[x] #354
[x] #356
[x] #357
[x] #358
[ ] #359
[ ] #360

Can we re-open this?
I have implemented nearly half of Multi-Sig.

the multisig issue is still there, closed this as we dont need a issue to list issues, it just looks that we have more issues than we should

The multisig issue is still there, closed this as we dont need a issue to list issues, it just looks that we have more issues than we should. I'm also changing and organizing the labels

Sorry about that.


Verification of centroid knn / l2norm

:octocat: cibot: Thank you for posting issue #1521. The person in charge will reply soon.


triggerforceclose not working... any way to debug?

I am trying to trigger a force close to a CLN peer because I think I am experiencing the issue described in https://github.com/lightninglabs/chantools/blob/master/doc/chantools_triggerforceclose.md

in case the peer is a specific version of CLN that does not properly respond to a Data Loss Protection re-establish message

It looks like even this isn't working and I haven't been able to get in contact with the peer. This is an unannounced channel, not sure if that makes a difference. Is there any way to further debug this?
lnd:~# chantools triggerforceclose  --peer 037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138@jg7tka7hxo4tzqlwom56urpeuhdxn4bya73egflw6xcwki2tddcsuaid.onion:9735  --channel_point ***  --rootkey ***  --torproxy $(ip route | grep default | awk '{print $3}'):9050
2024-07-27 12:41:48.899 [INF] CHAN: chantools version v0.13.1 commit
2024-07-27 12:41:48.900 [DBG] CHAN: Attempting to resolve peer address 037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138@jg7tka7hxo4tzqlwom56urpeuhdxn4bya73egflw6xcwki2tddcsuaid.onion:9735
2024-07-27 12:41:48.901 [DBG] CHAN: Attempting to dial resolved peer address 037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138@jg7tka7hxo4tzqlwom56urpeuhdxn4bya73egflw6xcwki2tddcsuaid.onion:9735
2024-07-27 12:41:52.140 [INF] CHAN: Attempting to establish p2p connection to peer 02d523cf57a7736d04db04b76076badb2d4b81a4cfe6fe16114aee2f500cef845d, dialtimeout is 1m0s
2024-07-27 12:41:52.152 [DBG] CHDB: Populating in-memory channel graph, this might take a while...
2024-07-27 12:41:52.152 [DBG] CHDB: Finished populating in-memory channel graph (took 479.989µs, num_node_features=0, num_nodes=0, num_channels=0)
2024-07-27 12:41:52.152 [INF] CHDB: Checking for schema update: latest_version=31, db_version=31
2024-07-27 12:41:52.153 [INF] CHDB: Checking for optional update: prune_revocation_log=false, db_version=empty
2024-07-27 12:41:52.153 [DBG] PEER: Peer(037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138): Sending Init to 037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138@jg7tka7hxo4tzqlwom56urpeuhdxn4bya73egflw6xcwki2tddcsuaid.onion:9735
2024-07-27 12:41:52.796 [DBG] PEER: Peer(037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138): Received Init from 037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138@jg7tka7hxo4tzqlwom56urpeuhdxn4bya73egflw6xcwki2tddcsuaid.onion:9735
2024-07-27 12:41:52.796 [DBG] PEER: Peer(037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138): Loaded 0 active channels from database
2024-07-27 12:41:52.796 [INF] CHAN: Connection established to peer 02d523cf57a7736d04db04b76076badb2d4b81a4cfe6fe16114aee2f500cef845d
2024-07-27 12:41:52.796 [INF] CHAN: Sending channel re-establish to peer to trigger force close of channel ***
2024-07-27 12:41:52.797 [DBG] PEER: Peer(037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138): Sending ChannelReestablish(chan_id=08c9d1f07af7b677f86d95b9574862e38ad224afcbd5f64c2a3e91edf96969d2, next_local_height=0, remote_tail_height=0) to 037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138@jg7tka7hxo4tzqlwom56urpeuhdxn4bya73egflw6xcwki2tddcsuaid.onion:9735
2024-07-27 12:41:52.797 [INF] CHAN: Sending channel error message to peer to trigger force close of channel ***
2024-07-27 12:41:52.797 [INF] PEER: Peer(037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138): Negotiated chan series queries
2024-07-27 12:41:52.797 [DBG] PEER: Peer(037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138): Sending Error(type=17) to 037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138@jg7tka7hxo4tzqlwom56urpeuhdxn4bya73egflw6xcwki2tddcsuaid.onion:9735
2024-07-27 12:41:52.798 [INF] CHAN: Message sent, waiting for force close transaction to appear in mempool
2024-07-27 12:42:08.047 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-27 12:42:13.138 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-27 12:42:22.709 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-27 12:42:31.743 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-27 12:42:38.219 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-27 12:42:47.613 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-27 12:42:52.798 [DBG] PEER: Peer(037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138): Sending Ping(ping_bytes=0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) to 037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138@jg7tka7hxo4tzqlwom56urpeuhdxn4bya73egflw6xcwki2tddcsuaid.onion:9735
2024-07-27 12:42:52.798 [INF] PEER: Peer(037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138): disconnecting 037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138@jg7tka7hxo4tzqlwom56urpeuhdxn4bya73egflw6xcwki2tddcsuaid.onion:9735, reason: unable to write message: write tcp <IP_ADDRESS>:54120-><IP_ADDRESS>:9050: write: broken pipe
2024-07-27 12:42:55.675 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-27 12:43:07.793 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-27 12:43:14.686 [INF] CHAN: No spends found yet, waiting 5 seconds...

From the logs, it looks like both the generic (lnd compatible) message (Sending ChannelReestablish) and the CLN specific (Sending Error(type=17)) message is being sent. So if the node is aware of the channel, it should publish the force close transaction.
Just to rule out that the generic, first message doesn't throw off the node, can you try again with the triggerforceclose-cln branch? (commit f8c66616).

Thanks for the quick update, same result.
root@89f22c69e6a6:/go/chantools# chantools triggerforceclose \
 --peer 037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138@jg7tka7hxo4tzqlwom56urpeuhdxn4bya73egflw6xcwki2tddcsuaid.onion:9735 \
 --channel_point *** \
 --rootkey *** \
 --torproxy <IP_ADDRESS>:9050
2024-07-29 17:28:10.886 [INF] CHAN: chantools version v0.13.1 commit
2024-07-29 17:28:10.886 [DBG] CHAN: Attempting to resolve peer address 037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138@jg7tka7hxo4tzqlwom56urpeuhdxn4bya73egflw6xcwki2tddcsuaid.onion:9735
2024-07-29 17:28:10.886 [DBG] CHAN: Attempting to dial resolved peer address 037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138@jg7tka7hxo4tzqlwom56urpeuhdxn4bya73egflw6xcwki2tddcsuaid.onion:9735
2024-07-29 17:28:13.140 [INF] CHAN: Attempting to establish p2p connection to peer 02d523cf57a7736d04db04b76076badb2d4b81a4cfe6fe16114aee2f500cef845d, dialtimeout is 1m0s
2024-07-29 17:28:13.145 [DBG] CHDB: Populating in-memory channel graph, this might take a while...
2024-07-29 17:28:13.145 [DBG] CHDB: Finished populating in-memory channel graph (took 786.955µs, num_node_features=0, num_nodes=0, num_channels=0)
2024-07-29 17:28:13.146 [INF] CHDB: Checking for schema update: latest_version=31, db_version=31
2024-07-29 17:28:13.146 [INF] CHDB: Checking for optional update: prune_revocation_log=false, db_version=empty
2024-07-29 17:28:13.146 [DBG] PEER: Peer(037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138): Sending Init to 037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138@jg7tka7hxo4tzqlwom56urpeuhdxn4bya73egflw6xcwki2tddcsuaid.onion:9735
2024-07-29 17:28:13.486 [DBG] PEER: Peer(037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138): Received Init from 037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138@jg7tka7hxo4tzqlwom56urpeuhdxn4bya73egflw6xcwki2tddcsuaid.onion:9735
2024-07-29 17:28:13.486 [DBG] PEER: Peer(037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138): Loaded 0 active channels from database
2024-07-29 17:28:13.486 [INF] CHAN: Connection established to peer 02d523cf57a7736d04db04b76076badb2d4b81a4cfe6fe16114aee2f500cef845d
2024-07-29 17:28:13.486 [INF] CHAN: Sending channel error message to peer to trigger force close of channel ***
2024-07-29 17:28:13.486 [DBG] PEER: Peer(037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138): Sending Error(type=17) to 037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138@jg7tka7hxo4tzqlwom56urpeuhdxn4bya73egflw6xcwki2tddcsuaid.onion:9735
2024-07-29 17:28:13.486 [INF] CHAN: Message sent, waiting for force close transaction to appear in mempool
2024-07-29 17:28:13.486 [INF] PEER: Peer(037a43b480b33ffaaaef6abd80814becfb89389c21bd18787884e186a5cb507138): Negotiated chan series queries
2024-07-29 17:28:37.466 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:28:50.946 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:29:00.793 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:29:07.624 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:29:13.470 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:29:22.661 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:29:34.499 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:29:40.512 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:29:49.933 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:29:59.920 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:30:11.363 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:30:21.437 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:30:29.423 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:30:42.318 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:30:49.391 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:30:58.238 [INF] CHAN: No spends found yet, waiting 5 seconds...
2024-07-29 17:31:06.470 [INF] CHAN: No spends found yet, waiting 5 seconds...
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x123d049]

goroutine 13 [running]:
github.com/lightningnetwork/lnd/peer.NewBrontide.func1()
	/go/pkg/mod/github.com/lightningnetwork/lnd@v0.18.0-beta.1/peer/brontide.go:576 +0x29
github.com/lightningnetwork/lnd/peer.(*PingManager).pingHandler(0xc0000d20e0)
	/go/pkg/mod/github.com/lightningnetwork/lnd@v0.18.0-beta.1/peer/ping_manager.go:141 +0x1ca
created by github.com/lightningnetwork/lnd/peer.(*PingManager).Start.func1 in goroutine 1
	/go/pkg/mod/github.com/lightningnetwork/lnd@v0.18.0-beta.1/peer/ping_manager.go:105 +0xcc

Thanks for trying that out... Then it seems like the node definitely doesn't want to force close. Or maybe they do but the transaction for some reason doesn't reach any connected mempool?
Was the channel ever fully operational? Or did it take too long (more than 2 weeks) to confirm initially?

The channel was fully operational for almost a year. Not sure how much was transacted on it. It is an unannounced channel and I'm not sure how long it took to mine/confirm the transaction. mempool.space shows 'Not seen in Mempool' but it was a 50 sat/vb transaction! 😭 My own mempool instance doesn't have more info about the transaction.

Hmm, so you're saying the transaction of the channel point isn't in the blockchain? Can you DM me the channel point please? Either on Slack or e-mail (see my profile)?


Only Can Connect to VPN from the Hosted Node

This might just be me but wasn't sure if you might have run into this during your implementation.  I am having an issue where I can only get to the VPN from the node that it currently is on.  So for example, other nodes can't access the podIP of the VPN, which they can for other pods in the cluster.  When I don't have OpenVPN running, I can access the pod, so I think it is something with the OpenVPN configuration, maybe not allowing the other nodes to connect in some way.  This might just be me, but just in case wanted to submit something here.  Thanks!

Hi Steven,
your problem is a bit unclear. Can you please walk me through your clusters' network configuration and the steps you executed to deploy openvpn?

I am having an issue where I can only get to the VPN from the node that it currently is on.

The VPN should be exposed as nodePort service. If you can only access openvpn on the nodePort on the worker that's currently running the openvpn pod you might have a problem with your overlay network and/or kube-proxy.

So for example, other nodes can't access the podIP of the VPN, which they can for other pods in the cluster.
When I don't have OpenVPN running, I can access the pod,

Please specify 'access' (preferably with command examples) because i don't know how to help when i don't understand what you're trying to do.
I sent you a message on slack - we're in different timezones but i'd like to help you get up & running.

Thanks for the quick response, and I responded to you in Slack.
I have a cluster in GCE and I have a cluster of services/pods/etc
What I noticed is that when I added a loadbalancer in there, I actually had to modify the forwarding to only route to the node that the VPN lived on.  So then I started debugging why the other nodes didn't know about the VPN pod.  So then I just started going to the other nodes in my cluster, I have about 15 nodes in my cluster.  When I ping the IP address of the VPN pod from the node that the container lives on, then I am able to get a response.  However, when I go to another node in the cluster and I try to ping the podIP it doesn't respond.  So in this instance, I am not going through the service layer in this instance, something in the vpnPOD is preventing access to its IP address.  If I just start the VPN pod (without OpenVPN started) I can ping the podIP, so I have narrowed it down to something in OpenVPN, just been struggling with figuring that out.

We discussed on slack and discovered that $OVPN_NETWORK was configured to use the host IP network, thus creating a route conflict. Case closed :laughing:!
Thanks for using kube-openvpn!


Multiple Boards

I can't get multiple boards daisy chained together to work. How do I go about doing that?

Never mind. I think I needed to add power and hook it up correctly.


Adds a way to maybe convert primitives to strongly typed enums

This is a minor change in terms of lines changed but a major change because it introduces the first external dependency.
If you don't like that, we can either

Leave it out
Add it behind a feature
Reimplement the necessary functionality ourselves

Hello Lars,
You are right to assume I might find this a bit icky. I rejected similar proposals in the past, which were around convenience for people writing applications. Admittedly I can usually place such features better in the odbc-api crate, which also aims to provide safe abstractions for applications anyway. So far the approach to keep odbc-sys minimal and un-opinionated has payed off. odbc-api is the second attempt at writing a safe abstraction on top of ODBC after odbc-safe. I feel it would not have stood the test of time if it would have been more opinionated. Also you now do not have to worry about dependencies, which gain you little for writing a driver, but may start from a fairly clean slate.
Just food for thought. Maybe you/we want to build odbc-driver on top of odbc-sys similar to what odbc-api does. odbc-api is FYI there all my opinions about abstraction live.
Best, Markus

Yeah, I assumed as much :)
Thanks!
The "problem" with the extra crate is that we'd just end up duplicating code from odbc-sys.
In this case I'd copy the HandleType to a new crate, add the required annotations or methods and use that. Then we'd have the same thing in both crates. Not ideal either.
I don't have a better idea though :)
I do understand your desire to keep this lean.
Maybe the requirements for drivers are just too different from applications and it's not like the ODBC standard is under rapid development so both would probably be relatively stable/similar.
I'll think about it a bit more, if you have any more ideas/suggestions let me know.
My only idea for now would be to actually fork odbc-sys and include everything I need.
As I'm learning as I go along (it's a hobby project as well) it might look different in a year than it does now and we can merge the bits that make sense when I have learned more about what is actually needed.....

Hello Lars,
just so sketching how I layered responsibilities for the application side.

odbc-sys:  Signatures and linking for ODBC function calls.
odbc-api module handles: . Wrapping the handles of odbc-sys. Still unsafe interface, but providing RAII semantics, implementing Drop there appropriate. Free standing ODBC functions now become methods of their respective handles. Signatures and names are changed to be more idiomatic. Also often the many type/attribute/info arguments are passed implicitly using the function name. E.g. a display_size method rather than a call to SQLColAttr with the specific arguments indicating display sizes.
odbc-api: Actual safe abstractions, trying to use the type system and the state transitions expressed therein to prevent any unsafe usage.

The second layer is the one there most of the convenience around handles went for me. My first thought had been that a similar abstraction could potentially live in your code for drivers. On second thought you could also take a peak at https://github.com/pacman82/odbc-api/tree/main/odbc-api/src/handles and see if these would still be fit for driver development. I am not sure if I already put a design philosophy in there unfit for drivers. I would be open to the idea to extract these into an extra crate.
Of course just having a fork is at least a very decoupled way of doing things. For compos-ability it is nice though to have just the linking in one crate. To my knowledge Rust does not like it if two crates try to link directly against the same system library.
Best, Markus

Thanks! I'll think about it a bit more.
This is a hobby endevour for me as well at the moment, mostly to be enjoyed during long train rides. I'll see when the next one is going to happen.
My E-Mail address is in my profile. If you're interested in chatting let me know.

My E-Mail address is in my profile. If you're interested in chatting let me know.

Happy to take you up on the offer. I send you my coordinates via Email.

I would now be closing this issue, assuming we go with the extra crate. If you feel otherwise, please reopen.


Fixed ufw rules being reapplied every time on Ubuntu 16.04 LTS

allow.pp, deny.pp, reject.pp: Fixed the grep statement to accommodate for the 'comment' option added to ufw 0.35

thanks for commit


Do we have to open all service endpoints for data gateway behind firewall or just the Service Bus endpoint?

I suspect that many customers for on-premise data gateway will be coming from State and Local Government (SLG)  domain. That means they will be running on MAG.
And at the moment, it is not very straight forward how do we go about connecting to on-premise DB using on-premise data gateway behind firewall for MAG.
First of all there is little to none guidance available for MAG. Because one has to to search through the document to identify the service endpoint in MAG to open those ports for on-premise data gateway config (or get the IP for the regions in MAG). This is not very productive experience for developer community. Can we make it more clear for MAG customers by adding some specific documentation for on-premise data gateway setup in MAG ?
Another issue I have is why should we open all the service endpoint for on-premise data gateway behind firewall if on-premise data gateway only talks to MAC or MAG via Service bus relay channel ?
As stated here, why do we need to white-list all these service endpoints in on-premise firewall instead of only Service Bus endpoint/IP in MAC or MAG?

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

ID: 0deaa8b2-66a2-b45c-3ecd-7ea2d08503ed
Version Independent ID: 364890ed-d3ba-9e01-c40a-ce78600319f1
Content: Install on-premises data gateway - Azure Logic Apps
Content Source: articles/logic-apps/logic-apps-gateway-install.md
Service: logic-apps
GitHub Login: @ecfan
Microsoft Alias: estfan

Hi @Anand-Moghe Thank you for your feedback! We will review and update as appropriate.

@mike-urnun-msft  Thanks. This is highly critical and sensitive topic for MAG and I am seeing lot of confusion and distress among MAG customers. This is highly critical and urgent category issue.

@Anand-Moghe Given the urgency and sensitivity, it may be best to open a support ticket and work with an Azure engineer 1:1 to remove such blockers in timely manner. Does your subscription carry a support plan? If not, we're able to offer you a one-time ticket. If that is the case, please send us an email at azcommunity at microsoft dotcom and include the URL of this issue as well as your subscription ID.

@Anand-Moghe Sorry for the long silence but I was able to gather some insights on this. The different domains/ports can be categorized into the following -

ServiceBus URIs – used for all query communication between the Gateway service running on your machine and the cloud service.
Login URIs – so the app can sign in
Management URIs (registration)
Telemetry URIs

I hope that helps a bit.
We are assigning this issue to the content author to further investigate and update the documentation accordingly.

@Anand-Moghe & @PramodValavala-MSFT, thanks, we've added a work item on our backlog to triage and address.
#please-close


#747: Convert action package (ThanksClient and PageEditClient) to Kotlin

Description (required)
Kotlin conversion (#747). Hoping to get more of the app in Kotlin, eventually so it'll all be one language and easier to standardize and reason about.
This converts the action package (ThanksClient and PageEditClient) to Kotlin
Tests performed (required)
Tested BetaDebug on Oneplus 6T with API level 29

Codecov Report

Merging #4075 (8372963) into master (b24ed1c) will decrease coverage by 0.05%.
The diff coverage is 73.91%.

@@             Coverage Diff              @@
##             master    #4075      +/-   ##
============================================
- Coverage     10.60%   10.55%   -0.06%
+ Complexity      476      473       -3
============================================
  Files           343      343
  Lines         12875    12866       -9
  Branches        997      998       +1
============================================
- Hits           1366     1358       -8
+ Misses        11441    11440       -1
  Partials         68       68

Impacted Files
Coverage Δ
Complexity Δ

.../java/fr/free/nrw/commons/di/NetworkingModule.java
0.00% <0.00%> (ø)
0.00 <0.00> (ø)

...java/fr/free/nrw/commons/actions/PageEditClient.kt
75.00% <75.00%> (ø)
4.00 <4.00> (?)

...n/java/fr/free/nrw/commons/actions/ThanksClient.kt
83.33% <83.33%> (ø)
2.00 <2.00> (?)

Continue to review full report at Codecov.

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

Hi @madhurgupta10, thanks for the review and I've resolved the merge conflicts

Hi @madhurgupta10, thanks for the review and I've resolved the merge conflicts


Please fix zlib_name_mangling mess

Instead of having two files (zlib_name_mangling-ng.h.in and zlib_name_mangling.h.in) wouldn't that be beneficial to have a single file zlib_name_mangling.h so that instead of having stuff like
...
#define _dist_code            @ZLIB_SYMBOL_PREFIX@_dist_code
...

that uses an external step of preprocessing/replacement to generate zlib_name_mangling.h+zlib_name_mangling-ng.h zlib-ng could have zlib_name_mangling.h checked in with such contents:
#ifdef ZLIB_SYMBOL_PREFIX
#define ZLIB_PREFIX(x) ZLIB_SYMBOL_PREFIX ## x
...
#define _dist_code                  ZLIB_PREFIX(_dist_code)
...
#define zng_dist_code               ZLIB_PREFIX(zng__dist_code)
...

Then ZLIB_SYMBOL_PREFIX could be defined by the project (that builds zlibng or uses it), or it could be defined in zconf.h or whatever equivalent is used now.

Using macros inside preprocessor defines would cause issues with evaluation order of the preprocessor. It's supposed to be dumb-proof. Generally anything that is specified on command-line, can be redefined in any header that is included before the mangling header and that can cause linker failures. String substitution works best for anything that is defined during configure stage (either configure or first run of cmake).

Using macros inside preprocessor defines would cause issues with evaluation order of the preprocessor.

Please explain what you mean? It seems that even some c files are generated.

Generally anything that is specified on command-line, can be redefined in any header that is included before the mangling header and that can cause linker failures.

Yes, that's why #define ZLIB_SYMBOL_PREFIX abc_ could be part of zconf.h which is supposed to be included by each file of the project.

Nested preprocessor macros and defines use lazy evaluation, which means they are evaluated from bottom to top starting from the line that use the preprocessor token. Literal preprocessor defines are technically string substitutions that work from top to bottom instead.
In most cases developers should try to avoid using preprocessor tokens that can be substrings of other preprocessor tokens. This is why we use zng_ and z_ prefixes directly in some files. For example, Windows is notoriously known for defining and using very common tokens internally causing issues if any third-party library or program tries to use the same tokens for other purposes.

I've done quite a bit of heavy macro preprocessor mumbo-jumbo, yes, it has some catches/issues, but zlib-ng use case is fairly basic imo. Can you show a simple case that really shows the issue you are trying to describe. All that lazy evaluation is a non-issue imo if done properly in the project.
Not exactly sure, perhaps, you are trying to describe an issue that this solves:
instead of:
#define ZLIB_PREFIX(x) ZLIB_SYMBOL_PREFIX ## x
it could be:
#define ZLIB_PREFIX_(a,b) a ## b
#define ZLIB_PREFIX(x) ZLIB_PREFIX_(ZLIB_SYMBOL_PREFIX, x)

?

We would still need to use string substitution to inject value for ZLIB_SYMBOL_PREFIX as that can't be passed from command-line to compiler. In worst case, it would trigger rebuild of unrelated files unless we limit the scope for the command-liine parameter and that would just make things even messier. Everything would also need to be duplicated for configure and cmake.

Yes, I tried to enable prefix and compare versions with/without. Actual code gets diffs, so, perhaps the change would be not as straightforward as I initially thought.
One other thing. I did compare zlib.h vs zlib-ng.h and zlib-ng uses int32_t all over the place instead of int is very strange. Code shouldn't use these types like that, it's just not normal. Should just use int, and use intXX_t types where you need specific size only (like serialization etc).

The real issue is consistency.... Using "long" or "long long" will break the code for Windows and mixing int64_t and int makes the code less readable...


[Impeller] Vulkan with GL fallback PR failing on device lab Moto G4s

https://github.com/flutter/engine/pull/40809
Rolled into the framework at https://github.com/flutter/flutter/pull/123839
Failing on framework tree https://ci.chromium.org/ui/p/flutter/builders/prod/Linux_android list_text_layout_impeller_perf__e2e_summary/4362/overview
@dnfield @chinmaygarde
P0 until reverts land and the roller starts moving again.

Dan is OOO today. Just following up here. There revert has landed and we are waiting until the rolls are going. The failure was due to validation logs being fatal. These should be non-fatal info logs now that the fallback logic is in place. I'll take a look at these. I believe these are fatal only in some modes which is probably why this escaped presubs. Regarding the binary size increase, this patch made it so that the entire Vulkan backend could now be used instead of the OpenGL backend directly. The binary size increase locally was expected to be less but this the SPIRV shaders could compress differently perhaps. It's also possible that the binaries are mutli-arch. I'll eyeball the diffs to see if everything makes sense but this was expected to be the first roll with the binary size implications of having an entire rendering backend + packaged shaders.

This issue will be closed when the revert lands. Followup issues are in https://github.com/flutter/flutter/issues/123884 and https://github.com/flutter/flutter/issues/123885.

The engine -> framework roll has recovered.


rs2_ vs rs2:: while getting frame info

Before opening a new issue, we wanted to provide you with some useful suggestions (Click "Preview" above for a better view):

Consider checking out SDK examples.
Have you looked in our documentations?
Is you question a frequently asked one?
Try searching our GitHub Issues (open and closed) for a similar issue.

All users are welcomed to report bugs, ask questions, suggest or request enhancements and generally feel free to open new issue, even if they haven't followed any of the suggestions above :)

Required Info

Camera Model
D400

Firmware Version
<IP_ADDRESS>

Operating System & Version
Ubuntu 16.04

Kernel Version (Linux Only)
4.15.0-36-generic

Platform
PC

Language
C++

Issue Description
I need to get the timestamps, actual exposure and the frame count. I understand these are a part of the metadata of the frame if metadata support is enabled in the OS as found here.
https://github.com/IntelRealSense/librealsense/blob/master/doc/frame_metadata.md
I have been going through the documentation and I cannot find a good enough explanation on the difference between commands that have an rs2_ prefix vs their counterparts.
For example, frames are stored in the rs2::frame container when the pipeline receives frames. However, in the example  given here:
https://github.com/IntelRealSense/librealsense/blob/master/examples/C/color/rs-color.c#L102
The functions being called have an rs2_ prefix to them (rs2_pipeline instead of rs2::pipeline). What is the significance of this? Are these functions the only way to get access to sensor parameters?

Hi @yashmanian
The examples under examples/C are written to compile with only C compiler, without classes, exceptions, etc...
This can be rather restrictive, so if you are using regular C++ compiler, I'd recommend save-to-disk example as a good starting point.

Hi @dorodnic
So if I understand correctly, the rs2_ prefix is for the C implementations and the rs2:: object would be accessible from C++. Meaning the function calls I see in the save-to-disk example should give me the frame info?

Yes. There is 1:1 mapping between the two APIs (the only exception you might encounter are the rs2_..._to_string methods that don't really need a C++ version) In general, the C++ version is easier to use, since we hide some of the memory management details using C++ abstractions.
The example shows how to use get_frame_metadata to read metadata attached to each frame, and you can access frame number and the timestamp in a similar way.

Thank you. I will close this issue now.


Error when running ionic upload command

Uploading app....
An error occurred uploading the build: TypeError: Cannot read property 'map' of undefined
TypeError: Cannot read property 'map' of undefined
at Object.getDirectUploadKey (/usr/local/lib/node_modules/ionic/node_modules/ionic-app-lib/lib/upload.js:262:18)
at /usr/local/lib/node_modules/ionic/node_modules/ionic-app-lib/lib/upload.js:40:21
at _fulfilled (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:787:54)
at self.promiseDispatch.done (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:816:30)
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:749:13)
at /usr/local/lib/node_modules/ionic/node_modules/q/q.js:509:49
at flush (/usr/local/lib/node_modules/ionic/node_modules/q/q.js:108:17)
at _combinedTickCallback (internal/process/next_tick.js:67:7)
at process._tickCallback (internal/process/next_tick.js:98:9)
Cannot read property 'map' of undefined (CLI v2.1.4)
My system information:
Cordova CLI: 6.3.1
Gulp version:  CLI version 3.9.1
Gulp local:
Ionic Framework Version: 2.0.0-rc.2
Ionic CLI Version: 2.1.4
Ionic App Lib Version: 2.1.2
ios-deploy version: 1.8.6
ios-sim version: 5.0.8
OS: Mac OS X Sierra
Node Version: v6.9.0
Xcode version: Xcode 8.0 Build version 8A218a

Did you figure this out? This was working for me before.

Yeh, I just check it again and it's working fine.


Add workflow for multi-arch-build, and prerequisites.

This PR includes the work done here https://github.com/FreedomBen/dory-dnsmasq/pull/2 - it includes Mac M-series support and a makerfile (namely for local development).
It also uses the lates alpine release, and installs dnsmasq-dnssec within the Dockerfile, to reduce the external and outdated dependency on andyshinn/dnsmasq.
A workflow will build for multi-arch platforms and push to Docker Hub.

@wilson1000-MoJ , would you mind reviewing?

Fingers crossed for the workflow. Obviously, it will never work first time!


Disable  all services and use host based network

Hi jcmorais,
I  started with  haproxy ingress using my own k8s yml files. Now I  started using helm. In this new context,
I realized  that there is a creation of some  services. I want to work 100% host based network with no NAT.
So I dont need a service of  kind loadbalancer that is been created because the haproxy ingress will bind directly in the host's ports.
I have already put the "config:" (my config map) and  the hostnetwork to true. It worked.
But I dont need this service and I dont know how to disable this service creation.
Can you help me ?

Hi, this is actually not supported, you can only configure the type of the service. But I agree that an enabled attribute would be helpful, I'll take care of it and add in the next release.

ok... thanks... I will  delete the service manually


baseurl should support multiple url per documentation

Cookbook version

yum (3.10.0)

Chef-client version
Starting Chef Client, version 12.9.41
Platform Details
CentOS 6.7
Scenario:
Per the baseurl documentation i expect to be able to specify multiple url.
baseurl - Must be a URL to the directory where the yum repository's 'repodata' directory lives. Can be an http://, ftp:// or file:// URL. You can specify multiple URLs in one baseurl statement.
Steps to Reproduce:
yum_repository 'centos' do
description "demo"
baseurl [ 'http://mirror.hmc.edu/centos/6.7/os/x86_64/',  'http://mirrors.liquidweb.com/CentOS/6.7/os/x86_64/ ]
gpgkey 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6'
action :create
end
Expected Result:
this should produce 1 baseurl entry and the addition entry should be url. as in manpage
reference http://linux.die.net/man/5/yum.conf
baseurl Must be a URL to the directory where the yum repository's 'repodata' directory lives. Can be an http://, ftp:// or file:// URL. You can specify multiple URLs in one baseurl statement. The best way to do this is like this:
[repositoryid]
name=Some name for this repository
baseurl=url://server1/path/to/repository/
url://server2/path/to/repository/
url://server3/path/to/repository/
Actual Result:
only produces a single baseurl

@sclark007 Thanks for the report! Apologies for the delay in resolving, but version 3.12.0 of this cookbook should implement this as expected.

still its not working in chef-client Chef: 13.1.31, its only taking first url. Any suggestions please

As per this chef doc https://docs.chef.io/resource_yum_repository.html and   url https://github.com/chef-cookbooks/yum/issues/155, baseurl should supports multiple urls in yum_repository resource, but after executing the code its listing packages from only firsturl . Here is my code..
yum_repository 'ade_repo' do
description "ade_repo"
baseurl  ['http://xxxxxx-yum-xxxx-01.us.xxx.com/xxxx/LOB/xxx/ADE/x86_64/','http://xxxxx-yum-xxxx-01.us.xxx.com/xxxx/xxxxx', 'http://xxxx-yum-xxx.02.com/xxxxxxxxxxxxxxxxxxx']
metadata_expire=0
action :create
end
Generated repo after chef-client run
This file was generated by Chef
Do NOT modify this file by hand.
[ade_repo]
name=ade_repo
baseurl=http://xxxxxx-yum-xxxx-01.us.xxx.com/xxxx/LOB/xxx/ADE/x86_64/
http://xxxxx-yum-xxxx-01.us.xxx.com/xxxx/xxxxx
http://xxxx-yum-xxx.02.com/xxxxxxxxxxxxxxxxxxx
enabled=1
fastestmirror_enabled=0
gpgcheck=1
Actual Result:
but here problem is we are able to list the packages from only 1st url but not from the 2nd and 3rd urls. (http://xxxxx-yum-xxxx-01.us.xxx.com/xxxx/xxxxx
http://xxxx-yum-xxx.02.com/xxxxxxxxxxxxxxxxxxx  )
Can you please check above code and suggest me.


ARROW-14596: [C++][Python] Read table nested struct fields in columns

Part of ARROW-14596, and ARROW-13798
Does not propose to solve selecting from lists in this PR; only supporting dotted paths into arbitrarily nested structs using existing FromDotPath. Selecting from lists will require further discussion and support for kernels to select struct subsets from lists.
Until then, a user can select subsets of a struct from a list element via:

table = pa.table(
    {"user_id": ["abc123", "qrs456"],
     "interaction": [
        {
            "type": "click",
            "element": {'a': "button"},
            "values": [1, 2],
            "structs":[{"foo": "bar"}]},
        {
            "type": "scroll",
            "element": {'a': "window"},
            "values": [3, 4],
            "structs":[{"fizz": "buzz"}]}
     ]
    })

pq.write_table(table, "test_nested_data.parquet")
dataset = ds.dataset("test_nested_data.parquet")

# Select only single field from structs in a list
dataset.to_table(columns={
        "result_name": pc.struct_field(
                pc.list_element(pc.struct_field(ds.field("interaction"), [1]),
                                ds.scalar(0)),
                [0])
        }
)
# pyarrow.Table
# result_name: string
# ----
# result_name: [[null,"buzz"]]

# Or keeping struct shape...

struct_subset_type = pa.struct([("structs", pa.list_(pa.struct([("fizz", pa.string())])))])
dataset.to_table(columns={"interaction": ds.field("interaction").cast(struct_subset_type)})
# pyarrow.Table
# interaction: struct<structs: list<item: struct<fizz: string>>>
#   child 0, structs: list<item: struct<fizz: string>>
#       child 0, item: struct<fizz: string>
#           child 0, fizz: string
# ----
# interaction: [
#   -- is_valid: all not null
#   -- child 0 type: list<item: struct<fizz: string>>
# [      -- is_valid: all not null
#       -- child 0 type: string
# [null],      -- is_valid: all not null
#       -- child 0 type: string
# ["buzz"]]]

I generally agree with the first two points, although I do like the explicitness of a leading dot.
The third point, it could be a potentially buggy convenience add on. ie.
pa.table({"a.dotted.field": [1], "nested": [{"field": "value"]})
(..., columns=["a.dotted.field", "nested.field"])

vs explicitly mapping maybe?
(..., columns=[{"my_dotted_field": "a.dotted.field", "nested_field": "nested.field"}])

Parquet is still materializing the entire column, correct?

Yes, for that I opened https://issues.apache.org/jira/browse/ARROW-17959

Thanks!


After upgrading from version 0.2.1 to 0.3.0, the backend of the model is null

Describe the bug

Steps to reproduce

Install GPUStack v0.2.1
Deploy a model
Upgrade GPUStack to v0.3.0
View the information of the model.

Result

The backend of model is null.

Expected behavior

Environment

GPUStack version: v0.3.0
OS: macOS 14.6.1
GPU: Apple M2

Additional context
Add any other context about the problem here.

Issue 2: Failed to run model instances using the vLLM inference engine after upgrading from 0.2.1

Workaround: Delete the worker on the UI and then restart the GPUStack service.


Software versions

@Remi-Gau:
"Something that can also be done for the main softwares is to also make list of the all the versions they have: see for example here
https://docs.google.com/spreadsheets/d/1ZfxJdQ-a9Y-hoY37jZN8stPHjQmyHxQKM3wEhv8MqAo/edit?usp=sharing
This could help later to add extra questions to check which version people used."

We have added this now. Check it out: https://artemis.incf.org/help 😎