Visual Studio Test Task fails on TFS 2017 RTM during build

Hi,
I am running Unit Tests as part of my build in TFS 2017 RTM. I am using VS Test task to do that. When i pass Test Filter Criteria as "TestCategory=UnitTests", the test fails. But it would have identified the tests and shown in the Test Summary post build. PFA logs for the same. Request any help here.
Thanks,
Srivatsa
5_Test Assemblies.txt
6_Test Assemblies(XUnit and NUnit).txt

@SrivatsaMarichi looks like you are using nunit tests. Below error from logs suggest that this is not a valid filter that nunit understands. Please use nunit filters instead.
"Exception filtering tests: No tests matched the filter because it contains one or more properties that are not valid (Category).

@acesiddhu I have passed the filters in my tests as "TestCategory=UnitTests" for MSTests. It just works fine. I have couple of Nunit and Xunit tests as well. I have passed the test filter for each test method as [Category=Nunit]. But still the tests are not getting picked up during my build. If i don't specify any filter criteria, then it considers all the tests including my selenium scripts and will give me the summary. I don't want to run selenium tests as part of my builds and hence i am trying out to filter out here. Could you tell what are those filters?
Thanks,
Srivatsa

can you ping me the test method body here for both kind of tests. I want to see attributes in the test method

For NUnit:
using System.Web.Mvc;
using FabrikamFiber.DAL.Data;
using FabrikamFiber.Web.Controllers;
using NUnit.Framework;
using NUnit.Mocks;
using Xunit;
using Xunit.Extensions;
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestFixture]
public class HomeControllerTest
{
    [Xunit.Fact]
    [Category("UnitTests")]
    public void IndexReturnsNonNullView()
    {
        var serviceTicketRepo = new DynamicMock(typeof(IServiceTicketRepository));
        var messageRepo = new DynamicMock(typeof(IMessageRepository));
        var alertRepo = new DynamicMock(typeof(IAlertRepository));
        var scheduleItemRepo = new DynamicMock(typeof(IScheduleItemRepository));

        var controller = new HomeController(
            serviceTicketRepo.MockInstance as IServiceTicketRepository,
            messageRepo.MockInstance as IMessageRepository,
            alertRepo.MockInstance as IAlertRepository,
            scheduleItemRepo.MockInstance as IScheduleItemRepository
        );

        var result = (ViewResult)controller.Index();
    }

For MSTest
using System;
using System.Linq;
using System.Linq.Expressions;
using System.Web.Mvc;
using FabrikamFiber.DAL.Data;
using FabrikamFiber.DAL.Models;
using FabrikamFiber.Web.Controllers;
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass()]
public class CustomersControllerTest
{
    MockCustomerRepository mockCustomerRepo;
    CustomersController controller;

    [TestInitialize()]
    public void SetupController()
    {
        mockCustomerRepo = new MockCustomerRepository();
        controller = new CustomersController(mockCustomerRepo);
    }

    [TestCategory ("UnitTests"),TestMethod()]
    public void CreateInsertsCustomerAndSaves()
    {
        controller.Create(new Customer());

        Assert.IsTrue(mockCustomerRepo.IsInsertOrUpdateCalled);
        Assert.IsTrue(mockCustomerRepo.IsSaveCalled);
    }

    [TestCategory("UnitTests"),TestMethod()]
    //[ExpectedException(typeof(ArgumentNullException))]
    public void CreateNullCustomer()
    {
        controller.Create(null);
        Assert.IsTrue(mockCustomerRepo.IsSaveCalled);

    }

Thanks,
Srivatsa

PFA scripts for the same.
CustomersControllerTest.txt
HomeControllerTest.txt
ServiceTicketsControllerTest.txt
Thanks,
Srivatsa

Any updates here?

@SrivatsaMarichi we will take a look at this today. Will keep you posted

@acesiddhu Thanks for the update.

@tanvi-soni can you check this out? Thanks

@SrivatsaMarichi for nunit test you need to put this filter
TestCategory=UnitTests
This will be valid if the test has attribute [Category("UnitTests")]
Can you try with this property name.

@acesiddhu I have passed the same arguments and filters. But it's still failing.

is this the test case?. This is a mix of nunit and xunit. is this supposed to be nunit or xunit? I tried with nunit test case
[TestFixture]
public class HomeControllerTest
{
[Xunit.Fact]
[Category("UnitTests")]
public void IndexReturnsNonNullView()
{
}
}

@acesiddhu Yep this is the one which i am trying for. This is a mixture of bot NUnit and XUnit. I have 14 tests out of which 11 are identified. The other 3 are the ones which are not getting identified.

this particular test method is a xunit test and not nunit. is this test case getting identified? I doubt because this test is treated as xunit test and not nunit (as Fact is the attribute)

If i don't specify any filters in test step then by default it will detect all the tests including my selenium and will give me the test summary. But i don't want to execute my selenium as part of my build and hence i am looking something like this. I dunno how it's getting identified when no Test Filter Criteria is passed.

It will get identified when no test filter is given as it will run all tests. above test is a xunit test. TestCategory filter is valid for nunit only. you either

need to make this test nunit test
or add different xunit level attribute and use corresponding filers.
See below and use this filter Category=UnitTests
[TestFixture]
public class HomeControllerTest
{
[Xunit.Fact]
[Trait("Category", "UnitTests")]
public void IndexReturnsNonNullView()
{
}
}

This indeed identified. If we could have a quick 5 minute talk would it be fine? I have something else to show you as well. Hard to explain here<EMAIL_ADDRESS>you can ping me on Skype For business. Would really help if you could :-)

Closing the issue. You can drop a mail at devops_tools AT Microsoft DOT com for any other issues


Fair ranking of special purpose tools and "multi-language" tools

Over at https://github.com/analysis-tools-dev/static-analysis/pull/549 @rsoesemann started an interesting discussion about tools that support multiple languages. These tools sometimes show up very high in many rankings even though they might not be the best solution for every programming language they support.
An easy solution would be separating the votes of each tool by tag. Another one would be to separate the "multiple language" tools from the "special purpose" tools and put them into separate groups on the tag page.
Don't know which solution I'd prefer. Feedback welcome.

I like the idea of votes being separated by the language. I'm just not sure how to implement it when the user looks at the particular tool details.
When user clicks upvote here: https://analysis-tools.dev/tool/sonarqube it's not clear which programming language should get the vote.

Perhaps we could add the tag to the votes and have a map of votes for each tag:
{
 "c": 3,
 "cpp": 4
 ...
}

An easier approach to start this off: we group the tools into two categories:

Special-purpose linters for one language. These will show up at the top of each language page
Multilinters supporting multiple languages. These will be shown at the bottom of each language page.

We can start with that and move to a better ranking scheme once we have the tags in the votes map.


Add rust-compress, blas, lapack.

Thanks, i will remove compress though, because of "This is not a production-quality library, it is a proof of concept."


Passing empty string to 'az vm list --resource-group' acts as a wildcard

Describe the bug
Command Name
az vm list --resource-group
To Reproduce:
Call az vm list --resource-group with an empty string in quotes:

az vm list --resource-group ''

Expected Behavior
For the command to not return all virtual machines in a subscription and for the command to display an identical error message as is the case when just az vm list --resource-group is called.
This can have major detrimental effects if, for example, the name of the resource group is a variable whose value is undefined and then the result of that command is used as an input to something like az vm stop or even az vm delete.
Environment Summary
Linux-5.11.10-200.fc33.x86_64-x86_64-with-glibc2.32
Python 3.9.2
Installer: RPM

azure-cli 2.21.0

Additional Context
I have not tested other list-type sub-commands that also have a --resource-group parameter defined, but I believe those should be checked for this regression as well.

hi @qwordy, could  you pls have a look?

hi @usrme, thank you for your feedback.
When you pass empty string to 'az vm list --resource-group', it really return all VM information.
I went through the source code and it was designed like this. And only the 'az vm list' command allows this.
I tested the following lines of commands：
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

az vm delete --resource-group '' -n MyVM
az vm delete --resource-group MyResourceGroup -n ''
az vm stop --resource-group '' -n MyVM
az vm stop --resource-group MyResourceGroup -n ''

The results show that due to the lack of required parameters, these commands can not be executed correctly, which is the expected result.
So what you're worried about won't happen, and you can try it if you want.

Thanks for getting back to me, @BigCat20196!
However, I disagree with your conclusion and here's an example scenario I ran into (using Bash):

Create a variable with an empty string: resource_group=''
List virtual machine IDs and store result in a variable: vm_ids=$(az vm list --resource-group "$resource_group" --query "[].id" --out tsv)
Stop (for example, but I guess delete would work just the same) based off of IDs: az vm stop --ids "$vm_ids"

@usrme, Azure CLI can configure a default resource group. Empty string is allowed in az vm list command so that it can remove the resource group value and list all VMs in a subscription. It is deliberate. We don't plan to change the behavior for now. We'll add more clarification in help message.


Fixing $ref when validating request.parsed_data (Flask RESTful)

Added definitions to parsed_data validation.
Previously only properties of the method on an endpoint are used for validation.
This adds definitions from apispec as well, so $ref is now handled correctly.
I believe this is a solution for #329

This also appears to solve the secondary issue relating to #342. The initial issue is resolved by setting the undocumented parse=True parameter when instantiating Swagger, but then I receive the RefResolutionError due to what seems to be this issue.
jsonschema.exceptions.RefResolutionError: Unresolvable JSON pointer: 'definitions/Product'

Any chance this can be merged asap @billyrrr @rochacbruno @nicobatty?


Hover bug in /status

Hello,
There is a small interface bug in /status. In my deployment the hover is too small and the informations are not readable.
I'm using prometheus 0.18.0. I have the same problem on both chrome and firefox.

This was initially added so that we could have something for debugging relabelling, it needs to be done properly.


Donut Jump: Pressing any direction button resets the dying animation

Steps to reproduce:

Open Donut Jump
Pick Jump in the menu
Move to somewhere so that an enemy will jump to you
Hold one of the D-pad directions
When the enemy lands on you, nothing will happen.
Release the button momentarily. The animation will continue
Press a D-pad button again. The animation will reset.
This can be repeated indefinitely.

@MrTroyD can you look into this super quickly?

On it.

Fixed by #280


Update font; tagline

Tagline could still use some work.

I find the new font to not be very legible and its stretched shape makes it feel like it doesn't have enough weight compared to the tagline below. Personally I liked the comic book vibes of the old one as it went better with the logo and it was easier to read. If art deco is the new direction here are some fonts that might be considered

