[Runtime] Reference ObjC class objects indirectly in conformance records

Within conformance records, reference Objective-C class objects
indirectly so the runtime can update those references appropriately.
We don't need to do this for classes with Swift metadata.
Fixes the ABI-affecting part of rdar://problem/36310179.

@swift-ci please test

@swift-ci please test source compatibility


ngRepeat:dupes error after model modified externally

In case of modifying the tree model from outside of the ui-tree directive (for example with other directive which shares the model or with a controller function) strange thin happens: the model gets modified but after the next attempt to interact with the tree using drag&drop interface one get an error:
Error: [ngRepeat:dupes] http://errors.angularjs.org/1.2.16/ngRepeat/dupes?p0=item%20in%20list&p1=object%3A009

I prepared an example based on the demo:
http://plnkr.co/DM2Dfui3PPJ7PgBVtkWP
Notice that after element gets dropped its scope ID gets updated (a new scope is created and data get transferred to it). After modifying the model externally it doesn't.
It is either a bug (if scopes should get updated after model changed) or there should be a convenient way to make the tree reinitialise with the new model.

FYI there is a fix within new versions of angular "track by $index"
https://docs.angularjs.org/error/ngRepeat/dupes


Update README.md

Gr8  , Lookiing forward to see more contribution from your side .

Please suggest me in which project i will work

@Durgesh4993 sorry forate responsive , i just saw ur comment , if u are familiar with web3 then try to build full stack website based on web3 , full stack crowd funding dapp , u can also make ur own voting application dapp , all these tutorial are avilable on youtube ✌.
Best of luck 🤝

yes sir deffinetly i love to work with you


Create a django management command to automate the django admin install steps

It would be helpful if the steps in https://github.com/RealmTeam/django-rest-framework-social-oauth2/blob/43e5309/README.rst "Now go to django admin and add a new Application." are exposed as a CLI django management command.

Hi mate, I had the same need, so I wrote this and created PR https://github.com/RealmTeam/django-rest-framework-social-oauth2/pull/197 , I hope it's useful for you too.

Nice.

Resolved by #197


Rework multi-platform Docker builds in GitHub Actions

Nosey Parker's currently uses GitHub Actions to build Docker images, including a multi-platform x86_64 and aarch64 image for releases.
There are a few deficiencies with this current setup:

