I want to color my console text?

I'm using a .net core 3.1 Console App, and I just want to color keywords in my source string from another layer, and have the presentation layer parse the markdown to display colored words.
it's just for normal console text, not html or anything. I'm currently working on my own implementation but would rather not if I don't have to. can I do that with this? I seen that was a .ToHTML piece of code in the readme, is there a like, .ToConsole or .ToValueKeyPairList or something?

it's just for normal console text, not html or anything. I'm currently working on my own implementation but would rather not if I don't have to. can I do that with this? I seen that was a .ToHTML piece of code in the readme, is there a like, .ToConsole or .ToValueKeyPairList or something?

No there is no built-in like this, you need to develop your own renderer.

If I wanted to pull in a .ToDictionary(string, color) (no idea if this is best route) using MarkDig, would it be difficult for someone new to programming?

It is quite some work, Powershell has done a similar work here https://github.com/PowerShell/PowerShell/tree/master/src/Microsoft.PowerShell.MarkdownRender that you could base your work on.


Add Support for Spain

RP2 and DaLI have a programmable plugin architecture for countries, accounting methods, report generators and more. Adding support for a new country is a high-impact activity because it allows many new potential users to get access to RP2 and DaLI.
Here's how to add support for a new country:

add a new country plugin to RP2;
if the country requires accounting methods that aren't already supported in RP2, add the necessary accounting method plugins;
ensure any newly added accounting methods are reflected in the country plugin's get_default_accounting_method() and get_accounting_methods() methods;
optionally, new country-specific report generators can be added. The built-in report generators (i.e. rp2_full_report and open_positions) are automatically supported;
only for non-English speaking countries: translations for the built-in report generators and for any new report generator can be added;
ensure any newly added report generators are reflected in the country plugin's get_report_generators() method;
add the same country plugin to DaLI. The implementation on the DaLI side is trivial: it's just an entry point instantiating the RP2 country plugin and passing it to the main function;
update the documentation of RP2 and DaLI to reflect the new country, accounting methods (if any) and report generators (if any).

If you notice the country-specific infrastructure is missing a feature that is required to express taxes for the new country, open an issue to let the RP2 community know.

Hi, i´m trying (i´m not a programmer) add support to spain, i´ve country plugin, translations and using full_report, but i have a problem with templates in dali-rp2 showing fiat in $. template.ods not country-specific and i dont know how to solve it. any tip? Thanks

The template is country-specific. You'll have to make a new one for Spain in order for the currency to show in Euros. If you submit a PR, we could probably walk you through it.

The template is country-specific. You'll have to make a new one for Spain in order for the currency to show in Euros. If you submit a PR, we could probably walk you through it.

Yes, and you can also look at the plugin for Japan, which already went through the procedure. Here are a few relevant bits:

Japanese templates,
Japanese report referring to said templates,
Japanese translation (they're currently absent but they would go where the empty strings are).


String autocompletion improvement

Could you add a test for this new feature please. Thanks

@angelozerr I've turned this into a CodeMirror addon. To test it it'd be needed to integrate the CM test suite into the repository. Would it be a good idea to copy over "test" from CM as test/codemirror, remove the CM tests not relevant to this repository, include the suite into our tests and configure it to just run the CM tests for this addon?

For test, I mean tabris_Proxy_set that you have added
For CM, you can add tes too.

@angelozerr Thanks for your answer, I've added a test.

Thanks @cpetrov !


is there any demo, or code that I can use it to test my videos? Can it test in real-time?

I might add demo when I have time.
I would suggest look at this script to write your own dataloader and perform testing.

Ok. thanks. I will write that. By the way, can the model test the video in real-time?

@qiumei1101 , were you able to run the demo by modifying FGFA?


Assets missing on GitHub Release post

https://github.com/mattermost/desktop/releases/tag/v5.1.0 is missing release assets whereas https://github.com/mattermost/desktop/releases/tag/v5.0.4 had them. This is required because this is the only approved download source for some users for the desktop client.

Might be related to https://github.com/mattermost/desktop/pull/1810 or https://github.com/mattermost/desktop/pull/2059
@elyscape @Willyfrog @devinbinnie

@bbodenmiller Can you provide reasoning why users are not able to download from our website? I would like to understand the requirements better. Thanks!

This happens because ghr, the tool used to create the GitHub release, only looks at the immediate descendents of provided paths. The contents of ghr-dist/ are assembled with this in mind.
The various build jobs place the release assets into the build workspace under the paths linux/, macos-release/, and win-release/. In the release job, the build workspace is attached to build/, after which build/{macos-release,win-release,linux}/* is copied into ghr-dist/.
The problem is that, as part of #1714, the build jobs were modified to place the release assets into versioned subdirectories of macos-release/, win-release/, and linux/. As a result, when ghr begins execution, the contents of ghr-dist/ look something like this:
ghr-dist/
├── 5.1.0
│   ├── mattermost-desktop-5.1.0-linux-i386.AppImage
│   ├── mattermost-desktop-5.1.0-linux-i686.rpm
│   ├── mattermost-desktop-5.1.0-linux-ia32.tar.gz
│   ├── mattermost-desktop-5.1.0-linux-x64.tar.gz
│   ├── mattermost-desktop-5.1.0-linux-x86_64.AppImage
│   ├── mattermost-desktop-5.1.0-linux-x86_64.rpm
│   ├── mattermost-desktop-5.1.0-mac-m1.dmg
│   ├── mattermost-desktop-5.1.0-mac-universal.dmg
│   ├── mattermost-desktop-5.1.0-mac-x64.dmg
│   ├── mattermost-desktop-5.1.0-x64.msi
│   ├── mattermost-desktop-5.1.0-x86.msi
│   ├── mattermost-desktop-setup-5.1.0-win.exe
│   ├── mattermost-desktop_5.1.0-1_amd64.deb
│   └── mattermost-desktop_5.1.0-1_i386.deb
├── builder-debug.yml
├── builder-debug.yml.~1~
├── builder-debug.yml.~2~
├── latest-linux-ia32.yml
├── latest-linux.yml
├── latest-mac.yml
└── latest.yml

Since ghr doesn't recurse, it only picks up the yml files at the root, resulting in no useful release assets being uploaded to GitHub.
One way to fix this would be to just include the version in the cp command:
mkdir -p ./ghr-dist
VERSION=$(jq -r .version package.json)
cp -r --backup=numbered ./build/{macos-release,win-release,linux}/${VERSION}/* ./ghr-dist

An alternate, somewhat more resilient fix would be to use find to enumerate and copy the various build subdirectories.
mkdir -p ./ghr-dist
find ./build/{macos-release,win-release,linux} -type f -exec cp --backup=numbered -t ./ghr-dist {} +

This has the benefit of not needing updates if further changes are made down the line within the build subdirectories, and could even be simplified further if the Linux build job were updated to place its output into build/linux-release:
mkdir -p ./ghr-dist
find ./build/*-release -type f -exec cp --backup=numbered -t ./ghr-dist {} +

As an aside, I would recommend either renaming the build-debug.yml files to include the platform name, such that they won't collide, or not including them as release artifacts. This would allow for the --backup=numbered flag to be removed.

Update: adding the version to the cp command will break the upload of the assorted latest.yml files, as those don't get placed in the versioned subdirectories.

@bbodenmiller Can you provide reasoning why users are not able to download from our website? I would like to understand the requirements better. Thanks!

@devinbinnie various organizations only allow downloads via approved proxies (e.g. via Artifactory). GitHub is easy to configure as a remote repo in Artifactory whereas https://releases.mattermost.com appears impossible to setup as Artifactory remote repo.


Prometheus fix metrics

Description
First Commit - feat: normal priority as default task execution
Changed the default Execute TaskItem default priority from Critical(0) to Normal.
Second Commit - fix: prometeus Inc/Dec gauge metrics
In this pull #19, I tried to remove the counter copies to use the counter reference and then set the Prometheus gauge value with the counter instant value. I tested in production and the issue persists.
The Prometheus documentation suggests using the Inc and Dec method for a queue problem as we have here.
As I mentioned in #22, it is possible to replicate using only unit tests.
This commit changes the use of gauge.Set to gauge.Inc and gauge.Dec in the queue and concurrency events.
Thrid Commit - fix: prometheus resolves UNKNOWN method
After the second commit, I improved the integration tests to add more tests with more than one priority task and added a second HTTP Method (Delete).
In this test, is possible to watch the IAdaptativeLimiterOptionsExtensions.GetMethod losing the HttpContext and resolving the UNKNOWN method.
I propose to send the method on ITaskManager.AcquireAsync used by Middleware and then we never need to resolve the method anymore during the task execution. Additionally allows users to define the method they want outside of the use of AdaptiveConcurrencyLimiterMiddleware.
Fixes #22
How Has This Been Tested?
Run the integration tests
Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have added tests to cover my changes
[x] I have made corresponding changes to the documentation

Disclaimer
By sending us your contributions, you are agreeing that your contribution is made subject to the terms of our Contributor Ownership Statement

Benchmark results
MAIN is the main branch, FIX-QUEUE includes this pull request and the previous changes published in the beta version 1.0.1-beta.
| Method                           | Mean     | Error   | StdDev  | Min      | Max      | Rank | Gen0   | Completed Work Items | Lock Contentions | Allocated |
|--------------------------------- |---------:|--------:|--------:|---------:|---------:|-----:|-------:|---------------------:|-----------------:|----------:|
// MAIN
| Limiter_Default                  | 279.9 ns | 3.21 ns | 2.12 ns | 274.8 ns | 282.4 ns |    1 | 0.0572 |               0.0000 |                - |     720 B |
| Limiter_RandomPriority           | 293.1 ns | 4.92 ns | 2.93 ns | 289.6 ns | 299.3 ns |    2 | 0.0572 |               0.0000 |                - |     720 B |
| LimiterMiddleware_Default        | 319.2 ns | 3.07 ns | 1.83 ns | 316.4 ns | 322.4 ns |    3 | 0.0648 |               0.0000 |                - |     816 B |
| LimiterMiddleware_RandomPriority | 322.8 ns | 3.56 ns | 2.35 ns | 319.3 ns | 327.5 ns |    3 | 0.0687 |               0.0000 |                - |     864 B |
// FIX QUEUE
| Limiter_Default                  | 226.8 ns | 10.25 ns |  6.78 ns | 217.6 ns | 236.5 ns |    2 | 0.0484 |               0.0000 |                - |     608 B |
| Limiter_RandomPriority           | 217.8 ns |  9.43 ns |  5.61 ns | 208.8 ns | 223.7 ns |    1 | 0.0484 |               0.0000 |                - |     608 B |
| LimiterMiddleware_Default        | 250.1 ns | 22.37 ns | 14.80 ns | 237.3 ns | 275.5 ns |    3 | 0.0558 |               0.0000 |                - |     704 B |
| LimiterMiddleware_RandomPriority | 265.5 ns | 17.12 ns | 11.33 ns | 249.9 ns | 285.1 ns |    4 | 0.0596 |               0.0000 |                - |     752 B |
// DIFF
CPU -21%
Memory -14%

| Method                                       | Mean     | Error     | StdDev    | Min      | Max       | Rank | Completed Work Items | Lock Contentions | Allocated |
|--------------------------------------------- |---------:|----------:|----------:|---------:|----------:|-----:|---------------------:|-----------------:|----------:|
// MASTER
| TaskQueueWith1000Items_EnqueueFixedPriority  | 1.538 us | 0.5865 us | 0.3068 us | 1.200 us |  2.000 us |    1 |                    - |                - |     592 B |
| TaskQueueEmpty_EnqueueRandomPriority         | 2.267 us | 1.2715 us | 0.7566 us | 1.300 us |  3.400 us |    2 |                    - |                - |     592 B |
| TaskQueueWith1000Items_EnqueueRandomPriority | 1.970 us | 0.7669 us | 0.5073 us | 1.350 us |  2.650 us |    2 |                    - |                - |     592 B |
| TaskQueueWith1000Items_Dequeue               | 2.720 us | 1.8568 us | 1.2282 us | 1.800 us |  5.300 us |    2 |                    - |                - |     544 B |
| TaskQueue_EnqueueNewItem_LimitReached        | 7.460 us | 3.5054 us | 2.3186 us | 3.900 us | 10.800 us |    3 |                    - |                - |     736 B |
// FIX QUEUE
| TaskQueueWith1000Items_EnqueueFixedPriority  | 1.670 us | 0.7477 us | 0.4945 us | 0.9000 us | 2.400 us |    1 |                    - |                - |     600 B |
| TaskQueueEmpty_EnqueueRandomPriority         | 1.222 us | 0.5095 us | 0.3032 us | 0.9000 us | 1.900 us |    1 |                    - |                - |     600 B |
| TaskQueueWith1000Items_EnqueueRandomPriority | 2.070 us | 0.5922 us | 0.3917 us | 1.3000 us | 2.500 us |    2 |                    - |                - |     312 B |
| TaskQueueWith1000Items_Dequeue               | 2.156 us | 0.5187 us | 0.3087 us | 1.8000 us | 2.800 us |    2 |                    - |                - |     472 B |
| TaskQueue_EnqueueNewItem_LimitReached        | 2.600 us | 1.3729 us | 0.8170 us | 2.0000 us | 4.500 us |    2 |                    - |                - |     600 B |
// DIFF
CPU -39%
Memory -15%


Add EXTX_overlay support

adds the ability to create openxr based overlays, this will only work with monado and wivrn since other runtimes like steamvr don't implement the EXTX_overlay extension

will be addressed in #126


docs: replace documentation generator

docs: replace documentation generator
feat: improve typedoc config, docs generation

#155  👈 (View in Graphite)
main

This stack of pull requests is managed by Graphite. Learn more about stacking.


⚠ ClamAV has degraded performance

In 13ebcf3, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 73 ms

Resolved: ClamAV performance has improved in 582d333 after 5 minutes.


[BEAM-2190] pom.xml: do a better job of dependency management

Even if Beam appears to have the correct dependencies, we cannot
guarantee that modules that depend on us transitively get the right
dependencies. For example, even though grpc-protobuf-lite has
protobuf-lite excluded, and the Maven Enforcer banned-dependencies
check passes... if a user happens to get a transitive dependency on
grpc-all first, they may pull in grpc-protobuf from that other source
without the exclusion. Thus we need to exclude protobuf-lite from
grpc-all as well.
While we're here, also add guava-jdk5 to the set of banned dependencies,
though (as above) we cannot currently properly identify the places it
might be transitively exposed in a users' pom.xml.
R: @davorbonaci

Coverage increased (+0.004%) to 70.268% when pulling 4d0c4563f8fe1fb6831d7090c12158f1155dccbd on dhalperi:banned-protobuf-lite into 04e3261818aed0c129e7c715e371463bf5b5c1b8 on apache:master.

Coverage remained the same at 70.584% when pulling c39011cfa75783d1176d40243ded7b194ab67f80 on dhalperi:banned-protobuf-lite into a0da7becae2ce4346f04d2194b5553333e41d0d1 on apache:master.


Disable inactivating item with inventory and don't show inactive item…

…s on storage location.
Might have some failing tests here as I updated the inventory_for to stop showing zero-inventory items, so might need to fix other expectations.

It should still show them on the storage location page because it explicitly includes them in the query.

It's still letting me inactivate with non-zero inventory, too.

It should still show them on the storage location page because it explicitly includes them in the query.

Well, I did an inventory adjustment of AB L/XL down to 0, and it disappeared from the SL page.   Checked the current behaviour on the production branch -- it doesn't disappear.

Please make this one your first priority, coding-wise,  as it will hold up the release.  Danke.

Just recreated the part where you can deactivate items that have inventory again:   Fresh seed.
Without Read events enabled
1/Login as<EMAIL_ADDRESS>2/ in the left hand menu, click Inventory, then Storage Locations, then view on Bulk Storage Locations.  I see Adult Briefs L/XL as having some inventory (1416, in my case, but your mileage will vary).
3/ Click on Items & Inventory.  Click on the Delete button beside Adult Briefs L/XL.  Say ok when it asks you if you want to do this.
It claims Adult Briefs L / XL have been removed, and it no longer appears in the list.    [This should not be allowed,  right?]
4/ Click on Storage Locations, then view on Bulk Storage Locations.  Adult Briefs L/XL is still there with the original amount.

Ignore the comment from 2:28 or so.  Didn't have the very latest. Am trying to recreate again.

Well, the first part is definitely still happening on my local, without read_events:
Login as<EMAIL_ADDRESS>Click Inventory, then Storage Location, them the 'view' button beside Adult Briefs L/XL.  Confirm that it is not zero.
Click items & Inventory, then click the 'Delete' beside Adult Briefs L/XL.  Click OK.  It says that item has been removed, and it does not appear in the list anymore.
We shouldn't according to my understanding, be able to delete that item,  because it has inventory.

I'm getting the same results with read_events enabled.

@cielf deleting an item is not the same as making it inactive. There is a checkbox in the "edit" page that does that.

Hrm.  Um - but it shows up again if I click 'Also include inactive items"     So what is the difference?

Also - on the read_events side,  after deleting the item, I got the error I mentioned (View::Inventory::ViewInventoryItem#name delegated to db_item.name, but db_item is nil: #<View::Inventory::ViewInventoryItem item_id=1 quantity=699 storage_location_id=1 db_item=nil>)   If I tried to view the storage location after the above steps.

... Item.destroy is redefined to instead deactivate it. 🤦 so we have to copy that check to that place. I'd rather fix it so that doesn't happen, tbh, and have that handled in a delete service.
Thanks - will look again tomorrow.

The delete calls item.destroy , which is overriden to call deactivate if the item has history
From item.rb:
def destroy
if has_history?
deactivate
else
super
end
end

This is a footgun just waiting to go off. Looks like there is already an issue because one code path will deactivate an associated kit and the other won't.
@cielf any issues with removing one or the other paths? I think it'll be simpler to require users to click the "Delete" button to deactivate the item, and remove the checkbox from the update path. We can update the wording on the item to "Deactivate" if it has history. Thoughts?

If we're only to keep one, I would keep the button in the list. I like the idea of changing the wording.
We can probably 'sell' it as a simplification.

@cielf finally got this done

Item page will show "Delete" if it has no history at all, "Deactivate" if it has history but no inventory/kits, and a disabled "Deactivate" button if it has either of those and hence can't even be deactivated. Removed the "Item Is Active?" field from the edit page.
Not sure if some tests will fail, will wait to see.

Finally good to go here I think!

From functional test:  If you have an active item that been in a storage location but is now 0 there,  the storage location should show in the list in the item view (Inventory | Items & Inventory | view the item in question).     It isn't appearing if read_events is enabled.
I'm willing to let this go forward with this issue in place and fix it for next week.

From functional test.  Still getting this, with read_events enabled,  viewing a storage location after having deactivated an item.    FWIW, the item was deactivated with read_events off,  but that is certainly in the "could happen"  category.

Here is a shortish path to the error:
1/ fully enable read_events
2/ login as org_admin1
3/ Inventory Adjustments — put Adult Briefs L/XL to 0 for both storage locations
4/ Items & Inventory — Deactivate AB L/XL
5/ Storage Locations
and I get the error
If I restore the item, the error goes away.

So.   It looks good to me, functionally,  when read_events is not enabled, but is not ready for prime time when read_events is enabled.

I checked against the production branch, though, and I didn't get the error.

@dorner It appears to me that StorageLocation.items_inventoried is doing things with all items, but trips over its shoelaces on the inactive item.     Given the removal of the filter on Storage Locations,  I posit that items_inventoried should only be looking at active items.  Does that make sense?

 It's OK for it to have inactive items in its cache because it only uses it to populate the db_item for the in-memory item. As long as we have it, it should be populated. Taking an item that used to be active and making it inactive doesn't change all the previous history that had that item in it, and we should be able to view that.


Static aliases fail to create directory structure

This issue is reporting a bug in the code of Perseus. Details of the scope will be available in issue labels.
The author described their issue as follows:

Static aliases do not attempt to create the directory tree of their target

The steps to reproduce this issue are as follows:

Attempt to use a static alias with a target directory (to which the files will be copied by Perseus) that does not yet exist in dist/ — The target engine will panic at run-time instead of creating the directory structure automatically.

A minimum reproducible example is not available.

Hydration-related: false
The author is willing to attempt a fix: true

Tribble internal data
dHJpYmJsZS1yZXBvcnRlZCxDLWJ1ZyxhdXRob3Itd2lsbGluZy10by1pbXBs

If I'm understanding you correctly, this is deliberate behavior, since the system needs to copy/symlink static aliases early on. The aliases must exist for this to work.
Could you explain exactly what you're trying to do?

Ah, I am simply not braining at the moment — the problem was that I had failed to update the target for generating the files with css_mod, and nothing was wrong with Perseus at all. Closing as intended behaviour... I should really get some sleep.

Haha understood! I think we've all been somewhere like that!


potential syntax misunderstanding

The AOL filter ||*.aolcdn.com/os/aol/beacon.min.js$script should be just ||aolcdn.com/os/aol/beacon.min.js$script because the || does not mean "filter starts here" but rather "match this domain, and all subdomains, on both HTTP and HTTPS," and it actually is possible to make hiding rules that don't start with the double-pipe.
To be strict, your filter does exclude aolcdn.com itself, while my fixed version doesn't, but that semantic difference shouldn't matter; also, I did not notice any other problems that indicate a potential misunderstanding of ABP filter syntax.

Yes, I forgot that point. Fixed it up now :+1:


Remediation action for slowing down requests

Implement a remediation action, which slows down requests from a specific IP.

Implementation on keptn side finished. Next, do integration.


fixed is_valid_public_ipv4 not working correctly when ipv6 is given as address

When UPnP gives an ipv6 address to the function is_valid_public_ipv4, instead of return False, it throws an error:
Traceback (most recent call last):
  File "lbry/extras/daemon/component.py", line 63, in _setup
  File "lbry/extras/daemon/component.py", line 55, in _setup
  File "lbry/extras/daemon/components.py", line 493, in start
  File "lbry/extras/daemon/components.py", line 430, in _maintain_redirects
  File "lbry/dht/peer.py", line 39, in is_valid_public_ipv4
  File "ipaddress.py", line 79, in ip_network
  File "ipaddress.py", line 2178, in __init__
ValueError: <redacted ipv6>/32 has host bits set

This is because the checks doesn't stop when parsed_ip.version != 4, but CARRIER_GRADE_NAT_SUBNET.supernet_of(ipaddress.ip_network(f"{address}/32")) and IPV4_TO_6_RELAY_SUBNET.supernet_of(ipaddress.ip_network(f"{address}/32"))) needs a valid IPv4 address.

Thanks so much for finding this and opening a PR! Can we show you some appreciation?

Just a small fix, I don't want appreciation. Also, sorry for responding late.


[ci] Attempt to make CI more reliable by using robocopy to delete

...  buildtrees, packages, and installed, before doing the normal ciclean.

I was wondering if "rename, then remove in background" might improve decoupling and performance.

I was wondering if "rename, then remove in background" might improve decoupling and performance.

The problems we've had in the past have all been running programs, and my understanding is that rename is no help there. Maybe nice perf someday...

just by letting the CI go without being able to complete the delete phase ;)
for sure not a final fix, but something that might be interesting

understood, a broken approach to say a final word on it. Thanks for explaining

Can't the CI just start with a new "active" path each time, and still cleanup the "inactive" paths in the background?


Default id_rsa.pub not $HOME/.ssh/id_rsa.pub

sudo dlite install is definitely not using $HOME/.ssh/id_rsa.pub.
Temporary fix is using sudo dlite install -s "$HOME/.ssh/id_rsa.pub"

this is a weird one since it's working correctly for me, but i think i have a workaround that will hopefully be more consistent

try out the 1.0.3 release i just pushed and let me know if that works for you

Working, thanks a lot!
Steps:
rm -r ~/.dlite
sudo dlite install
sudo dlite daemon
COM1 connected to /dev/ttys002
rdmsr to register 0x570 on vcpu 0
rdmsr to register 0x34 on vcpu 0
sed -i '' -e '$ d' ~/.ssh/known_hosts
ssh<EMAIL_ADDRESS>DhyveOS version 2.0.0
Docker version 1.9.1, build a34a1d5
$

thanks for letting me know!


[BUG] Specifying DICOM_DIR_MAP_FILE causes ValidationError

An error is only supposed to be raised if both DICOM_DIR_MAP_FILE and DICOM_DIR_PARTICIPANT_FIRST are specified

Turns out this is due to changes made in #238 (still unmerged at the time of writing) to accommodate for substitutions. So will add the fix in the PR


Trying to find Chrome version for flash

Nice project and totally understand the "one man hobby project" status. Got a few on those myself:)
I am trying to figure out the "Chrome Version" used in your latest release. Need to get the pepperflash plugin but without correct version, shooting in the dark.
Can you help?
Thank you,
Susan

I am trying to figure out the "Chrome Version" used in your latest release.

@oleteacher pop open an inspector(CtrlOrCmd+Shift+i), click the Console tab, and evaluate navigator.userAgent. It will include something like Chrome/66.0.3359.181

Thanks!


Fix job delimitation loop

@mkouba would it be possible to catch this sort of errors at build time?

Not really - see my comment here: https://github.com/quarkusio/quarkus/issues/20671#issuecomment-948419437


Create labs tab in view patient screen

🚀 Feature Proposal
If I have the ability to view labs and view patients, there should be a labs tab in the View Patient screen.
The labs tab should show a list of labs that are associated with the patient. The table should show the lab type, the lab status, and the requested on date..
Clicking on one of the labs should bring me to /labs/:id.
Motivation
Linking patients and labs.

I'd be happy to take this

Sounds great @rubencgt! I have assigned this to you.

Do we need also a button (Add new Lab) that opens a modal that allows to create a new Lab?
similar to the modal in tab notes for creating new notes.


only put nginx config in 1 vhost default

Is it possible to stop writing this to each vhost?
## Start of configuration add by letsencrypt container
location /.well-known/acme-challenge/ {
    auth_basic off;
    root /usr/share/nginx/html;
    try_files $uri =404;
    break;
}
## End of configuration add by lets encrypt container

ideally it would write to 1 host, like default and not each and every one it finds.

No because if you have a vhost declared it will override the default config.
So we need to declare the config in that specific vhost.


Removing code for 'initializes' and 'accesses' attributes old syntax

The initializes and accesses attributes are old syntax for what now is storageRestriction. So this removes the C++ parser code, serialization, type checking diagnostics and attributes definitions.

@swift-ci Please test


Update azure-stack-add-ips.md

Hello team,
I encountered this prerequisite in SR:120073121000072. I believe that this prerequisite should be written in this document.
Best.

@kongou-ae : Thanks for your contribution! The author(s) have been notified to review your proposed change.


[CIVP-12032] DEP Make joblib and pubnub hard dependencies

Both the joblib and pubnub external libraries provide valuable functionality for users of the Python API client, and they are light, fast to install packages. Make them hard dependencies. Remove code paths which allowed those libraries to be absent, and modify the documentation to reflect the fact that all users will have those two libraries installed.

This is a step in the right direction. Thanks.  LGTM!

@keithing , I forgot the changelog entry. Just added. How does that look?

LGTM


Using a custom dataset for the autopipeline

Hi,
I'm facing an issue below.
"None of [Index(['instance_uid', 'reference_rs'], dtype='object')] are in the [columns]"
  File "/cluster/home/kimsa/SideProjects/dicom_rt_processing/med_imgtools.py", line 36, in <module>
    pipeline = AutoPipeline(input_directory = custom_input_path,

I'm trying to use the custom directory to build an auto-pipleline. And the directory consists of a few patients and looks like this.
|- DicomFolder
	| - PatId001
		|- CT001.dcm
		|- CT002.dcm
		|- CT003.dcm
		|- CT004.dcm
		|- CT005.dcm
		...
		|- RTDOSE001.dcm
		|- RTPLAN001.dcm
		|- RTSTRUCT001.dcm
		|- RTSTRUCT002.dcm
	| - PatId002
		|- CT001.dcm
		|- CT002.dcm
		|- CT003.dcm
		|- CT004.dcm
		|- CT005.dcm
		...
		|- RTDOSE001.dcm
		|- RTPLAN001.dcm
		|- RTSTRUCT001.dcm
		|- RTSTRUCT002.dcm

After I run the code, I get .json, .csv file but facing the above error.
Is there anything I can do to resolve this issue?
Thanks!

Have you tried using the command line tool first? It will behave more robustly than defining your own pipeline.
autopipeline /abs/path/to/input/directory/ /abs/path/to/output/directory/

Thank you,
I got this message and it says there are no CT images.
initializing AutoPipeline...
/cluster/home/kimsa/anaconda3/envs/torch38/lib/python3.8/site-packages/imgtools/autopipeline.py:237: UserWarning: The YAML will not be read since it has not been specified to read them. To use the file, run the CLI with --read_yaml_label_names
  warnings.warn("The YAML will not be read since it has not been specified to read them. To use the file, run the CLI with --read_yaml_label_names")
Couldn't find the dataset index CSV. Indexing the dataset...
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 60.69it/s]
Number of patients in the dataset: 1
Edge table not present. Forming the edge table based on the crawl data...

Total time taken: 0.021503448486328125
Saving edge table in /cluster/home/kimsa/SideProjects/dicom_rt_processing/data/AnonymizedDicom/.imgtools/imgtools__edges.csv
Forming the graph based on the given modalities: CT
There are 1 cases containing all CT modalities.
starting AutoPipeline...
0_309701
Processing: 0_309701
0_309701  start
The subject id: 0_309701 has no CT
/cluster/home/kimsa/anaconda3/envs/torch38/lib/python3.8/site-packages/imgtools/autopipeline.py:710: UserWarning: Patient 00309701 does not have proper DICOM references
  warnings.warn(f"Patient {e} does not have proper DICOM references")
finished AutoPipeline!
Outputted data to /cluster/home/kimsa/SideProjects/dicom_rt_processing/data/AnonymizedDicomProcessedDataset/
Dataset info found at /cluster/home/kimsa/SideProjects/dicom_rt_processing/data/AnonymizedDicomProcessedDataset/dataset.csv

After 1-on-1 work with @SWKoreaBME, discovered two issues:

path in .imgtools csv included extra directory in folder column, making it an invalid path. Verified issue by manually removing the directory from csv fields and pipeline ran properly.
CT,RTSTRUCT,RTDOSE mode throws patient_ID error. suspected modules.datagraph issue with regex lines308-333. None of the regex consider edge types 5 and 6. Fix regex or write new edge type parser.

RTDOSE modality issues have been resolved.
The rel_path problem seems to have been caused by an additional slash at the end. Add parser to remove any last slashes.


Evaluate using Ctrl+click to select several cards

@tinova PR to be approved:

https://github.com/OpenNebula/one-ee/pull/2258


Create action workflow for products

create the workflow for products
fix lint (ignore too-many-instance-attributes, cyclic-import, decrease the number of public methods in the test folder)

Looks good to me


Upgraded storage version of kafkasource

Signed-off-by: Matthias Wessendorf<EMAIL_ADDRESS>Fixes #

Proposed Changes

Release Note

Docs

/retest


Synthesis failed for nodejs-scheduler

Hello! Autosynth couldn't regenerate nodejs-scheduler. :broken_heart:
Here's the output from running synth.py:
<EMAIL_ADDRESS>Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated<EMAIL_ADDRESS>Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated<EMAIL_ADDRESS>https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated<EMAIL_ADDRESS>fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.

><EMAIL_ADDRESS>postinstall /home/kbuilder/.cache/synthtool/nodejs-scheduler/node_modules/protobufjs
> node scripts/postinstall

><EMAIL_ADDRESS>prepare /home/kbuilder/.cache/synthtool/nodejs-scheduler
> npm run compile

><EMAIL_ADDRESS>precompile /home/kbuilder/.cache/synthtool/nodejs-scheduler
> gts clean

version: 14
Removing build ...

><EMAIL_ADDRESS>compile /home/kbuilder/.cache/synthtool/nodejs-scheduler
> tsc -p . && cp -r protos build/

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/watchpack-chokidar2/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 982 packages from 847 contributors and audited 986 packages in 29.308s

56 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

2020-11-17 02:15:20,265 synthtool [DEBUG] > Running prelint...
DEBUG:synthtool:Running prelint...

><EMAIL_ADDRESS>prelint /home/kbuilder/.cache/synthtool/nodejs-scheduler
> cd samples; npm link ../; npm install

><EMAIL_ADDRESS>prepare /home/kbuilder/.cache/synthtool/nodejs-scheduler
> npm run compile

><EMAIL_ADDRESS>precompile /home/kbuilder/.cache/synthtool/nodejs-scheduler
> gts clean

version: 14
Removing build ...

><EMAIL_ADDRESS>compile /home/kbuilder/.cache/synthtool/nodejs-scheduler
> tsc -p . && cp -r protos build/

npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/watchpack-chokidar2/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

audited 986 packages in 12.115s

56 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

/home/kbuilder/.nvm/versions/node/v14.15.1/lib/node_modules/@google-cloud/scheduler -> /home/kbuilder/.cache/synthtool/nodejs-scheduler
/home/kbuilder/.cache/synthtool/nodejs-scheduler/samples/node_modules/@google-cloud/scheduler -> /home/kbuilder/.nvm/versions/node/v14.15.1/lib/node_modules/@google-cloud/scheduler -> /home/kbuilder/.cache/synthtool/nodejs-scheduler
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 173 packages from 114 contributors and audited 261 packages in 6.805s

57 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

2020-11-17 02:15:41,319 synthtool [DEBUG] > Running fix...
DEBUG:synthtool:Running fix...

><EMAIL_ADDRESS>fix /home/kbuilder/.cache/synthtool/nodejs-scheduler
> gts fix

version: 14

/home/kbuilder/.cache/synthtool/nodejs-scheduler/src/v1/cloud_scheduler_client.ts
  104:48  error  'window' is not defined  no-undef

/home/kbuilder/.cache/synthtool/nodejs-scheduler/src/v1beta1/cloud_scheduler_client.ts
  104:48  error  'window' is not defined  no-undef

✖ 2 problems (2 errors, 0 warnings)

Error: Command failed with exit code 1: node ./node_modules/eslint/bin/eslint --fix **/*.ts **/*.js **/*.tsx **/*.jsx --no-error-on-unmatched-pattern
    at makeError (/home/kbuilder/.cache/synthtool/nodejs-scheduler/node_modules/execa/lib/error.js:59:11)
    at handlePromise (/home/kbuilder/.cache/synthtool/nodejs-scheduler/node_modules/execa/index.js:114:26)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async run (/home/kbuilder/.cache/synthtool/nodejs-scheduler/node_modules/gts/build/src/cli.js:120:17) {
  shortMessage: 'Command failed with exit code 1: node ./node_modules/eslint/bin/eslint --fix **/*.ts **/*.js **/*.tsx **/*.jsx --no-error-on-unmatched-pattern',
  command: 'node ./node_modules/eslint/bin/eslint --fix **/*.ts **/*.js **/*.tsx **/*.jsx --no-error-on-unmatched-pattern',
  exitCode: 1,
  signal: undefined,
  signalDescription: undefined,
  stdout: undefined,
  stderr: undefined,
  failed: true,
  timedOut: false,
  isCanceled: false,
  killed: false
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>fix: `gts fix`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>fix script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/kbuilder/.npm/_logs/2020-11-17T10_15_52_129Z-debug.log
2020-11-17 02:15:52,137 synthtool [ERROR] > Failed executing npm run fix:

None
ERROR:synthtool:Failed executing npm run fix:

None
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 102, in <module>
    main()
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmpfs/src/github/synthtool/env/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmpfs/src/github/synthtool/synthtool/__main__.py", line 94, in main
    spec.loader.exec_module(synth_module)  # type: ignore
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/kbuilder/.cache/synthtool/nodejs-scheduler/synth.py", line 37, in <module>
    node.postprocess_gapic_library()
  File "/tmpfs/src/github/synthtool/synthtool/languages/node.py", line 194, in postprocess_gapic_library
    fix(hide_output=hide_output)
  File "/tmpfs/src/github/synthtool/synthtool/languages/node.py", line 179, in fix
    shell.run(["npm", "run", "fix"], hide_output=hide_output)
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 39, in run
    raise exc
  File "/tmpfs/src/github/synthtool/synthtool/shell.py", line 33, in run
    encoding="utf-8",
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['npm', 'run', 'fix']' returned non-zero exit status 1.
2020-11-17 02:15:52,205 autosynth [ERROR] > Synthesis failed
2020-11-17 02:15:52,205 autosynth [DEBUG] > Running: git reset --hard HEAD
HEAD is now at 7f8b30c fix: do not modify options object, use defaultScopes (#305)
2020-11-17 02:15:52,215 autosynth [DEBUG] > Running: git checkout autosynth
Switched to branch 'autosynth'
2020-11-17 02:15:52,222 autosynth [DEBUG] > Running: git clean -fdx
Removing __pycache__/
Removing build/
Removing node_modules/
Removing package-lock.json
Removing samples/node_modules/
Removing samples/package-lock.json
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 354, in <module>
    main()
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 189, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 334, in _inner_main
    commit_count = synthesize_loop(x, multiple_prs, change_pusher, synthesizer)
  File "/tmpfs/src/github/synthtool/autosynth/synth.py", line 65, in synthesize_loop
    has_changes = toolbox.synthesize_version_in_new_branch(synthesizer, youngest)
  File "/tmpfs/src/github/synthtool/autosynth/synth_toolbox.py", line 259, in synthesize_version_in_new_branch
    synthesizer.synthesize(synth_log_path, self.environ)
  File "/tmpfs/src/github/synthtool/autosynth/synthesizer.py", line 120, in synthesize
    synth_proc.check_returncode()  # Raise an exception.
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 389, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['/tmpfs/src/github/synthtool/env/bin/python3', '-m', 'synthtool', '--metadata', 'synth.metadata', 'synth.py', '--']' returned non-zero exit status 1.

Google internal developers can see the full log here.

Autosynth passed, closing! :green_heart:


feat: get the stock date using api

fetch the stock data when deploying
set the github pipeline to redeploy every day

I think we should also be able to fetch the news info from somewhere else😁

Hi! I made further modifications based on this PR. You can see the specific changes from #3 here.

I think the correct operation should be to directly modify and merge on this PR, but I don't know how to do it, so I decided to merge your PR into a new branch and make modifications and create a new PR on the new branch.
Although the method is cumbersome, your PR is the beginning of everything ❤


READV_FIXED and WRITEV_FIXED?

Hi,
I am wondering if FIXED versions of [read|write]v are feasible?  It seems that having a group of registered buffers,  which can be managed by SGLs, would be very useful for applications dealing with variably sized io's using fixed sets of source and sink buffers.
After a brief read of io_uring.c, it seems that having to provide an array of buf_index would make things tricky for both user and kernel space.  So would it be possible to restrict usage so that all iov_base pointers refer to the same chunk of registered user memory?  This would simplify efforts around io_import_fixed() since only one buf_index would need to be checked.
Thanks,
paul

I see there is some discussion on the io-uring kernel mailing list regarding this feature:
https://www.spinics.net/lists/io-uring/msg05358.html

I see there is some discussion on the io-uring kernel mailing list regarding this feature:
https://www.spinics.net/lists/io-uring/msg05358.html

Unless there is a real app which numbers go up with it, I would say it doesn't worth complexity, at least for now. Well, at least I can think of several not very obvious cases that would add some ugliness, would be glad to be proven wrong.


pull request for e2e test at 12/23/2016 14:56:06

:white_check_mark: Validation status: passed
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.


owner in remotes table

What is the purpose of the owner in the remotes table. It just prints out the location of the .git directory. Does it have to do anything with the remotes ?

Maybe the chosen name is not so good @jsixface and we should change it.
It was inspired on https://libgit2.org/libgit2/#HEAD/group/remote/git_remote_owner which really returns the local git path.

The remote owner is gone in the latest libgit2 version 27

Cool, let's remove it.


Add support for update-display messages

@wolfv when we make a xeus-cling release with this, we should probably update the xtensor-io demo notebook to use xcpp::display instead of the custom display set up in the demo notebook.


Add ⌘⇧w to close all tabs 👋

Inspired by @roidrage's tweet:
Life hack: close all browser tabs at the end of the day.Spooky thought, isn't it? Been doing this for years, it's a relief every time.— Mathias Meyer (@roidrage) 19 September 2016

--
The chosen emoji 👋 is to say good bye to all tabs.

Thanks - that's awesome


Stop documentation build raising Exception if code cells raise Exceptions

See #392

Hey @rdbisme thanks for the PR. I am just finishing #380 though, which is a big change of the execution code, so if it's ok, I will look to add this to that

Hey @rdbisme thanks for the PR. I am just finishing #380 though, which is a big change of the execution code, so if it's ok, I will look to add this to that

No problem. The only matter of discussion here I think is if this needs an additional config option or execution_allow_errors is a good choice.

Closing this for now (see my comment https://github.com/executablebooks/MyST-NB/issues/392#issuecomment-1104951602)
Can always re-open later if required


NED-ENU conventions

Hi!
In control.py you invert the sign of pitch and yaw. Is it for converting bodyrates from ENU to NED convention?
If so, why don't you do the conversion from NED to ENU when you pass the input data (i.e., odometry and trajectory) to the MPC?
Thanks in advance!

Yeah I remember the convention to be different and it took a while to get it to work. I think the reason I kept it was because I already had the working MPC code and didn't want to change there. Doing it inside MPC will obviously work as well.

Thanks for the quick reply! So you pass in input to the MPC the same odometry returned by Airsim without transforming it?

Yes it seems so inside control.py. I believe the control convention might be different from the frame convention tho, but I don't exactly remember, you might want to check the docs.

Finally I found the right combination of conventions. Thanks for the help!


fscache: fix possible conflict fscache id

Maybe image ref causes fscache id conflict when user updates
image content using same image ref. So it's more safe to use
snapshot id instead of image ref as the fscache id.
Signed-off-by: Yan Song<EMAIL_ADDRESS>

Maybe image ref causes fscache id conflict when user updates image content using same image ref. So it's more safe to use snapshot id instead of image ref as the fscache id.
Signed-off-by: Yan Song<EMAIL_ADDRESS>
Will this PR solve the possible confliction with OCIv1 layers?

No, it's an unrelated problem.


Add SDG notebook

Proposed changes
Add SDGs notebook that links to all existing notebooks useful for SDGs, grouped under each SDG indicator.
Checklist (replace [ ] with [x] to check off)

[x] Remove any unused Python packages from Load packages
[x] Remove any unused/empty code cells
[x] Remove any guidance cells (e.g. General advice)
[x] Ensure that all code cells follow the PEP8 standard for code. The jupyterlab_code_formatter tool can be used to format code cells to a consistent style: select each code cell, then click Edit and then one of the Apply X Formatter options (YAPF or Black are recommended)
[x] Include relevant tags in the first notebook cell and re-use tags if possible
[x] Ensure appropriate colour schemes  have been used to maximise accessibility for vision impairment. Test your images or learn more with Coblis or TPGI
[x] Clear all outputs, run notebook from start to finish, and save the notebook in the state where all cells have been sequentially evaluated

Closes issues (optional)

Closes Issue #000

It looks really good!

I assume that when finished the links will point to notebooks within the sandbox?
I would be keen to explore the ideas to:

duplicate and export the page as HTML to put on our website, Docs, Community on Helpdesk with links pointing to Docs notebooks, as opposed to links within the
create slides per thematic areas for awareness-raising, workshop hands-out etc...
probably other ideas will pop up.

Also, I would also put the Coastline notebook into SDG 13
Thank you and great job!

I agree that some of the datasets have direct links to SDG. I think we should add Datasets notebooks that are either our services (cropland extent, wofs, fractional cover) or land cover - so all the high level information products.
I've also tweaked the title and text to make it a bit broader and directly mention the DEAfrica services as part of it.

One more comment: there are three files in the folder, I assume this is to make sure the links work in both sandbox and docs. Can we make it more explicit then which one should be used where - in the title, in the description or a README in the folder.

one more, 15.4.2 is missing?


Runtime error on special Phoenix.Endpoint usage

Hello! I tried to replace Cowboy with Bandit in a Phoenix app that uses Absinthe as a GraphQL implementation for our server.
I tried to debug it locally but the error raises sometimes and it’s always linked to our /graphql endpoint.
Here is our special Phoenix.Endpoint usage: We use different plug that halt the connexion before it reaches Phoenix.Router.
  # ...
  plug(Plug.MethodOverride)
  plug(Plug.Head)

  plug(MyAppHealth.Router)
  plug(MyAppGraphQL.Router)
  plug(:halt_if_sent)
  plug(MyAppWeb.Router)

  # Splitting routers in separate modules has a negative side effect:
  # Phoenix.Router does not check the Plug.Conn state and tries to match the
  # route even if it was already handled/sent by another router.
  defp halt_if_sent(%{state: :sent, halted: false} = conn, _opts), do: halt(conn)
  defp halt_if_sent(conn, _opts), do: conn

It does not always "crash" but it seems to be linked to telemetry events. It does not impact the user request. Here is the runtime error:
[mfa=Phoenix.Logger.phoenix_endpoint_start/4 ] [info] POST /graphql
[mfa=Phoenix.Logger.phoenix_endpoint_stop/4 ] [info] Sent 400 in 157µs
[mfa=Phoenix.Logger.phoenix_endpoint_start/4 ] [info] POST /graphql
[mfa=Phoenix.Logger.phoenix_endpoint_stop/4 ] [info] Sent 400 in 166µs
[mfa=Phoenix.Logger.phoenix_endpoint_start/4 ] [info] POST /graphql
[mfa=Phoenix.Logger.phoenix_endpoint_stop/4 ] [info] Sent 400 in 166µs
[mfa=Phoenix.Logger.phoenix_endpoint_start/4 ] [info] POST /graphql
[mfa=Phoenix.Logger.phoenix_endpoint_stop/4 ] [info] Sent 400 in 157µs
[mfa=MyAppGraphQL.Plugs.ErrorReporting.report_message/1 ] [error] [absinthe_resolution_error: [%{"message" => "No query document supplied"}]]
[mfa=:gen_server.error_info/8 ] [error] GenServer #PID<0.1896.0> terminating
** (FunctionClauseError) no function clause matching in Bandit.HTTP1.Handler.handle_info/2
    (bandit 0.6.9) lib/thousand_island/handler.ex:5: Bandit.HTTP1.Handler.handle_info({#Reference<0.2692061718.3879796743.144965>, :ok}, {%ThousandIsland.Socket{socket: #Port<0.55>, transport_module: ThousandIsland.Transports.TCP, read_timeout: 15000, span: %ThousandIsland.Telemetry{span_name: :connection, span_id: "5IBONXXLYJSSSC2Y", start_time: -576460732887533691}}, %{handler_module: Bandit.HTTP1.Handler, plug: {Phoenix.Endpoint.SyncCodeReloadPlug, {MyAppWeb.Endpoint, []}}}})
    (stdlib 4.0.1) gen_server.erl:1120: :gen_server.try_dispatch/4
    (stdlib 4.0.1) gen_server.erl:1197: :gen_server.handle_msg/6
    (stdlib 4.0.1) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Last message: {#Reference<0.2692061718.3879796743.144965>, :ok}
State: {%ThousandIsland.Socket{socket: #Port<0.55>, transport_module: ThousandIsland.Transports.TCP, read_timeout: 15000, span: %ThousandIsland.Telemetry{span_name: :connection, span_id: "5IBONXXLYJSSSC2Y", start_time: -576460732887533691}}, %{handler_module: Bandit.HTTP1.Handler, plug: {Phoenix.Endpoint.SyncCodeReloadPlug, {MyAppWeb.Endpoint, []}}}}

The error never happens on normal Phoenix.Router defined routes.

Yep. Looks like you have a process sending a message ({#Reference<0.2692061718.3879796743.144965>, :ok}) to the underlying HTTP handler process. This isn't generally a supported thing (the Plug API doesn't give us any way to expose such messages up to the application, and because of the way that the underlying server works there's no other easy way for your application to be notified of them).
Is this a new error (since 0.6.9)? I don't see offhand where this would be coming from telemetry, at least within our implementation, but it's brand new so it's always a possibility.

I don’t know if it’s new, what version would you like me to try on?

what telemetry events are you hooking, and what's the implementation on your side of them

I’m attaching handlers for phoenix.router_dispatch.stop.duration in my code, do you think it can be linked? I’ll try again but with my telemetry handlers disabled 👍

I would try with Bandit 0.6.8 if you could, just to ensure it's nothing related to our recent telemetry additions (the event you mention is emitted by phoenix itself, so I'm doubtful, but want to be sure).
I suspect that you'll continue to see the errors occurring even on 0.6.8, at which point we can confidently start looking at what it is specifically that your telemetry handlers are doing. Is it possible to share them here?

I’m using TelemetryUI to attach handlers. You can see the code here: https://github.com/mirego/telemetry_ui/blob/v2.0.1/lib/telemetry_ui/reporter.ex#L20

Closing as there's nothing for us to do here.


OSGi classloading issue with "com.sun.xml.ws.runtime.config.ObjectFactory.class"

Trying to port an existing Eclipse RCP application to Java 11 using the latest jaxws-rt (2.3.3) and jaxb-impl (2.3.3) bundles. These bundles and their dependencies are added to the target platform as we have multiple plugins that require JAXB and JAX-WS.
Problem is that jaxws cannot read it's config file due to classloading issues as per the below stacktrace. It appears that jaxws at com.sun.xml.ws.assembler.MetroConfigLoader.createJAXBContext() is calling javax.xml.bind.JAXBContext.newInstance() without providing a classloader. Therefore javax.xml.bind.JAXBContext passes it's own ContextClassLoader down the call chain. Hower, that classloader can't find com.sun.xml.ws.runtime.config.ObjectFactory .
Caused by: javax.xml.bind.JAXBException: "com.sun.xml.ws.runtime.config" doesnt contain ObjectFactory.class or jaxb.index 	at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:260) 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 	at java.base/java.lang.reflect.Method.invoke(Method.java:566) 	at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:171) 	at javax.xml.bind.ContextFinder.find(ContextFinder.java:313) 	at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:478) 	at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:435) 	at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:336) 	at com.sun.xml.ws.assembler.MetroConfigLoader.createJAXBContext(MetroConfigLoader.java:268) 	at com.sun.xml.ws.assembler.MetroConfigLoader.loadMetroConfig(MetroConfigLoader.java:226)

My knowledge wrt Eclipse RCP is very limited, so unless there is either a simple test case OR reproducible app attached/referenced I cannot do much. Also does using jaxb.properties help?

btw does the problem happens also with webservices-osgi.jar ?

Going down the webservices-osgi path causes another set of missing dependencies

By wrapping my code that sets up the webservices port with the code below fixes the ClassNotFoundError. That piece of code explicitly sets the ContextClassLoader to the classloader used for the Metro Config class. This seems to indicate that default ContextClassLoader used by jaxb when no classloader is provided is not finding classes in jaxws-rt.
    final Thread thread = Thread.currentThread();     final ClassLoader oldLoader = thread.getContextClassLoader();     try {         thread.setContextClassLoader(MetroConfig.class.getClassLoader());         final String endpointAddress = ServiceLocator.getConfigService()             .findValue(ConfigKey.SERVER_MANAGER_ENDPOINT_URL);         return PortFactory.getPort(...);     } finally {         thread.setContextClassLoader(oldLoader);     }

The more I read about OSGi class loading the more I got the feeling that the current jaxb-ri and jaxws-rt will never "co-operate" as they are not coupled through the OSGi wiring. Code in jaxws-ri cannot instantiate classes in jaxws-rt through Class.forName or similar mechanism. OSGi simply doesn't allow this. Of course in Java 8 that all worked as all these classes lived together in rt.jar.
I really hope I am wrong but for now I will have to wrap all calls that instantiate web services with code similar to the above.

GlassFish is an OSGi container and webservices-osgi + jaxb-osgi (+relevant dependencies) do work well together there, relevant APIs are not those coming from JDK but those coming with standalone metro versions. Also note that classes in JDK and in standalone implementation are different. The difference might by also in the OSGi framework in use and its setup - as I said, without something I can easily play with, it is hard to help.

@lukasj I have put together a sample Eclipse RAP project with sources, target platform, and Eclipse workspace that demonstrates the problem. However, it is too big to attach (140MB). How can I get that to you?

one option would be to create github repo, another to use some file sharing service like google drive, dropbox, whatever

File is in DropBox
You need to have the Eclipse IDE for RCP and RAP  installed.
Expand the ZIP, start the IDE with the workspace being the workspace folder provided in the ZIP. You probably will have to configure the Java Runtime setting in the Eclipse IDE to match your environment. Run or Debug the application using the configured "RAP Application". This should open a browser window (may need one refresh) and click the single button shown. That should produce the error.

BTW, this problem is not specific to the Metro Config. It appears any call to JAXBContext newInstance( String contextPath ) has that problem. The ContextClassLoader provided by the Eclipse OSGi environment cannot find the contextPath + ".ObjectFactory" class as it is in a bundle not visible to the jaxb-ri bundle.

@malm66  I could solve loading JAXB on Java 11 OSGi by using a fragment bundle (see https://github.com/elexis/elexis-3-core/tree/master/bundles/jaxb-api-impl-import-java9) It manually adds the import package to jaxb-api - not sure whether this fully fits, but it might be a hint

@col-panic Thanks for the hint but I think my problem is different. Your solution made jaxb-impl visible to jaxb-api so it could find the implementation. BTW, this doesn't seem necessary anymore as that part works now. My problem is that the jaxb-impl bundle calls classLoader.loadClass(<my package name> +".ObjectFactory") but there is no OSGi wiring that connects my bundle to the jaxb-impl bundle. My bundle only knows about jaxb-api and has no idea how it is implemented. Now in my bundles I can work around this by using the JAXBContext.newInstance("", classLoader) API with classLoader being the classloader associated with "my package name". However, the jaxws-ri bundle, over which I have no control, invokes just  JAXBContext.newInstance("com.sun.xml.ws.runtime.config"). With no OSGi wiring between the jaxws-ri and jaxb-impl bundles, jaxb-impl cannot load the com.sun.xml.ws.runtime.config.ObjectFactory class using the classloader it has been given when invoked via the jaxb-api bundle. That classloader is the default ContextClassLoader org.eclipse.osgi.internal.framework.ContextFinder the Eclipse OSGi framework injects. See here for a description of how this classloader works.

As found in https://www.eclipse.org/lists/jaxws-dev/msg00015.html - I just tried the entire org.glassfish.metro.webservices-osgi chain. Yet it fails to run - it's like starting from the beginning, it can't resolve the service implementation
java.lang.NullPointerException: null
	at javax.xml.ws.Service.<init>(Service.java:82) ~[na:na]
	at ch.curabill.services.invoices.InvoicesSOAPService.<init>(InvoicesSOAPService.java:45) ~[na:na]
	at at.medevit.elexis.curabill.core.InvoicesClient.submitInvoice(InvoicesClient.java:196) ~[na:na]

jakarta.xml.bind-api does not work in the OSGI environment without my additional fragment. If i remove it I get the familiar
Caused by: javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
 - with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
	at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:232)
	at javax.xml.bind.ContextFinder.find(ContextFinder.java:375)
	at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:691)
	at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:632)
	at org.glassfish.jersey.jaxb.internal.AbstractJaxbProvider.getStoredJaxbContext(AbstractJaxbProvider.java:311)
	at org.glassfish.jersey.jaxb.internal.AbstractJaxbProvider.getJAXBContext(AbstractJaxbProvider.java:296)
	at org.glassfish.jersey.jaxb.internal.AbstractJaxbProvider.getUnmarshaller(AbstractJaxbProvider.java:212)
	at org.glassfish.jersey.jaxb.internal.AbstractJaxbProvider.getUnmarshaller(AbstractJaxbProvider.java:187)
	at org.glassfish.jersey.jaxb.internal.AbstractRootElementJaxbProvider.readFrom(AbstractRootElementJaxbProvider.java:134)
	... 114 more
Caused by: java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
	at org.eclipse.osgi.internal.framework.ContextFinder.loadClass(ContextFinder.java:145)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
	at javax.xml.bind.ServiceLoaderUtil.nullSafeLoadClass(ServiceLoaderUtil.java:92)
	at javax.xml.bind.ServiceLoaderUtil.safeLoadClass(ServiceLoaderUtil.java:125)
	at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:230)
	... 122 more

at least I have this solution for JAXB - but JAXWS drives me nuts. It seems like I will have to cancel the transition to Java 11 for some more years?!

@col-panic I am not sure what your problem is. For me the jaxb-api / jaxb-impl combination works in the sense that the API finds the implementation without problems. When it comes to initialising any JAXB context though it doesn't work. For my classes I need to pass the relevant class loader into the JAXBContext.newInstance API. And to make jaxws work I have to set the ContextClassLoader before invoking the service. I haven't tried the webservices jar's yet nor when we are the endpoint provider of a webservice. And yes, migrating to Java 11 with jaxb and jaxws is clearly a nightmare in an Eclipse OSGi environment. I tried around the same time last year without success. Getting further this time but it not a done deal yet.

@malm66 thanks for the app, I managed to reproduce your problem. I'll try to play with it over the next few days...

@col-panic note that in you case it is jersey and not jax-ws who is calling jaxb:
[java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
...
	at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:632)
	at org.glassfish.jersey.jaxb.internal.AbstractJaxbProvider.getStoredJaxbContext(AbstractJaxbProvider.java:311)
...

so your problem can be different. Maybe if you put together some reproducer and deliver it to me somehow, I could take a look. Without that it's mostly guessing....

I'm using jersey to implement a jax-rs interface (we forked osgi-jax-rs-connector from holger staudacher in https://github.com/MEDEVIT/osgi-jax-rs-connector). It packs an entire jersey into a single distribution plugin, but uses the available jaxb.
I tried to break-up this packed plugin, manually adding each jersey bundle to the osgi container, but all this hk2 osgi-locator stuff simply does not work right in Eclipse equinox.  Without those libraries being available as they were, I can't seem to get the app running like it was with Java 8. Try to sell a customer the need to switch to Java 11 and explain that you can't (with newer tech) get stuff running that worked ...
I'm stopping this for the moment being - we will stay with Java 8 for quite some time longer ... thx for the help!

I think we would have to setup up and equinox based application that does use all of the services that were removed with Java 11. Either containing multi-release and/or "native" Java 11 / 8 bundles. Then the unit tests would have to be executed both Java 8 and 11. I guess this would also help a lot of people when it comes to migrating such an application (cf. the mailinglist Eclipse RCP entry)

@lukasj The essentially same problem happens when publishing a webservice endpoint

com.sun.xml.ws.model.RuntimeModelerException: class: au.net.synergy.wts.application.server.manager.ServerManager could not be found
	at com.sun.xml.ws.model.RuntimeModeler.getPortTypeName(RuntimeModeler.java:1589)
	at com.sun.xml.ws.model.RuntimeModeler.getPortTypeName(RuntimeModeler.java:1572)
	at com.sun.xml.ws.server.EndpointFactory.create(EndpointFactory.java:227)
	at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:134)
	at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:548)
	at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:530)
	at com.sun.xml.ws.transport.http.server.EndpointImpl.createEndpoint(EndpointImpl.java:304)
	at com.sun.xml.ws.transport.http.server.EndpointImpl.publish(EndpointImpl.java:227)
	at au.net.synergy.wts.application.server.http.HttpService.publishEndpoint(HttpService.java:179)

It does look different but the root cause is the same as RuntimeModeler.getPortTypeName() is using the context class loader clazz = Thread.currentThread().getContextClassLoader().loadClass(epi); to find the interface. And in an (Equinox) OSGi environment that simply won't work. The initial workaround is the same as mentioned before: Fudge the ContextClassLoader to be a classloader that can the see webservice interface class. However, that simple fudge is not enough as then we are back to the proper originally reported problem that the Metro config can't be found. So the final workaround is to inject a custom class loader as the ContextClassLoader that can load both the Metro config and my webservice interface class.
Just out of curiosity I checked where else getContextClassLoader() is used in the jaxws-rt file and it comes up a lot. I am really wondering how many more of those issues I will run into.
com.sun.xml.ws.db.DatabindingFactoryImpl.classLoader()
com.sun.xml.ws.transport.httpspi.servlet.WSSPIContextListener.contextInitialized(ServletContextEvent)
com.sun.xml.ws.util.xml.XmlCatalogUtil.createDefaultCatalogResolver()
com.sun.xml.ws.client.Stub.createPipeline(WSPortInfo, WSBinding)
com.sun.xml.ws.api.pipe.ClientTubeAssemblerContext.createTransportTube()
com.sun.xml.ws.util.ServiceFinder.find(Class<T>, Component)
com.sun.xml.ws.util.ServiceFinder.find(Class<T>)
com.sun.xml.ws.model.RuntimeModeler.getClass(String, Localizable)
com.sun.xml.ws.util.HandlerAnnotationProcessor.getClass(String)
com.sun.xml.ws.model.RuntimeModeler.getPortTypeName(Class<?>, String, MetadataReader)
com.sun.xml.ws.model.RuntimeModeler.getRequestWrapperClass(String, Method, QName)
com.sun.xml.ws.util.MrJarUtil.getResourceAsStream(Class, String)
com.sun.xml.ws.model.RuntimeModeler.getResponseWrapperClass(String, Method, QName)
com.sun.xml.ws.assembler.TubelineAssemblyController.initializeTubeCreators(TubeFactoryList)
com.sun.xml.ws.assembler.MetroConfigLoader.MetroConfigUrlLoader.loadViaClassLoaders(String)
com.sun.xml.ws.api.addressing.NonAnonymousResponseProcessor.process(Packet)
com.sun.xml.ws.api.streaming.new PrivilegedAction() {...}.run()
com.sun.xml.ws.commons.xmlutil.new PrivilegedAction() {...}.run()
com.sun.xml.ws.developer.new PrivilegedAction() {...}.run()
com.sun.xml.ws.spi.new PrivilegedAction() {...}.run()
com.sun.xml.ws.util.xml.new PrivilegedAction() {...}.run()
com.sun.xml.ws.server.WSEndpointImpl.WSEndpointImpl(QName, QName, WSBinding, Container, SEIModel, WSDLPort, Class<T>, ServiceDefinitionImpl, EndpointAwareTube, boolean, PolicyMap)
com.sun.xml.ws.client.WSServiceDelegate.WSServiceDelegate(Source, WSDLService, QName, Class<? extends Service>, WebServiceFeatureList)

@malm66 the thing here is that most of these are used in a (app) server environment, which has different requirements than osgi wrt classloading

@lukasj Not so sure about that claim. The jax-rs reference implementation org.glassfish.jersey had to deal with the same problem and they have written code to handle this. See org.glassfish.jersey.internal.OsgiRegistry. So jax-rs is fine but the jax-ws reference implementation is not. And both are used in app servers as well as client applications. Yes I know, different heritage, and jax-rs is more recent and was never part of the JDK. Still I think it would be desirable for the jax-ws and jaxb reference implementations to work in the Equinox OSGi environment which after all is another Eclipse product.

@lukasj Not so sure about that claim. The jax-rs reference implementation org.glassfish.jersey had to deal with the same problem and they have written code to handle this.

was that part of JDK as well?

I'm running into the same problem. Did anymore manage to solve this issue?
Caused by: javax.xml.bind.JAXBException: "com.sun.xml.ws.runtime.config" doesnt contain ObjectFactory.class or jaxb.index
at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:263)

I used the trick mentioned by @malm66 and run the code with the context class loader that seems to work.
@Execute
public void execute() {
	// starting a webservice
	System.setProperty("jakarta.xml.soap.SAAJMetaFactory", "com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl");
	System.setProperty("javax.xml.soap.SAAJMetaFactory", "com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl");
	String url = "http://localhost:4437/miniwebservice";

	ClassLoader tccl = Thread.currentThread().getContextClassLoader();
	Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
	try {
		javax.xml.ws.Endpoint.publish(url, new WebServiceExample());
	} finally {
		Thread.currentThread().setContextClassLoader(tccl);
	}
}

I pushed my example to https://github.com/vogellacompany/eclipsercp-javaws-java11 is case someone wants to replicate this.

With no OSGi wiring between the jaxws-ri and jaxb-impl bundles, jaxb-impl cannot load the com.sun.xml.ws.runtime.config.ObjectFactory class using the classloader it has been given when invoked via the jaxb-api bundle.

This usually is one of the cases where Dynamic-Import-Package should/could be used as in general there is no way to know in advance the packages to load.


fix(pki_test, upgrader.go): Fix the styling errors in both of these files

On a clean checkout of master if you run make test-styles these two files fail that check. This should fix those errors.

This change is

@jchauncey,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

Good catch—how these sneak in?

I have no idea how these got in.

Thanks for fixing the gap in the style checks, too! LGTM.

this is still inflight while i figure out how to better fix the styling check in circle.


display() - stash to cloudant: submit button state is invalid

PD 0.84: (configured using David's cloudant-spark.jar)
import pixiedust
df=pixidiest.sampleData(6)
display(df)

Select Stash to Cloudant
Note that the submit button is disabled
Create a connection profile (just use the default values)
Select the connection profile
Delete the connection profile

Expected behavior
The submit button is disabled.
Actual behavior
The submit button is enabled and PD raises exception if the button is clicked: ... unable to find connection ...
Steps to reproduce the behavior

Fixed in PR #176

:+1:


Admin > Users: Error when modify status from Active to Inactive

I discovered this on QA but turns out it's also doing this on Prod. Whatever is wrong here, we should also make sure it's behaving as expected for Programs and Organizations, that also have a concept of "Active" and "Inactive". (Update: Did a quick check on QA -- looks ok for programs, not for orgs. Didn't try Prod for those two.)
Users
To reproduce, try changing a user's status from Active to Inactive. This is the error message I get:

Programs
Not getting this error in Programs when I change from Active to Inactive and vice versa.
Organizations
Get a different error message: It just says "Saving Failed."

@jennyhavah  The issue for Users is dead easy to fix, just a few seconds.  I'm not having the same problem with Organizations on Staging or QA.

@sanjuroj I think I know what happened with Organizations. I was updating the status of a test organization already in the system that was somehow added without all required fields complete -- maybe added directly to the database? In any case, the failure had to do with incomplete fields, not an inability to save the status change. Once I filled in all required fields, the status changes registered as expected.
Our error messages in the admin could use some work... but that's a whole Poblano ticket or five.

Ok, glad Orgs are working.  So. Many. Admin. Things. To. Fix.
Let me know if you want to Ghost Pepper this.

@sanjuroj Since user status is an important thing to be able to manage, I think it's GP-worthy, as long as it's isolated and low-risk. Moving to GP.

It's quite isolated and fairly low risk.  The important thing to test will be security; right now nobody can change status.  Since we're enabling updates, we should make sure that everyone can't update.

@sanjuroj Meaning, only Basic Admins and Super Admins? Once you have a fix in place, please let me know what you recommend for testing.

Testing from the frontend should probably focus on ensuring that the restrictions on which users can be inactivated remain in place.  Only users in the a non-MC org should have the inactivation dropdown enabled.  Essentially everything should function as it does on production, except that inactivating a user should no longer error out.

Clarified with Sanjuro that the restrictions to be tested are:

Only basic admins should have access to the admin pages.

Only users in non-MC orgs should have the inactivate dropdown available.  Those are the two I can think of related to Users.

Tested on DEMO:

I do not see the Admin section if I am not a Basic Admin.
When I login as a Basic Admin:

I can see the status menu for Mercy Corps users, but it is not editable.
I can edit the status menu for users from organizations other than Mercy Corps.
When I inactivated external-high, the change appeared to save successfully, and was logged in the Status and History tab.
When I then tried to login as external-high, I got this error: Please enter a correct username and password. Note that both fields may be case-sensitive. Did you forget your password? Click here to reset it.
When I (as Basic Admin) switched that same user back to Active, I was able to login.

When I login as a Super Admin:

Status menus shows up for all users.
I can make users active and inactive, regardless of whether or not they're linked to Mercy Corps.
Status changes show up in the history tab.
When a user's status is changed to Inactive by a SuperAdmin, they can't login, even if they're MC users. (I think this is actually fine.)


Backup Proxy Section: The term 'Get-VBOProxyPool' is not recognized as the name of a cmdlet

Veeam Backup for Microsoft 365 version
7
Bug description
WARNING: [ 07:01:01:327 ] [ Document ] - Backup Proxy Section: The term 'Get-VBOProxyPool' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Command-line input
New-AsBuiltReport -Report Veeam.VB365 -Target SVR-VeeamO365 -Credential $Creds -Format Html,Text -OutputFolderPath 'C:\Report' -EnableHealthCheck
Steps to reproduce

Installed module
Ran mentioned command-line input multiple times and received the same warning and the process just hangs

Expected behaviour
The report to generate as expected
Screenshots

Operating System
Server 2019
PowerShell Version
Name                           Value

PSVersion                      5.1.17763.6414
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.6414
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
PowerShell Modules
Name                      Version

AsBuiltReport.Core        1.4.0
AsBuiltReport.Veeam.VB365 0.3.7
PScribo                   0.10.0
Additional Context
No response
Before submitting

[X] I have read and followed the bug reporting guidelines.
[X] I have read the documentation, and referred to the known issues before submitting this bug report.
[X] I have checked for previously opened & closed issues before submitting this bug report.

Did the report complete? or halt after the warning?


Audio stream not auto-detected for WebRTC in 1.1.0

I recently updated to 1.1.0 and the audio stream stopped coming through for one of my cameras. Downgrading to 1.0.1 fixes the issue. (I've gone back and forth between 1.1.0 and 1.0.1 several times, and the behavior is consistent.)
I'm using the HA add-on with WebRTC integration v3.0.1. I have the camera setup using the Generic Camera integration in HA, pointing to rtsp://localhost:8554/back_yard.
The camera only provides a single audio stream, with PCMA encoding, but go2rtc 1.1.0's RTSP client seems to only want to receive MPEG4 audio.
Audio with 1.1.0 will work if I manually request an audio codec, like rtsp://localhost:8554/back_yard?video=h264&audio=pcma.
go2rtc.yaml:
streams:
  back_yard:
    - rtsp://xxxxx:xxxxxxxxxxxxxxx@<IP_ADDRESS>:554/11
    -<EMAIL_ADDRESS>
Stream info from go2rtc 1.0.1 (audio is working):

{
  "producers": [
    {
      "type": "RTSP source",
      "url": "rtsp://<IP_ADDRESS>:554/11/",
      "remote_addr": "<IP_ADDRESS>:554",
      "user_agent": "go2rtc/1.0.1",
      "medias": [
        "video, sendonly, 96 H264/90000",
        "audio, sendonly, 8 PCMA/8000"
      ],
      "tracks": [
        "96 H264/90000, sinks=1",
        "8 PCMA/8000, sinks=1"
      ],
      "recv": 4100157
    },
    {
      "url"<EMAIL_ADDRESS>    }
  ],
  "consumers": [
    {
      "type": "RTSP client",
      "url": "rtsp://localhost:8554/back_yard",
      "remote_addr": "[::1]:53530",
      "medias": [
        "video, recvonly, 96 H264/90000",
        "audio, recvonly, 97 PCMA/8000"
      ],
      "tracks": [
        "96 H264/90000, sinks=1",
        "97 PCMA/8000, sinks=1"
      ],
      "send": 4100157
    }
  ]
}

{
  "producers": [
    {
      "type": "RTSP source",
      "url": "rtsp://localhost:8554/back_yard",
      "remote_addr": "[::1]:8554",
      "user_agent": "go2rtc/1.0.1",
      "medias": [
        "video, sendonly, 96 H264/90000",
        "audio, sendonly, 97 PCMA/8000"
      ],
      "tracks": [
        "96 H264/90000, sinks=1",
        "97 PCMA/8000, sinks=1"
      ],
      "recv": 2403432
    }
  ],
  "consumers": [
    {
      "type": "WebRTC client",
      "remote_addr": "udp4 prflx <IP_ADDRESS>:53999 related :0",
      "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36",
      "send": 2147142
    }
  ]
}

Stream info from go2rtc 1.1.0 (audio is not working):

{
  "producers": [
    {
      "type": "RTSP source",
      "url": "rtsp://<IP_ADDRESS>:554/11/",
      "remote_addr": "<IP_ADDRESS>:554",
      "user_agent": "go2rtc/1.1.0",
      "medias": [
        "video, sendonly, 96 H264/90000",
        "audio, sendonly, 8 PCMA/8000"
      ],
      "tracks": [
        "96 H264/90000, sinks=1"
      ],
      "recv": 2422171
    },
    {
      "url"<EMAIL_ADDRESS>    }
  ],
  "consumers": [
    {
      "type": "RTSP client",
      "url": "rtsp://localhost:8554/back_yard",
      "remote_addr": "[::1]:45808",
      "medias": [
        "video, recvonly, 96 H264/90000",
        "audio, recvonly, 97 MPEG4-GENERIC/16000"
      ],
      "tracks": [
        "96 H264/90000, sinks=1"
      ],
      "send": 2422171
    }
  ]
}

{
  "producers": [
    {
      "type": "RTSP source",
      "url": "rtsp://localhost:8554/back_yard",
      "remote_addr": "[::1]:8554",
      "user_agent": "go2rtc/1.1.0",
      "medias": [
        "video, sendonly, 96 H264/90000"
      ],
      "tracks": [
        "96 H264/90000, sinks=1"
      ],
      "recv": 2687036
    }
  ],
  "consumers": [
    {
      "type": "WebRTC client",
      "remote_addr": "udp4 prflx <IP_ADDRESS>:49684 related :0",
      "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36",
      "send": 2190302
    }
  ]
}

How you watching stream via WebRTC? Is it default picture entity card?

It can be same bug like #227

1.1.1 resolves the issue -- thanks!


[Bug] Camera Shake fix broken in new patch

The fix to the camera shake during dialogues seems to have been broken with the patch that came out on the 18th of October.

I think the new behavior for non-modded camera shake toggle is when you disable it, it will still apply in combat and in B-tier dialog scenes. In the 21:9 cutscenes there will be no camera shake.

Yep. Camera shake setting is now broken sadly.

True. I hope our GOAT @Lyall  fixes this back.
I just hate that sway stuff.
Hopefully it can be adjusted to be disable once again

Thank you mate!

Updated version does seem to work but I have to actually ENABLE it in game, and then set Disable Camera Shake = True in the ini file.

I'll look at overriding it in the next version, should be do-able. It would probably make more sense if it just forces it off without any further user interaction.
 Are you using the MS Store version of the game @system2ckc? I saw mention in another issue of the updated pattern scan not working in that version.

I'm on the steam version. But, I retested it and it actually seems to be working fine now on all four camera shake scenarios regardless of in-game Camera Shake Option. I think when I tested last time it may have been caused by the area I was testing in, its somewhat of a special case area so that might have been it. Sorry for the confusion.


ENH: Mark statistical terms as window_safe.

Coverage decreased (-0.04%) to 86.948% when pulling df78f57a5105c7cc741ca076ea01e0741bb6a4c0 on make-corrcoefs-window-safe into 88ff0332882cfc0e3fc18b31bc929cd925a3a941 on master.

That sounds reasonable.

@dmichalowicz


Initial addition of dgs-framework compatability impl

#18 - there may be a few bumps to still work through...
When running npm run test dgs (or any other impl) locally it would hang at Starting containers.... 🤷♂
I did check the dgs image in isolation and everything lgtm 🤞

I've noted that the dgs-framework doesn't allow exposing the GraphQL API endpoint at the base/root.  Raised https://github.com/Netflix/dgs-framework/discussions/615 to discuss with their maintainers.
In the interim, locally I've made the following changes and can confirm it works

supergraph.yaml -> subgraphs:products:routing_url to http://products:4001/graphql and
client.ts -> line 8, const productsUrl = "http://localhost:4001/graphql"

Depending on how the dgs discussion plays out, it may be resolved it may be possible in a later release, or, the compatibility harness might need to allow implementations to specific the products subgraph url

There's not really any reason why we couldn't run on /, so we can fix that in the validation.

Awesome, thanks @paulbakker 👏

PR: https://github.com/Netflix/dgs-framework/pull/622

Thanks a ton @paulbakker for the quick fix and big thanks to @setchy for the contribution 🎉


[VL] Optimize resource management for driver/test code

Remove unsafe APIs tmpInstance / globalInstance from resource classes;
Add a new unified API TaskResource#runUnsafe for all unsafe operations against resources, used in driver or test code. The new API would protect the unsafe code with a code block then the code should conform to a specific exit point for releasing all the resource registered in the code block. This way should be safer than the previous tmpInstance / globalInstance APIs.

/Benchmark Velox

===== Performance report for TPCH SF2000 with Velox backend, for reference only ====

query
log/native_4533_time.csv
log/native_master_01_25_2024_c54d993cf_time.csv
difference
percentage

q1
32.98
33.10
0.116
100.35%

q2
23.81
23.80
-0.006
99.97%

q3
36.79
38.54
1.752
104.76%

q4
37.70
38.13
0.432
101.15%

q5
68.82
68.95
0.134
100.19%

q6
8.48
6.99
-1.483
82.50%

q7
82.75
81.35
-1.399
98.31%

q8
84.16
82.69
-1.466
98.26%

q9
117.12
121.78
4.663
103.98%

q10
40.66
43.34
2.675
106.58%

q11
20.32
19.67
-0.653
96.79%

q12
28.23
24.86
-3.368
88.07%

q13
45.39
44.65
-0.743
98.36%

q14
16.35
16.33
-0.016
99.90%

q15
26.25
25.93
-0.324
98.76%

q16
14.19
12.58
-1.609
88.66%

q17
101.98
99.43
-2.555
97.49%

q18
146.07
146.99
0.926
100.63%

q19
13.85
13.86
0.015
100.11%

q20
27.12
27.84
0.714
102.63%

q21
222.18
222.28
0.091
100.04%

q22
13.63
14.97
1.346
109.87%

total
1208.82
1208.05
-0.761
99.94%

===== Performance report for TPCH SF2000 with Velox backend, for reference only ====

query
log/native_4533_time.csv
log/native_master_01_28_2024_d041ce584_time.csv
difference
percentage

q1
35.17
32.99
-2.183
93.79%

q2
22.55
23.85
1.304
105.79%

q3
36.11
37.74
1.624
104.50%

q4
37.94
38.98
1.035
102.73%

q5
70.18
67.95
-2.235
96.81%

q6
7.01
7.02
0.017
100.25%

q7
82.17
80.87
-1.298
98.42%

q8
81.20
84.35
3.144
103.87%

q9
121.64
121.55
-0.084
99.93%

q10
42.08
43.06
0.982
102.33%

q11
19.60
20.27
0.674
103.44%

q12
22.35
27.38
5.037
122.54%

q13
46.65
45.45
-1.199
97.43%

q14
15.30
22.94
7.647
149.99%

q15
32.92
28.71
-4.206
87.22%

q16
13.55
14.08
0.533
103.93%

q17
98.03
102.67
4.641
104.73%

q18
146.06
148.89
2.829
101.94%

q19
12.56
12.47
-0.088
99.30%

q20
28.24
26.11
-2.125
92.47%

q21
222.36
226.03
3.669
101.65%

q22
13.59
13.55
-0.049
99.64%

total
1207.26
1226.93
19.668
101.63%


Support assoc arrays for hash operations

We should optionally support passing assoc arrays for hash operations like:
MSET, MSETNX
HMSET, HMGET, HGETALL
And possibly others?

Implementing this is actually quite simple, but it turns out providing a decent API is not.
One of the issues with accepting an assoc array for HMSET and converting this implicitly is that we can't really do this for HGETALL without breaking existing code which relies on getting an array of strings. We could support this for HMSET (all setters) and keep the existing format for HGETALL (all getters), but this would provide an inconsistent interface, so I'm not really a fan of this.
Any input is welcome :+1:

I still think that this feature makes perfect sense :+1: However, there are currently no immediate plans to build this from my end (no demand at the moment and more important outstanding issues currently), but I would be really happy to accept PRs :+1:
(If you need this for a commercial project and if you want to sponsor this feature, feel free to reach out and send me an email)


Use name 'Baseline Site Selection Tool' in the top level documentation.

Test failures are unrelated and due to https://github.com/verilylifesciences/metis/issues/25

Test failures are unrelated and due to https://github.com/verilylifesciences/metis/issues/25


Update CI actions to the latest version due to deprecated node version

The actions/checkout@v3 and actions/setup-go@v4 use an deprecated Node.js version, causing a warning message to appear with each run. This PR updates these actions to the latest version, which utilizes Node.js 20 instead of 16.

Thanks, @enescakir!


doc(Request): Add missing colon after "Keyword Arguments"

Current coverage is 100% (diff: 100%)

Merging #941 into master will not change coverage

@@           master   #941   diff @@
====================================
  Files          31     31
  Lines        1989   1989
  Methods         0      0
  Messages        0      0
  Branches      328    328
====================================
  Hits         1989   1989
  Misses          0      0
  Partials        0      0

Powered by Codecov. Last update c5cdf2b...be8dbe9


React Todo App

This pull request introduces a React Todo List application with essential functionalities such as adding, deleting, marking as completed, and editing todos. These features aim to enhance task management efficiency and provide a seamless user experience.

Create components directory
Add Todo Functionality
Mark as Completed Functionality
Delete Todo Functionality
Edit Todo Functionality

Hi @DianaBeki 👋,
Thank you so much for the review 😊👌


More logging

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.02%) to 28.846%

Totals

Change from base Build<PHONE_NUMBER>:
-0.02%

Covered Lines:
902

Relevant Lines:
3127

💛  - Coveralls


TF2.0-rc0 ValueError on tensor comparison with None using ==

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary):
TensorFlow version (use command below): 2.0-rc0
Python version:
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:

Describe the current behavior
Previously when running the code from the CVAE tutorial https://www.tensorflow.org/beta/tutorials/generative/cvae, I used in the sample function
if eps == None:
Which worked fine, however with rc0 it now throws an error from comparing a tensor to None and only works if the following is used
if eps is None
Describe the expected behavior
Comparing if something == None and is None should have the same behavior
Code to reproduce the issue
See https://www.tensorflow.org/beta/tutorials/generative/cvae and change the sample function as described.

@Ryandry1st, I tried both the case in colab with Tensorflow 2.0.0.rc0. It works, Please take a look at colab gist here. Let us know this is the expected behavior. Thanks!

Did you make sure to update to TF 2.0-rc0 and replace the line specified? I am still able to get the error on a colab on my end.

In your colab you did not use the tensorflow comparison because you were not using any tensors. Converting your code to make eps a tensor, especially a tensor with some values, will throw the error

here is a minimum repro colab for the issue reported.

here is a minimum repro colab for the issue reported.

You will need to change the sharing settings as each person will have to request access to see that btw.

here is the colab gist

Please see the following section in PEP8: https://www.python.org/dev/peps/pep-0008/#programming-recommendations
In Python comparing with None using == is considered an anti-pattern. == implies the values are equal vs is checks if the two objects are the same object. Often you can get away with using == with None since None is None as they are the same object. However, this is not recommended and or supported for TensorFlow.
Note, the equality operator has been changed in 2.0 to do element-wise comparison. So == triggers a tf.math.equal function which is what causes the code to try (and fail) to convert None to a Tensor.

I agree with the premise, as it is the recommended/agreed-upon method. The main issue is that this seems to raise some compatibility issues, considering the operation has been changed in 2.0 and is an overloaded operator so it does not have documentation to reference. A suggestion might be to include a simple check with a warning/error handling. That would make more sense than quietly changing the functionality.

@Ryandry1st: Thanks for the feedback. The compatibility issue is known, but from what has been seen, it has actually uncovered more bugs in the application code where developers expected a different behavior than what they wrote.
I agree the change has had limited documentation. We'll see what we can do to improve that for the release.


Tried it, didn't work

Set up as described in the extra help. After setup:
dbus-send --print-reply --type=method_call --dest=org.mpris.MediaPlayer2.spotpris.device5d81cefb30a5337f5dcd7af052f3a1b0fc1935c3 /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get string:org.mpris.MediaPlayer2.Player string:Volume
Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.mpris.MediaPlayer2.spotpris.device5d81cefb30a5337f5dcd7af052f3a1b0fc1935c3 was not provided by any .service files

What's the "extra help?"
What does playerctl -l show? playerctl
Is spotify actively playing something (not paused?)
Is there any output from the spotpris2 process?

Spotify shows up in playerctl. I can use sp and other tools with it no problem.

What's the "extra help?"
What does playerctl -l show?

spotify
chromium.instance1286

It looks like playerctl is not seeing spotpris2 -- so where did you get that device name from (device5d81cefb30a5337f5dcd7af052f3a1b0fc1935c3)?
Can you try making this change, to see if you're really being affected by #8 here? I'd guess it's not that, since you don't have any error output, but it's still worth a check.


Some csvs have duplicate notes.

Maybe from PPDD? For example: 00113f0b-d51e-4f14-9e89-eff29c257425.csv
(Previously #121 )

Another example: acme/clean/PPDDSep2018Polyphonic/8098645f-61de-4363-ac0e-df6f58a67cba.csv
	onset	track	pitch	dur
0	125	0	33	83
1	125	0	33	83
2	125	0	33	83
3	125	0	71	125
4	125	0	83	125
...	...	...	...	...
132	3375	0	76	83
133	3500	0	67	125
134	3500	0	79	125
135	3500	0	79	125
136	3500	0	79	125

I can also confirm that they all come from PPDD-Polyphonic. I recommend recreating acme without PPDD-Polyphonic.

This may actually be the same as #121 in the end.
I've tested the way we fix overlaps and flatten tracks in the make_dataset.py script, and that works correctly.
I'll try re-creating acme with the #121 fix to see if that has also fixed this.

This is a bug with data_structures.fix_overlaps, I confirm.

The issue was that fix_overlaps was only finding notes that overlap with the first note of each pitch (or notes that overlap with it). We didn't cover this case with any tests, but now we do (in amt PR).


defineRouteRules on page level throws defineRouteRules is not defined

I use Nuxt Seo and I'm trying to set index: false on a few pages but I get an error "defineRouteRules is not defined"
<script setup lang="ts">
defineRouteRules({
  index: false,
})
</script>

adding below to nuxt.config.ts will solve the issue as mentioned in here
experimental: {
    inlineRouteRules: true,
  },


Update info in "Conference.html"

Is your feature request related to a problem? Please describe.

Content in National Conference is incomplete.

Describe the solution you'd like

Add last two data in National conference.

Describe alternatives you've considered
None at the moment!
Additional context
Not Available Yet!

Is your feature request related to a problem? Please describe.

Content in National Conference is incomplete.

Describe the solution you'd like

Add last two data in National conference.

Describe alternatives you've considered
None at the moment!
Additional context
Not Available Yet!

@princekr-raj

Issue solved, extra lines were removed!