Module 7.0.6 Fails after Upgrade to DNN 9.8.0

Describe the bug
After Upgrading from 9.7.2 to 9.0.8 the Events Module 7.0.6 fails to load.  Module loaded and worked fine on DNN 9.7.2
To Reproduce
Loading any page with either the Events Module or the Latest Module results in an error.
Expected behavior
Module should load without error
Screenshots
If applicable, add screenshots to help explain your problem.
Error logAbsoluteURL:/Default.aspx
DefaultDataProvider:DotNetNuke.Data.SqlDataProvider, DotNetNuke
ExceptionGUID:f6b6f0bb-ce24-4a5f-8ed2-f3c6bb75fb74
AssemblyVersion:
PortalId:-1
UserId:-1
TabId:-1
RawUrl:
Referrer:
UserAgent:
ExceptionHash:NS09lb/i4bKyc1saI0kTi2ZSvOs=
Message:Could not cast System.Collections.ArrayList to property ModuleLocationIDs of type System.Collections.ArrayList
StackTrace:
at DotNetNuke.Entities.Modules.Settings.SerializationManager.DotNetNuke.Abstractions.ISerializationManager.DeserializeProperty[T](T myObject, PropertyInfo property, String propertyValue, String serializer)
at DotNetNuke.Entities.Modules.Settings.SettingsRepository1.<>c__DisplayClass16_0.<Load>b__0(ParameterMapping mapping)    at DotNetNuke.Collections.CollectionExtensions.ForEach[TType](IEnumerable1 source, Action1 action)    at DotNetNuke.Entities.Modules.Settings.SettingsRepository1.Load(CacheItemArgs args)
at DotNetNuke.Common.Utilities.DataCache.GetCachedDataFromRuntimeCache(CacheItemArgs cacheItemArgs, CacheItemExpiredCallback cacheItemExpired)
InnerMessage:Could not cast System.Collections.ArrayList to System.Collections.ArrayList
InnerStackTrace:
at DotNetNuke.Entities.Modules.Settings.SerializationManager.DeserializeValue(String propertyValue, String serializer, Type destinationType)
at DotNetNuke.Entities.Modules.Settings.SerializationManager.DotNetNuke.Abstractions.ISerializationManager.DeserializeProperty[T](T myObject, PropertyInfo property, String propertyValue, String serializer)
Source:DotNetNuke
FileName:
FileLineNumber:0
FileColumnNumber:0
Method:
Server Name: martserver2
Additional context
Add any other context about the problem here.

I can confirm this.
After installing the debug assemblies I got the following in the inner stack trace:
at Components.EventModuleSettings.CreateEventModuleSettings(Int32 moduleId, String localResourceFile) in C:\DDrive\Develop\GitHub\DNN.Events\Components\EventModuleSettings.cs:line 247
at Components.EventModuleSettings.GetEventModuleSettings(Int32 moduleID, String localResourceFile) in C:\DDrive\Develop\GitHub\DNN.Events\Components\EventModuleSettings.cs:line 101
at Components.EventBase.get_Settings() in C:\DDrive\Develop\GitHub\DNN.Events\Components\EventBase.cs:line 1378
at Components.EventBase.GetThemeSettings() in C:\DDrive\Develop\GitHub\DNN.Events\Components\EventBase.cs:line 475
at Components.EventBase.SetTheme(Panel ctlPnlTheme) in C:\DDrive\Develop\GitHub\DNN.Events\Components\EventBase.cs:line 422
at DotNetNuke.Modules.Events.Events.Page_Load(Object sender, EventArgs e) in C:\DDrive\Develop\GitHub\DNN.Events\Events.ascx.cs:line 591
at System.Web.UI.Control.OnLoad(EventArgs e)
[....]

I tried uninstalling the module, and after re-installing it it worked fine, but I had to go back to 9.7.2 not to lose the events.

Something strange with the modulesettings?

Nothing special, afair. Would a list of all ModuleSettings be helpful?
BTW: It happened on two different sites, both of them have an instance of the module (these are all sites that I have that use the module). There is no master calendar or anything. Both portals have only one language activated (de-AT),
I installed DNN 9.7.2 (blank site template) in a testing environment, activated de-AT and deactivated en-US. I installed the Core Resource Pack (de-AT), Events 07.00.06 and the de-AT resource pack. Then I placed an instance of the Event module on the start page. There were just a few settings to change to make it work (Email addresses, timezone - note: I did not change anything else!), then I added some events,
Then I upgraded to DNN 9.8.0 - and the error was there.
So it is easy to reproduce.

I didn't spend much time on it due to 9.8.0 being pretty new. When I tested I believe I got the same error. I restored the site back to 9.7.2 and really didn't do much troubleshooting.

Just tried to upgrade a site from DNN 9.6.1 to 9.8.0 - same problem. Here I have a "master" calendar that includes three sub calendars. The only one that works is the sub-calendar that does not have a single event (lazy editor :-))

Set up a DNN 9.7.2 website (blank template), just added the Events Module, I placed it on the start page, set the timezone and the email addresses and added an event. Upgraded to 9.8.0 -> Error. So this is no localization issue.
Did the same without adding an event, and withou changing any setting (just went into settings, and clicked update). Then upgraded to DNN 9.8.0. No error, Could add an event as well.

The serialization in DNN980 has changed on several points from previous DNN versions causing a breaking error:
DotNetNuke.Entities.Modules.Settings.SerializationManager.DotNetNuke.Abstractions.ISerializationManager.DeserializeProperty[T](T myObject, PropertyInfo property, String propertyValue, String serializer)
at DotNetNuke.Entities.Modules.Settings.SettingsRepository1

I did not have time yet to see how this can be fixed.