The multi-platform images use QEMU to build both platforms on a single x86_64 machine. This is very slow, taking nearly 2 hours, with almost all of that time spent building for the non-native aarch64 platform
Because the multi-platform images are so expensive to build, they are only done for release builds, and not every single commit
The multi-platform images lack fully populated Docker image metadata, due to bugs / limitations in the docker/build-push-action action (#91)

GitHub Actions now has native aarch64 runners. It is probably possible to build the x86_64 and aarch64 Docker images separately within just a few minutes, each on a native runner, and then in a later Actions job, stitch those two Docker images together with the appropriate metadata into a multi-platform Docker image.

Although GitHub has native ARM runners, it appears that they are still in private beta that you have to sign up for: https://github.blog/changelog/2023-10-30-accelerate-your-ci-cd-with-arm-based-hosted-runners-in-github-actions/

We are now using the new Linux ARM64 runners for regular CI jobs and for building release artifacts: https://github.com/praetorian-inc/noseyparker/pull/197. (The runners that we set up for that are named ubuntu-22.04-arm64-8-core and ubuntu-24.04-arm64-8-core.)
The Docker-building workflows still need to be updated to use those runners, build each single platform's image independently, and then merge them together into a multi-platform image.


FaceIt Demos

I am trying to parse a faceit demo but I can't get it to work. I create a file stream, parser instance, and register my events. When it comes to parsing through the demo, on the 5th tick (and always on the 5th tick) I get a "System.NotImplementedException" from DemoInfo.dll. On the first tick, I get a couple unknown weapon complaints about "sensorgrenade", "snowball", "shield", and "zonerepulsor".
I tested this with recent FPL demos as well as some from last year but the same issue persists. Normal demos work fine. This is the demo I tested with: https://www.faceit.com/en/csgo/room/1-c3cbeafb-c3c1-46d3-80dd-7333da2d764d

Please provide the code you are running or any other minimum reproducible example.

static void Main(string[] args)
        {
            string dev_file = @"D:\CSGO Demos\testing\03865f52-38f2-4c8f-b8b6-4fa494e93015.dem";
            using (var fs = File.OpenRead(dev_file))
            {
                using (DemoParser parser = new DemoParser(fs))
                {
                    parser.ParseHeader();
                    parser.ParseToEnd();
                }
            }
        }

That's the simplest code that throws the error I described. "D:\CSGO Demos\testing\03865f52-38f2-4c8f-b8b6-4fa494e93015.dem" is the demo from the link in my first message.

I get the same result when trying to parse Faceit or Esea demos. 5 ticks work fine and then when DemoParser.IngameTick reaches 0 I get this exception.
   at DemoInfo.DP.Handler.PacketEntitesHandler.PropertyCollector..ctor(Entity underlying, IList`1 capture)
   at DemoInfo.DP.Handler.PacketEntitesHandler.ReadEnterPVS(IBitStream reader, Int32 id, DemoParser parser)
   at DemoInfo.DP.Handler.PacketEntitesHandler.Apply(PacketEntities packetEntities, IBitStream reader, DemoParser parser)
   at DemoInfo.PacketEntities.Parse(IBitStream bitstream, DemoParser parser)
   at DemoInfo.DP.DemoPacketParser.ParsePacket(IBitStream bitstream, DemoParser demo)
   at DemoInfo.DemoParser.ParseDemoPacket()
   at DemoInfo.DemoParser.ParseTick()
   at DemoInfo.DemoParser.ParseNextTick()
   at cs_auto_coach.DemoAnalyzer..ctor(String demoPath) in C:\Users\tmn\repos\cs-auto-coach\cs-auto-coach\DemoAnalyzer.cs:line 24
   at cs_auto_coachTests.DemoAnalyzer_RoundWins.Setup() in C:\Users\tmn\repos\cs-auto-coach\cs-auto-coach.Tests\DemoAnalyzerTest.cs:line 12

@MSDOSMAN Were you also using the NuGet package? I realized that the error does not appear when I include the project from the master branch into my solution. Version 1.2.0 (latest Release on github and latest NuGet package) is almost 5 years old....


Reserve more CPU cores for integration tests with high rate of flakes

Additional Description:
This should reduce the rate of timing related flakes (which it does in local runs). However to take full advantage of CPU reservation all integration tests need to be configured with more CPU cores.
Risk Level: Low
Testing: Unit Tests
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A

/assign @phlax


Not serializing types properly

The serializer is serializing all of the fields on one of my types to null. I'm sure I'm missing something basic here, but I would love some help debugging this.

Hi :)
Can you post the type definition and how you configure the SerializerConfig (if you use that)?

Also, what version are you using, the latest on NuGet? Or did you download the latest commit from github and compile Ceras yourself?
The nuget version is a bit old (~25days) and a lot of improvements were implemented since then.
In the newest version there is a super-easy way to see why exactly some stuff did or did not get included in the serialization.
So if you are using the latest commit, try doing something like this: config.ConfigType<YourClass>() to get the TypeConfig, and then inside its .Members, each of the MemberConfigs has a property named IncludeExcludeReason.
Coincidentally I'm actually working on polishing this feature some more right now.
But if you are using the nuget version it's still no problem.
I think, by default, in the old version Ceras only serializes public fields.
You can easily override that by placing a [MemberConfig] on the type and setting the settings in it, or adding [Include] attributes to each member.

Yes, I can. I also just tried it with declaring the serializer as  type instead of StoredModel, and it seems to be working properly, which is rather strange.
public class StoredModel : ISerializableModel<ModelObject>
{
        public string Name { get; set; }
        public string Path { get; set; }
        public DateTime Timestamp  { get; set; }
        public MyVersionNumber Version { get; set; }
        public List<ModelObject> Data { get; set; }
        public Dictionary<ModelObject, UserAttributeWrapper> DataWithAttributes { get; set; }
}

MyVersionNumber and UserAttributeWrapper are custom types I control, as is ISerializableModel. ModelObject is a third-party type, but I thought Ceras could serialize those as well, and furthermore I assumed that wasn't the issue because the DateTime and string fields were also null. I'm not using any special configuration.

This is using the NuGet package.

I also just tried it with declaring the serializer as type object instead of StoredModel, and it seems to be working properly, which is rather strange.
Like ceras.Serialize<object>(x) instead of ceras.Serialize(x)? If so, that is indeed very strange, the type itself should not have any impact on the "schema" (the description of what members are included in the serialization). That sounds like a bug in Ceras. I'll put it on my todo list to investigate that.

ModelObject is a third-party type, but I thought Ceras could serialize those as well,
Indeed, Ceras is intended to be able to serialize pretty much anything. Fixing/including anything thats missing should be easy (in theory).

Try this:
var config = new SerializerConfig();
config.DefaultTargets = TargetMember.AllPublic;

var ceras = new CerasSerializer(config);
`

I also just tried it with declaring the serializer as type object instead of StoredModel, and it seems to be working properly, which is rather strange.

Like ceras.Serialize<object>(x) instead of ceras.Serialize(x)? If so, that is indeed very strange, the type itself should not have any impact on the "schema" (the description of what members are included in the serialization). That sounds like a bug in Ceras. I'll put it on my todo list to investigate that.

Correct.

ModelObject is a third-party type, but I thought Ceras could serialize those as well,

Indeed, Ceras is intended to be able to serialize pretty much anything. Fixing/including anything thats missing should be easy (in theory).
Try this:
var config = new SerializerConfig();
config.DefaultTargets = TargetMember.AllPublic;

var ceras = new CerasSerializer(config);

Well now...this is interesting:
Exception: Cannot deserialize type 'System.Collections.Immutable.ImmutableDictionary2[[System.String, mscorlib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Double, mscorlib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' because it has no parameterless constructor (support for serialization-constructors will be added in the future)
`
UserAttributeWrapper uses ImmutableDictionary internally. I assumed because this was a system type that it would work properly, though I suppose it's only included by default with .NET Core.
Switching that to a regular mutable dictionary seems to work, and now I get a new error about VersionNumber not having a parameterless constructor. My bad for not writing parameterless constructors, I suppose, though perhaps these exceptions should be thrown without the AllPublic setting if they are going to break serialization of the entire type?
Now there's a new exception which I am much less certain of how to fix:
   | Name | Value | Type -- | -- | -- | --   | StackTrace | "   at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)\r\n   at Ceras.SimpleTypeBinderHelper.GetTypeFromBase(String baseTypeName) in C:\\projects\\ceras\\src\\Ceras\\Helpers\\NaiveTypeBinder.cs:line 64\r\n   at Ceras.Formatters.TypeFormatter.Deserialize(Byte[] buffer, Int32& offset, Type& type) in C:\\projects\\ceras\\src\\Ceras\\Formatters\\TypeFormatter.cs:line 112\r\n   at Ceras.Formatters.ReferenceFormatter1.Deserialize(Byte[] buffer, Int32& offset, T& value) in C:\projects\ceras\src\Ceras\Formatters\ReferenceFormatter.cs:line 198\r\n   at lambda_method(Closure , Byte[] , Int32& , StoredModel& )\r\n   at lambda_method(Closure , Byte[] , Int32& , StoredModel& )\r\n   at Ceras.Formatters.ReferenceFormatter1.Deserialize(Byte[] buffer, Int32& offset, T& value) in C:\\projects\\ceras\\src\\Ceras\\Formatters\\ReferenceFormatter.cs:line 286\r\n   at Ceras.CerasSerializer.Deserialize[T](T& value, Byte[] buffer, Int32& offset, Int32 expectedReadLength) in C:\\projects\\ceras\\src\\Ceras\\CerasSerializer.cs:line 416\r\n   at Ceras.CerasSerializer.Deserialize[T](Byte[] buffer) in C:\\projects\\ceras\\src\\Ceras\\CerasSerializer.cs:line 368\r\n...

I'll add support for ImmutableDictionary :+1:

now I get a new error about VersionNumber not having a parameterless constructor. My bad for not writing parameterless constructors,

There are a few solutions:

you could have no constructors (then the compiler generates the default parameterless one)
in the latest version that's about to be released you can do config.ConfigType<VersionNumber>().ConstructByUninitialized() if you want to.
you can add a custom formatter (I wouldn't advise it, it's not worth the effort, but it's an option)
if you have a ctor that takes a parameter, you can just add a public parameterless one.

I suppose, though perhaps these exceptions should be thrown without the AllPublic setting if they are going to break serialization of the entire type?

I'm all for improving exceptions, or throwing exceptions earlier if something is wrong with the config (so no time is wasted).
But I don't think I'm entirely sure what you mean.
The targetmember setting determines what members of a type are included, but what if a type is not even encountered (because it's never included through any member)?

Now there's a new exception which I am much less certain of how to fix:
Inner Exception 1: ArgumentNullException: Value cannot be null. Parameter name: name
This appears to be happening when deserializing the dictionary.

What dictionary is that? The generic Dictionary<K,V>?
I'm not sure where that happens or what is null. Can you show the full exception? Including the stack-trace, and the "container" exception if it is relevant.

I'll add support for ImmutableDictionary 👍
Thank you so much!

now I get a new error about VersionNumber not having a parameterless constructor. My bad for not writing parameterless constructors,

There are a few solutions:

you could have no constructors (then the compiler generates the default parameterless one)
in the latest version that's about to be released you can do config.ConfigType<VersionNumber>().ConstructByUninitialized() if you want to.
you can add a custom formatter (I wouldn't advise it, it's not worth the effort, but it's an option)
if you have a ctor that takes a parameter, you can just add a public parameterless one.
Definitely least effort to just add a parameterless constructor, and for types that need to work with a wide variety of serialization frameworks, it's a good idea anyways. I think this happened because I was switching from Newtonsoft.Json, which I believe falls back to constructors with parameters.

I suppose, though perhaps these exceptions should be thrown without the AllPublic setting if they are going to break serialization of the entire type?

I'm all for improving exceptions, or throwing exceptions earlier if something is wrong with the config (so no time is wasted).
But I don't think I'm entirely sure what you mean.
The targetmember setting determines what members of a type are included, but what if a type is not even encountered (because it's never included through any member)?
So if I don't set that setting, no members of the type are included? I guess I was not aware that was how the serializer worked, as it doesn't appear in any of the examples. To be clear, I wasn't getting any exceptions at all without that configuration. The default configuration was just serializing every single field in the type as null, including the ones that normally should have been serialized, unless I told it to serialize and deserialize to object.

Now there's a new exception which I am much less certain of how to fix:
Inner Exception 1: ArgumentNullException: Value cannot be null. Parameter name: name
This appears to be happening when deserializing the dictionary.

What dictionary is that? The generic Dictionary<K,V>?
I'm not sure where that happens or what is null. Can you show the full exception? Including the stack-trace, and the "container" exception if it is relevant.

Here it is:
"   at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)\r\n   at Ceras.SimpleTypeBinderHelper.GetTypeFromBase(String baseTypeName) in C:\\projects\\ceras\\src\\Ceras\\Helpers\\NaiveTypeBinder.cs:line 64\r\n   at Ceras.Formatters.TypeFormatter.Deserialize(Byte[] buffer, Int32& offset, Type& type) in C:\\projects\\ceras\\src\\Ceras\\Formatters\\TypeFormatter.cs:line 112\r\n   at Ceras.Formatters.ReferenceFormatter`1.Deserialize(Byte[] buffer, Int32& offset, T& value) in C:\\projects\\ceras\\src\\Ceras\\Formatters\\ReferenceFormatter.cs:line 198\r\n   at lambda_method(Closure , Byte[] , Int32& , StoredModel& )\r\n   at lambda_method(Closure , Byte[] , Int32& , StoredModel& )\r\n   at Ceras.Formatters.ReferenceFormatter`1.Deserialize(Byte[] buffer, Int32& offset, T& value) in C:\\projects\\ceras\\src\\Ceras\\Formatters\\ReferenceFormatter.cs:line 286\r\n   at Ceras.CerasSerializer.Deserialize[T](T& value, Byte[] buffer, Int32& offset, Int32 expectedReadLength) in C:\\projects\\ceras\\src\\Ceras\\CerasSerializer.cs:line 416\r\n   at Ceras.CerasSerializer.Deserialize[T](Byte[] buffer) in C:\\projects\\ceras\\src\\Ceras\\CerasSerializer.cs:line 368\r\n

This trace has been truncated at the Ceras library callsite because the rest of the information is proprietary.

 at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)\r\n   at Ceras.SimpleTypeBinderHelper.GetTypeFromBase(String baseTypeName)

Hmm, it looks like the name type name it is trying to resolve is null?
I'm not sure how that can happen :(
Is there some way I can reproduce that problem? If not, I fear that it's going to be really difficult even figuring out the problem.
Maybe, an alternative could be trying the latest github commit?
There are been some changes regarding the type lookups recently as well.
Not sure if that would actually help though. Just a thought.
As for the immutable types, the implementation is going well. A lot of code can be reused from ReadonlyCollection! I hope I can release ceras v4.0 tomorrow, maybe even today.

I think this happened because I was switching from Newtonsoft.Json, which I believe falls back to constructors with parameters.

Hmm, I wasn't aware that Newtonsoft.Json automatically falls back to picking some constructor.
That's actually a good idea.
As I said the new version will have support (or rather, it already has, the feature is done) for serialization constructors. But it won't automatically pick one.
I will take a look at Newtonsoft.Json and see how - according to what rules - it picks the ctor and probably add the same thing to Ceras. :+1:

So if I don't set that setting, no members of the type are included? I guess I was not aware that was how the serializer worked, as it doesn't appear in any of the examples. To be clear, I wasn't getting any exceptions at all without that configuration. The default configuration was just serializing every single field in the type as null, including the ones that normally should have been serialized, unless I told it to serialize and deserialize to object.

By the default setting for DefaultTargets is PublicFields, and seeing as your type has no public fields (but public properties) that was the problem.
However, you're not the first one to report that, so for v4.0 the default has already changed to AllPublic. Which should be more in line what people expect I think.
If Serialize<object>() really makes a difference that would be extremely strange and a huge bug.
I haven't had time yet to investigate it, but if you could create a small sample that shows the problem that'd help me a lot. If not, I'll mess around with it myself for a bit to try to find the issue.

Ah, one more question:
What platform are you targetting?
net framework v4.5? or 4.7+? or  .net standard 2.0?

So if I don't set that setting, no members of the type are included? I guess I was not aware that was how the serializer worked, as it doesn't appear in any of the examples. To be clear, I wasn't getting any exceptions at all without that configuration. The default configuration was just serializing every single field in the type as null, including the ones that normally should have been serialized, unless I told it to serialize and deserialize to object.

By the default setting for DefaultTargets is PublicFields, and seeing as your type has no public fields (but public properties) that was the problem.
However, you're not the first one to report that, so for v4.0 the default has already changed to AllPublic. Which should be more in line what people expect I think.

Ahhh, my mental model for public auto-properties is that they are a sugar for public fields with getters and setters. I realize they are internally a private backing field with public accessors. My bad.

If Serialize<object>() really makes a difference that would be extremely strange and a huge bug.
I haven't had time yet to investigate it, but if you could create a small sample that shows the problem that'd help me a lot. If not, I'll mess around with it myself for a bit to try to find the issue.

Yes, I will try to replicate this.

Ahhh, my mental model for public auto-properties is that they are a sugar for public fields with getters and setters. I realize they are internally a private backing field with public accessors. My bad.

You are thinking about this is completely right actually, though there are a few small differences that can have a huge impact.
Yes, auto-props are essentially just a getter and setter, which both refer to a private field.
So from a serializers point of view (or better: the way the reflection api sees it), there is no public field (only a private one). And theres also a public property (but ceras ignores that by default in the old v3).
Another difference is that those automatically generated private backing fields are explicitly marked with the [CompilerGenerated] attribute. Which often indicates some pretty dangerous stuff (well, definitely not in this case, but backing fields of properties are the exception here :P). If you want to know what I mean by that, then issue #11 is probably a really good read :smile:
Anyway, there are a lot more subtle differences regarding properties, especially with the "new" (well, kinda) syntax like this public Thing Bla { get; } = new Thing();, that actually doesn't even have a setter, so it'd count as a "computed property" (which can obviously never get serialized, because there's not even a concept of "setting").
Or the "older"/classical equivalent of a computed property - one that illustrates the point really well - would be this:
public int Time { get => Environment.TickCount; }
Well, that was quite the tangent haha. The only point I was trying to make is that with properties things can sometimes get a bit tricky. Anyway, it never hurts to know I guess.

Yes, I always forget that properties are actually private ;).
After attempting to replicate that bug with the different type serializers, I think I was mistaking the byte array generated by the object-typed serializer being larger for it actually serializing properly, whereas I now assume it must just be type information and other structural metadata. (they both deserialize to properties to null in my attempt to replicate, basically) I will look deeper into the problem with the dictionary later today. Thank you so much for your help.

I think I was mistaking the byte array generated by the object-typed serializer being larger for it actually serializing properly, whereas I now assume it must just be type information and other structural metadata.

Ah yes, that would explain it!
The size is indeed expected to be larger when the target-type doesn't match the actual type (so type-information is embedded).
By the way, should that bother you at some point (the type information being embedded), then you can make use of config.KnownTypes. Very useful for networking scenarios where you definitely want to avoid sending type-names as strings. The encoding ceras uses for known types (or previously encountered types is as efficient as it can possibly be since that part was made with networking in mind specifically).

Commit https://github.com/rikimaru0345/Ceras/commit/01c1ba241c65537421fcb390c87c8b1d6e84c860 will solve any issues with immutable collections.
It will be available as a nuget package.
I'll publish it together with Ceras v4.0, but that will still take a little longer.
I hope I can get that release out tomorrow.

The preview (release candidate) version 4.0 of Ceras is now available on nuget.
https://www.nuget.org/packages/Ceras/4.0.0-rc
The addon for immutable collections is done as well: https://www.nuget.org/packages/Ceras.ImmutableCollections/
One of the new features in this version is this method:
ceras.GenerateSerializationDebugReport(type);
It returns a string that explains in detail how the type will be serialized, what members are included and excluded and most importantly it has reasons for inclusion/exclusion.
Try it and let me know how it goes.

Thank you so much @rikimaru0345

Hello, the new version 4.0 rc cannot serialize System.Drawing.Color.
This is the exception it throws;

Expression of type 'System.Drawing.Color' cannot be used for parameter of type 'System.Object' of method 'Void SetValue(System.Object, System.Object)

public class MyClass
{
        private System.Drawing.Color backColor;
        public System.Drawing.Color BackColor { get {return backColor;} set{ backColor = value;} }
}

@thorichelli
I've added that problem to my todo list, should be relatively easy :)
But I think this might be better as a new issue.


Preventing VNC servers from sending unhandled server packets

I use UltraVNC. Sometimes it sends variable unhandled server packets.
ruby-vnc don't handle the packet types, so it raises NotImplementedError exception...
I need stopping it.
lib/net/vnc.rb
    def read_packet type
      case type
      ...
      else
        raise NotImplementedError, 'unhandled server packet type - %d' % type
      end
    end

Error message
/usr/local/lib/ruby/gems/2.5.0/gems/ruby-vnc-1.1.0/lib/net/vnc.rb:333:in `read_packet':
unhandled server packet type - 7 (NotImplementedError)

* packet type is variable. For other packet type example: 6, 8, 17 ... and so on

Once sending "client to server messages", VNC servers will send only messages which client can handle.
So, we need to send initial data on connection.
https://vncdotool.readthedocs.io/en/0.8.0/rfbproto.html#client-to-server-messages

As a result of my debug, the problem was not just extended instructions.
I found that the server (e.g. Ultra VNC) may send  FrameBufferUpdate even if the client has not sent FrameBufferUpdateRequest.
If _load_frame_buffer is not called, since @fb is nil in read_packet, the frame buffer data is stored in the socket buffer without being discarded, but it is read byte by byte by packet_reading_thread, and protocol can not be interpreted correctly.
The same applies to SetColourMapEntries.
In order to deal with this problem, we must do correctly interpret the protocol when receiving FrameBufferUpdate or SetColourMapEntries and discard any appropriate bytes.
But if we do it, I think that it is much easier to call _load_frame_buffer from the beginning.
If _load_frame_buffer is not called, at the timing when protocol interpretation goes wrong, we should all the received data after that are all discarded.

Hi @lobin-z0x50, thanks for taking a closer look. Curious that it can pre-emptively decide to push framebuffer updates. Seems like it's best to just support it unconditionally.

Thank you for your decision @aquasync .
I think so too.
Without merging this PR, probably many user will be in trouble. because the protocol can not be interpreted correctly.
I think that this PR should be approved.
I don't have any comments.


3.1.1 with Xcode 8.1 & swift 3.0.1

It tells: " Module compiled with Swift 3.0 cannot be imported in Swift 3.0.1: .../SwiftyJSON.swiftmodule/arm64.swiftmodule"
Maybe the framework should be compiled with swift 3.0.1.
Waiting for new release.

carthage update --platform iOS --no-use-binaries

+1 for this.
Other Frameworks do not show the binary issue.

Based on this issue https://github.com/SwiftyJSON/SwiftyJSON/issues/690, there is some working workaround.

With --no-use-binaries, Carthage works. Thanks!


 Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/in-progress/precommit-patchnames for help.

Subsystem
Report/Notes

GITHUB PR
https://github.com/apache/hbase/pull/823

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-823/1/console

versions
git=2.17.1

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.


Release 0.9.0

What type of PR is this?

Uncomment only one  /kind <> line, press enter to put that in a new line, and remove leading whitespace from that line:
/kind breaking
/kind bug
/kind cleanup
/kind documentation
/kind feature

/kind release
What this PR does / Why we need it:

Changes for upcoming release
Small tweaks to the release process

Which issue(s) this PR fixes:

Work on #964
Special notes for your reviewer:
Release note draft at: https://github.com/googleforgames/quilkin/releases

Please don't merge, as I'll need to restart the release process since PRs have been merged since I ran this.

Allright - let's see if I can get this wrapped up before devcom :D


⚠ Bofrost.gr has degraded performance

In 4e80d70, Bofrost.gr (https://www.bofrost.gr) experienced degraded performance:

HTTP code: 200
Response time: 2684 ms

Resolved: Bofrost.gr performance has improved in 19bd46a after 2 days, 7 hours, 47 minutes.


[SPARK-46715][INFRA][3.5] Pin sphinxcontrib-*

What changes were proposed in this pull request?
backport https://github.com/apache/spark/pull/44727 to branch-3.5
Why are the changes needed?
to restore doc build
Does this PR introduce any user-facing change?
no
How was this patch tested?
ci
Was this patch authored or co-authored using generative AI tooling?
no

merged to branch-3.5


Fixes #13388 Adds Clojure to MXNet installation docs

Description
Adds Clojure installation docs to MXNet website
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.

[ ] The PR title starts with [MXNET-$JIRA_ID], where $JIRA_ID refers to the relevant JIRA issue created (except PRs with tiny changes)
[x] Changes are complete (i.e. I finished coding on this PR)
[ ] All changes have test coverage:
Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
[ ] Code is well-documented:
For user-facing API changes, API doc string has been updated.
For new C++ functions in header files, their functionalities and arguments are documented.
For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
Check the API doc at http://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-$PR_ID/$BUILD_ID/index.html
[x] To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

[x] Enables Clojure installation docs for Linux CPU and GPU
[x] Enables Clojure installation docs for MacOS CPU
[x] Adds placeholder for MacOS GPU and Windows installation docs

Comments

To validate the changes, built the docs in Python virtual environment via make docs USE_OPENMP=1
Here are the screenshots for Clojure tab placement and related docs:

MXNet-Clojure Linux CPU

MXNet-Clojure Linux GPU

MXNet-Clojure MacOS CPU

MXNet-Clojure MacOS GPU

MXNet-Clojure Windows CPU

MXNet-Clojure Windows GPU

Awesome! Thanks for this contribution. It will help Clojure users to get started much easier than before. 🥇
@aaronmarkham - Could you take a look at this and please give any feedback?

@gigasquid - it looks like an issue with Docker image. It fails for me as well locally but make docs USE_OPENMP=1 works fine and generates the docs. Do I need to look into that as well or is it a known issue?

I've retrigged the CI - I "think" the failure is unrelated - fingers crossed this time :)

@gigasquid @aaronmarkham - I am not sure why the instructions show up twice for MacOS - Clojure - CPU on the released website - https://mxnet.incubator.apache.org/install/index.html?platform=MacOS&language=Clojure&processor=CPU

On the staging version it was fine- http://mxnet-ci-doc.s3-accelerate.dualstack.amazonaws.com/PR-13393/2/install/index.html?platform=MacOS&language=Clojure&processor=CPU

Probably from my merge. I went through on my version and made sure it was right, but git decided it still had conflicts and doubled up stuff.  There's so much duplication of content required for that selector it can be hard to see.
Anyways, I can try to fix it tomorrow or Monday.

Oh, or it could be what I reported last week, where the selector gets broken and displays two or more sets of content when it should not. I was trying another patch to limit the view by version and I couldn't get it to work... It would display things it shouldn't. All version divs would display at once...

Thanks @aaronmarkham - Let me know if I need to do any changes from my side


Badge Request: Azure Artifacts package version

Azure Artifacts has public feeds now. Should work for NuGet/Maven/npm (pretty much any kind of package artifact). It should have support for latest stable and latest prerelease.
:microphone: Motivation
Other NuGet feed services are supported like MyGet/NuGet. This is another NuGet feed location.

Use case is displaying the latest stable or prerelease package from an Azure Artifacts feed.

Thanks @onovotny, which specific badges would you be looking for (version, downloads, etc.)? I ask as we'll have to figure out if AzDO makes the required data available (for example download counts) to determine the viability of each badge type.

I'm most interested in version. The biggest issue I have is that the built-in badge service Azure Pipelines has only does the latest stable version, not prerelease. Counts could be nice as well but I don't think are as crtitical.

Here's a public feed: https://dev.azure.com/dotnet/Rx.NET/_packaging?_a=feed&feed=RxNet
One thing to note is that public feeds are scoped to the org whereas private feeds are account-wide. I believe there's an extra path parameter to support that.

What's the authentication process like with private feeds? I use AzDO a lot but have never worked with Artifacts.
We support using PATs (with a self-hosted Shields instance) for badges from private Team Projects (build/release status, coverage, test results, etc.)

For private feeds, I think you can use the macOS instructions to use any username and then a PAT as the password:
https://docs.microsoft.com/en-us/azure/devops/artifacts/get-started-nuget?view=azure-devops#macos-add-the-feed-to-your-nuget-configuration

Excellent, thanks!

+1 for this badge.
Also, note that Azure Artifact feeds have four release views: all, local, prerelease and release packages. Each view has a unique nuget feed. For example, in the Rx.NET artifact feed that @onovotny referenced, the all packages feed url is https://pkgs.dev.azure.com/dotnet/Rx.NET/_packaging/RxNet/nuget/v3/index.json while the release packages feed is https://pkgs.dev.azure.com/dotnet/Rx.NET/_packaging/RxNet%40Release/nuget/v3/index.json. Rx.NET doesn't appear to be using this feature, but seems worth supporting all four views in the badge

Maybe there should be a generic Nuget Feed badge where the shield user can put in the specific feed they want to use to support any private nuget server like Sleet

https://docs.microsoft.com/en-us/azure/devops/artifacts/package-badges?view=azure-devops

@devhawk the issue with that is that it doesn't show prerelease package versions.

@devhawk just ran into this and have the same complaint. nuget.org is where my released packages go. The Azure Artifacts "feature" of not being able to show pre-releases means I need to use myget or some other package source if I want badges to link folks to beat version to try out.

Bump? Any thoughts on this?


Add a new template for enhancement requests

What is the feature?
Add a new template for enhancement requests that are neither bugs nor features.
Should have automatically assigned enhancement label.
Why is it an improvement?
Some requests like update a dependency, some build script or workflow configuration doesn't fit in existing templates but they are common enough to have a template in place.

Closing based on an update from @piotrwitek


Add classes for redaction support

So much boilerplate. How distasteful. Looks fine. I don't see RedactionConfig used apart from as a field. Does it just get magically serialized with the @JsonProperty magic?

@galennightfall Yes -- this is just a field that can be configured in a request object that a customer provides.
I'm planning on uploading some examples of using the SDK to this repo in a follow-up PR.


could you please offer the price.csv

db/prices.csv' does not exist

Take a look at qtrader/scripts/db.py.


[feature request] don't add decimal padding when a number w/o decimals has been inserted

When option allowDecimalPadding is set to true
500 will become 500.00 and 500.40 will remain 500.40
when set to false 500 will remain 500 but 500.40 becomes 500.4
500.4 looks weird for currencies so ideally there should be a way to only add decimal padding when the input already has decimals so that:
500 will remain 500, but 500.4 will become 500.40 and 500.30 will stay 500.30
allowDecimalPaddingForWholeNumbers or something simial?

Or we could modify allowDecimalPadding so that it allows 3 variations:

AutoNumeric.options.allowDecimalPadding.always : always pad with zeros (previously padding)
AutoNumeric.options.allowDecimalPadding.never : never pad with zeros (previously noPadding)
AutoNumeric.options.allowDecimalPadding.floats : pad with zeros only when there are decimals

If you have a better name for the new last option, let me know ;)

Agreed. Be aware that allowDecimalPadding currently accepts true or false


Bump version for next release

Bump version for next release

Codecov Report

Merging #1168 into develop will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             develop    #1168   +/-   ##
==========================================
  Coverage      33.95%   33.95%
  Complexity       548      548
==========================================
  Files            105      105
  Lines           4839     4839
  Branches         768      768
==========================================
  Hits            1643     1643
  Misses          3046     3046
  Partials         150      150

Continue to review full report at Codecov.

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


Initial PR

Hi @ryanjpayne
That looks a great solution.
Question: Does this solution only work if the EKS Cluster is using the new cluster access API type?

Hi @ryanjpayne That looks a great solution. Question: Does this solution only work if the EKS Cluster is using the new cluster access API type?

Yes it requires the cluster have EKS API authentication mode enabled. This allows the IAM Role for code build to gain access without changes to the config map.

That's great @ryanjpayne
Is there an ETA when this will be ready for prod deployment?


Mac log improvements

@mjm do you think we need the certificate appliance?
Looking at https://travis-ci.com/travis-infrastructure/chirp-com-production/jobs/158129670#L48-L49

I suspect the deleting of the cert isn't working, and thus adding the same cert back is also failing.
But when you look here: https://travis-ci.org/joepvd/travis-experiment/jobs/453927132#L13 (which is an older Mac image), it seems to work.
In this PR I pipe the output to /dev/null for now, to at least remove the noise from the log.

This is definitely before my time. I do believe we need to do it for those older images. It looks like it is 7.3 and 6.4 that are affected. My understanding is that we fixed the problem there in newer images, but older ones needed a workaround in travis-build.
We could put an explicit check around it for which image we are running on and skip it for most of them. Or we could just suppress the output. I'm not particular about which it is.

@mjm are you fine with me suppressing the output and not asserting the exit code?

Sure, that works.


sensors: Implement a vertical decoder API

Introduce an alternative decoding scheme that focuses on vertical vs horizontal decoding. This PR is based ontop of https://github.com/zephyrproject-rtos/zephyr/pull/60063 so only the latest commit should be reviewed.

@teburd please let me know if you want to sync on this (this is just a draft, you can test this out on the akm09918c on the TDK board).
I've been talking to several teams internally at Google and I believe that a vertical decoding scheme would benefit a larger majority of applications when compared to our existing horizontal decoding scheme. Please reference https://github.com/zephyrproject-rtos/zephyr/issues/60944 for visualization.

This now works with the icm42688 one-shot reading. Streaming support will come shortly.

Based ontop of https://github.com/zephyrproject-rtos/zephyr/pull/61186, so I'll need to rebase this once that PR lands. But this is pretty much ready for review.

I will refrain from posting a review since I wrote a decent chunk of this code but am available to answer any questions/concerns.

@teburd this is ready for review

@MaureenHelm can you take a look? This is a big change in sensor.h

@MaureenHelm can you take a look? This is a big change in sensor.h

Maureen and I discussed this offline, she requested that I tweak the sensor_shell.c changes a bit so that the print handling isn't per channel but instead per data type


Add linked_chat_id and location to Chat

In Telegram Bot Api 5.0, two new fields linked_chat_id and location were added to the Chat class.

The getChat request now returns the identifier of the linked chat for supergroups and channels, i.e. the discussion group identifier for a channel and vice versa.

The getChat request now returns the location to which the supergroup is connected (see Local Groups). Added the class ChatLocation to represent the location.

https://core.telegram.org/bots/api#chat
We should add support for these new fields.

Closed by #178


Speaker feedback when using a mic.

My setup is:
-Desktop Mic - blue yeti
-Speakers - 5.1 surround
I think maybe the mic is always on and the sound causes looping feedback... it sounds really bad and i had to unplug my mic.
DM me if you want a sound recording.

Couple of qs:

Does this repro with closed headphones? If it does: it's a straight up bug :P.
Does this repro in chrome with e.g. exokit-home (https://home.webmr.io/)? It would be interesting if Chrome's mic capture had a built-in feedback filter because we might be able to reuse that 🤔.

If it's only with speakers, then I think it's an artifact of there being no feedback filter in the microphone capture (yet). Basically the mic input is a raw data stream to network and back again, which is a straight up feedback loop.
Needs more research and thinking 🔬.

This might also have implications for the multiplayer server which streams the microphone data: https://github.com/webmixedreality/xrmp

I'm scared to try with headphones but i'll go get some today and report back, rip my ears.
It does not happen in Chrome. Only with the actual Exokit browser.

It seems like a quick fix would be to turn off mic on default, use a push to talk feature.
It definitely seems like the mic is auto-turned on in the Exokit browser but not in chrome.

Hm, mic should be off by default on page load; there should be no voice pushed to the network unless the voice option is manually clicked. Could it be that there was a lingering second tab/exokit in which mic was enabled?

Regardless, 100% agree this needs PTT. Filed here.

Added push-to-talk in https://github.com/webmixedreality/exokit/issues/71, but would love to get to the bottom of this one and why there was a feedback loop, especially since there wasn't in Chrome. 🤔
Did you have a chance to test with phones? (probably any would work)

I just updated to the new build, i don't hear the same issue now. I have tried holding down the T button and it seems fine. The sound loop only got bad after 2 minutes+ of using Exokit so maybe it takes a while to really start screeching. For now though it seems fixed.

Hm that’s useful info.
If it takes 2 minutes to “screech” this might be a different issue entirely
— e.g. an audio buffer filling, perhaps due to mismatched sample rates:
https://github.com/webmixedreality/exokit/issues/73
Will see if I can reproduce a screech after a couple minutes of usage.
On Mon, May 28, 2018 at 3:58 PM Chris Eddy<EMAIL_ADDRESS>wrote:

I just updated to the new build, i don't hear the same issue now. I have
tried holding down the T button and it seems fine. The sound loop only got
bad after 2 minutes+ of using Exokit so maybe it takes a while to really
start screeching. For now though it seems fixed.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/webmixedreality/exokit/issues/70#issuecomment-392594860,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGmu6ez5XXVlu--S2Y6lWnUjixc95IsWks5t3FbugaJpZM4UPJbW
.

Actually from @ChrisEddy's recording this looks like not a feedback loop, but some sort of sample buffer mismatch, running out of samples, or similar.
This would probably be fixed via https://github.com/webmixedreality/exokit/issues/73.


Improve performance for 4.9.2

We have some performance improvements based on 4.9.2

[Part A] eliminate reverse DNS lookup in MessageExt
[Part B] Improve header encode/decode performance
[Part B] Improve RocketMQSerializable performance with zero-copy
[Part C] cache result for parseChannelRemoteAddr()
[Part D] improve performance of createUniqID()
[Part E] eliminate duplicated getNamespace() call when where is no namespace
[Part F] eliminate regex match in topic/group name check
[Part G] [Work in progress] support send batch message with different topic/queue
[Part H] eliminate StringBuilder auto resize in PullRequestHoldService.buildKey() when topic length is greater than 14, this method called twice for each message.
[Part I] Avoid unnecessary StringBuffer resizing and String Formatting
[Part J] Use mmap buffer instead of FileChannel when writing consume queue and slave commit log, which greatly speed up consume tps.
Part K move execution of notifyMessageArriving() from ReputMessageService thread to PullRequestHoldService thread.

These commits almost eliminate bad performance methods in the cpu flame graph in producer side.

Part A to F is complete. Unit test fixed.

About Part J:
Actually, mmap is better than fileChannel in small size message case. In large scale size message, fileChannel is more better.
There could be an option to switch mmap/fileChannel.
See https://www.jianshu.com/p/d0b4ac90dbcb


win32: Drop support for XP and Vista

I tried this in #6091, but it was rejected.
Two years past and Vim 9 has been released. It should be a good timing to drop support for 20-year old OS.

Ken Takata wrote:

I tried this in #6091, but it was rejected.
Two years past and Vim 9 has been released. It should be a good timing
to drop support for 20-year old OS.

I'm in doubt.  This is not changing much code.  It's not like with older
windows systems where we could drop a substantial part of the library
calls.  That was a nice cleanup.  This is only a small change.
Windows XP usage did go down quite a lot.  Windows Vista doesn't even
show up anymore (nobody liked it anyway).  According to Statcounter it
is 0.38%  (to compare: Windows 10 is 72 %).  However, this is measured
by accessing web pages, computers not used to browse the internet are
not counted.
I wonder, is anyone reading this still using a Windows XP system?
Even if it is to drive some hardware.
--
This planet has -- or rather had -- a problem, which was this: most
of the people living on it were unhappy for pretty much of the time.
Many solutions were suggested for this problem, but most of these
were largely concerned with the movements of small green pieces of
paper, which is odd because on the whole it wasn't the small green
pieces of paper that were unhappy.
-- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

You are right that this doesn't change much code.
But actually I don't want to care about Windows XP anymore when adding a new feature.
I don't have a working XP machine, so I can't check if the new code works on XP.
(At least, I want to remove XP from the list of the supported OS.)

I don't see any thumbs-up or thumbs-down on this PR, nobody cares?

I stand by k-takata's opinion, support of Windows XP should be dropped.
Lack of reactions (thumb-up/down) might indicate that
there are few people are intereted in Windows XP and its support.
Fewer developer can maintain code with Windows XP in mind,
and it would be a waste of their precious time for few XP users.

However, this is measured by accessing web pages, computers not used to browse the internet are not counted.

A system that is still running Windows XP is probably a system that does not need to be connected to the Internet,
and it is hard to imagine using the latest Vim on such a system.
If they did use Vim, they would probably use an older version.

Since there are still infrastructures where XP is used, I would leave the support in. But I would welcome it if we could drop it soon.

Is there a strong advantage to drop win XP ?
XP still lives in many low-end hardwares (not only PC), which is still widely used in under developed countries.
So far as I know, especially in schools, hospitals and factories.
Those silent majority are not vim enthusiasts like us and will not access vim.org everyday. Also they are not working
in big tech companies and will not update their laptops every two years.
But I still wish they can benefit from the latest vim versions.
Since 9.0 is a big step since 8.0, many future plugins will depend on this.
So, if XP must be dropped, can we just put off this discussion until vim 9.1 or 9.2 ?

Is there a strong advantage to drop win XP ?
XP still lives in many low-end hardwares (not only PC), which is still
widely used in under developed countries.
So far as I know, especially in schools, hospitals and factories.
Those silent majority are not vim enthusiasts like us and will not
access vim.org everyday. Also they are not working
in big tech companies and will not update their laptops every two years.

Yes, that is the reason I'm hesitant to just drop it.

But I still wish they can benefit from the latest vim versions.
Since 9.0 is a big step since 8.0, many future plugins will depend on this.
So, if XP must be dropped, can we just put off this discussion until
vim 9.1 or 9.2 ?

Would it be sufficient to say that Windows XP users can get the 9.0
release?  They won't be able to use plugins that use the features being
added now (virtual text, :defer, etc.), but isn't it likely that it
won't matter much?
Waiting for 9.1 is just moving it forward, it's not really much
different.
--
hundred-and-one symptoms of being an internet addict:
40. You tell the cab driver you live at
http://123.elm.street/house/bluetrim.html
41. You actually try that 123.elm.street address.
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Would it be sufficient to say that Windows XP users can get the 9.0
release?  They won't be able to use plugins that use the features being
added now (virtual text, :defer, etc.), but isn't it likely that it
won't matter much?

The whole 9.0 lifespan (including all patches before 9.1) would be better.
Many users (me too) just start using vim9script after 9.0 got released.
I believe all the 9.0.XXXX versions can be used for collecting feedback and making vim9script more robust.
So that makes it more important than 9.1.XXXX or 9.2.XXXX.
btw: virtual-text is another important feature, it enables some cool plugins like
vim-copilot, LSP inlay hints and gitlens.

Is there a strong advantage to drop win XP ?

The biggest advantage I see in dropping XP and Vista support is that Vim can then probably also update to a more recent minimal MSVC version so we can get full/proper C99 support.

XP still lives in many low-end hardwares (not only PC), which is still widely used in under developed countries. So far as I know, especially in schools, hospitals and factories.
Those silent majority are not vim enthusiasts like us and will not access vim.org everyday. Also they are not working in big tech companies and will not update their laptops every two years.
But I still wish they can benefit from the latest vim versions.

Python dropped Windows XP somewhere around 2015. The newest versions don't even seem to work on Windows 7, according to https://www.python.org/downloads/windows/
NodeJS dropped support in v6, in 2015.
Go dropped Windows XP support in 1.11, in 2018.
Java dropped support for XP in 2014.
Java, Python, NodeJS, and Go are probably the most popular platforms, especially for new programmers. I bet the situation is similar for most languages/interpreters/compilers.
Things like web browsers and other editors nad tooling have dropped XP support as well. Getting dev environment is still possible of course, but with old version of a lot of software. You're going to have a hard time. Many platforms have already started to drop Windows 7 support.
In another comment you mentioned "virtual-text is another important feature, it enables some cool plugins like vim-copilot, LSP inlay hints and gitlens", but I bet you'll have a hard time getting things like CoPilot (depends on NodeJS) and many LSP things to run on Windows XP.
I'm sympathetic to your argument, but I think at this point we can probably safely drop Windows XP and Vista support and no one will notice, because the barriers to run latest version of $anything are already significant. When I lived in Indonesia up to last year I saw a number XP systems: the point-of-sale system at the family store next door, the admin system at my dentist, etc. But no one is trying to run Vim on those machines. At my job (in the Netherlands) we used a Windows 95 system for some very specific software up to about 2016 when it was finally replaced, but no one tried to run Vim on that either.

When talking to Vim users, I somewhat frequently run into people who think Vim is a static piece of software and only use old ancient versions of Vim from at least few years ago, and these are people who otherwise stay up to date with their software. I kind of have a feeling that people still on Windows XP, if they even use Vim to begin with, would be on that camp and not necessarily trying to download the latest and greatest. I can't say that number is 0  (see below about MacVim), but I can't imagine the number of active up-to-date Vim users on Windows XP is high today.

The biggest advantage I see in dropping XP and Vista support is that Vim can then probably also update to a more recent minimal MSVC version so we can get full/proper C99 support.

I feel like this is a pretty big improvement if it's true that dropping XP/Vista supports allows for C99. The requirement to satisfy old-school C-style "variable declarations on top" can make code contributions to Vim feel unnecessarily annoying especially for newcomers, and adds to the sentiment that Vim is more archaic than it should be. It is also a potential vector for bugs as we have function-scope variables everywhere, instead of being able to use C scoping to limit the visibility of variables. I definitely know from personal experience that this has bit me before when doing Vim changes.

Things like web browsers and other editors nad tooling have dropped XP support as well. Getting dev environment is still possible of course, but with old version of a lot of software. You're going to have a hard time. Many platforms have already started to drop Windows 7 support.

Just looking around, I have found 2 main programs that still support Windows XP. I'm not sure if it's because of development philosophy, or whether they actually have enough active users to justify so:

VLC, which is a popular tool, and playing videos probably has a larger audience than Vim.
7-zip. It supports down to Windows 2000!! Release history indicates that Windows requirements was last bump in 2013 and dropped 95/98/ME.

On a tangent, I am facing a similar issue with MacVim as Apple has been aggressively removing support from older OS versions (although they operate on a much shorter timeline than Microsoft/Windows), so I can sympathize. MacVim, outside of VLC and a couple other ones like Unarchiver (another unzipping tool like 7-zip), is the only macOS software that I could find that supports back to 10.9.  Every time I think I can drop it there are always some users who come out and let me know that they are still using it…

I'm uncomfortable with the current process for dropping systems/features/os/etc. The common approach is to mark something as deprecated. That, too, is problematic, as it seems that there are plenty of folks that continue to use deprecated stuff forever. So, may I suggest a "+deprecated" feature for configure to include deprecated stuff -- up to a point. Those who are using the latest vim on deprecated h/w and o/ses will likely pipe up, giving you feedback. Once there's no or little feedback after, say, half a year, go ahead and remove the feature. Just an idea...

I'm uncomfortable with the current process for dropping
systems/features/os/etc. The common approach is to mark something as
deprecated. That, too, is problematic, as it seems that there are plenty
of folks that continue to use deprecated stuff forever. So, may I
suggest a "+deprecated" feature for configure to include deprecated
stuff -- up to a point. Those who are using the latest vim on deprecated
h/w and o/ses will likely pipe up, giving you feedback. Once there's no
or little feedback after, say, half a year, go ahead and remove the
feature. Just an idea...

I don't see use for it.  The idea of marking something "deprecated" is
to give people time to rewrite anything that depends on it.  In this
case there is nothing that one can do.  Well, upgrade to Windows 7, but
if that would be an option it would very likely already have been done.
I can't imagine that someone finally upgrades because Vim no longer
supports the OS.
In this case one can just use the last version of Vim that supported XP,
which is the current one.  This is hardly a problem, only some plugins
developed later might not work.
For those things that users actually use, we just keep them.  We only
drop something when it's not used (e.g. when it's broken anyway).
Unlike much other software where old script just won't work anymore
(Python 2 is a disappointing example, I still have a very large Python 2
program that will be painful to migrate to Python 3, if at all
possible; I started on it and failed miserably so far).
--
hundred-and-one symptoms of being an internet addict:
59. Your wife says communication is important in a marriage...so you buy
another computer and install a second phone line so the two of you can
chat.
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

@arp242 , MSVC compiler version has nothing to do with XP compatibility. It depends on what headers/libraries you are using.
You can use the latest MSVC and select v141_xp as the target toolset in the option dialog to build XP applications. See here:
https://docs.microsoft.com/en-us/cpp/build/configuring-programs-for-windows-xp?view=msvc-170
MinGW can do similar thing:

To compile for older Windows versions with MinGW you need to define _WIN32_WINNT to an older version for (0x0501 for Windows XP) when compiling your application as well as all of it's dependencies, including the standard library provided by MinGW.

@arp242 , MSVC compiler version has nothing to do with XP compatibility. It depends on what headers/libraries you are using.

I think the issue is with whether you want XP/Vista users to be able to build binaries themselves. From looking it up, it seems like Visual Studio 2013 started to support C99, but it's also the version that started to require Windows 7. It's possible to generate Windows XP builds on later Visual Studio versions but the users won't be able to build Vim themselves.

Considering the comments, I think it's fine to drop XP support now.  Those few who want to use Vim on an (old) XP system can get Vim version 9.0.  It's easy to understand and provides a Vim version with plenty of features.  Over time some plugins won't work there, which is a very small price to pay.

Since there are still infrastructures where XP is used, I would leave
the support in. But I would welcome it if we could drop it soon.

But what would "soon" be...?
There might be one other advantage: I believe MSVC does not support
Windows XP in later versions.  I still use MSVC 2015 because I think
later versions create a binary that doesn't run on older Windows
systems.  Not sure which ones exactly.
So we could switch to a more recent build setup, where Windows 7 is the
oldest Windows version supported.  I suppose newer MSVC verions are
better than older ones.
--
Don't read everything you believe.
/// Bram Moolenaar -- @.*** -- http://www.Moolenaar.net   \
///                                                                      \
\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


Add doc section on component libraries

Adding section in the components page on using component libraries. Includes

How to create a library
How to add it to solution
How to consume it
How to pack it for nuget

First docs commit so I'm very open to suggestions.
Fixes #70

Thanks @stimms for working on this.
@danroth27 Did you want this in a separate topic under the Components node? If so, I'll provide instructions to @stimms. If the content is fine in this topic, I'll perform a style+grammar+UE pass on it after your technical review.

Thanks for this contribution @stimms! The content looks great.
@guardrex  Yeah I think I would prefer this to be a top level node right under Components.

@stimms I'll provide you instructions on how to set this up as a separate topic in a couple of hours.

@stimms Ok ... back! ... Instructions ...
You can either:

Close this PR. You'll create a new branch and a new PR (but obviously don't delete this branch until you have the new branch set up).
Don't close this PR. Follow the instructions below and revert your changes to the Components topic at the end. This is probably the easiest way to go.

Create a new topic named component-libraries.md in the docs folder.

Create a TOC entry for this in the toc.md file ...
# [Component libraries](xref:client-side/blazor/component-libraries)

... it will become Line 5 just under the Components topic link.

At the top of the new topic, place the following metadata and content (modify the description as you see fit, but start it with an action verb, such as "discover" or "learn") ...
---
title: Component libraries in Blazor
author: stimms
description: Discover how Blazor components can be included in a Blazor app from an external component library.
manager: wpickett
ms.author: riande
ms.custom: mvc
ms.date: 12/14/2018
ms.prod: asp.net-core
ms.technology: aspnet
ms.topic: article
uid: client-side/blazor/component-libraries
---
# Component libraries in Blazor

By [Simon Timms](https://github.com/stimms)

[!INCLUDE[](~/includes/blazor-preview-notice.md)]

START OF YOUR CONTENT HERE
Begin with a short explanation and then use H2's (##) for sections thereafter.

Make Dan's suggested update :point_up:.

Revert your changes to the Components topic.

Now push it! ... Ah, push it, push it real good! ... :smile: ©1986 Salt-n-Pepa Push It

WRT a component library sample, we can discuss that, too. I don't think it's super necessary, but would be a nice-to-have. Let's discuss further if you're interested. If you'd prefer that I take care of that, no worries ... I can do it over the 🎅 holiday break 🎄.

Thanks for writing that all out @guardrex. I should have some time to get that squared away tomorrow. As for the sample I'm pretty sure I created one when I was writing this I just have to remember where I put it...
🕵

If you have (or create) a sample, then I need to give you additional info on where to put it and how to wire its code into the topic ....... or you can put it up in a GH repo for me to roll in later.

@stimms If ur busy, I can take it from here if you like. Let me know.

This PR is superceded by  #343


[AutoRelease] t2-azurestackhci-2022-11-30-74713(can only be merged by SDK owner)

https://github.com/Azure/sdk-release-request/issues/3475
Live test success
https://dev.azure.com/azure-sdk/internal/_build?definitionId=1851

issue link:https://github.com/Azure/sdk-release-request/issues/3475


Fixed RTL digit directions

Before this fix, the numbers in RTL languages is being inverted, which
is not correct.
Example:
The number 21 is written in arabic as ٢١, where ٢ is 2 and ١ is 1.

Thanks @Amjad50


Bug Fix: allow false in allowedClasses

Summary
Prior to 2.4.0, allowedClasses can be false, this has been an undocumented feature.
Since 2.4.0, this behavior is broken. This PR reverted to the previous behavior where false is allowed in the allowedClasses attribute.
See https://github.com/apostrophecms/sanitize-html/discussions/621 for more detail
What are the specific steps to test this change?
The following code is broken in the main branch of this base repo, but should work in the branch in this pr.
const sanitizeHtml = require('sanitize-html');

const ALLOWED_TAGS = [
    'li',
    'ul',
    'ol',
    'p',
    'h1',
    'h2',
    'h3',
    'h4',
    'h5',
    'h6',
    'img',
    'a',
    'div',
    'b',
    'table',
    'tbody',
    'tr',
    'th',
    'td'
];
const ALLOWED_SCHEMES = ['https', 'mailto'];

const sanitized = sanitizeHtml(`<ul class="should not sanitize"><li>Hello </li></ul>`, {
    allowedAttributes: { '*': ['*'] },
    allowedTags: ALLOWED_TAGS,
    allowedClasses: {
        ul: false
    },
    allowProtocolRelative: false,
    allowedSchemes: ALLOWED_SCHEMES
});
//expected

Hello

console.log(sanitized)

What kind of change does this PR introduce?
(Check at least one)

[x] Bug fix
[ ] New feature
[ ] Refactor
[ ] Documentation
[ ] Build-related changes
[ ] Other

Make sure the PR fulfills these requirements:

[x] It includes a) the existing issue ID being resolved, b) a convincing reason for adding this feature, or c) a clear description of the bug it resolves
[x] The changelog is updated
[x] Related documentation has been updated
[x] Related tests have been updated