engebrechtre as a less quirky art deco font that is more readable
righteous also more readable and less common
gurindam is more art nouveau than art deco and quite quirky but "Civet" in particular looks pretty nice
baloo a clean and friendly modern font, not very art deco but nice

Also, just having some fun with taglines

Type less, code more

Take the typing out of TypeScript

TypeScript digested

A more digestable TypeScript

Natural script processing reimagined

A naturally sweet flavor of TypeScript

A smooth superset of TypeScript

A familiar language for the web

More types, less typing


Luci-app-filemanager

[ ] This PR is not from my main or master branch :poop:, but a separate branch :white_check_mark:
[ ] Each commit has a valid :black_nib: Signed-off-by<EMAIL_ADDRESS>row (via git commit --signoff) :white_check_mark:
[ ] Each commit and PR title has a valid :memo: <package name>: title first line subject for packages :white_check_mark:
[ ] Incremented :up: any PKG_VERSION in the Makefile :white_check_mark:
[ ] Tested on: (architecture, openwrt version, browser) :white_check_mark:
[ ] ( Preferred ) Mention: @ the original code author for feedback
[ ] ( Preferred ) Screenshot or mp4 of changes:
[ ] ( Optional ) Closes: e.g. openwrt/luci#issue-number
[ ] ( Optional ) Depends on: e.g. openwrt/packages#pr-number in sister repo
[ ] Description: (describe the changes proposed in this PR) Full featured File Manager for LUCI. Easy navigation thru directory structure and selected files editing. Effectively replaces nano + openssh-sftp-server

New version includes:

Navigation with resizable window/columns and with list sorting
Directory and files creation/renaming/removing
Directory and files attributes changing
Large files uploading/downloading
Large files editing
Storage of Interface settings in config file

Looking good. Avoid merge commits. Just rebase your work on master.

Looking good. Avoid merge commits. Just rebase your work on master.

This way is better?

Please follow the contribution guidelines; squash both your commits together and name it something like luci-app-filemanager: add app and put further verbose explanation into the commit body instead of the subject.

OK great. I think this is ready. @dannil @stokito @feckert any opinions?

Do you want to take it for a test-drive @stokito ?

@rdmitry0911 please address @stokito's comments.

I tested and it works. My main comments are: 0. Not sure if we need options for styling like width/height, padding etc.

Initially there were no settings for width/height and padding, but finally I added them as different users have different environments and it is convenient to start this app with width/height, padding you like rather then adjust them right next to start.

1. Rename `Current Directory:` to a `Starting Folder:`

No problem, I'll do that. Should I change a version number just for this commit or it is better to collect several changes and commit them together for version changing?

2. Use Luci's own uci.js to get options.

3. Use Luci's own fs to get list of files instead of calling of `ls`

In fact initially it was done that way, however, using ls, cat and the likes makes the code more compact. And as far as those utils are required for running any system, using them is harmless.

I would prefer to use the built-in fs lib than suffering monstrous regexp to process ls output. fs has a bunch of stable and usable properties. Then you avoid risks associated with parsing of dates, times and permissions.

I would prefer to use the built-in fs lib than suffering monstrous regexp to process ls output. fs has a bunch of stable and usable properties. Then you avoid risks associated with parsing of dates, times and permissions.

The problem of using 'fs.list()' is that I can't find a way to get information about symbolic links. They are returned as directories. I have to use 'fs.stat()' for every directory in a list to find links. It produces significant overhead in comparison with 'ls'

We better not to change the type but instead introduce a separate property for symlinks. Maybe we need to support the hardlinks too, not sure.

I would also return a target of a symlink in a separated property to avoid extra fs.stat()

Makes sense. Also eventually we'll need to add a button to create a symlink. @rdmitry0911 please let us know if you'll add anything to the pr or it can be merged. I hope everybody here are fine to merge the app. Once it merged it may attract more contributors

I think you can merge it.

Try lstat? https://ucode.mein.io/module-fs.html#lstat

@jow- in da house. Can we get a linkstat lstat function in rpcd please?

Is there anything I can do to accelerate approvals for this PR?

OK, I have a suitable patch for rpcd, which may take a while to get added. But here's how it works:
root@OpenWrt:/# ubus call file lstat '{"path":"/etc/os-release"}'
{
	"path": "/etc/os-release",
	"type": "symlink",
	"size": 21,
	"mode": 41471,
	"atime":<PHONE_NUMBER>,
	"mtime":<PHONE_NUMBER>,
	"ctime":<PHONE_NUMBER>,
	"inode": 219,
	"uid": 0,
	"gid": 0
}
root@OpenWrt:/# ubus call file stat '{"path":"/etc/os-release"}'
{
	"path": "/etc/os-release",
	"type": "file",
	"size": 528,
	"mode": 33188,
	"atime":<PHONE_NUMBER>,
	"mtime":<PHONE_NUMBER>,
	"ctime":<PHONE_NUMBER>,
	"inode": 1124,
	"uid": 0,
	"gid": 0
}
root@OpenWrt:/# ubus call file stat '{"path":"/var"}'
{
	"path": "/var",
	"type": "directory",
	"size": 520,
	"mode": 17407,
	"atime":<PHONE_NUMBER>,
	"mtime":<PHONE_NUMBER>,
	"ctime":<PHONE_NUMBER>,
	"inode": 1,
	"uid": 0,
	"gid": 0
}
root@OpenWrt:/# ubus call file lstat '{"path":"/var"}'
{
	"path": "/var",
	"type": "symlink",
	"size": 3,
	"mode": 41471,
	"atime":<PHONE_NUMBER>,
	"mtime":<PHONE_NUMBER>,
	"ctime":<PHONE_NUMBER>,
	"inode": 1264,
	"uid": 0,
	"gid": 0
}
root@OpenWrt:/# ubus call file stat '{"path":"/bin/ash"}'
{
	"path": "/bin/ash",
	"type": "file",
	"size": 405522,
	"mode": 33261,
	"atime":<PHONE_NUMBER>,
	"mtime":<PHONE_NUMBER>,
	"ctime":<PHONE_NUMBER>,
	"inode": 15,
	"uid": 0,
	"gid": 0
}
root@OpenWrt:/# ubus call file lstat '{"path":"/bin/ash"}'
{
	"path": "/bin/ash",
	"type": "symlink",
	"size": 7,
	"mode": 41471,
	"atime":<PHONE_NUMBER>,
	"mtime":<PHONE_NUMBER>,
	"ctime":<PHONE_NUMBER>,
	"inode": 13,
	"uid": 0,
	"gid": 0
}

OK, I have a suitable patch for rpcd, which may take a while to get added. But here's how it works:

This patch resolves only lack of individual file information. Another patch for fs.list() is required to get all the information about folder contents at once like using ls -l.

We may merge it as is and the rpcd chamge can be made later

Agree. The app just works. We can improve it later on

In Actions section added a checkbox for selecting files and directories and then deleting selected and added a button to make a copy of files and directories

OK. I need some fresh eyes on this. @dannil could you give it a once-over?

Please test your colour scheme in a few themes. Some file-names are difficult to read in some:
e.g. black on almost black in dark mode.

Once everything has been completed, update the checks in your initial post.
Also, please update the commit message to include only one subject. ( remove the others at the end )

Handle a user mashing ENTER for this field to change paths

Please test your colour scheme in a few themes. Some file-names are difficult to read in some: e.g. black on almost black in dark mode.

Fixed. Hope the visibility is enachanced

There's a nice bug in settings.
Click settings to go to settings, and tab opens. Click settings again and the first two settings disappear, and reset to 0. ( width + height )

Fixed

Handle a user mashing ENTER for this field to change paths

Added

Perhaps a recommendation for the next version: handling drag and drop when in a target folder.
You can see how it is handled when adding SSH keys and in the wireguard proto handler for adding configs.

Implemented

Also, an "Invert Selection" button for multiple selections would be great.
Use case: select files to keep, invert, delete.

Last feature?

Also, an "Invert Selection" button for multiple selections would be great.
Use case: select files to keep, invert, delete.

Last feature?

Don't quite understand the functionality. Just invert selection? Or need extra options?

Also, an "Invert Selection" button for multiple selections would be great.
Use case: select files to keep, invert, delete.

Last feature?

Implemented with alt-click

So invert selection looks good, but there's no visual indicator of its availability. Users would have to know about it already and be informed about 'click alt'. Adding a button 'Invert Selection' once a selection is made is a good signal - you can keep the alt behaviour around, though. That's good once you know it ;)

So invert selection looks good, but there's no visual indicator of its availability. Users would have to know about it already and be informed about 'click alt'. Adding a button 'Invert Selection' once a selection is made is a good signal - you can keep the alt behaviour around, though. That's good once you know it ;)

I'm going to implement a help tab with all the explanations. The less items we have in the interface the more easy it will be to maintain.

New update with help tab and HEX editor/viewer

changes

Don't quite understand what to do

Don't quite understand the functionality. Just invert selection? Or need extra options?

Just an invert selection button which arises once a selection has been made - then it's intuitive. But you're not keen on having one...

Don't quite understand the functionality. Just invert selection? Or need extra options?

Just an invert selection button which arises once a selection has been made - then it's intuitive. But you're not keen on having one...

Yea, I left that for a future contributors if there are any :)

Added ASCII, HEX and RegExp search to hex editor

Changed comments to English ones

OK - no more new features as my review time is finite, and this thing could grow forever.

OK - no more new features as my review time is finite, and this thing could grow forever.

Ok. No more new features :)

changes

What should I do with this request? I don't quite understand

changes

What should I do with this request? I don't quite understand

Please link to the comment, it's lost in the noise of hundreds of comments....

changes

Removed 2 notification lines in Settings tab
Indent using tabs.

Still don't understand. Please paste a link to the comment so I can see the context :)
In general I don't think we should notify on success without it auto-disappearing. Otherwise UI gets flooded. Was it that?

Spaces between the contents and view borders in navigation tab have lost somewhere. Here they are

Spaces between the contents and view borders in navigation tab have lost somewhere. Here they are

? last force-push?

Yes

OK - the file-manager beast :) Some abstract comments for this or next version:

Bring it up to ES6 standard where possible
Convert var into either let or const (helps scope variables to blocks)
Use forEach loops instead of for loops.
Use switch cases (more consistently) with fall-through instead of if...else...etc...