I get the same error (Message:Could not cast System.Collections.ArrayList to property ModuleLocationIDs of type System.Collections.ArrayList
StackTrace:
at DotNetNuke.Entities.Modules.Settings.SerializationManager.DotNetNuke.Abstractions.ISerializationManager.DeserializeProperty[T](T myObject, PropertyInfo property, String propertyValue, String serializer) ... after upgrade to DNN 9.8.

I get the same error (Message:Could not cast System.Collections.ArrayList to property ModuleLocationIDs of type System.Collections.ArrayList
StackTrace:
at DotNetNuke.Entities.Modules.Settings.SerializationManager.DotNetNuke.Abstractions.ISerializationManager.DeserializeProperty[T](T myObject, PropertyInfo property, String propertyValue, String serializer) ... after upgrade to DNN 9.8.

@brewadmin Yes, I know, it is a result of the changed Settings routines in DNN980. I still have to see what has to be changed...

@brewadmin Yes, I know, it is a result of the changed Settings routines in DNN980. I still have to see what has to be changed...

Hi Ernst
Thanks for the reply.
It must be pretty frustrating sometimes with the breaking changes coming through so often.
Kind regards
Brent Wilson
ITM Website Design, SEO and Digital Marketing
084 7515 616
http://www.itm.co.za/ www.itm.co.za
From: Ernst Peter Tamminga<EMAIL_ADDRESS>Sent: Monday, 11 January 2021 3:36 PM
To: DNNCommunity/DNN.Events<EMAIL_ADDRESS>Cc: Brent Wilson<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [DNNCommunity/DNN.Events] Module 7.0.6 Fails after Upgrade to DNN 9.8.0 (#229)
@brewadmin https://github.com/brewadmin  Yes, I know, it is a result of the changed Settings routines in DNN980. I still have to see what has to be changed...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/DNNCommunity/DNN.Events/issues/229#issuecomment-757954656 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ADJABZYWZ6PW4TNFO3D54O3SZL5CNANCNFSM4VETGRAA .  https://github.com/notifications/beacon/ADJABZZJWIDGIA2XQ543NUDSZL5CNA5CNFSM4VETGRAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFUWXQYA.gif

Hi Ernst
Thanks for the reply.
It must be pretty frustrating sometimes with the breaking changes coming through so often.
Kind regards
Brent Wilson
ITM Website Design, SEO and Digital Marketing
084 7515 616
http://www.itm.co.za/ www.itm.co.za
From: Ernst Peter Tamminga<EMAIL_ADDRESS>Sent: Monday, 11 January 2021 3:36 PM
To: DNNCommunity/DNN.Events<EMAIL_ADDRESS>Cc: Brent Wilson<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [DNNCommunity/DNN.Events] Module 7.0.6 Fails after Upgrade to DNN 9.8.0 (#229)
@brewadmin https://github.com/brewadmin  Yes, I know, it is a result of the changed Settings routines in DNN980. I still have to see what has to be changed...
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/DNNCommunity/DNN.Events/issues/229#issuecomment-757954656 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ADJABZYWZ6PW4TNFO3D54O3SZL5CNANCNFSM4VETGRAA .  https://github.com/notifications/beacon/ADJABZZJWIDGIA2XQ543NUDSZL5CNA5CNFSM4VETGRAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFUWXQYA.gif

Has anyone discovered a fix for this?  We had a ransomeware attack on our server and have been forced to upgrade to 9.8 and now the events module doesn't work.  I've looked at the code, but I can't see the failure.  Any thoughts on how to get thsi working?

Has anyone discovered a fix for this?  We had a ransomeware attack on our server and have been forced to upgrade to 9.8 and now the events module doesn't work.  I've looked at the code, but I can't see the failure.  Any thoughts on how to get thsi working?

I think the error is related to a change in DNN980 in serialization:
https://github.com/dnnsoftware/Dnn.Platform/pull/4312
I did not find the time yet to dig deeper into the problem.

I think the error is related to a change in DNN980 in serialization:
https://github.com/dnnsoftware/Dnn.Platform/pull/4312
I did not find the time yet to dig deeper into the problem.

I was thinking it was more related to this change. https://github.com/dnnsoftware/Dnn.Platform/pull/4087
But I could be wrong. I to tried looking at the code to see if I could figure it out. I don’t have a proper DNN development environment setup so was unable to follow the DNN source code. I was able to install the symbols and could see which lines of code being reported. That was about it though.

I was thinking it was more related to this change. https://github.com/dnnsoftware/Dnn.Platform/pull/4087
But I could be wrong. I to tried looking at the code to see if I could figure it out. I don’t have a proper DNN development environment setup so was unable to follow the DNN source code. I was able to install the symbols and could see which lines of code being reported. That was about it though.

@james7342 I think you are right.
I will try to allocate some time tomorrow to have a serious look since the problem irritates me :-(

@james7342 I think you are right.
I will try to allocate some time tomorrow to have a serious look since the problem irritates me :-(

The error is coming from the ModuleLocationIDs property in the settings, which is an ArrayList, but is marked as a ModuleSetting.  Without a custom serializer specified, there's no way for this property to be serialized and deserialized correctly.  I'm guessing that the error was silently ignored before the change in 9.8.0, but I don't see that it was doing anything useful with this field prior to 9.8.0.  If you remove the ModuleSetting attribute, does that resolve the issue?
https://github.com/DNNCommunity/DNN.Events/blob/356397a58b1521700c3b378db57b1a7a112eb4cc/Components/EventModuleSettings.cs#L414-L428

The error is coming from the ModuleLocationIDs property in the settings, which is an ArrayList, but is marked as a ModuleSetting.  Without a custom serializer specified, there's no way for this property to be serialized and deserialized correctly.  I'm guessing that the error was silently ignored before the change in 9.8.0, but I don't see that it was doing anything useful with this field prior to 9.8.0.  If you remove the ModuleSetting attribute, does that resolve the issue?
https://github.com/DNNCommunity/DNN.Events/blob/356397a58b1521700c3b378db57b1a7a112eb4cc/Components/EventModuleSettings.cs#L414-L428

That looks like it fixes it. I created a DNN 9.7.2 instance. Installed Events 7.0.6 and placed module on page. Changed some random settings and created a single test event. I created a fork of the project and just commented out the line 414.  Rebuilt the project and installed the module (Repair Installation). Loaded the page and the calendar loaded without error. Since I'm not everyday developer and not sure what other possible issues might happen with this change I'll let some smarter than me do the actually code change and commit. But playing with this in my little slice of the world appears to have resolved it. Looks like maybe this was just an errant line.
//[ModuleSetting]
public ArrayList ModuleLocationIDs
{
get
{
if (ReferenceEquals(_moduleLocationIDs, null))
{
var arLoc = new ArrayList();
arLoc.Add(ModuleLocationID);
_moduleLocationIDs = arLoc;
}
return _moduleLocationIDs;
}
set { _moduleLocationIDs = value; }
}

That looks like it fixes it. I created a DNN 9.7.2 instance. Installed Events 7.0.6 and placed module on page. Changed some random settings and created a single test event. I created a fork of the project and just commented out the line 414.  Rebuilt the project and installed the module (Repair Installation). Loaded the page and the calendar loaded without error. Since I'm not everyday developer and not sure what other possible issues might happen with this change I'll let some smarter than me do the actually code change and commit. But playing with this in my little slice of the world appears to have resolved it. Looks like maybe this was just an errant line.
//[ModuleSetting]
public ArrayList ModuleLocationIDs
{
get
{
if (ReferenceEquals(_moduleLocationIDs, null))
{
var arLoc = new ArrayList();
arLoc.Add(ModuleLocationID);
_moduleLocationIDs = arLoc;
}
return _moduleLocationIDs;
}
set { _moduleLocationIDs = value; }
}

@bdukes Tnx for having a look. I need to see if the ModuleSettings is a result of VB,net->C# conversion some releases ago.
I know I had the idea to have a look 2 days ago, but time flies when you need to do "normal" work from home in Corona times...

@bdukes Tnx for having a look. I need to see if the ModuleSettings is a result of VB,net->C# conversion some releases ago.
I know I had the idea to have a look 2 days ago, but time flies when you need to do "normal" work from home in Corona times...

I have looked into it somewhat further. The code is from serious time back.
The list of locations should be saved in the module settings since the module can limit the locations that are available for events in a particular module instance.
Commenting out the line [ModuleSettings] is not the solution (yes, it is the solution to circumvent the error, but does not enable saving the settings for location id's).
I have to look a bit further to make it without error.

I have looked into it somewhat further. The code is from serious time back.
The list of locations should be saved in the module settings since the module can limit the locations that are available for events in a particular module instance.
Commenting out the line [ModuleSettings] is not the solution (yes, it is the solution to circumvent the error, but does not enable saving the settings for location id's).
I have to look a bit further to make it without error.

@EPTamminga so you're saying that while it didn't error before DNN 9.8.0, it didn't store a meaningful value, right?  So, it was never storing the list of IDs that you wanted it to store.
You have two options to get the serialization manager to handle a custom type like ArrayList.  First, you can move it to a property which has the string value, and parse it manually when you need it. This is the strategy used by the ModuleCategoryIDs setting:
https://github.com/DNNCommunity/DNN.Events/blob/356397a58b1521700c3b378db57b1a7a112eb4cc/Components/EventModuleSettings.cs#L356-L385
The second option it to specify a custom serializer in the ModuleSetting attribute.  The Serializer property of the attribute can be set to the name of a type that implements ISettingsSerializer<ArrayList>, and then that class will be called to translate to a from string when interacting with the settings table.

@EPTamminga so you're saying that while it didn't error before DNN 9.8.0, it didn't store a meaningful value, right?  So, it was never storing the list of IDs that you wanted it to store.
You have two options to get the serialization manager to handle a custom type like ArrayList.  First, you can move it to a property which has the string value, and parse it manually when you need it. This is the strategy used by the ModuleCategoryIDs setting:
https://github.com/DNNCommunity/DNN.Events/blob/356397a58b1521700c3b378db57b1a7a112eb4cc/Components/EventModuleSettings.cs#L356-L385
The second option it to specify a custom serializer in the ModuleSetting attribute.  The Serializer property of the attribute can be set to the name of a type that implements ISettingsSerializer<ArrayList>, and then that class will be called to translate to a from string when interacting with the settings table.

@bdukes Tnx for the suggestions.
What is was trying to say that it did work before DNN980. I will implement the change like the CategoryID's.

@bdukes Tnx for the suggestions.
What is was trying to say that it did work before DNN980. I will implement the change like the CategoryID's.

Thanks guys - good stuff here and that makes sense.  I appreciate everyone jumping in to make this compatible with DNN 9.8!

Thanks guys - good stuff here and that makes sense.  I appreciate everyone jumping in to make this compatible with DNN 9.8!

I am having the same issue. I upgraded to DNN 9.8.1 and updated the Events module to 7.0.6 version. The module is loading with an error and the page is breaking.
Please can you advise how to fix this? I a using the installable PA version of the Events module.

I am having the same issue. I upgraded to DNN 9.8.1 and updated the Events module to 7.0.6 version. The module is loading with an error and the page is breaking.
Please can you advise how to fix this? I a using the installable PA version of the Events module.

@maduranga001 To fix this at the moment you have the following possibilities:

Stay on DNN 9.7.2 until an upgrade of the Events module is available.
Create a fork, fix the issue and start a pull request.

As we see in Brian's and Ernst Peter's post above, a solution should be near...

@maduranga001 To fix this at the moment you have the following possibilities:

Stay on DNN 9.7.2 until an upgrade of the Events module is available.
Create a fork, fix the issue and start a pull request.

As we see in Brian's and Ernst Peter's post above, a solution should be near...

Thank you @MalikT
Actually, now we have already upgraded to DNN 9.8.1 and we have to stay with it. So I have to wait for the new release.

@maduranga001 To fix this at the moment you have the following possibilities:

Stay on DNN 9.7.2 until an upgrade of the Events module is available.
Create a fork, fix the issue and start a pull request.

As we see in Brian's and Ernst Peter's post above, a solution should be near...

Thank you @MalikT
Actually, now we have already upgraded to DNN 9.8.1 and we have to stay with it. So I have to wait for the new release.

@maduranga001 To fix this at the moment you have the following possibilities:

Stay on DNN 9.7.2 until an upgrade of the Events module is available.
Create a fork, fix the issue and start a pull request.

As we see in Brian's and Ernst Peter's post above, a solution should be near...

Testing and verification
I just installed a clean DNN981, installed a clean Events706 and did not find any error...
It works as expected, including a limitation for a category and/or a location in the module settings with no errors.
I installed the Events706 on a clean DNN972, created events, no problem.
Created an addition module instance in a separate page and used a limitation in category and location.
In DNN972, no problem. I upgraded to DNN981. The events module that did not have a limitation on location and category had no problem, the instance that had the limitation, did have the error.
Hotfixing the problem
By deleting (by SQL) the modulesettings table that limits the category and/or location, I can make the module work again. The only negative effect is that you have to reapply the limits on categories and/or locations in the module settings, because those limitations are removed by the SQL statement.
Hotfix
The SQL statement (to be used from the SQL console in the Host) is:
DELETE  FROM {databaseOwner}[{objectQualifier}ModuleSettings]
WHERE   ModuleID IN
        (
            SELECT MS.ModuleID
            FROM   {databaseOwner}[{objectQualifier}ModuleSettings] AS MS
                INNER JOIN {databaseOwner}[{objectQualifier}Modules] AS MO
				    ON MO.ModuleID = MS.[ModuleID]
                INNER JOIN {databaseOwner}[{objectQualifier}ModuleDefinitions] AS MD
                    ON MD.ModuleDefID = MO.ModuleDefID
            WHERE MS.SettingName LIKE 'Module%Ids'
        )
        AND [ModuleSettings].SettingName LIKE 'Module%Ids';

Events707
In the Events707 update, I will implement this delete statement, so the upgrade will also remove the settings, since I see no option to upgrade the settings.
Verification?
I would be more than happy if people here could verify the solution I listed here.
@MaiklT @maduranga001 @djamell @blair260 @james7342 @brewadmin Any of you willing to test it in you scenario?
New version in the works
In the meantime, I will change the locationId's settings as mentioned by @bdukes

Testing and verification
I just installed a clean DNN981, installed a clean Events706 and did not find any error...
It works as expected, including a limitation for a category and/or a location in the module settings with no errors.
I installed the Events706 on a clean DNN972, created events, no problem.
Created an addition module instance in a separate page and used a limitation in category and location.
In DNN972, no problem. I upgraded to DNN981. The events module that did not have a limitation on location and category had no problem, the instance that had the limitation, did have the error.
Hotfixing the problem
By deleting (by SQL) the modulesettings table that limits the category and/or location, I can make the module work again. The only negative effect is that you have to reapply the limits on categories and/or locations in the module settings, because those limitations are removed by the SQL statement.
Hotfix
The SQL statement (to be used from the SQL console in the Host) is:
DELETE  FROM {databaseOwner}[{objectQualifier}ModuleSettings]
WHERE   ModuleID IN
        (
            SELECT MS.ModuleID
            FROM   {databaseOwner}[{objectQualifier}ModuleSettings] AS MS
                INNER JOIN {databaseOwner}[{objectQualifier}Modules] AS MO
				    ON MO.ModuleID = MS.[ModuleID]
                INNER JOIN {databaseOwner}[{objectQualifier}ModuleDefinitions] AS MD
                    ON MD.ModuleDefID = MO.ModuleDefID
            WHERE MS.SettingName LIKE 'Module%Ids'
        )
        AND [ModuleSettings].SettingName LIKE 'Module%Ids';

Events707
In the Events707 update, I will implement this delete statement, so the upgrade will also remove the settings, since I see no option to upgrade the settings.
Verification?
I would be more than happy if people here could verify the solution I listed here.
@MaiklT @maduranga001 @djamell @blair260 @james7342 @brewadmin Any of you willing to test it in you scenario?
New version in the works
In the meantime, I will change the locationId's settings as mentioned by @bdukes

@EPTamminga
Performed the below test. The workaround is short lived. Once the application is restarted the error returns on page load.
Environment:
DNN 9.7.2
Events 7.0.6
Test Setup:
Events Module on Page
Create 2 Locations via Edit Locations (Test1, Test2)
Create 3 Test Events
2 with the locations assign (Test1, Test2)
1 with No Location
Test Case 1:
Adjust Module Filter Location (Events/Edit Setting/Filter Events by Location)
Set Module Filter to Test1, Load Page Only Test1 Events displayed
Set Module Filter to Test2, Load Page Only Test2 Events displayed
Set Module Filter to All, Load Page All Events displayed

Everything works as expected

Test Case 2:
Upgrade to DNN 9.8.1
Verified page Load Failure
Ran SQL statement in Host/DNN SQL Console
Page still had error message
Restart Application - Host/Servers - Critical in order for the page to load properly
Page Loads without Error
Adjust Module Filter Location (Events/Edit Setting/Filter Events by Location)
Set Module Filter to Test1, Load Page Only Test1 Events displayed
Set Module Filter to Test2, Load Page Only Test2 Events displayed
Set Module Filter to All, Load Page All Events displayed
Everything Works as expected
Test Case 3:
Restart Application - Host/Servers
Page Load Failure same error

@EPTamminga
Performed the below test. The workaround is short lived. Once the application is restarted the error returns on page load.
Environment:
DNN 9.7.2
Events 7.0.6
Test Setup:
Events Module on Page
Create 2 Locations via Edit Locations (Test1, Test2)
Create 3 Test Events
2 with the locations assign (Test1, Test2)
1 with No Location
Test Case 1:
Adjust Module Filter Location (Events/Edit Setting/Filter Events by Location)
Set Module Filter to Test1, Load Page Only Test1 Events displayed
Set Module Filter to Test2, Load Page Only Test2 Events displayed
Set Module Filter to All, Load Page All Events displayed

Everything works as expected

Test Case 2:
Upgrade to DNN 9.8.1
Verified page Load Failure
Ran SQL statement in Host/DNN SQL Console
Page still had error message
Restart Application - Host/Servers - Critical in order for the page to load properly
Page Loads without Error
Adjust Module Filter Location (Events/Edit Setting/Filter Events by Location)
Set Module Filter to Test1, Load Page Only Test1 Events displayed
Set Module Filter to Test2, Load Page Only Test2 Events displayed
Set Module Filter to All, Load Page All Events displayed
Everything Works as expected
Test Case 3:
Restart Application - Host/Servers
Page Load Failure same error

@james7342 You are right. I did not restart the site while testing myself.

@james7342 You are right. I did not restart the site while testing myself.

@james7342 In your test environment: update the bin with the following files, but DO clean the settings with the SQL first.
EVents707DLL.zip

@james7342 In your test environment: update the bin with the following files, but DO clean the settings with the SQL first.
EVents707DLL.zip

Thank you very much.
If I try the above solution for now, how do we use the next new version? Do you have the solution to replace before we install the newer version?

Thank you very much.
If I try the above solution for now, how do we use the next new version? Do you have the solution to replace before we install the newer version?

@maduranga001 First of all, do not use the above things in a production environment. They are just for testing purposes here.
I will create a new version (Events 7.0.7, that will handle all the update stuff, with one exception: if you have used the locations and/or category limitations in the module settings, you have to reapply them after installing the new version.
I will try to limit the update to the location settings, but I have to do some testing first..

@maduranga001 First of all, do not use the above things in a production environment. They are just for testing purposes here.
I will create a new version (Events 7.0.7, that will handle all the update stuff, with one exception: if you have used the locations and/or category limitations in the module settings, you have to reapply them after installing the new version.
I will try to limit the update to the location settings, but I have to do some testing first..

@EPTamminga
Different error this time, but still a failure after restarting application.
Test Setup:
DNN981
Event706
Test Case 1:
Confirm page load failure
Run Delete SQL statement in Host/DNN SQL Console
Copy Test DLL files in to Root/Bin Folder (EVents707DLL.zip)
Restart Application - Host/Servers
Page Load without error
Adjust Module Filter Location (Events/Edit Setting/Filter Events by Location)
Set Module Filter to Test1, Load Page Only Test1 Events displayed
Set Module Filter to Test2, Load Page Only Test2 Events displayed
Set Module Filter to All, Load Page All Events displayed
Everything works as expected
Test Case 2:
Restart Application - Host/Servers
Page Load with error - Though different error message the prior.
Error: Events is currently unavailable. DotNetNuke.Services.Exceptions.ModuleLoadException: Input string was not in a correct format. ---> System.FormatException: Input string was not in a correct format. at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.String.System.IConvertible.ToInt32(IFormatProvider provider) at Components.EventModuleSettings.get_ModuleLocationsSelected() in C:\DDrive\Develop\GitHub\DNN.Events\Components\EventModuleSettings.cs:line 454 at DotNetNuke.Modules.Events.SelectLocation.get_SelectedLocation() in C:\DDrive\Develop\GitHub\DNN.Events\SubControls\SelectLocation.ascx.cs:line 119 at DotNetNuke.Modules.Events.EventMonth.BindDataGrid() in C:\DDrive\Develop\GitHub\DNN.Events\EventMonth.ascx.cs:line 167 at DotNetNuke.Modules.Events.EventMonth.Page_Load(Object sender, EventArgs e) in C:\DDrive\Develop\GitHub\DNN.Events\EventMonth.ascx.cs:line 113 --- End of inner exception stack trace ---

@EPTamminga
Different error this time, but still a failure after restarting application.
Test Setup:
DNN981
Event706
Test Case 1:
Confirm page load failure
Run Delete SQL statement in Host/DNN SQL Console
Copy Test DLL files in to Root/Bin Folder (EVents707DLL.zip)
Restart Application - Host/Servers
Page Load without error
Adjust Module Filter Location (Events/Edit Setting/Filter Events by Location)
Set Module Filter to Test1, Load Page Only Test1 Events displayed
Set Module Filter to Test2, Load Page Only Test2 Events displayed
Set Module Filter to All, Load Page All Events displayed
Everything works as expected
Test Case 2:
Restart Application - Host/Servers
Page Load with error - Though different error message the prior.
Error: Events is currently unavailable. DotNetNuke.Services.Exceptions.ModuleLoadException: Input string was not in a correct format. ---> System.FormatException: Input string was not in a correct format. at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) at System.String.System.IConvertible.ToInt32(IFormatProvider provider) at Components.EventModuleSettings.get_ModuleLocationsSelected() in C:\DDrive\Develop\GitHub\DNN.Events\Components\EventModuleSettings.cs:line 454 at DotNetNuke.Modules.Events.SelectLocation.get_SelectedLocation() in C:\DDrive\Develop\GitHub\DNN.Events\SubControls\SelectLocation.ascx.cs:line 119 at DotNetNuke.Modules.Events.EventMonth.BindDataGrid() in C:\DDrive\Develop\GitHub\DNN.Events\EventMonth.ascx.cs:line 167 at DotNetNuke.Modules.Events.EventMonth.Page_Load(Object sender, EventArgs e) in C:\DDrive\Develop\GitHub\DNN.Events\EventMonth.ascx.cs:line 113 --- End of inner exception stack trace ---

@james7342
Tnx for testing., I think I see what I have to change more.
I will try to set up a better test cycle (similar to yours), so I can verify it myself before bothering others :-)
More tomorrow.

@james7342
Tnx for testing., I think I see what I have to change more.
I will try to set up a better test cycle (similar to yours), so I can verify it myself before bothering others :-)
More tomorrow.

@EPTamminga and @james7342 - has anyone had any luck with getting this to work?  I tried with the build but keep getting the same, or something similar, error.  What are you guys thinking?  Thanks for all the help here! - Sam

@EPTamminga and @james7342 - has anyone had any luck with getting this to work?  I tried with the build but keep getting the same, or something similar, error.  What are you guys thinking?  Thanks for all the help here! - Sam

@blair260- Nothing is fixed yet in code and the potential workaround doesn’t work long term. Ernst was going to do some more work on it, but I’m sure the day job might be getting in the way. Anyone running the module should hold off on upgrading to DNN 9.8.X at this point until it’s resolved.

@blair260- Nothing is fixed yet in code and the potential workaround doesn’t work long term. Ernst was going to do some more work on it, but I’m sure the day job might be getting in the way. Anyone running the module should hold off on upgrading to DNN 9.8.X at this point until it’s resolved.

I am still on it, but due to work and some private matters, I could not allocate time to do the requires changes and testing.
It is on my list...

I am still on it, but due to work and some private matters, I could not allocate time to do the requires changes and testing.
It is on my list...

I could finally allocate time to have a new round on the error.
Do not do the following things on a production site!
The instruction is for testing purposes only!
Instruction for validation
The instruction below can be executed on an upgraded site (DNN980 or DNN981) that has DNNEvents 7.0.6 installed and produces the error.
Run the following SQL statement in the Host/SQL option, to clear out the setting that causes the error (you will lose the location limitation setting in the module settings, but that has to go)
DELETE  FROM {databaseOwner}[{objectQualifier}ModuleSettings]
WHERE   ModuleID IN
        (
            SELECT DISTINCT MS.ModuleID
            FROM   {databaseOwner}[{objectQualifier}ModuleSettings] AS MS
                INNER JOIN {databaseOwner}[{objectQualifier}Modules] AS MO
				    ON MO.ModuleID = MS.[ModuleID]
                INNER JOIN {databaseOwner}[{objectQualifier}ModuleDefinitions] AS MD
                    ON MD.ModuleDefID = MO.ModuleDefID
            WHERE MD.DefinitionName = 'Events'
        )
        AND [ModuleSettings].SettingName = 'ModuleLocationIds';

Unzip the files in the attached zip en copy (overwrite) them in the bin folder of the site.
Events707TestDLL.zip
Things should work now without error.
Please provide feedback
@MaiklT @maduranga001 @djamell @blair260 @james7342 @brewadmin  Any of you available to do some testing?
If I get confirmation on success, I will create a new DNNEvents release

I could finally allocate time to have a new round on the error.
Do not do the following things on a production site!
The instruction is for testing purposes only!
Instruction for validation
The instruction below can be executed on an upgraded site (DNN980 or DNN981) that has DNNEvents 7.0.6 installed and produces the error.
Run the following SQL statement in the Host/SQL option, to clear out the setting that causes the error (you will lose the location limitation setting in the module settings, but that has to go)
DELETE  FROM {databaseOwner}[{objectQualifier}ModuleSettings]
WHERE   ModuleID IN
        (
            SELECT DISTINCT MS.ModuleID
            FROM   {databaseOwner}[{objectQualifier}ModuleSettings] AS MS
                INNER JOIN {databaseOwner}[{objectQualifier}Modules] AS MO
				    ON MO.ModuleID = MS.[ModuleID]
                INNER JOIN {databaseOwner}[{objectQualifier}ModuleDefinitions] AS MD
                    ON MD.ModuleDefID = MO.ModuleDefID
            WHERE MD.DefinitionName = 'Events'
        )
        AND [ModuleSettings].SettingName = 'ModuleLocationIds';

Unzip the files in the attached zip en copy (overwrite) them in the bin folder of the site.
Events707TestDLL.zip
Things should work now without error.
Please provide feedback
@MaiklT @maduranga001 @djamell @blair260 @james7342 @brewadmin  Any of you available to do some testing?
If I get confirmation on success, I will create a new DNNEvents release

Ernst, I think you might have got it.
Starting Environment:
DNN 9.7.2
Events 7.0.6
Test Setup:
Events Module on Page
Create 2 Locations via Edit Locations (Test1, Test2)
Create 3 Test Events
2 with the locations assigned (Test1, Test2)
1 with no Location
Test Case 1:
Adjust Module Filter Location (Events/Edit Setting/Filter Events by Location)
Set Module Filter to Test1, Load Page, Only Test1 Events displayed
Set Module Filter to Test2, Load Page, Only Test2 Events displayed
Set Module Filter to All, Load Page All Events displayed
Everything works as expected
Test Case 2:
Upgrade to DNN 9.8.1
Verified page Load Failure
Run Delete SQL statement in Host/DNN SQL Console
Page still had error message
Restart Application - Host/Servers - Critical in order for the page to load properly
Page loads without error
Copy Test DLL files in to Root/Bin Folder (Events707TestDLL.zip)
Restart Application - Host/Servers - Critical in order for the page to load properly
Verify page still loads without error on new DLL's
Adjust Module Filter Location (Events/Edit Setting/Filter Events by Location)
Set Module Filter to Test1, Load Page, Only Test1 Events displayed
Set Module Filter to Test2, Load Page, Only Test2 Events displayed
Set Module Filter to All, Load Page All Events displayed
Everything Works as expected
Test Case 3:
Restart Application - Host/Servers - Critical in order for the page to load properly - Just to perform additional reset
Verify page still loads without error
Adjust Module Filter Location (Events/Edit Setting/Filter Events by Location)
Set Module Filter to Test1, Load Page, Only Test1 Events displayed
Set Module Filter to Test2, Load Page, Only Test2 Events displayed
Set Module Filter to All, Load Page All Events displayed
Everything Works as expected
Test Case 4:
Restart Dev/Test PC Virtual Machine
Verify page still loads without error
Adjust Module Filter Location (Events/Edit Setting/Filter Events by Location)
Set Module Filter to Test1, Load Page, Only Test1 Events displayed
Set Module Filter to Test2, Load Page, Only Test2 Events displayed
Set Module Filter to All, Load Page All Events displayed
Everything Works as expected

Ernst, I think you might have got it.
Starting Environment:
DNN 9.7.2
Events 7.0.6
Test Setup:
Events Module on Page
Create 2 Locations via Edit Locations (Test1, Test2)
Create 3 Test Events
2 with the locations assigned (Test1, Test2)
1 with no Location
Test Case 1:
Adjust Module Filter Location (Events/Edit Setting/Filter Events by Location)
Set Module Filter to Test1, Load Page, Only Test1 Events displayed
Set Module Filter to Test2, Load Page, Only Test2 Events displayed
Set Module Filter to All, Load Page All Events displayed
Everything works as expected
Test Case 2:
Upgrade to DNN 9.8.1
Verified page Load Failure
Run Delete SQL statement in Host/DNN SQL Console
Page still had error message
Restart Application - Host/Servers - Critical in order for the page to load properly
Page loads without error
Copy Test DLL files in to Root/Bin Folder (Events707TestDLL.zip)
Restart Application - Host/Servers - Critical in order for the page to load properly
Verify page still loads without error on new DLL's
Adjust Module Filter Location (Events/Edit Setting/Filter Events by Location)
Set Module Filter to Test1, Load Page, Only Test1 Events displayed
Set Module Filter to Test2, Load Page, Only Test2 Events displayed
Set Module Filter to All, Load Page All Events displayed
Everything Works as expected
Test Case 3:
Restart Application - Host/Servers - Critical in order for the page to load properly - Just to perform additional reset
Verify page still loads without error
Adjust Module Filter Location (Events/Edit Setting/Filter Events by Location)
Set Module Filter to Test1, Load Page, Only Test1 Events displayed
Set Module Filter to Test2, Load Page, Only Test2 Events displayed
Set Module Filter to All, Load Page All Events displayed
Everything Works as expected
Test Case 4:
Restart Dev/Test PC Virtual Machine
Verify page still loads without error
Adjust Module Filter Location (Events/Edit Setting/Filter Events by Location)
Set Module Filter to Test1, Load Page, Only Test1 Events displayed
Set Module Filter to Test2, Load Page, Only Test2 Events displayed
Set Module Filter to All, Load Page All Events displayed
Everything Works as expected

@james7342 Thank you for your feedback!

@james7342 Thank you for your feedback!

Hi Ernst
There is a an additional concern around the DotNetNuke.Modules.Events.dll and its dependency on the Telerik controls and dll’s
We are moving all our clients off and removing modules dependent on Telerik, because one of our most important clients was hacked via these components
Kind regards
Brent Wilson
ITM Website Design, SEO and Digital Marketing
084 7515 616
http://www.itm.co.za/ www.itm.co.za
From: Ernst Peter Tamminga<EMAIL_ADDRESS>Sent: Sunday, 31 January 2021 8:13 PM
To: DNNCommunity/DNN.Events<EMAIL_ADDRESS>Cc: Brent Wilson<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [DNNCommunity/DNN.Events] Module 7.0.6 Fails after Upgrade to DNN 9.8.0 (#229)
@james7342 https://github.com/james7342  Thank you for your feedback!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/DNNCommunity/DNN.Events/issues/229#issuecomment-770424728 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ADJABZZSZHTCGKVF57BHQ43S4WMS7ANCNFSM4VETGRAA .  https://github.com/notifications/beacon/ADJABZYBHQSDETLXDFLOS6DS4WMS7A5CNFSM4VETGRAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOFXV37GA.gif

@brewadmin There is already an issue (#85) about this.

I have created an update (07.00.07) that should solve the problem.
I am doing some more investigation, because I have the idea that the default filtering on categories and/or locations in the module settings are not saved on restarts. If you do not use this setting (most users do not use this particular filtering), you do not have to worry.
I will combine this with the removal of the Telerik controls that are used for these sestings (multi select combobox).


class_prefix= and project_name= and organization= don't get assigned to Project instance

In the Cakefile,
project_name = "Ello"
class_prefix = "Ello"
organization = "Ello"

debug_configuration :Debug
release_configuration :Release

These have no effect on the Project instance, because this assignment looks like a local variable assignment.  In the short term I replaced these with self.project_name=.

Yeah in an earlier version you had to write the following which worked:
Project.new do |project|
project.class_prefix = "Ello"
end

We could return to this or we could do something simpiler such as :+1:
Project do |project|
project.class_prefix = "Ello"
end

or just
project.class_prefix = "Ello"

Interesting... another thought, might be a bit too "magic":
file_contents = File.read(file_path)

file_contents << <<-MORE

if defined?(project_name)
  self.project = project_name
end

MORE

project = Project.new
project.instance_eval(file_contents)

Instead of Project do I think that project do ... would be a good place to put these project configurations.  It matches well with target do ....
project do |p|
  p.project_name = "Ello"
  p.class_prefix = "Ello"
  p.organization = "Ello"
end

debug_configuration :Debug
release_configuration :Release

application_for :ios, 8.0, :swift do |target|

Final call is up to you, I was just reporting the error.  Happy to brainstorm, though!  The Project.new or Project do syntax seems off to me (am I creating a new project?), but as a plain method it makes sense.  I wouldn't be opposed to using a file-wide Project.create do wrapper, either (that's how it works in RubyMotion actually).
You could even encourage @project_name = "foo", but that does not seem ideal.

Actually, I think I like the defined?(project_name) code the most!  It offers a succinct Cakefile.  You'd have to maintain a white list of properties.
file_contents = File.read(file_path)

local_vars = [:project_name, :class_prefix, :organization]
local_vars.each do |var_name|
  file_contents << <<-MORE

self.#{var_name} = #{var_name} if defined?(#{var_name})
MORE

So the file wide wrapper or method would be more explicit but could intro some boilerplate. On the other hand it could be more understandable especially for people coming from Rubymotion
We could instead whitelist or introduce methods to configure the project like you have suggested. The project in general has fewer things to configure so I think it is acceptable.
I really like what @orta, @segiddins and the team did with Cocoapods when specifiying the OS a project is for.
platform :ios, '9.0'
Most of their configuration syntax is method based
though so White listing properties may work for us.
Main concerns for me is fragility and also how obvious these are magic properties.
But I suppose given the minimal amount of configuration these properties are unlikely to be used for anything but configuration (I.e the user isn't going to declare their own local variables named the same thing)

I think I like those properties on further reflection

So I've been thinking about this for a while and had a play around with it. I think exposing a project method would be the easiest.
project do |p|
  p.project_name = "Ello"
  p.class_prefix = "Ello"
  p.organization = "Ello"
end

Whitelisting I think would require the author of the Cakefile to be aware of those special properties and for us to also whitelist them. I think the method is a good tradeoff (2 extra lines).
And as you point out it is consistent with what we already have :).

Thanks for brainstorming with me, really helped to nail down something! :)

Cool! I dig it! Happy to help! 😆

On Jan 21, 2016, at 3:50 AM, James Campbell<EMAIL_ADDRESS>wrote:
Thanks for brainstorming with me, really helped to nail down something! :)
—
Reply to this email directly or view it on GitHub.


TCP/UDP library bindings?

it would be fun!

Which library are you thinking of? All the basic networking functions are already implemented via linux syscalls.

maybe this? https://github.com/starwing/znet

That would be a way to do it. The only problem is that this library is not installed on linux systems by default (maybe precompile?).  I'd rather use the builtin library from glibc/musl, but they use structs with bitfields, which CSpydr doesn't support.
Finally there would be the option to just write it from scratch, which I'll probably do someday, but currently the stdlib is too minimal for something like that...

i think i might attempt to use that library in cspydr (i assume i d [link("the compiled library here")] right? )

yes, exactly. But that could lead to errors when the path is not correct, try using absolute paths or install the libraray in /usr/lib.
I'm really happy to see someone use my language btw! :)

So, how‘s it going? Any news?

Closing this because of lack of activity

the "binding" stuff is in the namespace internal, and the stuff the developer is gonna use is outside it

That's good, that's also how I do it since CSpydr lacks private functions

ah, yeah; the test will be updated soon!
also, i plan on either making a minecraft server (using the tcp stuff) or something else


Some of Configuration.browserCapabilities are lost

Are not added capabilities chrome
Selenide: 4.10
Examle code:
@BeforeSuite
public void setUp() {
  ChromeOptions chromeOptions = new ChromeOptions();
  chromeOptions.addArguments(("load-extension=C:\Users\extension"));
  chromeOptions.addExtensions(new File("/path/to/extension.crx"));
  Configuration.browserCapabilities = new DesiredCapabilities();
  Configuration.browserCapabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
  Configuration.browser = (getPropertyConfig("browser"));
}

@BorisOsipov 11:09:
@VadimGulich да проблема есть, сделаешь ишью на гитхабе?
@VadimGulich 11:09:
@BorisOsipov Да, сделаю

There is a workaround for this issue: you can define WebDriver manually and use com.codeborne.selenide.WebDriverRunner.setWebDriver() method to use WebDriver with ChromeOptions you want, e.g.:
        ChromeOptions options = new ChromeOptions();
        options.addArguments("user-data-dir=" + chromeProfile);
        options.addArguments("start-maximized");

        System.setProperty("webdriver.chrome.driver", "C:\\temp\\chromedriver.exe");
        WebDriver webDriver = new ChromeDriver(options);
        webDriver.navigate().to("http://zao-t.wl.test.eirc.mos.ru:7003/pir_war/#");

        setWebDriver(webDriver);

BTW: if you want to change user profile (like in the code above) you'd probably need to make a special Automation profile otherwise you can run you tests only when all the instances of browser with profile you use are closed.

I am trying to update the default browser download settings using the below steps:
ChromeOptions options = new ChromeOptions();
HashMap<String, Object> chromePref = new HashMap<>();
chromePref.put("download.default_directory", );
chromePref.put("profile.default_content_settings.popups", 0);
options.setExperimentalOption("prefs", chromePref);
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
options.merge(capabilities);
Configuration.browserCapabilities = capabilities;
It does not work for me?
Is this the same issue as in this thread.

The same issue found in Selenide 5.6.0

Using Selehide 5.10.0, this also doesn't seem to work at all
Configuration.baseUrl = url;
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-extensions");
options.addArguments("--headless");
options.addArguments("--no-sandbox");
options.addArguments("--window-size=1920,1080");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
Configuration.browserCapabilities = capabilities;
open(url);

Even when minimizing down to just
Configuration.baseUrl = url;
ChromeOptions options = new ChromeOptions();
options.addArguments("--window-size=1920,1080");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
Configuration.browserCapabilities = capabilities;
open(url);

The workaround mentioned in https://github.com/selenide/selenide/issues/676#issuecomment-407321797 works, but I want to avoid calling setWebDriver manually

Hi friends,
Any updates about the fix and release that?
It is a bit affect current implementation.
Thank you and have a nice day!

@anplay Since it's cause by Selenium issue https://github.com/SeleniumHQ/selenium/issues/5279, we don't know when they are going to fix it. Everyone of us can also do it - it's open source.
@anplay If you have any ideas how to overcome it on Selenide side - you are welcome. Please share them.

@asolntsev
I went over the Selenium code. The bug seems to be in the ChromeOptions class, asMap method.
https://github.com/SeleniumHQ/selenium/blob/e82be7d3584062a0d16af8d562d387e3d4855aa1/java/client/src/org/openqa/selenium/chrome/ChromeOptions.java#L268
The "goog:chromeOptions" of the original capabilities are being overwritten by this method in this line -
https://github.com/SeleniumHQ/selenium/blob/e82be7d3584062a0d16af8d562d387e3d4855aa1/java/client/src/org/openqa/selenium/chrome/ChromeOptions.java#L294
As a workaround on Selenide side, we could perhaps add the custom arguments in the ChromeDriverFactory class, after the line https://github.com/selenide/selenide/blob/bf2b214ec5f2c002ee403cdffc21d8b3d8b98cc7/src/main/java/com/codeborne/selenide/webdriver/ChromeDriverFactory.java#L43 and before merging the options, as this is the only argument that is not being overwritten by the asMap method

@Firefds to be honest didn't get what workaround you suggested. Can I ask you to share some code snippet with changes in ChromeDriverFactory you mean?

@BorisOsipov this seems to work. It's raw and can probably be better, but the chrome options I pass finally work correctly -
options.addArguments("--proxy-bypass-list=<-loopback>");
TreeMap<?, ?> capabilities = (TreeMap<?, ?>) config.browserCapabilities().getCapability(ChromeOptions.CAPABILITY);
List<?> list = (List<?>) capabilities.get("args");
for (Object argument : list) {
      options.addArguments(argument.toString());
}
options.merge(createCommonCapabilities(config, proxy));

works with
Configuration.baseUrl = url;
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-extensions");
options.addArguments("--headless");
options.addArguments("--no-sandbox");
options.addArguments("--window-size=1920,1080");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
Configuration.browserCapabilities = capabilities;
open("/");

@Firefds yes it will work. But only for chrome args. To completely fix issue we will must do the same in all *BrowserName*DriverFactories for all *BrowserName*Options and their intrenals capabilities - and if we do so we will reimplement merge in original selenium org.openqa.selenium.MutableCapabilities#merge :) It isn't I want to do(
Does this look correct?

But the more I look at this problem the more I understand taht is only solutions as workaround in selenide.

@BorisOsipov I agree.. the problem is indeed with the asMap method of the drivers, for example the ChromeDriver
https://github.com/SeleniumHQ/selenium/blob/e82be7d3584062a0d16af8d562d387e3d4855aa1/java/client/src/org/openqa/selenium/chrome/ChromeOptions.java#L268
But Selenium is working on the new 4 version, and the new Selenium 4 API isn't compatible with Selenide as for now

How about adding a more general field in one of the Configuration or SelenideConfig classes that stores raw browser arguments?

new Selenium 4 API isn't compatible with Selenide as for now

which API changes you talk about?

new Selenium 4 API isn't compatible with Selenide as for now

which API changes you talk about?

https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-api/4.0.0-alpha-5
and also the new 4 chrome web driver
https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver/4.0.0-alpha-5

@Firefds yes we already do some steps to check how to migrate to v4. But now I don't see any changes in this API.
see this PR
https://github.com/selenide/selenide/pull/1099

How about adding a more general field in one of the Configuration or SelenideConfig classes that stores raw browser arguments?

Maybe it is good. How do you see such field should work?

How about adding a more general field in one of the Configuration or SelenideConfig classes that stores raw browser arguments?

Maybe it is good. How do you see such field should work?

Similar to how ChromeOptions.addArguments and Configuration.browserCapabilities work.
We should have a class called BrowserArguments with has a field List<String> args.
With BrowserArguments.addArguments we could add arguments to that object.
Then pass it to Configuration using Configuration.browserArguments and add the arguments to the browser options like I mentioned https://github.com/selenide/selenide/issues/676#issuecomment-607403770

@BorisOsipov example here
https://github.com/Firefds/selenide/commit/7aba54bdffcb84b6108217a0f61ad9482d7010cd

I hope it will be fixed by PR https://github.com/selenide/selenide/pull/1155

Hi, is this feature present in Selenide maven version 5.12.2?
Some classes do not exist (e.g. BrowserArguments) in downloaded Selenide classes after I pull maven dependency, however, the last commit (7aba54bdffcb84b6108217a0f61ad9482d7010cd) in master in Selenide repository contains BrowserArguments.java class.

Yes, this feature is included in Selenide 5.12.0 and later.

looks like broken again (


Output Foldername [suggestion]

So some models have the same name (mostly character loras) so it would be great if we could set the name for the folder based on the URN/AIR from civit ai.
https://github.com/civitai/civitai/wiki/AIR-‐-Uniform-Resource-Names-for-AI
Example:
urn: Uniform Resource Name optional
air: Artificial Intelligence Resource optional
{ecosystem}: Type of the ecosystem (sd1, sd2, sdxl)
{type}: Type of the resource (model, lora, embedding, hypernet)
{source}: Supported network source
{id}: Id of the resource from the source
{format}: The format of the model (safetensor, ckpt, diffuser, tensor rt) optional
And as some models have multiple versions (1.0, 1.2, etc) and multiple files per version (VAE, CKPT, full, half, etc) so it would be great if you could also have it download all of them also.
Granted im probably the minority of people who download the entire model sets but i have some weird ocd thing going on so if there 9 different items im downloading them all.  I guess i like to have stuff in case i need it later or if the files get deleted.  I dunno.

It shouldn't be too difficult to implement it as a sorter if the URN and AIR is in a model metadata's JSON.
I'll try when I have time next time

Sorry, I know it has been a while, but looking at your suggestion again, it seems like it can be split into three:

[ ] Folder name based on the uniform resource names.
[ ] Downloading all versions of a model.
[ ] Download all files for a specific version.

For number 1, since Windows doesn't allow colons, it would be better to configure the folder structure like so: urn/air/{ecosystem}/{type}/{source}/{id}/{format}. There is one thing I am confused with though. What is a source?
For numbers 2 and 3, I think I will need to modify the code and maybe add two options along the lines of --all-versions and --all-files.
For number 2, I will have to consider how that is going to impact all of the different civitdl sources (not urn:air sources). As an example, if a source is a civitai.com/api URL with only version id and --all-versions is configured, should the program only download that specified version, or download all versions associated with the model?
For number 3, would it be possible for you to provide an example of a model version with multiple files (e.g. safetensors, ckpt, pt, vae, etc.)?


cannot instantiate Cusser when using windows-curses

When using zephyrproject-rtos/windows-curses, the following error message is returned when attempting to instantiate Cusser with stdscr = Cusser(stdscr):
Exception has occurred: error
init_pair() returned ERR

I believe this is a result of zephyrproject-rtos/windows-curses#10 which says:

Trying to call curses.init_pair(0, curses.COLOR_RED, curses.COLOR_BLACK) raises an exception

I have confirmed that https://github.com/zephyrproject-rtos/windows-curses/issues/10 is indeed the issue. As a quick test, I updated on_add_pair with the following and was able to get it to run (colors were not proper, however, as expected):
def on_add_pair(pair: ochre.ColorPair, manager: ColorManager) -> None:
    """Initialize a color pair when it is added to the color manager."""
    if os.name == 'nt':
        curses.init_pair(manager[pair]+1, manager[pair.foreground], manager[pair.background])
    else:
        curses.init_pair(manager[pair], manager[pair.foreground], manager[pair.background])

By ensuring we didn't use pair 0, it no longer returned ERR on init_pair()


Zep Hybrid Search

Zep now supports persisting custom metadata with messages and hybrid search across both message embeddings and structured metadata. This PR implements custom metadata and enhancements to the ZepChatMessageHistory and ZepRetriever classes to implement this support.
Tag maintainers/contributors who might be interested:
VectorStores / Retrievers / Memory

@dev2049

@hwchase17 Thanks!


Fix to Performance issue of docstore #13:

This is a part of the fix for https://github.com/orbitdb/orbit-db-docstore/issues/13.
Please refer to the above link for detail.

Close this as well.


[meta] Compiler Inequality

As some know, the designers of Perl 6 worked hard to ensure good separation between the language and compilers that implement it, to support a fertile environment for multiple teams to try out new takes on implementing the language. Among actively-developed, other than Rakudo, we know of one more closed-source implementation ("Fan lang") that might become open-sourced in non-optimized version in the future. So, even today, there's already more than one Perl 6 compiler, and there for sure will be more in the future.
I'm starting off my experiment of making Your™. It is a not-really-a-compiler for Perl 6 language, which is a nearly-minimal compiler that will pass the roast and thus can be called a compliant implementation of Perl 6. The main goal of the project will be to explore spec coverage as well as to find any roadblocks to a multi-Perl-6-compiler world, such us how we document things, etc. The secondary goal will be to invite people to write Perl 6 implementations and provide relevant educational resources.
On this meta issue, I'll reference all the problems that I'll discover. Should be a fun trip \o/

Problems found so far:

Rakudo lays claim to the perl6 executable Can instead be seen as a common entry point to multiple implementations as users need to only swap implementations and the rest of the stuff will work out.

Meh


The toolbar is intended to be context sensitive. This means that actions that require a selection do not show unless an item is selecfted

the toolbar is intended to be context sensitive: buttons that require a selection to be applicable therefore do not show up unless something is selected. This means that 'disable' would only be shown when an item that can be disabled is selected.
And once a disabled item is selected, 'enable' should show.

Today: Disable is shown as a menu (vs button) in the toolbar even when nothing is selected.
Expected: disable button should not be visible

Today: Disable shows as menu when item is selected, requiring user to click the dropdown and see only 1 item in the menu enabled: 'disable'
Expected: Disable should show as a button upon selecting an node that. can be diasbled (but is not disabled yet)

Today: Once an item is disabled, but not selected, 'Disable' shows up in the toolbar menu, tho not active
Expected: as nothing is selected, no node can be enabled or disabled. Dont show the button.
Today: Once a disabled item is selected, the 'disable' option is shown on the toolbar, active, even though the selected node cannot be disabled-  it already is disabled
Expected: as the node is alerady disabled, the appropriate action is to 'enable' - make the button say this and do not require the user to hit disable to get access to 'enable'

@mareekuh "Disable" as a menu and not a button is by design and in the figma--we discussed this recently. https://www.figma.com/file/LlTlh5vXwq91zjGnFtrUUR6l/Composer-main-design-spec-%2F-UI-library?node-id=2968%3A26994

I agree that this feels odd UX.  If it is going to be a drop down menu, then the top menu should be 'Enable / Disable'.  If we can toggle the button text depending on the status of the selected object then it should switch depending on the context.
I can't see the commentary linked to - @cwhitten is this something we can address?

@cwhitten - We need to revise what is implemented based on user feedback.
@JaskeeratBedi-cmk  can you take a pass at this and run it by me/vivek?

@vivekkshankar - can you take this on moving forward? I know you are already looking at this (and have so in the past).

Unless anyone objects, can we just do this?

nothing selected = show "Disable" button in the disabled state
node selected and the node is enabled = show "Disable"  button in the rest state
node selected and the node is disabled = hide "Disable" button, in its place, show an "Enable" button in the rest state
mix of nodes that are disabled and enabled = hide "Disable" button, in its place, show an "Enable" button in the rest state; when pressed, all the selected nodes should be enabled


Updated ReadMe

Travis Build failed due to newly introduced CVE's in the base image. Requires a review to add them into whitelist.

Is there an ISSUE we can reference for this?

#36


Implement modulo operator

Instead of introducing a new operator, I would suggest to implement the MOD(a, n) function.


fix: missing nextSelectionSet in handler details

Add nextSelectionSet to the handler details.
Having access to nextSelectionSet is useful when you want to call lookDeeper inside the next handler of another lookDeeper (when building a state starting from a given type).

:tada: This PR is included in version 1.1.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


NuttX STM32F7 write-back dcache

Due to ARM 1259864 data corruption eratta we currently have the dcache disabled on stm32f7. One solution is to switch to write-back data cache configuration, but this is currently broken for other reasons (starting at our own px4io driver https://github.com/PX4/Firmware/pull/12075).

https://nuttx.org/doku.php?id=wiki:howtos:port-drivers_stm32f7#write-back_vs_write-through_d-cache

@davids5 Is there a quick path to get there?

I had spent a little bit of time on this before discussing it with Daniel. It's really just a matter of spending the time to ferret out all of the issues. The obvious ones that hard faults will be the first. Second Step would be figuring out the subtle bugs due to misalignment


LINK-1753 | Fix screen overflow issues for small screen

Description

Support background inlining in TableWrapper component and use display grid to avoid screen overflow
Have button panel submit buttons in separate rows to avoid screen overflow
Fix event card overflow issues

Closes
LINK-1753

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (3e547d8) 99.73% compared to head (d084c8e) 99.73%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #289   +/-   ##
=======================================
  Coverage   99.73%   99.73%
=======================================
  Files         593      593
  Lines        9765     9765
  Branches     2156     2156
=======================================
  Hits         9739     9739
  Misses         23       23
  Partials        3        3

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Omit potential NotFound when cleaning up the Affinity Assistant

Changes
The PipelineRun reconciler cleanup the affinity assistant
when the PipelineRun is completed. If the cleanup-function
is called more than once, the DELETE request will return
a NotFound response. It does not make sense to return NotFound
responses as an error, since this is what we want to achieve.
Closes #3205
/kind bug

Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[ ] Includes tests (if functionality changed/added)
[ ] Includes docs (if user facing)
[x] Commit messages follow commit message best practices
[x] Release notes block has been filled in or deleted (only if no user facing changes)

See the contribution guide for more details.
Double check this list of stuff that's easy to miss:

If you are adding a new binary/image to the cmd dir, please update
the release Task to build and release this image.

Reviewer Notes
If API changes are included, additive changes must be approved by at least two OWNERS and backwards incompatible changes must be approved by more than 50% of the OWNERS, and they must first be added in a backwards compatible way.
Release Notes
Omit potential NotFound events when cleaning up the Affinity Assistant

Thanks for fixing this @jlpettersson !
It seems like cleanupAffinityAssistants is called regardless of whether or not the affinity assistant is enabled, is it possible to avoid calling it when the assistant is disabled?
Side note if at all possible let's move toward not having functions on the reconciler and having a separate affinity assistant package we can unit test (if we make more updates here)
/approve
/lgtm

Any ideas when the fix for this would be presented on the Pipeline Operator on Openshift 4.5?

@abudavis I am having the same issue on the openshift pipeline operator 1.1.1 on Openshift 4.5. I guess this is a question we have to raise with RedHat? Cause it uses the Tekton pipeline 0.14.3

@abudavis @bharathvenkatrajan this will be available in OpenShift Pipelines 1.2 (released in a few weeks).


Debugging: Unsetting a breakpoint in the editor isn't reflected until you restart debugging entirely

From<EMAIL_ADDRESS>on 2011-04-04T11:40:02Z
What steps will reproduce the problem?

Set a break point inside a function
Write a for loop to call the function multiple times
Run in debugging mode
When the debugger stops on the break point unset the break point
Continue debugging and see that it still halts on the break point What is the expected output? What do you see instead? Spyder should respect the change in the debugging break points at run-time without having to restart debugging from the beginning of the script. What version of the product are you using? On what operating system? Spyder 2.0.9, Windows XP SP3, python 2.6.1

Original issue: http://code.google.com/p/spyderlib/issues/detail?id=609

From ccordoba12 on 2011-05-15T19:31:43Z
Labels: Cat-Debugger

From<EMAIL_ADDRESS>on 2013-01-28T17:29:51Z
I'm going to eventually address this, but I probably won't get to it for a bit. Let's not hold up the 2.2 release.
Owner<EMAIL_ADDRESS>Labels: MS-v2.3

From<EMAIL_ADDRESS>on 2013-04-06T11:10:34Z
Fixed by this series of changes: revision 60d63ffc8b5d revision 3942ebdecbfe revision c4597613ba21
Status: Fixed

From<EMAIL_ADDRESS>on 2013-02-21T16:34:13Z
issue #1279 has been merged into this issue.

From ccordoba12 on 2013-04-06T09:24:18Z
Labels: -MS-v2.3 MS-v2.2


Jest not showing skipped tests and throws if testNamePattern does not match any test

💥 Regression Report
I need to discover the test case names before executing them. I use the configuration option testNamePattern with value ^$a which will not match any string and hence cause jest to skip all tests. I use a custom reporter to check the test case names. After updating jest to latest version, using this test pattern and running jest I get this error.
 FAIL  __test__/test.js
  ● Test suite failed to run

    Your test suite must contain at least one test.

      at node_modules/jest-cli/build/test_scheduler.js:246:22

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        2.68s
Ran all test suites with tests matching "^$a".

Another regression, if a testNamePattern matches some tests in one suite and no tests in another suite, the unmatched tests are not reported as skipped. Consider 4 test cases in the same file suite a > test 1, suite a > test 2, suite b > test 1 and suite b > test 2
 FAIL  __test__/test.js
  suite a
    √ test 1 (1ms)
    × test 2 (9ms)

  ● suite a › test 2

    assert.(received, expected)

    Expected value   undefined
    Received:
      ""

    Difference:

      Comparing two different types of values. Expected undefined but received string.

       7 |
       8 |     it('test 2', () => {
    >  9 |         assert.fail('');
         |                ^
      10 |     });
      11 | });
      12 |

      at Object.it (__test__/test.js:9:16)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 1 passed, 2 total
Snapshots:   0 total
Time:        2.981s
Ran all test suites with tests matching "suite a".

The two test cases in suite a match and are executed. Test cases for suite b don't match and are not shown as skipped.
Last working version
Worked up to version: 22.4.3
Stopped working in version: 23.2.0
To Reproduce
const assert = require('assert')

describe('suite a', () => {
    it('test 1', () => {

    });

    it('test 2', () => {
        assert.fail('');
    });
});

describe('suite b', () => {
    it('test 1', () => {

    });

    it('test 2', () => {
        assert.fail('');
    });
});

Run jest with config
{
    "testNamePattern": "^$a"
}

and
{
    "testNamePattern": "suite a"
}

Expected behavior
For "testNamePattern": "^$a"
Jest v22.1.2 node v7.4.0 linux/amd64

Test Suites: 1 skipped, 0 of 1 total
Tests:       4 skipped, 4 total
Snapshots:   0 total
Time:        0.915s, estimated 1s
Ran all test suites with tests matching "^$a".

For "testNamePattern": "suite a"
Jest v22.1.2 node v7.4.0 linux/amd64

 FAIL  ./add-test.js
  suite a
    ✓ test 1 (3ms)
    ✕ test 2 (9ms)
  suite b
    ○ skipped 2 tests

  ● suite a › test 2

    assert.(received, expected)

    Expected value   undefined
    Received:
      ""

    Difference:

      Comparing two different types of values. Expected undefined but received string.

       7 |
       8 |     it('test 2', () => {
    >  9 |         assert.fail('');
      10 |     });
      11 | });
      12 |

      at Object.it (add-test.js:9:16)

Test Suites: 1 failed, 1 total
Tests:       1 failed, 2 skipped, 1 passed, 4 total
Snapshots:   0 total
Time:        1.002s
Ran all test suites with tests matching "suite a".
exit status 1

Link to repl or repo (highly encouraged)
I see that repl.it is running jest v22.1.2 and the output is as expected, but here it is anyway for the sake of this issue not being stalled: https://repl.it/repls/WideeyedFrayedTerabyte
Run npx envinfo --preset jest
npx: installed 1 in 2.58s
Path must be a string. Received undefined
npx: installed 1 in 2.651s
C:\Users\karsin\AppData\Roaming\npm-cache\_npx\8504\node_modules\envinfo\dist\cli.js

  System:
    OS: Windows 10
    CPU: x64 Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz
  Binaries:
    npm: 5.6.0 - C:\Program Files\nodejs\npm.CMD

Any update on this?

Can reproduce on Jest master. Somebody:tm: should bisect

This looks pretty similar to #6415. Also, I fixed testNamePattern in regards to interactive snapshot updates. I wonder if there was some root cause that is bringing up regression reports related to testNamePattern?

I did a bisect, it was introduced by this PR https://github.com/facebook/jest/pull/6234.
The regression is only present in jasmine, it works fine with JEST_CIRCUS=1

@jbdemonte thoughts?

need to dig...

I guess this pull request will fix it


Fix obvious jshint issues

releasing a huge project at work this week, but will work on getting this merged as soon as I have some time to hack on the weekend.

@rubenstolk I'm merging your fixes here:
https://github.com/bcoe/thumbd/pull/91
had to patch a couple things to get tests passing.


[Feature Requeset] ENOM Domain Support

What is the idea?
Feature request. It would be great to have ENOM domain register added to th elist.
Why would this be beneficial
Benefits - Selling domains

BoxBilling is extensible and everyone can bring support for external services by coding domain adapters for them. I don't think we'll be able to create and maintain all of the requested services with a small team and no help from the community.
So if you are interested, feel free to write your own adapter. And we'd be glad if you share it with the community. Thanks for your interest.

BoxBilling is extensible and everyone can bring support for external services by coding domain adapters for them. I don't think we'll be able to create and maintain all of the requested services with a small team and no help from the community.
So if you are interested, feel free to write your own adapter. And we'd be glad if you share it with the community. Thanks for your interest.

Thank you for looking at it, I wish I was good at coding to do it, I just thought I would ask.


I can't change setting

Hello
I use esphome-jk-bms with a nodemcu and a Device model: SP15S051-P14S-60A on HA
I can read only, the 3 switches are non active (charging / discharging / balancer)
Can you help me please ?

ok sorry, I mix the 2 projects
It's ok, i found the external_components_source: github://syssi/esphome-jbd-bms@add-controls and I can modify the able or disable the charging/discharging function

thanks and sorry, I mixed the 2 project
I found external_components_source: github://syssi/esphome-jbd-bms@add-controls and now I can disable some functions
Thanks


[WIP] Fix - Precompute Report Rows

Trello: https://trello.com/c/wSruwud5/627-csv-export-broken
The CSV export was broken due to an unexpected Array object instead of
a Hash, returned by the Audits::Report rows method.
A new method of retrieving reports rows was introduced, but this is not
supported by the old values anymore.
This fix aims to set data for all the item involved in the reports
generations, triggering their after_save callbacks.

@mgrassotti after discussion with @pmanrubia, am going to close this PR for now and attach it to https://trello.com/c/lgJVfNB6 as the original bug is fixed by the data cleanup I did. We may not need to do this work at all as "improvement of content" stream of work may supersede the report generation aspect of the Audit Tool in the future. We can always come back to this PR if we get to work on this tech debt. Hope that's ok.


Add Ecosia Icon

The icon I want is:

Name: Ecosia
URL: https://ecosia.org/ / https://info.ecosia.org/what
Link to icon: https://upload.wikimedia.org/wikipedia/en/1/11/Ecosia_logo.png /
https://upload.wikimedia.org/wikipedia/de/d/d8/Ecosia_Logo.png

Vector version of the logo: https://commons.m.wikimedia.org/wiki/File:Ecosia-like_logo.svg
Official style guide or brand guide: https://ecosia.co/ecosialogos

Can you assign me on this?

Would like to work on this.


Enforce valid format options in spec tests

Summary
Make serde fail when there's a unknown PyFormatOptions in a spec .options.json file.
This revealed a few tests that used incorred settings.
Test Plan
Running the tests revealed some tests with invalid options, proofing the point that it now works as expected.

Current dependencies on/for this PR:

main

PR #9021   👈

PR #9020

This stack of pull requests is managed by Graphite.


Imcompatibilty with Hair,cloth,etc from UMA 2

Hi,
Maybe it's totaly normal, your HUMAN HD, does'nt seem to be compatible with the clothing, hair,etc from UMA 2 or other package ? Did you know if something can be done to make it work ?

If I understand your question correctly, it's because I purposely made HumanHD not a compatible race to force people to realize that all the existing clothing would need to be upgraded too.  When I originally made this, there wasn't a simple shader, material, and uma material upgrade from built-in to HDRP.

ok. however i'm pretty new with UMA , did you know how we need to proceed to update these parts ?

Have you joined the discord channel? I would suggest asking for help there.  I don't support UMA anymore.
https://discord.gg/m6DkSPjWmr


fix: config.set should reject buffer values

config.set should be rejecting buffer values[0]. Currently it accepts them because a buffer returns typeof of object, and is serialized into an object {type: 'buffer', data: [...]}.
This change brings the type checking of the value field inline with the js-ipfs-repo[1].
More info: https://github.com/ipfs/interface-ipfs-core/issues/320
[0] https://github.com/ipfs/interface-ipfs-core/blob/ef910266b36c89fe21f9821f86bdb9955d60b468/js/src/config/set.js#L82-L87
[1] https://github.com/ipfs/js-ipfs-repo/blob/a7ea45bac6f1c264f86e79357f702314758a48f1/src/config.js#L65-L67

@travisperson please rebase master onto this branch to get that CI green :)

@diasdavid @alanshaw 💚


Getting started cargo.toml not valid

The getting started guide contains:
diesel_codegen = { version = "0.7.0", default-features = false, features = ["nightly", "postgres"] }

However cargo says:
error: Package `diesel_codegen v0.7.0` does not have these features: `nightly`

Using rustc 1.12.0-nightly (28ce3e8a5 2016-08-01)

Same problem here.

I am having the same issue:
# rustup show
Default host: x86_64-unknown-linux-gnu

installed toolchains
--------------------

stable-x86_64-unknown-linux-gnu
nightly-x86_64-unknown-linux-gnu (default)

active toolchain
----------------

nightly-x86_64-unknown-linux-gnu (default)
rustc 1.12.0-nightly (8787a1233 2016-08-11)

I just did a literal copy-paste of the tutorial (including version = "0.7.0" and got this rather confusing error:
 diesel_demo git:(master) cargo run --bin show_posts
    Updating registry `https://github.com/rust-lang/crates.io-index`
error: Package `diesel_codegen v0.7.1` does not have these features: `nightly`

So it seems to be using v0.7.1 instead of 0.7.0.
Fix

Take "nightly" out of diesel_codegen and set version to "0.7.1"
set dotenv_macros version to "0.9.0"

Then it seems to compile and run

I would recommend just changing the "getting started" guide to using the newer versions. Not sure why Cargo is trying to get 0.7.1 when I am explicitly telling it to use 0.7.0 -- could be a Cargo bug?

The broken code is at (static link to commit):
https://github.com/vitiral/notes/tree/bc4941d8427654818919d97448c52b866b2725d6/rust/diesel/diesel_demo

re-reading the tutorial I see that you require a specific nightly version. I will just use that -- thanks!

FYI:

Not sure why Cargo is trying to get 0.7.1 when I am explicitly telling it to use 0.7.0 -- could be a Cargo bug?

Cargo treats 0.7.0 as ^0.7.0, which is the version range ≥0.7.0 AND < 0.8.0.


sql: setting to disable NotVisible index feature

Exalate commented:
Related PR: https://github.com/cockroachdb/cockroach/pull/86033
Commit: https://github.com/cockroachdb/cockroach/commit/5830d7035cdfab0107c546cc3b9ee956e6a7b150

Release note (sql change): Session setting optimizer_use_not_visible_indexes
and cluster setting sql.defaults.optimizer_use_not_visible_indexes.enabled can
be used to disable not visible index feature. When they are enabled, optimizer
treats not visible indexes as they are visible and can choose to use them for
query plan. By default, they are disabled.
Jira Issue: DOC-5345

Note that the cluster setting sql.defaults.optimizer_use_not_visible_indexes.enabled was removed in https://github.com/cockroachdb/cockroach/pull/86634 (but the session setting optimizer_use_not_visible_indexes still exists).


We need to do something about our custom versions of PouchDB/Express-PouchDB

We have a custom release of PouchDB because the latest release fails tests in our custom release of Express-PouchDB. But in theory we can probably just figure out what the problem is and fix it. That is most likely worth doing anyway because PouchDB is constantly getting bug fixes. Also the longer we go without updating PouchDB the more bugs accrete that we have to fix.
In the case of Express-PouchDB the new mono repo isn't ready and we can't run tests on the old repo. So we are probably stuck with our custom version for a while. In that case we could probably just publish  it to NPM with our own name (e.g. ThaliExpressPouchDB) and use that until Express-PouchDB comes back from the dead.
If we don't do the above then we need to teach Thali users how to build our custom versions of both projects and that would be sad.

Closed in favor of Zube #2200


Treat empty and uninitialized Maps the same in equality checks

Treat an empty Map the same as an uninitialized Map when performing equality checks. This ensures that reading a map field does not alter the hashCode or equality comparisons of the message itself.

Closing in favor of #638.

Maintainer's note: internally an identical patch was implemented in cl/304375641.


NSFW filter

Fixes #435 by @kgodey

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

(by sheer coincidence, I used that first "cat" result to test the mature filter in the dev environment, so that's why it only appears in the mature results)

Two comments:

Why there is a Settings category for only one filter? The categories should include more than one element. Otherwise, it could be shown as the Search by Creator filter.
The section where filters appear neither have the label Filter by nor the gray background

@panchovm the Settings thing is how it's described in the issue (See "Filter" in #848). The Filter By is a bug. Thanks for spotting it. I'll fix it

fixed

@akmadian the results come from the API. I think the filter will work better as more images are classified as nsfw. @aldenstpage can clear it up better for you
As for the alignment, can you open an issue so that this can be done separately

@akmadian In this initial pass, we don't have any way to automatically identify an image as NSFW, we just created the means to flag an image manually and exclude them from the search results. In the future we'll use keywords to flag potential NSFW images. This ticket has some details: https://github.com/creativecommons/cccatalog-api/issues/482


Armbian aarch64/arm64  orangepi4-lts speechsdk segmentation fault

My OS
Description:    Ubuntu 22.04.2 LTS
Linux orangepi4-lts 6.1.30-rockchip64 #3 SMP PREEMPT Wed May 24 16:32:53 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
**** List of CAPTURE Hardware Devices ****
card 0: rockchipes8316c [rockchip-es8316c], device 0: ff880000.i2s-ES8316 HiFi ES8316 HiFi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: hdmisound [hdmi-sound], device 0: ff8a0000.i2s-i2s-hifi i2s-hifi-0 [ff8a0000.i2s-i2s-hifi i2s-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
Python 3.10.6

demo.py I used
#!/usr/bin/env python3
import azure.cognitiveservices.speech as speechsdk

recognizer = speechsdk.KeywordRecognizer()
model_file="kws.table"
model = speechsdk.KeywordRecognitionModel(model_file)

result_future = recognizer.recognize_once_async(model)
print("Say something starting with the keyword...")
result = result_future.get()

if result.reason == speechsdk.ResultReason.RecognizedKeyword:
    print("Recognized keyword: {}".format(result.text))
elif result.reason == speechsdk.ResultReason.Canceled:
    cancellation_details = result.cancellation_details
    print("Recognition canceled: {}".format(cancellation_details.reason))
    if cancellation_details.reason == speechsdk.CancellationReason.Error:
        print("Error details: {}".format(cancellation_details.error_details))

stop_future = recognizer.stop_recognition_async()
print("Stopping...")
stopped = stop_future.get()

crashed
$ python3 demo.py

Say something starting with the keyword...
Segmentation fault

Initial bug was closed and wasn't resolved

Could you please share the Carbon SDK logs as well. Instructions to enable logging can be found here:
https://learn.microsoft.com/en-us/azure/ai-services/speech-service/how-to-use-logging

Absolutely

$ python3 src/main.py
Traceback (most recent call last):
  File "/opt/AssistantPlato/src/main.py", line 89, in <module>
    speech_recognizer = speechsdk.SpeechRecognizer(
  File "/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/speech.py", line 1006, in __init__
    _call_hr_fn(
  File "/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/interop.py", line 62, in _call_hr_fn
    _raise_if_failed(hr)
  File "/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/interop.py", line 55, in _raise_if_failed
    __try_get_error(_spx_handle(hr))
  File "/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/interop.py", line 50, in __try_get_error
    raise RuntimeError(message)
RuntimeError: Exception with error code:
[CALL STACK BEGIN]

/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/libMicrosoft.CognitiveServices.Speech.core.so(+0xe9530) [0xffff8f129530]
/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/libMicrosoft.CognitiveServices.Speech.core.so(diagnostics_log_apply_properties+0xc8) [0xffff8f1137f4]
/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/libMicrosoft.CognitiveServices.Speech.core.so(+0xf68c4) [0xffff8f1368c4]
/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/libMicrosoft.CognitiveServices.Speech.core.so(+0x1474ec) [0xffff8f1874ec]
/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/libMicrosoft.CognitiveServices.Speech.core.so(+0x1477bc) [0xffff8f1877bc]
/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/libMicrosoft.CognitiveServices.Speech.core.so(+0x10b6f4) [0xffff8f14b6f4]
/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/libMicrosoft.CognitiveServices.Speech.core.so(+0x1d9288) [0xffff8f219288]
/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/libMicrosoft.CognitiveServices.Speech.core.so(+0x142304) [0xffff8f182304]
/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/libMicrosoft.CognitiveServices.Speech.core.so(+0x1e6df0) [0xffff8f226df0]
/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/libMicrosoft.CognitiveServices.Speech.core.so(+0x14262c) [0xffff8f18262c]
/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/libMicrosoft.CognitiveServices.Speech.core.so(+0x204e58) [0xffff8f244e58]
/home/user/.local/share/virtualenvs/AssistantPlato-qjxu2X5g/lib/python3.10/site-packages/azure/cognitiveservices/speech/libMicrosoft.CognitiveServices.Speech.core.so(recognizer_create_speech_recognizer_from_config+0x110) [0xffff8f0fb82c]
/lib/aarch64-linux-gnu/libffi.so.8(+0x6e10) [0xffff8f546e10]
/lib/aarch64-linux-gnu/libffi.so.8(+0x3a94) [0xffff8f543a94]
/usr/lib/python3.10/lib-dynload/_ctypes.cpython-310-aarch64-linux-gnu.so(+0x12b10) [0xffff8f572b10]
/usr/lib/python3.10/lib-dynload/_ctypes.cpython-310-aarch64-linux-gnu.so(+0x10f0c) [0xffff8f570f0c]
python3(PyObject_Call+0xa8) [0xaaaac51e47bc]
[CALL STACK END]

Exception with an error code: 0x8 (SPXERR_FILE_OPEN_FAILED)

You'll need to update the "LogfilePathAndName" in the set property to point to a location where you have write privilegesl

When I enabled logging, it stopped to crash, but it doesn't "speak" and doesn't recognize. Here is log https://gist.github.com/dzianisv/bd85a47de7659afbcae086f9cada0c57

These commands play sound,
user@orangepi4-lts:~$ paplay /usr/share/sounds/alsa/Front_Right.wav
user@orangepi4-lts:~$ paplay /usr/share/sounds/alsa/Front_Left.wav

@dzianisv Could you please share the sample code? From the log, I see SpeechSynthesizer being used and error happens in Gstreamer initialization.

Gstreamer requires installation of additional plugins as listed in https://github.com/Azure-Samples/cognitive-services-speech-sdk/tree/master/samples/cpp/linux/compressed-audio-input otherwise there will be SPXERR_GSTREAMER_INTERNAL_ERROR like seen in the log. Verified the linked sample works on Raspberry Pi 4 after the prerequisites are met.


Thoth.Json and Thoth.Json.Net v2

When I say Thoth.Json it is grouping both Thoth.Json and Thoth.Json.Net.
⚠  Important ⚠
Thoth.Json v2 will only support Fable 2.
We already have some alpha packages released to test it on some production apps. But here we try to focus on presenting/defining the user experience.
Special thanks to:

@alfonsogarciacaro for working on making the Auto decoder/encoder works.
@glennsl for proposing the object builder style and answering my questions about it

Introduction
I am creating this PR, so we (as a community) can discuss the next version of Thoth.Json.
It's important to note that with Fable 2, Thoth.Json will be the recommanded way when working with JSON.
If you have any questions, ideas, please comment under this PR :)
Breaking changes
Tracking traveled path
The decoders are now tracking the traveled path.
// Old signature
type Decoder<'T> = obj -> Result<'T, DecoderError>

// New signature
type Decoder<'T> = string -> obj -> Result<'T, DecoderError>

This allow us to print the traveled path so when working with complexe JSON, we can better find the failing location. The path generated is a valid JSONPath so user can use tools like JSONPath Online Evaluator to explore your JSON.
Example of error:
Error at: `$.user.firstname`
Expecting an object with path `user.firstname` but instead got:
{
    "user": {
        "name": "maxime",
        "age": 25
    }
}
Node `firstname` is unkown.

Module based API
Both Encode and Decode modules are now decorated with [<RequireQualifiedAccess>]. This is needed to provide a consistant user experience and avoid problem where FSharp.Core function are override like string, int.
// Old API
open Thoth.Json.Decode

type Point =
    { X : int
      Y : int }

    static member Decoder : Decoder<Point> =
        map2 (fun x y ->
                { X = x
                  Y = y } : Point)
             (field "x" int)
             (field "y" int)

// New API
open Thoth.Json

type Point =
    { X : int
      Y : int }

    static member Decoder : Decoder<Point> =
        Decode.map2 (fun x y ->
                { X = x
                  Y = y } : Point)
             (Decode.field "x" Decode.int)
             (Decode.field "y" Decode.int)

Obsolete API
We are marking some APIs as Obsolete, in order to provide better readability and have a consistant naming with the AutoAPIs.
Encode module
[<System.Obsolete("Please use toString instead")>]
let encode (space: int) (value: Value) : string = toString space value

Decode module
[<System.Obsolete("Please use fromValue instead")>]
let decodeValue (path : string) (decoder : Decoder<'T>) = fromValue path decoder

[<System.Obsolete("Please use fromString instead")>]
let decodeString (decoder : Decoder<'T>) = fromString decoder

Removed APIs
The pipeline style has been removed. You should replace it with the Object builder style.
We removed this API because it was easy to mess up the arguments order and it was verbose.
New features
Object builder
The object builder style replace the pipeline style.
The benefit is that new, you are constructing and decoding at the same time. Also, the API is easy to read:

get.Requried.Field (fieldName : string) (decoder : Decoder<'a>) : 'a
get.Requried.At (fieldNames : string list) (decoder : Decoder<'a>) : 'a
get.Optional.Field (fieldName : string) (decoder : Decoder<'a>) : 'a option
get.Optional.At (fieldNames : string list) (decoder : Decoder<'a>) : 'a option

open Thoth.Json

type User =
    { Id : int
      Name : string
      Email : string
      Followers : int }

    static member Decoder : Decoder<User> =
        Decode.object
            (fun get ->
                { Id = get.Required.Field "id" Decode.int
                    Name = get.Optional.Field "name" Decode.string
                            |> Option.defaultValue ""
                    Email = get.Required.Field "email" Decode.string
                    Followers = 0 }
            )

Auto APIs
Because Thoth.Json is planned as a replacement for ofJson and toJson we are now providing Auto decoders and encoders support.
Decode module
The JSON can either be PascalCase or camelCase
open Thoth.Json

type User =
    { Id : int
      Name : string
      Email : string
      Followers : int }

let jsonCamelCase = """{ "id" : 0, "name": "maxime", "email"<EMAIL_ADDRESS>"followers": 0 }"""
let user1 : Result<User, string> = Decode.Auto.fromString<User>(json, , isCamelCase=true)

let jsonPascalCase = """{ "Id" : 0, "Name": "maxime", "Email"<EMAIL_ADDRESS>"Followers": 0 }"""
let user2 : Result<User, string> = Decode.Auto.fromString<User>(json)

By default the Auto decoders enforce you to deal with the OK and Error case. You can use exception based API if you prefer:
open Thoth.Json

type User =
    { Id : int
      Name : string
      Email : string
      Followers : int }

let jsonCamelCase = """{ "id" : 0, "name": "maxime", "email"<EMAIL_ADDRESS>"followers": 0 }"""
let user : User =
    try
        Decode.Auto.unsafeFromString<User>(json, , isCamelCase=true)
    with
        | ex -> reraise ex

Encode module
type User =
    { Id : int
      Name : string
      Email : string
      Followers : int }

let json =
    { Id = 0
      Name = "maxime"
      Email =<EMAIL_ADDRESS>      Followers = 0 }
    |> Encode.Auto.toString 4

What can I say? It's just great. As I use Thoth in all my projects, this new version seems cleaner, well thought and won't break the logic.  I am impatient to try the new features. Thanks for the good work!

This looks good!
Questions about the Auto API:

Does it work with nested types?
Are there any restrictions?
Does it require [<CLIMutable>] on the client or server?

@nojaf Yes this work for nested types. You can found some tests here This is also to confirm we speak of the same thing :)
I don't see any restrictions, and if there is any we will work to remove them.
I never used [<CLIMutable>], so I would say no. We aren't passing an object between the server and the client. We are really working at JSON level, and then create the type instance using the API reflection.

We are speaking about the same thing 😉 , thanks for the response @MangelMaxime.

Are there any restrictions?

Right now the auto converter cannot handle classes (only unions and records).