Other information:

@boutell would you be able to merge this?


Debugging: Best Practices

Hi,
I wanted to know whether there are some hints on how to best debug a newly defined problem that doesn't work as expected (i.e., no plan was found).
I figured out that the pure task domain can be verified via tmsmt ops.pddl facts.pddl which is a first step.
But once this is done, I would like to get more insight into the full blown geometric problem. For example: Is it possible to output the initial and goal state conjunction? The initial state depends on the scene file, the optional task problem definition (:init) and the initial state (-q). I'm not sure I fully understand what happens when competing facts are defined in these different sources.
I'm also using the python interface and first thought that outputting the return value of tm.bind_scene_state and tm.bind_goal_state might give all necessary information but I realized that these lists are not the full state (at least the planner even fails when both are identical -- although there should be a trivial solution).
Any hints on how to debug (without going the LISP way)?

You can get the start/goal task expressions by calling tmsmt --write-facts=FACTS.pddl ..., which will output the PDDL facts for the input scene/semantics.

Great, that helps a lot. Thanks!

Sorry, just one tiny question regarding the "debugging" thing. I'm now at the point where the RRT cannot sample valid goal states:
"Error:   RRTConnect: Unable to sample any valid states for goal tree"
Is there a way to visualize/get insight into what this potential goal state looks like?