I'll take it for another test-drive tomorrow.

1. Markdown render is nice but the such files are rarely used on routers.

Correct, but removing it we save 7k of full text code or about 1.5k on disk. It provides an option to easily show to a user any formatted text. I think it worth it.

2. Hex Editor is definitely not needed.

It is easy to remove it, however, I'd leave it here as I believe there are some users who would appreciate this functionality

3. Settings are almost useless

Disagree. Different themes require different window sizes for both navigation and editing. And working in a specific folder will require extra efforts to get there after a session timeout

4. Help... I really not sure if this needed and even if needed it can be a link.

I'm not sure either. I have 2 use cases in my mind. Working without public internet access and a placeholder for some specific information that developer would like the user to read.

The md is not really needed at all. BTW the format is by nature developed to be readable even without a viewer. Given that it adds 7kb (that's a lot) and it may have potential XXS problems I would rather remove it.
When last time you used HEX editor? Do you think a typical user will edit some binaries? BTW you included the library with a different license (MIT). At least split it to a separate file.
You are mixing theming and settings. The "last working dir" can be just stored to localStoreage in a browser itself and no need to make it as an option.
"Working without public internet" that's a rare case because almost always you at least have a mobile internet. The file manage is not critical thing. You may use tips and descriptions in the FM itself.

More importantly we need to understand the end goal here. There is a few options:

Full featured File Manager with bells and whistles that can be used as poor man's Cloud/NAS e.g. edit notes, watch photos and videos, listen music etc. Then here you are reinventing the existing products like NextCloud, FileBrowser, WebDAV.js, File Management browser app etc. This is a long way and we can't help you because we focusing on the core OpenWrt features.
An ability to work with files to configure a system when there is no Luci app for this. For example to edit the Lighttpd config. This means that we need a minimal functionality.
Have the file manager in the Luci itself out of the box as my luci-app-filebrowser was initially intended. This means that we need to change features of built-in FileUpload component and split it to several smaller components. This is a complicated task that I have in my todo list. In this case the 2 can be a playground where we can test the functionality (like duplicate folder) and then bring it to the core.

Please clarify your intention.
I'll switch to other tasks but you may mention me @stokito for a final review.

@stokito My intention was (and is) to have a filemanager app for luci that would effectively replace scp, nano and navigation part of mc. I put in this app all the functionality I'm using and nothing else. I think it is still light-weighted. I agree, that it might be squeezed by taking off hex editor and help and it'll save about 8-9 kB of a disk space. However, modern routers have enough disk space and 10kB is not a big deal. If other maintainers and reviewers share your position about stripping the functionality, I'll do that.

I also strip out a HexEditor to a separate file and move all separate files to a filemanager folder to simplify code maintenance

By the way, I'm thinking about implementing a plug-in system for filemanger so that extra functionality would be available simply by loading a file into a plugin folder. What do you think is the best way to implement that?

Closed by 3447700b3870e6cd2338a74312288a9a96d9519b.

By the way, I'm thinking about implementing a plug-in system for filemanger so that extra functionality would be available simply by loading a file into a plugin folder. What do you think is the best way to implement that?

Keep everything internal to this app (within its folder). What functionality did you have in mind?

Also wanted to say good work on this app @rdmitry0911. Thanks for your patience.

Closed by 3447700.

By the way, I'm thinking about implementing a plug-in system for filemanger so that extra functionality would be available simply by loading a file into a plugin folder. What do you think is the best way to implement that?

Keep everything internal to this app (within its folder). What functionality did you have in mind?

I think I can split all the current functionality into 5 plugins: navigation, editor, hexeditor, help and settings. The main program will be responsible for tabs creation according to available plugins (each plugin runs in a separate tab) and calling a plugin when a user selects a correspondent tab. In this case the minimal set will be a program with nav and editor plugins but user can install any additional plugins available. At the moment shell plugin comes my mind.  However, I believe, if this app proves to be useful, there will be contributors for plugins.

Also wanted to say good work on this app @rdmitry0911. Thanks for your patience.

Also thank you, guys for your time :)

Yeah, please open a separate issue.


M3-1535 LinodesLanding refactoring

Use Pagey for pagination.
Use react-redux connect for merging notifications into Linodes.
Use recompose mapPropsStream to update Linode with events.

Tl;DR Linodes data is provided by the Pagey HOC as prop 'data'.
react-redux picks up that 'data' and merges notifications from Redux onto their respective Linodes.
recompose mapPropsStream picks up 'data' and updates Linodes in place when specific events are encountered.
@patthiel I'm going to need you to beat this up pretty hard, but my confidence level is high there are no regressions.

Coverage increased (+0.04%) to 27.134% when pulling 25dcf464c6cf32d4817aa82a46f887fae7aafbd6 on rjstires:M3-1535 into 867e2a1b90db2fcdb439fedfd8f8a2cc68740725 on linode:develop.

@rjstires is this ready for me to review? I started to review this but realized you've been pushing a few changes today.


Updated links for Space War project

Added links to itch.io and huggyface space.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

@simoninithomas this is ready for review! :smile:

Thanks LGTM, we still have a bug to update the website when a PR is merged so I'm waiting this bug to be solved before merging 😄


Implemented AutoUpdateSupersededApps switch

#167 Fixed Implementation for AutoUpdateSupersededApps

I have fixed the implementation. The feature is only for Intent "available". So I rewrote everythink to handle this situation.


hotfix: remove webhook conversion in metallb CRD

doesn't  work with gardener resource-manager, since metallb-controller injects its own caBundle in the CRD, which will then be overridden by the resource-manager

Probably we can add this back when upgrading a release that includes the fix of this issue: https://github.com/metallb/metallb/issues/1681


Ansible Inventory script stops working after version 1.4.3

Environment

Python version: Python 3.8.12
Nautobot version: 1.4.3

Steps to Reproduce
I was in doubt if I should post this one here or over in nautobot-ansible, however since this bug is specific to version 1.4.3, I decided to do it here.
On version 1.4.3, running Nautobot's Ansible inventory script will fail and also freeze Nautobot - https://nautobot-ansible.readthedocs.io/en/latest/plugins/inventory_inventory.html
Steps to reproduce

Upgrade to version 1.4.3
Configure Ansible to use Nautobot as inventory
Run ansible-inventory --list

Expected Behavior
The inventory script runs smoothly and returns Nautobot's hosts, as it does on version 1.4.2

Observed Behavior
The inventory script hangs and Nautobot's interface as well.
The following error messages can be seen in Nautobot's service log. This is just a small extract, the warnings actually continue for much longer than this.
Sep 26 11:17:57 nautobot nautobot-server[2434919]: Warning #0: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "term_side" in model. Defaulting to string.
Sep 26 11:17:57 nautobot nautobot-server[2434919]: Warning #1: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "cable" in model. Defaulting to string.
Sep 26 11:17:57 nautobot nautobot-server[2434919]: Warning #2: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "region_id" in model. Defaulting to string.
Sep 26 11:17:57 nautobot nautobot-server[2434919]: Warning #3: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "region" in model. Defaulting to string.
Sep 26 11:17:58 nautobot nautobot-server[2434919]: Warning #4: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "site_id" in model. Defaulting to string.
Sep 26 11:17:58 nautobot nautobot-server[2434919]: Warning #5: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "site" in model. Defaulting to string.
Sep 26 11:17:58 nautobot nautobot-server[2434919]: Warning #6: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "location" in model. Defaulting to string.
Sep 26 11:17:58 nautobot nautobot-server[2434919]: Warning #7: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "circuit_id" in model. Defaulting to string.
Sep 26 11:17:58 nautobot nautobot-server[2434919]: Warning #8: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "provider_network_id" in model. Defaulting to string.
Sep 26 11:17:59 nautobot nautobot-server[2434919]: Warning #9: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "term_side__n" in model. Defaulting to string.
Sep 26 11:17:59 nautobot nautobot-server[2434919]: Warning #10: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "cable__n" in model. Defaulting to string.
Sep 26 11:17:59 nautobot nautobot-server[2434919]: Warning #11: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "region_id__n" in model. Defaulting to string.
Sep 26 11:17:59 nautobot nautobot-server[2434919]: Warning #12: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "region__n" in model. Defaulting to string.
Sep 26 11:17:59 nautobot nautobot-server[2434919]: Warning #13: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "site_id__n" in model. Defaulting to string.
Sep 26 11:18:00 nautobot nautobot-server[2434919]: Warning #14: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "site__n" in model. Defaulting to string.
Sep 26 11:18:00 nautobot nautobot-server[2434919]: Warning #15: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "location__n" in model. Defaulting to string.
Sep 26 11:18:00 nautobot nautobot-server[2434919]: Warning #16: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "circuit_id__n" in model. Defaulting to string.
Sep 26 11:18:00 nautobot nautobot-server[2434919]: Warning #17: CircuitTerminationViewSet: CircuitTerminationFilterSet: Unable to guess choice types from values, filter method's type hint or find "provider_network_id__n" in model. Defaulting to string.
Sep 26 11:18:00 nautobot nautobot-server[2434919]: Warning #18: CircuitViewSet: CircuitFilterSet: Unable to guess choice types from values, filter method's type hint or find "status" in model. Defaulting to string.
Sep 26 11:18:01 nautobot nautobot-server[2434919]: Warning #19: CircuitViewSet: CircuitFilterSet: Unable to guess choice types from values, filter method's type hint or find "tenant_group_id" in model. Defaulting to string.
Sep 26 11:18:01 nautobot nautobot-server[2434919]: Warning #20: CircuitViewSet: CircuitFilterSet: Unable to guess choice types from values, filter method's type hint or find "tenant_group" in model. Defaulting to string.
Sep 26 11:18:01 nautobot nautobot-server[2434919]: Warning #21: CircuitViewSet: CircuitFilterSet: Unable to guess choice types from values, filter method's type hint or find "tenant_id" in model. Defaulting to string.

This appears to be an issue introduced indrf-spectacular version 0.24.1, released 2022-09-23. I'm investigating and will file an issue there, but so far it looks like downgrading to drf-spectacular 0.24.0 resolves this issue. Can you give it a try and confirm?

@glennmatthews downgrading drf-spectacular to 0.24.0 fixed the issue indeed.
I have tired upgrading it again and the same behavior repeated, so I believe you have found the root cause :)

Thanks for confirming! I've filed https://github.com/tfranzel/drf-spectacular/issues/821

drf-spectacular 0.24.2 has been released and appears to fix the reported issue.