This probably means either (1) the goal is in collision or (2) there are not IK solutions for the goal.
You could try loading/viewing the scene and drawing in some marker at the goal position.

Alright. I'm trying to figure out in which coordinate systems the poses are expressed. According to the documentation the function op_tf_abs returns "the absolute pose of FRAME". Does "absolute" mean in the coordinate frame of the scene's root node?

Yes, absolute is with respect to the scene's root.

Ok, thanks. There's no simple way to visualize all frames in aarxc, right? I guess adding some markers to the scene files myself is the easiest way to accomplish this...

Ok, one final question. I cannot find any valid goal state for RRTConnect ("Unable to sample any valid states for goal tree"), even if I do forward kinematics and use the resulting endeffector pose as a desired goal state. I also turned off collisions (geometry { collision 0; ..}) for all meshes. I guess there is no more information about the exact problem available?

Possible that there is some detected self-collision in the robot at the goal state.  The simplified collision geometry for many robots results in spurious collisions that need to be "allowed" by the motion planner.
You can view the collision geometry and check for self-collisions with either the C API or Lisp API.  I will add that to my TODO list for CLPython binding.

Ok, that would help in general. But in my case it's impossible, since I provide a file with the allowed collisions in which I put all possible pairs of robot links.

In my experience the "Unable to sample any valid states for goal tree" usually happens when I set my transform incorrectly for grasping an object. So I have the gripper inside the object I want to grasp or something like that.

Ok, thanks. One related question: is the geometry attribute collision 0; used? It is generated when converting from URDF to robray scene files but it is nowhere documented (http://amino.kavrakilab.org/scenefile.html). I assume it means that this geometry cannot generate any collisions. Am I right?

Yes, the collision attribute sets whether the geometry is considered for collisions.  There is also a visual attribute for collision-only geometry

Is there some documentation on this, or a file that I can look at?  (e.g. the 'cone' option is also not available although the docs say so)

Just the documentation here: http://amino.golems.org/scenefile.html.
Here is the parser: https://github.com/golems/amino/blob/master/lisp/rx/scenefile/curly.lisp


Pipeline for releasing Docker init container

Hi, I've created Github action based pipeline that allows to promote release by Github release form. It adds built jar file into Github release and also creates and publishes init container into Docker hub. To make this 100% working you'd need to have account on Docker hub and create repo for this project, then create token that will allow the pipeline to publish image into Docker hub. Token from Docker hub should be added to this Github repo as repository secret called DOCKER_HUB_TOKEN. Working test release can be found in my fork here
If you need more details about configuration, just let me know :)
Regards, Łukasz Włódarczyk
Motivation
#34
What
Pipeline that publishes jar into Github releases and init container into Docker hub
Why
To allow using this provider with Helm charts
How
Release process with this pipeline looks like following:

You create new tag using standard Github release mechanism, e.g. tag = 2.5.3
Pipeline is executing tests
Pipeline sets project version based on git tag and build jar
Jar file is added into Github release
Jar file is added into Docker image
Docker image is tagged same as Github tag and also as latest
Docker images are pushed into Docker hub

Verification Steps
You can verify that jar is added into Github release in my fork here
To verify if docker container contains jar file you can do following:
docker run --rm -it --entrypoint sh kilmajster/keycloak-metrics-spi

# then into docker container
 cd keycloak-metrics-spi
 ls -al

 # and also for eg. to verify if version is set correctly

 unzip keycloak-metrics-spi-2.5.3.jar

 ...

 cat META-INF/MANIFEST.MF

Checklist:

[x] Code has been tested locally by PR requester
[ ] Changes have been successfully verified by another team member

Progress

[x] Finished task

Additional Notes

thanks @kilmajster , this is really nice! I'll have a look through it this week and hopefully we can merge it.

Do Jankinsfile  will be still needed with this pipeline or I can remove it as well?

@kilmajster @pb82 Is there already more infos what this PR can be merged?

Hi @sbaerlocher, this PR seems to be little bit forgotten ;) I merged it with upstream and promoted test release to confirm that is still working (pipeline: https://github.com/kilmajster/keycloak-metrics-spi/runs/5828438512?check_suite_focus=true and docker: https://hub.docker.com/repository/docker/kilmajster/keycloak-metrics-spi). I am not a member of the project so I can't merge it.
@pb82 I saw that pom.xml was added, if you are switching to this project to maven I can change this pipeline to maven one. Also in my similar personal project I got pipeline that is able to release artifact to maven central, so if you are interested in such mechanism I will be happy to help with this :)