Tested version 0.24.2 and it has fixed the issue. You are free to close this issue from my end @glennmatthews
Thanks a lot for your support


URL manipulation in ChaosCenter

What happened:

User is able to access UI of project user is not part of by manipulating the URL.
User is able to update the project role from URL

What you expected to happen:
User should not be allowed to access projects that user is not part of and URL manipulation should not be possible.
Where can this issue be corrected? (optional)

How to reproduce it (as minimally and precisely as possible):
Run chaoscenter and change the projectID query param in URL, or update the role in URL
Anything else we need to know?:

API level RBAC validation: https://github.com/litmuschaos/litmus/pull/3486 @SarthakJain26

RBAC based frontend validations: https://github.com/litmuschaos/litmus/pull/3501 @arkajyotiMukherjee @SarthakJain26 @Saranya-jena

Issue fixed with this PR: https://github.com/litmuschaos/litmus/pull/3501

Fix:

On manipulating the project role manually in the URL, an API call will be made to validate the user's role in the project and the correct role will be set in the URL again as per the response from API.
On manipulating the project ID with an incorrect project ID in URL, user will be redirected back to the default project where user has an Owner role.

Demo describing updated RBAC flow
https://user-images.githubusercontent.com/45846277/158531698-5e074ca3-9e50-45b8-95a7-57555250f227.mp4


[FLINK-15753][web] Displaying non-numeric metrics in Web UI dashboard

What is the purpose of the change
Currently, Flink allows creating gauge metrics with various types [1]. However Web UI doesn't support showing any types other than numerics and always displays NaN, which isn't very helpful. This change lets dashboard displays raw metric value when converting to numbers isn't applicable.
Brief change log

Adds raw value display as fallback when receiving non-numeric metric values
Changes "Chart / Numeric" label to "Chart / Literal" because not all metrics are of number type

Verifying this change
This change is a trivial work without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

AFAIK, it is planned to remove the support for non-numeric gauge metric values in Flink 2.0, see FLINK-6053.

Ah I see. Thanks for your clarification!


Stop using C based N-API.

We already migrated example codes to C++ based N-API but the core/ directory is still using C based N-API.

This is fixed by https://github.com/lunchclass/bacardi/pull/48


Move Google Analytics settings into  tag

Move Google Analytics settings into  tag since Google Search Console required that to verify ownership of the website.


DateTime.ToString with "g" format different for "en-US" locale

Just check the output of the sample code.
Only "g" format is tested (in theory others also can be wrong).
Steps To Reproduce
https://deck.net/ac08fe8b3258d9b7ccfad30eaabe8431
https://dev.deck.net/ea23ea1137ed895865145606862fa932
https://dotnetfiddle.net/gwVQWH
Result on DotNetFiddle, Windows (.Net Framework) and under Linux (Mono) is the same.
using System;
using System.Globalization;

public class Program
{
	public static void Main()
	{
                CultureInfo culture = CultureInfo.GetCultureInfo("en-US");

                Console.WriteLine(DateTime.Now.ToString("g", culture));
	}
}

Expected Output
8/13/2017 12:40 PM

Actual Output
08/13/2017 15:40

Thanks for reporting this issue. Several default DateTime formats were not correct and have been updated.
This fix will be included in the next release of Bridge.

In Bridge, by default, the locale files are not automatically loaded.
You can add the following configuration to your projects bridge.json file to automatically include the specified locale .js file.
"locales": "en-US"

More info at:
https://github.com/bridgedotnet/Bridge/wiki/global-configuration#locales
Hope this helps.

I configured Deck.NET to include the en-US locale file by default. Your original Deck now works correctly:
https://deck.net/ea23ea1137ed895865145606862fa932
We're going to have to figure out a way to automatically load the locale files automatically when the Culture is specified. For now, setting the locales  config in bridge.json is required.

I see...
Just one question...
Should CultureInfo.CurrentCulture be Invariant Culture (iv) by default even if all required locales are added to json config?
https://deck.net/0a1251b0d326c9ae7b35cd379bdd9ddb

The locales config will load the .js files, although the CurrentCulture still must be set in your App.
I believe in .NET by default, the CurrentCulture is set to the Language of the current App thread.
If the app is running in a browser, the CurrentCulture could be mapped to the browsers navigator.language setting.
https://deck.net/bb5846ae79bc272ec465ef194ce8e58f
public class Program
{
    public static void Main()
    {
        Console.WriteLine(Global.Navigator.Language);
    }
}

I guess the question for me is, should Bridge be attempting to automatically map the browsers navigator.language value to the CurrentCulture value and load the appropriate locale file?
This would most closely match the native .NET functionality, but would almost certainly produce unexpected results with end users of the app.
So default options could include:

Use InvariantCulture (current functionality) and require the explicit setting of the CurrentCulture to override.
Try to determine Culture from the browser at runtime and load appropriate locale file. Fall back to InvariantCulture (or en-US?) if the runtime Culture cannot be determined.
Use en-US.
New culture config in bridge.json to set the default Culture. Maybe the locales settings could be merged into culture.

Personally, I like option 4 best.
What Culture would option 4 default to? Maybe we could determine the CurrentCulture at compile time and just use that instead of trying to determine at runtime.

In my personal opinion 2 is better than others.
Imagine you have some console app running in some environment...
If that system has corresponding locale then app uses it by default (no config of console app is required).
It makes sense if you want to make Bridge closer to .Net runtime.
So if environment have such ability to provide culture then it should provide.
I think all available locales should be specified in config (like it is now).
And browser will "select" default locale based on "what it wants and what he has".
In comparison to many jquery controls (where 'en' is some sort of invariant locale) en-US culture in Bridge is separate culture...  so fallback as InvariantCulture is really good idea...
My suggestion just to ask browser (any other environment) and use such locale if available.


PiP support

Because it works really nicely with multiple Spaces and full-screen apps.

Would that be possible? I've tried some PiP extensions but they never work with Netflix. Unsure if Netflix wants it supported, for unknown reasons.

PiP is technically possible, Netflix doesn’t really do anything to prevent it other than not provide a button (and disable right clicking in general).
@BenRiceM If I was able to get the app’s window to float between spaces, would that satisfy your PiP needs?

@MaxHasADHD I've tried two picture-in-picture Safari extensions/apps over the past few years. After using each extension for a while, Netflix eventually stopped working correctly sometime in the Fall of 2017.
See similar issues for PiPifier and PiedPiPer.

@ToniWonKanobi I used PiedPiPer for a while, it's still installed on my system. Doesn't work for Netflix at all any more, and only occasionally for YouTube.
That said, I've taken to more direct developer-y work arounds: for Netflix, disabling javascript, right clicking to switch to PiP, and then quickly re-enabling javascript will work. Similarly, right clicking a YouTube video, then right clicking again while the custom menu is open will allow you to switch to PiP.
There's always a way, but futzing too much with Netflix's UI is an infinite quest. They'll inevitably change something and whatever customisation you made (like injecting a PiP button) will stop working.

That said, I've taken to more direct developer-y work arounds: for Netflix, disabling javascript, right clicking to switch to PiP, and then quickly re-enabling javascript will work.

@jellybeansoup Toggling JavaScript!? What has this world come to 😆 I do the YouTube switch thing and that works reasonably well.

There's always a way, but futzing too much with Netflix's UI is an infinite quest. They'll inevitably change something and whatever customisation you made (like injecting a PiP button) will stop working.

Tell me about it. I have a custom stylesheet in Safari, and between Netflix and YouTube, it's so difficult to try and target things with class's and id's because they're dynamically generated and stuff 🙄

There's still some work to do on this before I'd consider it release-worthy, but I've started adding support for a proper PiP-style floating behaviour. This commit should allow it to float above fullscreen apps, and between spaces, but the behaviour is slightly jarring (it's not a smooth transition, just an immediate jump), and it introduces other problems (can't fullscreen).
I'll work on resolving these, and in the meantime, you can build directly from the floating-behaviour branch to get it right now.

I'm not a MacOS/swift dev, but why can't you use the native picture in picture functionality of MacOS as used in https://github.com/avaidyam/PIP-Demo/blob/master/piptest/ViewController.swift

@bkniffler Having only briefly looked at the link you posted: I probably could. I wasn't aware it was a thing (because I'm only barely a macOS dev at this point; my bread and butter is iOS).
I will look into it further and see if it's something I can use.

Any update on this?

@MaxHasADHD Only that I haven't had the opportunity to look into implementing it, as I've been swamped with other work.

Many months later, and I've (finally) been able to investigate potentially using the private PIPViewController class (and the various other related classes that power its behaviour). Unfortunately, the overall issue is that this class is very specifically built to accomodate video, which Is somewhat redundant for this project's needs: if I wanted to pop the videos out of the interface, I could use javascript to do so in a similar way to how some Safari extensions handle it, and it's doesn't appear possible to actually render the app itself within such a window due to its presentation requirements.
Thanks again to @bkniffler for the suggestion 😊
I'm (slowly) continuing work on achieving the desired behaviour via a custom implementation; all the progress I make on this will be reflected in the floating-behaviour branch.


[fix](inverted index) Corrected the issue of no_index_match failure caused by empty data.

Proposed changes

Empty data caused no_index match_phrase_prefix to fail.

run buildall


Feature Request: Space Emoji

Is your feature request related to a problem? Please describe.
I am always frustrated if I search up for Space and there are just Meteors, Stars etc.
Describe the solution you'd like
I wanna have a Space Emoji maybe it can be squared with a dark background and some stars etc. in the foreground

Describe alternatives you've considered
A Galaxy Emoji would also be very nice and might be easier to understand

Here is not the right place, please consider Emojination or Unicode directly. For what it’s worth, there already is 🌌 Milky Way.


Ensure that initially-centered video is centered within the browser window no matter the user's window size

Currently assumes window size is the same as video size (1920x1080) which is wrong

this may have gotten changed in App.scss with https://github.com/basilleaf/luti/commit/a90bed97e89e00ba43de050b832b94709ac5e8b3


Invariant Violation: Minified React error #105; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=105&args[]=NavigationArrowDropDown

I've got this issue with NODE_ENV=production
Version 0.18.0

I have a similar error but with the Checkbox component
https://facebook.github.io/react/docs/error-decoder.html?invariant=105&args[]=ToggleCheckBoxOutlineBlank

Revert on material-ui 0.17.4 and recompose 0.23.0 for now.