I'd love to see this (or something like it) merged.
It looks like it needs a rebase at the moment?

is up to date no :)

is up to date now :)

Looks like it may need to be rebased again since the 4.0.0 release
@diversit would you be able to review/merge this?
It'd be a huge help for us manage a deployment of keycloak-metrics-spi

I am happy to review but I’m on holiday now so that would be end of august
earliest.
On Wed, 9 Aug 2023 at 05:05, James Callahan @.***>
wrote:

is up to date now :)
Looks like it may need to be rebased again since the 4.0.0 release
@diversit https://github.com/diversit would you be able to review/merge
this?
It'd be a huge help for us manage a deployment of keycloak-metrics-spi
—
Reply to this email directly, view it on GitHub
https://github.com/aerogear/keycloak-metrics-spi/pull/116#issuecomment-1670585115,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADWJVKH2YCD3D3PUSGDA7TXUL47NANCNFSM5GWAVAZA
.
You are receiving this because you were mentioned.Message ID:
@.***>

Yes, I’ll review it tomorrow and get back to you
On Tue, 29 Aug 2023 at 14:34, James Callahan @.***>
wrote:

I am happy to review but I’m on holiday now so that would be end of august
earliest.
It's the end of August now :)
@diversit https://github.com/diversit would you be able to review? Do
you need @kilmajster https://github.com/kilmajster to rebase?
—
Reply to this email directly, view it on GitHub
https://github.com/aerogear/keycloak-metrics-spi/pull/116#issuecomment-1697359030,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADWJVN26UNJN3MW6PR436TXXXOXBANCNFSM5GWAVAZA
.
You are receiving this because you were mentioned.Message ID:
@.***>

I've synced my changes with an upstream and also bumped java version to 17 in the release job - here is a pipeline I ran to promote test release with my personal docker hub creds https://github.com/kilmajster/keycloak-metrics-spi/actions/runs/6016566819/job/16320824108

@diversit ping?

hi, any news for this topic ?

Changes look fine, but the PR requires an update due to conflicts.
@james-callahan Sorry for the late reply. I'm flattered of being asked to review and merge this PR, but I am not the owner of this repository nor a contributor with review capabilities. So I cannot help you. Perhaps @pb82 ?


Move extension plugins to the extensions folder

Proposed changes

Removed extension configuration from the Config struct.
Enable/disable extensions based on an extensions list in the agent configuration.
Moved Advanced Metrics & NGINX App Protect plugins to extensions.

nginx-agent.conf will now have a new option that needs to be used to enable extensions. Here is an example of how to enable advanced-metrics extension:
extensions:
  - advanced-metrics

Checklist
Before creating a PR, run through this checklist and mark each as complete.

[x] I have read the CONTRIBUTING document
[x] If applicable, I have added tests that prove my fix is effective or that my feature works
[x] If applicable, I have checked that any relevant tests pass after adding my changes
[x] I have updated any relevant documentation (README.md)

question/suggestion:
Could we have the default nginx-agent.conf contain the extensions section but commented out? Something like:
extensions:
# - advanced_metrics
# - nginx_app_protect
# - nap_monitoring

It helps with self-documentation if someone is looking at the conf file. If we've already done this, then fantastic! But wanted to make a suggestion otherwise.


Implement Mackenzie's CacheHelper as a singleton. Get environment var…

…iables from azure.

Hi @mateoatr, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Mateo Torres Ruiz). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;


Trouble with HTTPS

First of all, thank you for making this, it looks awesome.
However, I cannot get this to work with the following scenarios:
On heroku w/ custom domain and HTTPS enabled
Error:
Secure Connection Failed

An error occurred during a connection to news.domain.com. Peer reports it experienced an internal error. Error code: SSL_ERROR_INTERNAL_ERROR_ALERT

I cannot find any logging info in the app via cli. Log dir is empty.
On Docker with nginx-proxy and letsencrypt
Error:
no live upstreams while connecting to upstream
I used the docker-compose.yml from the repo and added the following under environment variables

VIRTUAL_HOST=news.mydomain.com
LETSENCRYPT_HOST=news.mydomain.com
<EMAIL_ADDRESS>
I also tried

VIRTUAL_PORT=8080
removing "ports:" and adding "expose: - 8080"

I don't see anything in "$ env" that looks like it needs to be modified. Any help appreciated.

Hey @gatewayshuffle . Did you managed to make it work? I'm available to help now. I'm not sure about the Heroku one, I can try deploying it myself, but it usually works but just clicking the "deploy to heroku" button. On the docker side, what reverse proxy did you put in front of it?

Just following up on this issue. I'm having this as well. I'm running the application as a docker container.
For example, one RSS I'm trying to load in the application is https://blog.codinghorror.com/rss/. If log into the stringer container (that I obtained from hub.docker.com) and curl this URL, I get the following response:
$ curl -v https://blog.codinghorror.com/rss/
* Hostname was NOT found in DNS cache
*   Trying <IP_ADDRESS>...
* Connected to blog.codinghorror.com (<IP_ADDRESS>) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
*
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS alert, Server hello (2):
* SSL certificate problem: certificate has expired
* Closing connection 0
* SSLv3, TLS alert, Client hello (1):
curl: (60) SSL certificate problem: certificate has expired
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