That is the version I was using.
I rolled back to<EMAIL_ADDRESS>and<EMAIL_ADDRESS>there's no errors now.

Was reverting to an order version of Material-UI useful? I would suspect reverting recompose enough.

Same here. Was on ^0.17.1 locally that got upgraded to 0.17.4 when installing through CI.  Worked fine in 0.17.1 but this error appears both in 0.18.0 and 0.17.4.

Dug into it a bit more and this guy is right on the money about my issue from what I gathered.
Reverting to 0.17.1 in material-ui was the only safe version I could deploy to production with, FYI.

I was able to fix the problem by explicitly forcing recompose : "0.23.0" as a dependency. No need to roll back either material-ui (0.18.0) or react (15.5.4)

This might be a noob question, but how do you change the version of recompose included with create-react-app?

recompse 0.23.4 released, should have fixed the issue

Update fixed my issue

Same goes here.

Great, things are going back to normal with https://github.com/callemall/material-ui/pull/6853.
Might be time to have a look at https://github.com/neoziro/recompact

Is this an issue on the next branch?  I am getting this error on a clean create react app and adding     "material-ui": "1.0.0-alpha.20"
I can open an issue there, just though I would check.


Netflix Addon Giving Errors in Kodi

I am attempting to use this with the latest version of Kodi (I believe 18.6) on a Raspberry Pi 3 B+. However, after installing the Netflix addon, I am getting a notification telling me to check the log.
Here is a link to the log: https://pastebin.com/zfyM4C6D
Any help would be appreciated.

https://github.com/CastagnaIT/plugin.video.netflix/wiki/How-install-the-addon#installing-on-raspbian-raspberry-system

closed for inactivity


adding highlighting of search term, needs tidying up

@mradbourne had a thought, we can just do this in JS, although this needs cleaning up it looks cool:

Brilliant - Thanks. I'll tidy that up today.


mockNuxtImport not working in page components when mounting app with mountSuspended

Environment
------------------------------
- Operating System: Linux
- Node Version:     v18.18.0
- Nuxt Version:     3.8.2
- CLI Version:      3.10.0
- Nitro Version:    2.8.1
- Package Manager<EMAIL_ADDRESS>- Builder:          -
- User Config:      devtools
- Runtime Modules:  -
- Build Modules:    -
------------------------------

Reproduction
https://stackblitz.com/edit/github-refqkp?file=test%2Fapp.nuxt.spec.ts
Describe the bug

Run vitest in the reproduction link.
Observe the HTML of the app.vue in the test is rendered as
mock return value
.
Observe the HTML of app2.vue in the test is rendered as
actual value
.
Observe the HTML of the pages/index.vue in the test is rendered as
actual value
.

My expectation is that the useAsyncData mock works with page components. app.vue is usually just a container component and doesn't do data fetching, that usually happens in the page component.
The above scenarios worked with nuxt-vitest.
Additional context
No response
Logs
No response

This is prone to happen if vitest has already processed the SFC before it processes the mock statement.
Maybe we can invalidate the module manually, or prevent it from processing routes (which is likely the issue).

Is there a workaround in the mean time I can use to mock useAsyncData? My goal is to mount app.vue with one or more routes and then test if everything renders according to expectations

I updated @nuxt/test-utils to 3.11.0 and also made sure vitest and vitest-environment-nuxt were updated to their latest versions, and now this issue is resolved for me. So issue can be closed.


Lines do not plot if a coordinate is repeated

I was surprised by this:
xy = rand(Point2f, 5) # five random coordinates
insert!(xy, 3, xy[3]) # repeat one of them
lines(xy) # behaves as if there was a NaN there?

Which seems to be one of the underlying issues for #1349 (and related). It's also OS dependent (can't reproduce this on ubuntu) and inconsistent since #1356 only fails for one out of 3 legends but all of them have duplicate points

can't reproduce this on ubuntu

I'm on Debian, so that would be extra strange if you can't reproduce it on Ubuntu (which AFAIK is really similar to Debian in many ways).

Works fine for me inline or in a window with GLMakie on ubuntu. I have windows and ubuntu on the same PC, a nvidia 1060 GPU with driver version 460.91.03 on ubuntu. I'll check windows later. The only missing line issue I've been able to reproduce so far is #1356 on windows. :shrug:

a nvidia 1060 GPU