I tried a few things, such as updating ca-certificates in the container, but without any luck.
Just for comparison, here's the response I get from curl when running from a regular computer:
curl -v -o /dev/null https://blog.codinghorror.com/rss/
* Connected to blog.codinghorror.com (2a04:4e42::775) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: none
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [106 bytes data]
* TLSv1.2 (IN), TLS handshake, Certificate (11):
{ [4033 bytes data]
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
{ [300 bytes data]
* TLSv1.2 (IN), TLS handshake, Server finished (14):
{ [4 bytes data]
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
} [37 bytes data]
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.2 (OUT), TLS handshake, Finished (20):
} [16 bytes data]
* TLSv1.2 (IN), TLS handshake, Finished (20):
{ [16 bytes data]
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=blog.codinghorror.com
*  start date: Nov 23 14:18:49 2021 GMT
*  expire date: Feb 21 14:18:48 2022 GMT
*  subjectAltName: host "blog.codinghorror.com" matched cert's "blog.codinghorror.com"
*  issuer: C=US; O=Let's Encrypt; CN=R3
*  SSL certificate verify ok.
* Using HTTP2, server supports multiplexing
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* } [5 bytes data]
* Using Stream ID: 1 (easy handle 0x562ffdcc8910)
} [5 bytes data]
> GET /rss/ HTTP/2
> Host: blog.codinghorror.com
> user-agent: curl/7.80.0
> accept: */*
>
{ [5 bytes data]
< HTTP/2 200
< server: openresty
< content-type: text/xml; charset=utf-8
< status: 200 OK
< x-request-id: 59181f100efd64648742af89d6cfb9c8
< etag: W/"361e1-DaufgBTMsBzYwvfqyTDsl9iqORM"
< ghost-cache: HIT
< cache-control: public, max-age=0
< ghost-age: 0
< x-request-id: c3d3affbe4356e295fbd2a0689220877
< via: 1.1 varnish, 1.1 varnish
< accept-ranges: bytes
< date: Wed, 12 Jan 2022 12:24:36 GMT
< age: 140665
< x-served-by: cache-ams12769-AMS, cache-cgh11160-CGH
< x-cache: HIT, HIT
< x-cache-hits: 1, 1
< x-timer: S1641990276.305494,VS0,VE1
< vary: Accept-Encoding, Cookie
< ghost-fastly: true
< content-length: 221665
<
{ [980 bytes data]
100  216k  100  216k    0     0  1803k      0 --:--:-- --:--:-- --:--:-- 1819k
* Connection #0 to host blog.codinghorror.com left intact

So it seems like something is wrong with the docker container, and not the application.

It doesn't seem like the certificate file is configured correctly in the system. If I force a certificate file, the call is successful:
curl --cacert /etc/ssl/certs/cacert.pem https://blog.codinghorror.com/rss/

Hi @andrenho, thanks for digging into this. Can you try the branch rf-ruby_up? I updated the Ruby image and I believe that also fixes the certificate issues. I've pushed up a new image to mockdeep/stringer.

Actually, my changes are on main now, so you can try the latest version there.

I tested using mockdeep/stringer, it is working now! Thank you!
Please let me know when you update the main image on docker hub.

@andrenho great! Until further notice, mockdeep/stringer is going to be the official image, so please use that.


⚠ GitLab Server has degraded performance

In 080d95b, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 11755 ms

Resolved: GitLab Server performance has improved in 606240d.


[DEV] Update the github actions to gate merges to main on succesful compilation, linting, and successful unit tests

Short Description
The current GitHub Actions come from the HPE team and are not applicable to our setup.  We need to set up our own hygiene.
Definition of Done
A successful completion of this task will update the repository configuration and github actions such that they enforce our code quality standards and review requirements.

We definitely also need to modify the integration tests (and perhaps the GitHub Actions for them) so that the actual tests run. Since none of them currently run right now, all of the tests currently fail in CI.

We can close this based on the current gating unit tests from https://github.com/OpenCHAMI/bss/commit/dc387615f95f30782584333bf8dc0fdc3de0dc3f


Create powersync persister

Summary
Following on the heels of https://github.com/tinyplex/tinybase/pull/131, this is the PR to add the PowerSync persister to TinyBase. I'm submitting this in draft mode to give you a preview @jamesgpearce. Unfortunately I'm struggling to get the Jest unit tests working because the PowerSync SDK relies on Workers which are not available in Jest.
How did you test this change?
Implemented the persister in a React Native demo app: https://github.com/bndkt/powerchat-tinybase/blob/tinybase/src/app/(app)/tinybase.tsx
Jest unit tests are failing, like described above.

Thanks for the feedback again @jamesgpearce! Regarding the test, I tried using jsdom-worker, tried mocks, but couldn't get it to run. I spoke to PowerSync, they're working on making it work with Jest themselves, so maybe in the future there will be a chance to add this. What I did for now is a bit unconventional, curious what you think. In the end PowerSync is just using a sqlite database locally and the sync part with their service wouldn't be part of the tests anyways. So I created a mock (https://github.com/bndkt/tinybase/blob/46dcf0e96fed009963294cfc2c366d606f206413/test/unit/persisters/sqlite.ts#L52-L118, happy to move this into a separate file) which uses a simple sqlite database (just like the sqlite persister) but mimics the PowerSync interface. Now I "only" get 14 failing tests which are related to granular saves and the difference in SQL statements. I'll have to spent a few brain cycles on granular saves and the missing ON CONFLICT capability in PowerSync, will post about that separately.

I'm hanging out here but take it out of draft when you want me to take a final look

Hey @bndkt is this ready? 😄  - do you want me to review and/or rebase this for you?

Hey @jamesgpearce, thanks for checking in! I've poured a lot of time into fixing the tests now, but I'm afraid I need your help at this point. If you run the unit tests in this PR, you'll find 15 failing test. From my understanding, those can be put into two buckets:

If you set useOnConflict to true for the PowerSync persister (exactly here), there's only 3 tests that fail, all of which are related to autoLoad. Those must be due to a problem with my PowerSync mock implementation but I can't figure out what the problem is.
The remaining 12 failures are test for partial persists. I tried to implement partial changes without using ON CONFLICT (basically following the "good but tedious" option from here but end up with a lot of tedious code and am not really sure about the value of this. Do you think it would be feasible to just don't write partial updates for this persister? From what I understand this would only mean rewriting some columns that are unchanged, or am I missing something?

OK I'll take a look! I found some broken tests in the v( beta branch and this might be similar. Leave it with me.

@bndkt please take a look at https://github.com/tinyplex/tinybase/pull/133/commits/51f1a2989e0dbafa87135cd40aec6f28566c44d4 - I simplified and isolated a simple (JSON-based) test that fails. The second write to the table (that has "c1":2) does not fire a change and so the test fails.
I read here that there should not be more than one instance per database file. Maybe that's why you had the factory pattern, but it still doesn't seem to be a singleton. However, that didn't seem to fix it.
How well does this mock work do you think?

@bndkt a gentle ping to see if you have any thoughts on this mock issue

@jamesgpearce Thanks for isolating this! I'm looking into it now, and see how to improve the mock in order to get the tests to pass.

@jamesgpearce in order to debug the mock function, I've temporarily enabled "on conflict" usage for the persister, so that it should behave exactly like the SQLite3 persister. I now get 2 failing tests. I've added comments to those and will tag you. They both seem to be timing-related, do you have any idea why the timing could be off here?

Oh wow, thanks for discovering this @jamesgpearce! I'll have a final look now and then set it to ready for review.

Good to go @jamesgpearce!

Alright! Let's do any final polish in main.

Thanks so much for your work on this!


[SW-24808] Fix for duplicate names in plugin defined menu

1. Why is this change necessary?
If you want to install two plugins with the same menu entry
2. What does this change do, exactly?
Removes an index on name inside
s_core_menu
3. Describe each step to reproduce the issue or behaviour.
Use the provided plugins and try to install (activate) both
examplePlugins.zip
4. Please link to the relevant issues (if any).
https://issues.shopware.com/issues/SW-24808
5. Which documentation changes (if any) need to be made because of this PR?
///
6. Checklist

[ ] I have written tests and verified that they fail without my change

Tested the backend accessibility

[x] I have squashed any insignificant commits
[x] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

Hey @jinnoflife,
is there any specific reason why you would need that?
Instead, rather use a prefix so you'll never have to face duplicated names in the menu.

Hey @jinnoflife,
I'm afraid you misunderstood our intention. :-(
It's the plugin manufacturers responsibility to add their custom plugin prefix when adding a menu-entry.
We did not want this to be changed in the code in any way.
We're just wondering, you wanted to have duplicate menu entries, when you could have just added a prefix to the menu entry in your plugin.
So the question still remains:
Was there any specific reason, why you wanted to create a duplicated menu entry in your plugin, when you could have just appended your manufacturer prefix to the menu entry's name.
Sorry for any inconveniences!

@PaddyS I think I really miss understood.
I'll close this PR :sweat_smile:
I didn't wanted to create an entry. I just saw the ticket and wanted to resolve it.
Also wouldn't it be better to provide the prefix for every plugin instead of give it to the developers hand? This would also resolve the issue and could provide some usability for developers


patch running for Baysor in CLI

Hi @quentinblampey, Thanks very much on the responding! My confused question is when running sopa-cellpose in the CLI: sopa patchify image C:/Users/hekun/Downloads/S3R1.zarr --patch-width-pixel 6000 --patch-overlap-pixel 150
sopa segmentation cellpose C:/Users/hekun/Downloads/S3R1.zarr --diameter 60 --channels DAPI --flow-threshold 2 --cellprob-threshold -6 --model-type cyto3 --min-area 1000 --clip-limit 0.2 --gaussian-sigma 1
So this command line will run all the patches (I have 49 here) for cellpose automatically;
However, when running Baysor:
sopa patchify baysor C:/Users/hekun/Downloads/S3R1.zarr --config- path C:/Users/hekun/sopa/workflow/config/merscope/merscope.toml --patch-width-microns 1200 --patch-overlap-microns 20;
cd C:/Users/hekun/Downloads/S3R1.zarr/.sopa_cache/baysor_boundaries/1;
C:/Users/hekun/.julia/bin/baysor run --polygon-format FeatureCollection -c /Users/hekun/sopa/workflow/config/merscope/merscope.toml transcripts.csv;
Will I have to run the patch one-by-one? so I have 15 patches here for Baysor? I know in the website it said can run snakemake or nextflow. But I run everything now in the CLI, and as mentioned earlier there's an issue running snakemake in windows.
Any quick comments can run it in line for all the patches?
Thansk a lot!

Hi @KunHHE,
Yes, for now, the CLI should be used for each of the patch indices. This will be updated in sopa==2.0.0 (which is expected to be released very soon, as mentioned in my answer to your other issue), so you'll be able to run on all patches directly. It will also add a parallelization backend with dask to make it faster.


Increasing DB connection limit and alert level

We decided to keep connection limit at the current level hence increasing it can killl DB (We had problems with CPU consumption when all connections were actively used event with current limit).


Fix mirror cursor selection

This PR fixes #86978
Before:

After:

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: mrahhal sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Thanks. I added some comment and improved the logic. When it's selection (4 points), we should exit this mode when either both anchors or both actives are located in different locations.


Having issues with Vue Doc Examples

<script setup lang="ts">
defineProps(['modelValue'])
defineEmits(['update:modelValue'])
</script>

<template>
  <input :model-value="modelValue" @input="$emit('update:modelValue', $event.target?.value)">
</template>

for a component as simple as this, I am getting type errors from Volar (im in takeover mode and forced TS version to 4.9.5) saying that "Property value does not exist on type 'EventType'"
also using nuxt 3.3.2 if that matters
tried looking around and finding other solutions as well, any help is greatly appreciated

solution is to use your emit like this ('update:modelValue', (e.target as HTMLInputElement).value) which works. not even sure its an actual issue anymore or just my lack of understanding typescript