This must be it. I had serious issues with my Nvidia driver a week ago (didn't detect the screen), so I removed it completely. I'll try to add it now and see if it "fixes" the problem.


Modify representation of docker params

Allow multiple values for the same option.
For example, users may need to pass -e (environment variable) many times.

Fixes #970.

:+1:

Thanks for the quick fix!


Fix issue in generating Command for boolean values

if(val) falsify the boolean parameters.
We should not send command only for undefined/null types

What issue is driving this?

It seems like bad practice to use null in TypeScript or JavaScript. Undefined is the standard and doesn't equal null.

@jpricketMSFT accept that from best practices. but if(var != null) does undefined and null check in typescript. So i would take the safe check rather than flowing it down.
@bryanmacfarlane, you can check the UT which added. If you are trying to pass boolean values in properties [foo = false], the if check falsify that property and don't write to the command at all

We merge publishing test reports by default. If one doesn't want to avoid, the task has to send "mergeReports=false", which is being skipped by this command because of the bug.


CI pipelines: add ARM testing

Is your feature request related to a problem? Please describe.
We don't have CI pipeline to test deployments on ARM architecture, so we need to create environments based on ARM architecture.
Describe the solution you'd like
We need to create pipeline to test environments based on ARM architecture
Describe alternatives you've considered
No.
Additional context
First of all we need to do #2034

A pipeline for ARM testing has been created in Azure DevOps:

provider: AWS
OS: CentOS
image: CentOS 7.9.2009 aarch64

Enabled components:

repository - 1 vm
kubernetes master: 1 vm
kubernetes node: 2 vms
load balancer: 1 vm
kafka 2 vms (clustered)
logging 2 vms (clustered)
monitoring: 1 vm
postgresql: 1 vm
rabbitmq: 2 vms (clustered)
ignite: 2 vms (clustered)
opendistro: 1 vm
keycloak deployment epiphanyplatform/keycloak:9.0.0


Todo_list

Nice project, please kindly update the README.md file to include the changes you have made.

Ok, I will do that, thanks for reviewing my work.


[Jira] Filter input should be available while loading

Extension
https://www.raycast.com/raycast/jira
Description
I want to be able to type a query while initial loading, this behavior was supported in the deprecated extension.

Steps To Reproduce

Open Jira "Open Issues"
Start to type
Nothing happens while loading

Current Behaviour
Typing while loading does not register
Expected Behaviour
The filter input should be visible while loading and the typing should register while loading

cc @bengry

I have sent a PR #7382.


⚠ Chatwoot has degraded performance

In 84f97dd, Chatwoot (https://app.chatwoot.com) experienced degraded performance:

HTTP code: 200
Response time: 2564 ms

Resolved: Chatwoot performance has improved in f7cdde8.


SW-3868 Handle locales with country codes

To support variation of number formatting rules in different Spanish-speaking
countries, we're going to keep track of users' countries. If the user has selected
a country, their locale will include a country code as well as a language.
For the most part, locales with country codes work transparently because they're
well supported by browsers. However, our application code currently expects the
locale to only include a language. If the server sends back a locale like es-MX,
the client doesn't know which item in the locale selector it should use.
We could just strip off the country code, but in the future, we'll likely need to
support languages where the country code is more significant, e.g., Chinese.
Instead, update the client to pick the longest match from its list of supported
locales.
There will be a separate field in the user API payloads for country code; add it
to the type definitions and make the client code pass it back to the server when
updating user data. A later change will add UI to let users see and edit their
countries, but for now, this lets us test locale selection by manually setting
the country in the server's database.

I'm going to hold off merging this for now since I'm still wrapping up the server side.


commas and angle brackets with AVMs and linebreakes (cordination-include.tex)

\avm{
[\punk{synsem|loc|cont|index}{[num & pl \\
	                  gend & [m & \1 \+ \2 ] \\
                          per & [me  & \3 \+ \5\\
                              you & \4 \+ \6 ] ]} \\
 dtrs &	< [synsem|loc|cont|index & [gend & [m & \1] \\
                       	            per & [me  & \3 \\
                                           you & \4] ] ],\\
	  [synsem|loc|cont|index & [gend & [m & \2] \\
                                    per & [me  & \5 \\
                                           you & \6] ] ]  >
	]
}

The brackets seem to not see the comma. Apart from this they are too small (should span the whole AVMs)

align=false produces this:


Fixes issue 203, suffixes for artifactIds

If there are two projects generated, artifactId gets suffixed with service-a and service-b while the final name of the war/jar remains the same as the original artifactId.
Fixes #203

Has 2 acks, merged.


Implement DBSCAN

Fix #330.
This was pretty straightforward. The only thing that I am not fond of it doing two passes. But can't think about how to fix this yet.
Checked that the timings and output of the original halo finder example on HACC data is unchanged.
Also, not 100% sure about whether verifyClusters() function catches all the corner cases.

I realized that there is a bug in the current implementation. Specifically, we do propagate(i,j) when i is a boundary point, and j is a core point. But what it really does is that it sets the larger representative to the smaller one. So what could happen is that the representative of the core point could be set to the representative of the boundary point. And that could lead to issue. If boundary point is then connected to a different cluster, and updates its representative to that one, this would effectively bridge two clusters, which is a mistake.
There are couple ways to avoid the issue. First, stop processing any edges for a boundary point once it has connection to some core point. Second, instead of choosing the smaller representative, simply assign the representative of the boundary point to be that of the core point. This way, core point representatives will never be a boundary point, and thus no bridge will ever be formed.
Not sure which version is better. Can also do another variant: a boundary point is only processed if its representative is not itself. First time it connects to a core point, it sets it representative to it, and thus will never be processed again.
In any case, need to fix verify routine that did not catch this bug. I had a feeling that it was not complete, and this certainly proves things.

I think I fixed the bug. But I'm not sure how to write a simple verification function without implementing full blown sequential DBSCAN. The question that needs to be answered: if a point is connected to multiple core points, how would one know if those core points should belong to the same cluster or not?

OK, I fixed the verification routine. The new routine successfully detected that the version prior to fix failed verification, while the latest version passed it.

Rebased on top of master and changed some calls to direct callbacks.

I have thought of a (potentially) better way to do this. So, right now, we do two full passes overall all points. The first pass is counting the number of neighbors of each point, and the second produces cluster labels.
The new trick I am thinking about is to notice that we don't have to go through all points in the second loop. The points that are not near any points are not going to be used, as well as the points that are not near any of the core points. It should be possible to transform the second loop to go over only the core points, potentially significantly reducing the size of the loop.
I did a quick run on the HACC 36M problem calculating the number of core points depending on the min_pts size:

min_pts
#core points
% of total

2
18900454
51%

5
14032705
38%

10
11056272
30%

25
7656005
21%

50
5397584
15%

100
3499114
9%

So, at least half of the points are not core points. As the time taken by the second loop is ~2x taken by the first, any reduction in it should be significant.
I think it should be implemented as follows. In the first parallel loop, besides counting of neighbors, a mapping "core point index" -> "point index" should be created. After first loop, a wrapper around queries should be created using the constructed mapping. In addition, the main dbscan loop should be updated to only use core points. Core-core processing should remain untouched, while core-boundary should now be allowed, and the boundary point should be checked for whether it has been processed before (so as to not be processed by multiple clusters in a bridge-boundary situation).
I think this should be pretty straightforward to implement. But I think that maybe the first priority should still introduce proper veritification routine, merge this pr, and then do this work. This should allow us to demonstrate the improvement more clearly.

Merging, only standard HIP failure.


Implemented a housing price case and answer other questions

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.xiuzheDorothy seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


[TableSection] How to set section titles for UITableView?

Hi, congrats on the new tool. I have a question, in UITableView, I can use titleForHeaderInSection, how to do that with Owl?

Hi @onmyway133 , thank you very much.
Regards your question: adding index title to a section is pretty simple, you need just use the indexTitle property of the target TableSection instance.
So, for example:
let sectionContactsA = tableDirector?.add(elements: [user1, user2,....])
sectionContactsA?.indexTitle = "A"

Owl automatically adds the title into the right index lists of the table; only section instances with a non nil indexTitle property will became part of the list. Click icon to jump on it is automatically made by Owl so you don't need to set anything special.
Hope it helps.

@malcommac cool, that helps 👍


stylus-loader warnings

When I run the generator with stylus as my chosen CSS Preprocessor I get the following warnings:
npm WARN EPEERINVALID<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN EPEERINVALID<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.

This causes page load errors such as the following:
Errors while compiling. App updated with errors. No reload!
Cannot find module 'stylus'
 @ ./src/styles/TimeSlice.styl 4:14-128 13:2-17:4 14:20-134

I made the build work for me by adding...
,
    "stylus": "latest",
    "nib": "latest"

To my package.json devDependencies but I don't suppose this is an ideal fix

@abienz: There where problems with unmet peer dependencies, the problem was fixed in 3.1.1. Please update your generator, it should work fine then.


send_file_message upload type Audio not working

It seems there is an issue in the way the JSON for sending audios is structured, it currently encodes the file bytes to base64 but then decodes them back right after

this issue should be fixed with #37 and is availabe on the latest dev build and onward


Include a link from 16 blog post to 15.5

16 blog post doesn't mention how to run codemods. By now many people forgot.
We should either mention it, or link to the 15.5 post that mentions it.

It's worth calling out again in Upgrading section.

Agreed!

I will work on this.

@xjlim Looks like a PR #52 has already been submitted for this.
Maybe check out some of our other "good first issues" that don't have an "in progress" label yet?

Resolved via #52


Remove profiles from non root packages

Fixes:
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   rftrace/examples/hermitrust/Cargo.toml
workspace: rftrace/Cargo.toml

The profiles are there intentionally (even if not well documented currently), so that if you copy the example outside of the workspace it still works in debug mode.
default:
	# we need to override the opt level for the dev profile, since we are in a workspace with other settings!
	# not needed if this folder stands on its own, since the profiles in the cargo.toml take effect
	# BUT: we build in release anyway so trace is smaller.
CARGO_PROFILE_DEV_OPT_LEVEL=1 cargo build ....

All right. :+1:

Reopening, since this is not required on Hermit since November 2021: https://github.com/hermit-os/hermit-rs/commit/f05547197b4e8d18274595302e6ddc6f33bbd13e

Rebased on latest master.


Safe to add "extends HiveObject" later?

I have an older project with users and a Hive database. I realized that I forgot to add "extends HiveObject" to one object when I wanted to access the key.
Is it safe to add "extends HiveObject" now?

Yes, it is generally safe to add extends HiveObject to your class in Hive, even after you have already stored data in the database.


Cola layout

@davkal any reason we shouldn't merge this?

@peterbourgon breaks chrome with this report by @tomwilkie : https://gist.github.com/davkal/5e40f7455d87b86dbc87

I need to debug this.

Cola produces some very clean layouts, but jumps all the time

This is based on Tom's setup.

Oh yes that does look better.  Anyway we can stop it jumping?  Have you tried the same trick?

Will try the reuse trick tomorrow

The reuse trick doesnt even though I cache node positions and then feed them back :( maybe some randomizer in the constraints engine works against us, I'll dig a bit through the code.

Just verified, that the topology is always the same, it's still jumpy.

I'm migrating the node management to ImmutableJS objects, so that it will be easier to compare updated topologies and see if they need re-rendering.

Fixing tests...

Internet is now on top, and they are nicer spaced. Switching back and forth between topos is still a bit unpredictable

I'm not too worries about switching-back-and-forth, its more when staying on the same topology, and the graph changes, do it completely re-layout the page?

Also that layout really highlights the need to do better with the internet node: all but one of those connections if going out to the internet, and one is coming in.  Confusing...

Same topo, but a node get added/removed, then the layout similarity between renders depends how connected the node was. But we can smooth this out be adding an animation so nodes travel instead of jump.

Agreed with the directionality, it's weird now with hovering over nodes, because some nodes seem connected, but dont highlight their peer because it's an ingress link.

Closing this, dagre wins out.


Combining multiple @element-querries

Hi guys,
is it possible to combine multiple @element-querries. What I'm thinking of is something like
@element ".button__container" and (min-children:3){
  @element ".button" and (min-width:276px) {
    :self {
      width: 100%;
    }

    :parent {
      flex-basis: 476px;
    }
  }
}

I would like to apply the style to the buttons, but only if the button__container has more than 2 buttons.
However, this doesn't seem to work.
Regards
Slawa

Hi @SlawaGurevich, No, I'm sorry but it's not possible with EQCSS to nest @element queries inside of each other. The first step the plugin does is extracting all of the @element queries it finds and registering them one-by-one with the plugin, this means that it finds sees both of your queries as 'top-level' queries totally independent of each other, and will trigger them whenever their individual conditions are met. This isn't a limitation of the concept of using element queries, but is a limitation with our plugin and how styles are read.
If you want to do this functionality in EQCSS you can, but you'll need to rewrite one of the queries from being an element query to a 'selector resolver' using eval("") and writing JS-based test similar to (min-children: 3) instead. If we queried all .button__container .button elements, that will give us an opportunity to test if any that are over 276px wide have parents with 3+ children. Here's a demo:
<nav class=button__container>
  <button class=button style=width:100px>Button</button>
  <button class=button style=width:200px>Button</button>
  <button class=button style=width:300px>Button</button>
</nav>

<style>
  @element ".button__container .button" and (min-width: 276px) {

    eval('parentNode.children.length >= 3 && ":self"') {
      background: lime;
    }

  }
</style>

<script src=http://elementqueries.com/EQCSS.js></script>

Let me explain that eval("") a little bit, we're running a test on each .button__container .button in our document, and if its parentNode has 3 or more children, the && connects and we end up with this in our EQCSS:
:self {
  background: lime;
}

Which gets applied to each matching element. If for a given element the condition is not met our expression evaluates to false, so it will output this in our EQCSS query:
false {
  background: lime;
}

And since there's no <false> tag in HTML, it's not going to match our elements. If having that text output in your stylesheet that bothers you, you can use a ternary instead to make sure that an empty string shows up instead when the test fails, like parentNode.children.length >= 3 ? ":self" : "" too.
You can go so far as to include the CSS rule inside the eval("") too if you want to ensure that there isn't even a rule present in your CSS when the test fails. You could put the entire rule for :self inside the eval("") quoted as a JS template string and just think of this as being an eval("")-supplied rule inside your top-level @element query:
eval('parentNode.children.length >= 3 ? `

  :self {
    background: lime;
  }

`: ""')

But, there are also more flexible ways of expressing and nesting element queries than the syntax EQCSS supports too. Similar to your original example I can use jsincss and jsincss-element-query to nest element queries like you originally wanted:
<nav class=button__container>
  <button class=button style=width:100px>Button</button>
  <button class=button style=width:200px>Button</button>
  <button class=button style=width:300px>Button</button>
</nav>

<script type=module>
  import jsincss from 'https://unpkg.com/jsincss/index.js'
  import element from 'https://unpkg.com/jsincss-element-query/index.js'

  jsincss(()=>`

    ${element('.button__container', {minChildren: 3}, `

      ${element('.button', {minWidth: 276}, `

        :self {
          background: lime;
        }

      `)}

    `)}

  `)
</script>

In this case we're writing a stylesheet outside of our jsincss-element-query plugin, so we're able to call it two times (actually, we can call it as many times as we want) at as many different 'levels' as we want, rather than being limited to 'top-level' queries only. Here is the syntax for just the element queries isolated from the rest of the demo:
${element('.button__container', {minChildren: 3}, `

  ${element('.button', {minWidth: 276}, `

    :self {
      background: lime;
    }

  `)}

`)}

It's not so different from EQCSS. The syntax here should be similar enough to EQCSS to see what each part is doing :D Hope this helps!


[Enhancement]: Adding support for Spatie Activity Log

What happened?
Currently the only supported to use this package is via making an infolists builder.
How to reproduce the bug
.
Package Version
1.0.1
PHP Version
8.1
Laravel Version
10.0.0
Which operating systems does with happen with?
macOS
Notes
I want to support making a custom page to show all activity logs from spatie package from a specific record/model.

Yes please :)))) :heart:


Try to hook into playbackstart and playbackstop events

I see in the console debug that there are playbackstart and playbackstop events being fired by the jellyfin player. Maybe hooking into these for resetting values would be cleaner that the current method.

Seems like this isnt easily doable with webpack or whatever weird chunk thing is being used by jellyfin-web


Reading second ADC channel

Hello,
first of all I would like to thank you for this code! I'm using it to sample from an analog microphone (ADC sampler code path).
It works, although I'm not quite sure what the output data format is for the samples (MSB vs LSB), but the main proble  I'm facing is that in another task I'm using Emon library to sample another sensor using ADC0 but on another channel.
Turns out this makes the I2S/ADCSampler give back a single value of 0. I tried using i2s_adc_enable and i2s_adc_disable around the i2s_read but it has no effect.
Even if I don't use the Emon library, and simply use adc1_get_raw() the same thing happens so that makes me think it's some sort of ADC config issue.
Do you have any thoughts or ideas why this may happen?
Thank you in advance,
Spiros

Correction, adc1_get_raw() looks ok, so it's probably something Emon lib does.
From a cursory glance at the code it uses analogRead() so maybe  something is going wrong there.

I think the code in analogRead does quite a lot of monkeying around. So it's possible that it's interfering with other ADC functions.
I don't think there should be any interference between reading with I2S and getting values manually, but there could be some weird interactions going on.
The esp32 forums are really good for this kind of weird thing - lots of smart people there - https://www.esp32.com/viewforum.php?f=23

Hi   @cgreening,
sorry for the delayed reply on my part. Those were my thoughts also.
In the end I went with an I2C mic (the IMLP one) directly and it works like a charm.
So I am closing this issue.
Thanks everyone.


SA1009 with nullable value tuples

(int a, string b)? myVar;
Is it just me? I would rather keep it without whitespace here.

I would classify that as a bug as well. The syntax as you wrote it is correct.

This has been fixed in #2478. I've added an additional testcase in #2495 to ensure that this case will remain covered. This change will show up in 1.1.0 Beta 5 when it is released.


Move the gallery extension to this repo

The goal with this PR is to move the gallery extension to this repo. I realized that the code dedicated to build the gallery here was pretty self-contained, had already quite diverged from the other more doc oriented galleries, and was meant to diverge even more (include link to deployments under the thumbnails, sharing on Twitter/LinkedIn, categories, etc.).
ref: https://github.com/pyviz-dev/nbsite/pull/256
I think that eventually the dependence of nbsite could be entirely removed to build this site.

Does that mean we can simplify the nbsite implementation?

Does that mean we can simplify the nbsite implementation?

Yes, not as much as one would hope though. I think that will be limited to removing the "inlining" code path, that was anyway broken.
Something this extension no longer relies on is the deployment_url template, as the project are now declaring their deployments and the system is in charge of deploying them and building the docs linking them. Panel seems to be using deployment_url, if at some point it no longer relies on that then that could also be removed.


JSX file tutorial

I feel like the existing documentation for rendering the display in vb frontend using jsx files is not sufficient especially for developers who don't know React. We still have no guide on where to start with custom modules that are based off of existing default modules.
For example, it might be a good idea to create one for the Blog module or at the very least upload their JSX files so we can figure it out ourselves.

Hi @jomsky ,
Being comfortable with React is required to make components with full Visual Builder support. I think the best place to learn React is the official docs - https://reactjs.org/docs/getting-started.html - they are really detailed and it shows how much effort the React team puts in.
Once you are familiar with how to create React components, building modules with Visual Builder support will become much more accessible.

It would certainly be helpful to have some examples of current modules JSX files. Even if it were for just a couple of them. Being able to cross reference a 'correct' way to do things would make the learning process much much easier. Blurb gets used everywhere - we be a good one to start with.

Divi Extension Example includes almost all details.
https://github.com/elegantthemes/divi-extension-example
Could you please specify at which field you're facing an issue.

@atanas-angelov-dev I am a React developer but I can't implement the new Divi features because they have nothing to do with programming in React, but with the Divi API.
I think we don't need the JSX files of any built-in modules, but you could update the divi-extension-example as Divi is adding new features (dynamic content, etc), we all Divi developers will appreciate this sooo much.

@jcdotnet the extension API for interacting with Dynamic Content specifically has been slightly delayed due to all of the WP5/Gutenberg commotion. Once it's live the relevant documentation explaining how to use it will be published.
If you have other features in mind that you cannot find documentation on how to use, please let us know.

Thank you @atanas-angelov-dev,
Yes I have. I cannot find how to hide the automatically added LINK group in every module content tab. I opened this related issue #166

@jcdotnet
link options are adding by _add_link_options_fields function defined in class-et-builder-element.php. You can overwrite this function in your module file to disable this.
protected function _add_link_options_fields() {
			return false;
}

@Paul-S-Taylor You can set up a child module inside the parent module.

@themohdarif  - thanks

@jcdotnet
I would like to add here if you only want to control the link tab. You could set up
'link_options' => false,
in advanced field configuration.


Fix README link

Use RST syntax instead of MarkDown syntax

I've not actually written RST before, but I got the syntax from https://sublime-and-sphinx-guide.readthedocs.io/en/latest/references.html#links-to-external-web-pages


Avoid uploaded file pushing to git repo. - [closed]

In GitLab by @wknet123 on Apr 24, 2018, 10:28
Merges dev-fix-upload -> dev

In GitLab by @wknet123 on Nov 13, 2019, 10:50
closed


Adds generate-helm-docs to makefile

Why: to generate helm docs based on values.yaml file
How:

using helm-docs[1] binary
adding readme.go.tmpl as a template to generate docs

Tags: #helm-docs #makefile #readme #issue-664
Description
A new command has been added as a part of Makefile to generate the helm documentation.
Changes include

[x] New feature (non-breaking change that adds functionality)

Closes issue(s)
Resolve #664
Checklist

[x] I have tested this code
[x] I have followed the contributing guide

[1] https://github.com/norwoodj/helm-docs

@sarvsav thanks a lot for your help, this is exactly what I was looking for 🙏. This is super great to have this available.

Thank you for giving me the opportunity to work on this task. :)


feat(reply): Added functionality to reply button

PR related to this trello task --> https://trello.com/c/8SPDoLDZ

:tada: This PR is included in version 1.19.0 :tada:
Your semantic-release bot :package::rocket:


fixed issue with translucent Tab Bar

Pull request checklist

[x] All tests pass. Demo project builds and runs.
[x] I have resolved any merge conflicts.
[x] I have followed the coding style, and reviewed the contributing guidelines. Confirmation: ____

This fixes issue #___.
What's in this pull request?
Fixed issue with Input toolbar displayed incorrectly when controller is in Tab Bar Controller (see Tab Bar example in  PR #1628)

...

[Current coverage][cc-pull] is 49.45%

Merging [#1630][cc-pull] into [develop][cc-base-branch] will decrease coverage by 13.41%

10 files (not in diff) in ...ViewController/Views were modified. more

Misses +135
Partials -2
Hits -133

3 files (not in diff) in ...ViewController/Model were modified. more

Misses +3
Hits -3

4 files (not in diff) in ...iewController/Layout were modified. more

Misses +102
Partials -2
Hits -100

File ...agesViewController.m was modified. more

Misses +57
Partials -7
Hits -50

@@            develop      #1630   diff @@
==========================================
  Files            60         60
  Lines          2184       2186     +2
  Methods         618        616     -2
  Messages          0          0
  Branches        132        134     +2
==========================================
- Hits           1373       1081   -292
- Misses          741       1046   +305
+ Partials         70         59    -11

Powered by Codecov. Last updated by [39c596a...22c02a9][cc-compare]
[cc-base-branch]: https://codecov.io/gh/jessesquires/JSQMessagesViewController/branch/develop?src=pr
[cc-compare]: https://codecov.io/gh/jessesquires/JSQMessagesViewController/compare/39c596ab504f1928cfb7a824103c8440bad87968...22c02a9bc13ee90d898ee46e58d79cb5ce71348c
[cc-pull]: https://codecov.io/gh/jessesquires/JSQMessagesViewController/pull/1630?src=pr

Thanks @evfemist !

The changes to inputAccessoryView regress the new keyboard behavior
Manipulating constraints triggers layout, so doing this from viewWillLayoutSubviews is dangerous, as it could cause an infinite loop

thanks, I see advantages using inputAccessoryView, but it not handle bottomLayoutGuide offset. Will thing how to fix this

viewWillLayoutSubviews it is correct place to do some adjustments, that can't be done other way.
and viewDidLayoutSubviews can cause loops, not this one.


Update Administrate::Search to use dynamic attribute types

Our BaseDashboard adds some dynamic attribute types via the attribute_types method. This allows the Search class to use them, so that they are searchable (in particular at the moment: eid fields).
TODO: Upstream this.
https://app.shortcut.com/rinsed/story/13241

Merging despite the test failures because those failures happen on the primary rinsed-v1 branch also, and the bundle exec rspec of the tests is passing even in those failed runs.


Follow-up on Installation Documentation

Description:
Follow-up on Installation Documentation.

PR #1  for 'Running the MI Dashboard' and related changes - https://github.com/wso2/docs-apim/pull/3999/files

PRs:

https://github.com/wso2/docs-apim/pull/4127
https://github.com/wso2/docs-apim/pull/4093


fix: listing sessions when a project has been deleted

This addresses a bug where the noteboook service is unable to generate the list of active user sessions when a session exists whose project has been deleted or changed in some ways.
The bug occurs when:

a user creates a session then deletes the project but leaves the session
a user creates a session then deletes the branch tied to the session but leaves the session
a user creates a session then transfers the project to a different group/namespace but leaves the session

The bug is caused by the code in the Autosave class validating the existence of several gitlab resources (i.e. branch, commit, project, etc) even if this is not always required. And in addition to doing this validation the code would raise exceptions when these validation failed. So when a user gets into one of the scenarios described above then the validation in the Autosave classes raises an exception that prevents further listing or processing of other sessions. With these changes the session that has been "orphaned" like this will not interfere with listing other valid sessions and it will appear when a user tries to list all sessions regardless of the project.
/deploy

You can access the deployment of this PR at https://renku-ci-nb-718.dev.renku.ch


Incorporating Ngen workflow into CFE

This PR adds a workflow that run Ngen test within CFE with a realization configuration file the same as performing a ngen run within the framework with geojson data.
Additions
The workflow file:
.github/workflows/ngen_integration.yaml
Removals

Changes
realizations/realization_cfe_pet.json
This file has some changes to a few paths to access data
Testing
github tests
Screenshots
Notes

Todos

Checklist

[x ] PR has an informative and human-readable title
[x ] Changes are limited to a single goal (no scope creep)
[x ] Code can be automatically merged (no conflicts)
[x ] Code follows project standards (link if applicable)
[x ] Passes all existing automated tests
[x ] Any change in functionality is tested
[x ] New functions are documented (with a description, list of inputs, and expected output)
[x ] Placeholder code is flagged / future todos are captured in comments
[x ] Visually tested in supported browsers and devices (see checklist below :point_down:)
[x ] Project documentation has been updated (including the "Unreleased" section of the CHANGELOG)
[x ] Reviewers requested with the Reviewers tool :arrow_right:

Testing checklist
Target Environment support

[ ] Windows
[x ] Linux
[ ] Browser

Accessibility

[x ] Keyboard friendly
[x ] Screen reader friendly

Other

[x ] Is useable without CSS
[x ] Is useable without JS
[x ] Flexible from small to large screens
[x ] No linting errors or warnings
[x ] JavaScript tests are passing

Please fix the formatting of the PR description. In the future, for the checklists, it's not even necessary to 'check' them off through editing the text - you can just check them from the main PR Conversation page.

The PR description says that realizations/realization_cfe_pet.json is modified. The previous PR did, but this one doesn't - it adds a new file instead. Please correct that.

The latest commit 821703d restore the realization_cfe_pet.json to its original form and added another realization config ngen_realization_cfe_pet.json for running workflow. The name may change, though, as one reviewer suggested. This is intended to not affect any native cfe test while adding the automated test.

@PhilMiller & @stcui007 -
Just now looking at this workflow update.  Is the only outstanding item reforming the PR description format?  It would be very valuable to the team to have this pushed.  Thanks for your work on this!

The PR description says it's adding realizations/ngen_realization_cfe_pet.json, but the change actually adds realization_cfe_pet_ngenCI.json

I think it should run when a PR is created and on subsequent push of new
commit. It is supposed to work on CFE repo. Hopefully, it will work in a
similar way the ngen repo does.
On Mon, Dec 4, 2023 at 10:51 AM JessicaGarrett-NOAA <
@.***> wrote:

@stcui007 https://github.com/stcui007 & @ajkhattak
https://github.com/ajkhattak - Can you clarify when (where) this
workflow runs. The triggers
https://github.com/stcui007/cfe/blob/7f336de796691f2a5757882ab4117348c47f6eab/.github/workflows/ngen_integration.yaml#L6
defined still apply to this CFE repo, correct? -thx!
—
Reply to this email directly, view it on GitHub
https://github.com/NOAA-OWP/cfe/pull/98#issuecomment-1839055246, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACA4SRLVK6H7V7HCYN5TTELYHX5PHAVCNFSM6AAAAAA5S6AQIOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZZGA2TKMRUGY
.
You are receiving this because you were mentioned.Message ID:
@.***>


"Invalid private key" running manage.py

Hi all,
Trying to install openuds 3.6 in ubuntu 20.04 (python 3.8, Django 4.2.6)
I've (pip) installed all dependencies related in requirements.txt with no error(s)
Also, as (tiny) doc says, to install db I've create mysql database, dbuser and permissions (grant all) and edited settings.py to put db related data into code
running python3 manage.py sync get following trace:
root@openuds:/home/cdc/openuds-release-v3.6/server/src# python3 manage.py sync

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.8/dist-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.8/dist-packages/django/core/management/__init__.py", line 416, in execute
    django.setup()
  File "/usr/local/lib/python3.8/dist-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python3.8/dist-packages/django/apps/registry.py", line 116, in populate
    app_config.import_models()
  File "/usr/local/lib/python3.8/dist-packages/django/apps/config.py", line 269, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 848, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/cdc/openuds-release-v3.6/server/src/uds/models/__init__.py", line 46, in <module>
    from .service import Service
  File "/home/cdc/openuds-release-v3.6/server/src/uds/models/service.py", line 42, in <module>
    from uds.core import services
  File "/home/cdc/openuds-release-v3.6/server/src/uds/core/services/__init__.py", line 41, in <module>
    from .provider import ServiceProvider
  File "/home/cdc/openuds-release-v3.6/server/src/uds/core/services/provider.py", line 40, in <module>
    from uds.core.util.config import GlobalConfig
  File "/home/cdc/openuds-release-v3.6/server/src/uds/core/util/config.py", line 335, in <module>
    class GlobalConfig:
  File "/home/cdc/openuds-release-v3.6/server/src/uds/core/util/config.py", line 392, in GlobalConfig
    SUPER_USER_PASS: Config.Value = Config.section(SECURITY_SECTION).valueCrypt(
  File "/home/cdc/openuds-release-v3.6/server/src/uds/core/util/config.py", line 245, in valueCrypt
    return Config.value(self, key, default, True, **kwargs)
  File "/home/cdc/openuds-release-v3.6/server/src/uds/core/util/config.py", line 266, in value
    return Config.Value(section, key, default, crypt, longText, **kwargs)
  File "/home/cdc/openuds-release-v3.6/server/src/uds/core/util/config.py", line 106, in __init__
    self._default = cryptoManager().encrypt(default)
  File "/home/cdc/openuds-release-v3.6/server/src/uds/core/managers/__init__.py", line 50, in cryptoManager
    return CryptoManager.manager()
  File "/home/cdc/openuds-release-v3.6/server/src/uds/core/managers/crypto.py", line 97, in manager
    return CryptoManager()  # Singleton pattern will return always the same instance
  File "/home/cdc/openuds-release-v3.6/server/src/uds/core/util/singleton.py", line 9, in __call__
    self.__instance = super().__call__(*args, **kwargs)
  File "/home/cdc/openuds-release-v3.6/server/src/uds/core/managers/crypto.py", line 72, in __init__
    self._rsa = serialization.load_pem_private_key(
  File "/usr/local/lib/python3.8/dist-packages/cryptography/hazmat/primitives/serialization/base.py", line 25, in load_pem_private_key
    return ossl.load_pem_private_key(
  File "/usr/local/lib/python3.8/dist-packages/cryptography/hazmat/backends/openssl/backend.py", line 747, in load_pem_private_key
    return self._load_key(
  File "/usr/local/lib/python3.8/dist-packages/cryptography/hazmat/backends/openssl/backend.py", line 942, in _load_key
    return self._evp_pkey_to_private_key(
  File "/usr/local/lib/python3.8/dist-packages/cryptography/hazmat/backends/openssl/backend.py", line 521, in _evp_pkey_to_private_key
    return _RSAPrivateKey(
  File "/usr/local/lib/python3.8/dist-packages/cryptography/hazmat/backends/openssl/rsa.py", line 386, in __init__
    raise ValueError("Invalid private key", errors)
ValueError: ('Invalid private key', [<OpenSSLError(code=33554558, lib=4, reason=126, reason_text=iqmp not inverse of q)>])

Any ideas? notice that I've left SECRET_KEY and RSA_KEY  unchanged in settings.py
Thanks  in advance.
Juan Antonio

BTW, Alt linux contains a package With OpenUDS already packaged, if you want to give it a try ;-)

fine.
created key with
openssl genrsa -aes128 --passout file:/tmp/rsa.pass 3072 >/tmp/rsa.key
And inserted key and password into settings.py
Also I had to replace line 73 in server/src/uds/core/managers/crypto.c:
#            settings.RSA_KEY.encode(), password=None, backend=default_backend()
            settings.RSA_KEY.encode(), password=settings.SECRET_KEY.encode(), backend=default_backend()

Let's continue :-). Thanks
Juan Antonio

Take care, SECRET_KEY is not related in fact to RSA_KEY, but Django session and cookies protection.
You can add a "password" to the RSA private key, but, due to the fact that both are in same place, this is a nonsense, at least from as security point :)
https://docs.djangoproject.com/en/4.2/topics/signing/
So, i recommend you to generate a sufficient big key (2048 bits or more, as you have done using 3072, is perfect :) ), but without a password. This key is used to encode all passwords on DB for providers, etc...
Hope this helps ;-)


Listening to onConnect/onDisconnect events

After the fix: https://github.com/antfu/webext-bridge/pull/18
Now its re-connecting automatically. Is there any way to listen to these connect/disconnect events? I would like to save some state of the extension once the connection is lost.

Doesn't the switchover happen instantaneously? Or are messages beings lost amidst transit?


Setup CI/CD to automatically build and publish the site on GitHub Pages

@dheerajdlalwani I would love to work on this Issue. Please Assign me

Ok Thanks bhia, I will start soon🚀❤

#32 may fix this. Kindly review

This is not needed for now as we have netlify integration


Issue with enum in MySql

I'm having a problem when Dbeaver isn't able to edit enum fields.
The error displayed when trying to edit the field is:
An internal error has occurred. org.jkiss.dbeaver.ext.generic.model.GenericTableColumn cannot be cast to org.jkiss.dbeaver.ext.mysql.model.MySQLTableColumn
Not sure how to fix the issue, any help would be greatly appreciated!

Actually, it seems the issue is that for some reason, the database isn't recognizing ENUM. The database script for my program (on my other machine that uses sequel pro) has item_1 enum('1', '2', '3', '4', '5') DEFAULT NULL. But for some reason Dbeaver recongizes the script as item_1 ENUM(3).
In addition to whatever the error was in the previous comment I left.

Looks like you are using wrong driver (MySQL 3.x). Enums are not supported there.
Switch to default MySQL driver.

Wow you're right, thanks!
I'm loving Dbeaver right now by the way, one of the best DB managers for Linux out there :)


How can I change the language of BoxBilling

Hello !
How can I change the language of boxbilling to French ?

Changing default language
Default language can be set in bb-config.php parameter ‘locale’ => ‘en_US’,
https://documentos.readthedocs.io/en/latest/reference/language.html#changing-default-language


Add SFtp support and blob move capabilities

I consider this a long shot since this lacking unit tests :/ ... the code works and it's being used in production now.  Move semantics are an extension to the base Blob interface and does not support moving from blob storage to a different blob storage, only supported for both FTP and SFTP providers as written.

@nenitiko thanks for contributing, there are some conflicts, can I help with anything? By the way you should raise PR against develop branch - this should have been offered by default, unless you've forked from an older version. Master is for releases only, CI generates release notes etc. from master commits.

I can rebase to develop later once you're ready though, so no worries.

What is the status of this PR? Right now I created a fork of @nenitiko 's repository, because we needed SFTP as well. I would prefer it to be packaged with @aloneguid your repo. If there need to be thorough unit testing present, I could create them. Then you could merge 👍

I'm creating a new pull requests forked from the latest version and using the dev branch