Migrate legacy saved searches and favourites

Reviewer: Mia
Asana: https://app.asana.com/0/392891325557410/390989879439961
CC: Caine
Description:
Migrates the users saved searches and stories from the Search and Stories app in to bookmarks in the new app.
Tested with tagged version of 5.0.1 (delete the mogenerator target and dependency, comment out references to test flight, and update the bundle id to match the new app)
Tested with tagged version of 6.0.2 (update the bundle id to match the new app)
Tested with tagged version of 6.0.9 (update the bundle id to match the new app)
Steps to test this PR:

Checkout a version of the Search and Stories app to test against, as in the description above
Launch the Search and Stories app from Xcode
Favourite one or more stories and make a note of what they are
Favourite one or more searches and make a note of what they are
Launch the new app from Xcode
Finish the on-boarding screens and check the favourited stories and searches are present in the bookmarks

Reviewer Checklist:

[x] Ensure the PR solves the problem
[x] Review every line of code
[x] Ensure the PR does no harm by testing the changes thoroughly
[x] Get help if you're uncomfortable with any of the above!
[x] Determine if there are any quick wins that improve the implementation

PR DRI Checklist:

[ ] Get advice or leverage existing code
[ ] Agree on technical approach with reviewer (if the changes are nuanced)
[ ] Ensure that there is a testing strategy (and documented non-automated tests)
[ ] Ensure there is a documented monitoring strategy (if necessary)
[ ] Consider systems implications (Database connections, Grafana stats, CPU)

@subsymbolic have updated PR to address comments :)

Looks good!


[BUG] Request PDU is invalid

Duplicate issue

[X] I've searched for any related issues and avoided creating a duplicate issue.

Component
Simulator
Description
Hi Jerome,
I just tried to connect the simulator with our backend and experienced two errors.
1. OCPP 2.0.1 "StatusNotification"
Sending the OCPP 2.0.1 Receiving the StatusNotification response, e.g. with the following contents for example:
[3, '62c8f84f-9f17-4be3-899b-3a16ea5ba095', {}]
yields the following error:
error: 22.7.2024, 20:49:32 CS-KEBA-00001 | ErrorUtils.handleSendMessageError: Send request command 'StatusNotification' error: Request PDU is invalid {"code":"FormatViolation","command":"StatusNotification","date":"2024-07-22T18:49:32.216Z","name":"T","stack":"T: Request PDU is invalid
at xr.validateRequestPayload (file:///dist/ChargingStationWorker.js:6:69877)
at xr.buildMessageToSend (file:///dist/ChargingStationWorker.js:6:72709)
at file:///dist/ChargingStationWorker.js:6:71646
at new Promise (<anonymous>)
at xr.internalSendMessage (file:///dist/ChargingStationWorker.js:6:70903)
at xr.sendMessage (file:///dist/ChargingStationWorker.js:6:69341)
at xr.requestHandler (file:///dist/ChargingStationWorker.js:6:92846)
at Pe (file:////dist/ChargingStationWorker.js:6:14018)
at n.startMessageSequence (file:///dist/ChargingStationWorker.js:7:29993)
at n.<anonymous> (file:///dist/ChargingStationWorker.js:6:114585)"}

The same error occurs using the ocpp-server from the test directory. I could not find any unit tests for this specific example.
For OCPP version 1.6 this is working - it is only affecting version 2.0.1.
2. OCPP 1.6 "Authorize"
For the OCPP version 1.6 the simulator works until the first authorization is attempted. Loading the response is also failing. Example:
The simulator publishes
[2, '53c8b8f1-c43a-4f6f-a6d9-f25a14fdfe93', 'Authorize', {'idTag': 'UNDEFINED'}]
Our backend responds
[3, '53c8b8f1-c43a-4f6f-a6d9-f25a14fdfe93', {'idTagInfo': {'expiryDate': '2024-08-19T19:07:08.374410Z', 'parentIdTag': null, 'status': 'Invalid'}}]
Error in the logs:
error: 22.7.2024, 21:07:08 CS-KEBA-00001 | OCPP16ResponseService.responseHandler: Handle response error: Response PDU is invalid {"code":"FormatViolation","command":"Authorize","date":"2024-07-22T19:07:08.159Z","name":"T","stack":"T: Response PDU is invalid
at wr.validateResponsePayload (file:///dist/ChargingStationWorker.js:6:76113)
at wr.validatePayload (file:///dist/ChargingStationWorker.js:6:82157)
at wr.responseHandler (file:///dist/ChargingStationWorker.js:6:81606)
at g (file:///dist/ChargingStationWorker.js:6:70116)
at o.handleResponseMessage (file:///dist/ChargingStationWorker.js:7:25797)
at o.onMessage (file:///dist/ChargingStationWorker.js:7:26310)
at WebSocket.<anonymous> (file:///dist/ChargingStationWorker.js:7:4320)
at WebSocket.emit (node:events:517:28)
at Receiver.receiverOnMessage (node_modules\\.pnpm\\ws@8.17.1_bufferutil@4.0.8_utf-8-validate@6.0.4\\node_modules\\ws\\lib\\websocket.js:1211:20)
at Receiver.emit (node:events:517:28)"}

This issue is independent on whether to send acceptance or rejections.
I could also not find any unit tests for this specific example.
Both errors contain invalid PDU. It might make sense to test all potential answers. If helpful, I could provide some backend examples to you.
Version
latest
Node.js version
v18.20.2
System
Unrelated
Expected result
No response
Actual result
No response
Steps to reproduce
No response
Attachments
No response

Both errors contain invalid PDU. It might make sense to test all potential answers. If helpful, I could provide some backend examples to you.

The CSMS is indeed sending invalid payload response. You can relax OCPP command payload check with the OCA JSON schema with a CS template tunable .
But null as a value for a field is not a valid value, the CSMS is not properly building/serializing payloads for at least the command quoted in that issue.

Thanks a lot for the quick and helpful help.
Indeed the payload check is not very forgiving (which is very good!). I was actually not aware myself that there is a difference for the schema validation whether to set a variable null or to skip it completely. After changing settings that keys with nulls are skipped, the simulator is able to communicate correctly with the Authorize command.
However, the response to status notifications is still not working correctly.
What is wrong with the following response?
Call from the Simulator: [2, '62c8f84f-9f17-4be3-899b-3a16ea5ba095', 'StatusNotification', {'connectorId': 1, 'status': 'Available', 'errorCode': 'NoError'}]
Respone from the CMSM: [3, '62c8f84f-9f17-4be3-899b-3a16ea5ba095', {}]
The response is still rejected by [Response PDU is invalid](error: Request PDU is invalid {"code":"FormatViolation","command":"StatusNotification","date":"2024-07-22T20:58:00.201Z","name":"T","stack":"T: Request PDU is invalid)

@jerome-benoit To avoid that you might have overseen my question as one part seems like a real bug to me:
Is anything wrong with the following response or does the parser have issues with empty payloads (its working fine for the heartbeat response, though)?
Call from the Simulator: [2, '62c8f84f-9f17-4be3-899b-3a16ea5ba095', 'StatusNotification', {'connectorId': 1, 'status': 'Available', 'errorCode': 'NoError'}]
Respone from the CMSM: [3, '62c8f84f-9f17-4be3-899b-3a16ea5ba095', {}]
The response is still rejected by [Response PDU is invalid](error: Request PDU is invalid {"code":"FormatViolation","command":"StatusNotification","date":"2024-07-22T20:58:00.201Z","name":"T","stack":"T: Request PDU is invalid)

Won't fix and works with:

https://github.com/steve-community/steve
https://github.com/mobilityhouse/ocpp
SAP e-Mobility OCPP server
...

=> CSMS bug

It does not work with the test server you provide yourself in the tests directory which is related on the link you mention yourself: https://github.com/mobilityhouse/ocpp.
Steps to reproduce:

Start OCPP Server in test directory
Start and connect via master branch.
Look into the logfiles and find the error.

=> e-mobility-charging-stations-simulator bug

It does not work with the test server you provide yourself in the tests directory which is related on the link you mention yourself: https://github.com/mobilityhouse/ocpp.

It's an OCPP2 only mock server and the simulator OCPP2 stack is not supporting the StatusNotification command yet.
OCPP 1.6 server using https://github.com/mobilityhouse/ocpp just works.
When you have critical and noticeable issue with a software that has a relatively large users base and you are the first to encounter it, the issue is not on the software side. Otherwise it would have been reported since.
Please learn how to debug network protocol using HTTP.

It's an OCPP2 only mock server and the simulator OCPP2 stack is not supporting the StatusNotification command yet.

The readme claims it is supported:

OCPP 1.6 server using https://github.com/mobilityhouse/ocpp just works.
When you have critical and noticeable issue with a software that has a relatively large users base and you are the first to encounter it, the issue is not on the software side. Otherwise it would have been reported since.

Since the OCPP2 commands are limited I doubt that it has a noticable user base for this version. Due to the lack of unit tests for this use case, be better safe than sorry - if nobody reports anything the project cannot improve. Please trust me, that I have not submitted this issue after the first connection, but spent several hours trying to find the issue on my side. Since I have not found it and the "solutions" from this thread have been contradictory, I stayed persistant for the sake of a stable product.

Please learn how to debug network protocol using HTTP.

For the sake of a positive environment in the community, I recommend to provide your community to tell them what kind of debugging information you would have expected rather than simply stating that someone is not capable in debugging.

The OCPP2 StatusNotification is working as intended with a CS template defining EVSEs.
The issue is lying with unclear error message at payload validation. But it's easy to compare the sent payload with the JSON schema to find out the culprit field.

Thank you very much. Now it makes absolutely sense!


Install only deltas when running pipenv sync

When working on a team project in git, it is important to ensure the python interpreter in a branch is deterministic. If I have updated django, say, in branch update-django-to-21 and I need to go back to master to create a hotfix branch, I'll definitely need to run pipenv sync to ensure that the appropriate version of django is being used in the hotfix branch. We have, in fact, used a post-checkout githook to enforce this. The problem is that git sync is so slow...
It'd be excellent if there was a way to compare the current modules to the current Pipfile.lock to determine what, if anything, must be upgraded and then to only install the dependencies that are different.
The alternative is to simply install everything from the lock file every time you checkout a different branch (or any other checkout like git checkout -- foo.py to unstage the changes in foo.py).
Additional context
pipenv 2018.11.26
python 3.6.6

Sorry, we aren't allowed to post the output of pipenv --support to the public. I can share it privately if required.

agree, and this is also totally doable, just haven't got around to it yet.  This is a good suggestion though.  I'm pretty sure there is another issue open on the same topic, i'll find it and triage both so we can keep whichever one has the best explanation

@techalchemy #3057 is somewhat related (it's about "pipenv sync" being tremendously slow in general).


BilboX post-processing LUT does not recognize files ending with .CUBE

If the lut file extension is in capital letters (.CUBE) the file is not recognized by the node.
As an attempt at a solution, I put the file names ending in lowercase, but I would like to make a suggestion:
line 13 of the read_luts_dicts function could be modified to:
if file.lower().endswith('.cube'):
this way the node would recognize both the .cube and .CUBE extensions.

Yup, small glitch. Should be fixed now....


BooleanFilter is confusing at best

Is your feature request related to a problem? Please describe.
It's a matter of interpretation if this is a bug or a feature request.
BooleanFilter should in the opinion of the author:

Show all documents when the filter is inactive
Show documents with value True when the filter is active and set to True
Show documents with value 'False' when the filter is active and set to False

Only 1. and 2. are the case at the moment, there is no way to show only False document.
If 3. is deemed unnecessary, the interface should be made more clear. Currently, False is shown when nothing is selected.
Describe the solution you'd like
Proposed solution: change the checkbox to a toggle True/False. The regular active/inactive interface is already in place.
Additional context

This screenshot shows the filter untouched. It shows all documents. It however suggests one of two:

Showing only False
Showing only False after ticking the checkbox

This is duplicate of #1110 , though it explains the problem better.

See relevant comment from duplicate


[WIP] refactor SupportsFeatureMixin to do less metaprogramming

Before SupportsFeature should not be included in modules because methods get created on inclusion time.
class Vm
  include SupportsFeatureMixin
  supports :foo
end
Vm.new.supports_foo? #> true

module Operations
  extend ActiveSupport::Concern
  include SupportsFeatureMixin
end
Operations.supports_foo? #> false

class SpecialVm < Vm
  include Operations
end
# now SpecialVm.new.supports_foo? does not resolve to Vm.new.supports_foo? but Operations.supports_foo?
SpecialVm.new.supports_foo? #> false

I think part of the oddity is the creation of methods being inside included which isn't "normal" mixin behavior. I wonder if it's better to just have the methods defined directly in the SupportsFeatureMixin, then mixed in naturally, instead of dynamically creating them into the includee.

I refactored the Mixin to not generate the supports_feature? methods upon calling the DSL supports :feature methods. The reason of doing that was to leverage rubys method lookupchain and have subclasses override default behavior of base classes.
Now I store a FeatureDefinition into a class or module variable supported_feature_definitions upon calling the DSL. When asking an object supports?(:feature) I traverse the ancestors to find the first FeatureDefinition and use that to determine if the feature is supported or not.
While both solutions look similar, the first one fails when SupportsFeatureMixin is included into a Module and the DSL methods are called on the module (like in the example above). This created methods which would hide other methods (because every feature would be unsupported by default).
I think this approach makes it easier to use, because now you can use the included block and ActiveSupport::Concern to forward the DSL to the included module. But you dont have to.

Can you show an example of what this actually solves?  ActiveSupport::Concern is already at this modules level and should alleviate your problem unless I'm misunderstanding.

it should not be included twice because methods would get overwritten.

Is this even possible?  Again, what is this trying to solve...
[1] pry(main)> class Foo < Object; end
=> nil
[2] pry(main)> module MyMixin; end
=> nil
[3] pry(main)> Foo.include(MyMixin)
=> Foo
[4] pry(main)> Foo.ancestors
=> [Foo, MyMixin, Object, PP::ObjectMixin, Kernel, BasicObject]
[5] pry(main)> Foo.include(MyMixin)
=> Foo
[6] pry(main)> Foo.ancestors
=> [Foo, MyMixin, Object, PP::ObjectMixin, Kernel, BasicObject]
[7] pry(main)> module AnotherMixin; include MyMixin; end
=> AnotherMixin
[8] pry(main)> Foo.include(AnotherMixin)
=> Foo
[9] pry(main)> Foo.ancestors
=> [Foo, AnotherMixin, MyMixin, Object, PP::ObjectMixin, Kernel, BasicObject]

Notice it's not there twice at the bottom.

If you do need to include it, perhaps instead of blowing up, the included method can just be written kinder such that it will no call supports_not if the method already exists.  Then you can "include twice" and it won't matter because it won't do anything on the second pass.

@Fryguy sorry, I should have included a more detailed description. -> updated.
But this is still failing. I think I have to look at Module.append_features to do this kind of check. I'll also add some tests to illustrate this.
@miq-bot add_label wip

Copied from Gitter to demonstrate "normal" inclusion of methods vs dynamically defining methods in the included callback.
[1] pry(main)> module MyMixin; def foo; end; end
=> :foo
[2] pry(main)> class MyClass; include MyMixin; end
=> MyClass
[3] pry(main)> MyClass.instance_method(:foo)
=> #<UnboundMethod: MyClass(MyMixin)#foo>

[4] pry(main)> module MyMixin2; def self.included(other); other.class_eval { def foo; end }; end; end
=> :included
[5] pry(main)> class MyClass2; include MyMixin2; end
=> MyClass2
[6] pry(main)> MyClass2.instance_method(:foo)
=> #<UnboundMethod: MyClass2#foo>

Might be a little hard to see but the first 3 lines are "normal" includes...notice the method lives in MyMixin.  The last 3 lines are when you dynamically define a method...notice the method lives in MyClass2.
Now, if you created a method foo in MyClass it would "override" the one in MyMixin because of the class ancestry.  If you create a method foo in MyClass2, it may or may not override the mixed in one depending on the order (and in fact you lose the old one and can't even call super anymore).

The first case in the original description is still true.
My confusion was because of a subtlety in include, modules and inheritance
class A
  module SubModule
    def honk
      "overwrites with A::SubModule"
    end
  end

  def honk
    "A"
  end

  include SubModule
end

p A.new.honk
# "A"
p A.ancestors
# [A, A::SubModule, Object, Kernel, BasicObject]

class B < A
  module SubModule
    def honk
      "overwrites with SubModule B::SubModule"
    end
  end

  include SubModule
end

p B.new.honk
# "overwrites with SubModule B::SubModule"
p B.ancestors
# [B, B::SubModule, A, A::SubModule, Object, Kernel, BasicObject]

Now, part of this stems from making every feature unsupported by default upon inclusion of SupportsFeatureMixin and I could fix a couple of this by not doing this, if its included in a module. Like in 1b80d29 - but, as you see in the spec, I cant remedy the class methods.
Therefore I propose raising an error, as in the previous commit 0cc8399, in case the Mixin is included into a module, which is not the intended usage.

So your example is overwriting like that because A::SubModule is a completely different module from B::SubModule.  That is, you are no re-opening A::SubModule but instead defining a new one.  Even so, I'm not sure how your example is analogous to SupportsFeatureMixin

Its analogous to our layout of modules that get included by include_concern
In this PR https://github.com/ManageIQ/manageiq/pull/11075 SupportsFeatureMixin was included in app/models/manageiq/providers/vmware/infra_manager/vm/operations/guest.rb , which made its way into app/models/manageiq/providers/vmware/infra_manager/vm.rb
What happens then I was trying to describe here where the last two expectations would fail.
So, I'd ditch my last commit to this PR and would like to have this commit 0cc8399 merged

updated OP to be clearer

@Fryguy @chrisarcand please have a look at the updated description.
I hope this is clearer now and the Mixin is easier to understand and use now

@chrisarcand could you have a look, please?

When asking an object supports?(:feature) I traverse the ancestors to find the first FeatureDefinition and use that to determine if the feature is supported or not.

When I read this the first thing I think is that you shouldn't need to traverse this yourself.  Ruby's super can handle that for you.  I love the idea of having class-level overrides.
So, pesudo-code-like I'm thinking
class BaseClass
  supports_not
  supports_not # default values all at the base class that setup the class-level definitions

  def self.supports?(feature)  # Mixed in from SupportsFeatureMixin
    supports_feature_at_this_class_level?(feature) : true : super
  end

When I read this the first thing I think is that you shouldn't need to traverse this yourself. Ruby's super can handle that for you. I love the idea of having class-level overrides.

I dont think I can do this :(
This would make these specs not working
The override via super was the solution before this PR, with define_method. Which leads to problems when including the Mixin into modules.
But I can try to investigate that (again) in a follow up.

@durandom Thanks so much for your patience as I've had little time to look at this until now, not to mention catching up on all the conversation already had about this.
Lots of thoughts, but a few main ones:

I agree with @Fryguy; I feel like there definitely is a way to utilize inheritance in a more native way without having to traverse and keep track of this sorts of things ourselves. But before I dig further in to that...
...I'd love to see a clearer specification of what is expected of this API and what isn't. For example, right away in your description you mention Operations.supports_foo?. The semantic here doesn't make sense IMO, and shouldn't even be valid unless I'm missing some purpose for it. (Asking a mixin if it supports something directly). Therefore I suggest...
...some spec refactoring. The specs you've written seem exhaustive and good, but are hard to follow from the standpoint of someone who's trying to derive intended behavior from the specs. I can assist and will even just do that myself now, to make sure I understand all the cases.

I'd like to continue on with this and wait on merging this for a bit longer; let's definitely have some solution (this one or another) in place and merged this week for you though.

I feel like there definitely is a way to utilize inheritance in a more native way without having to traverse and keep track of this sorts of things ourselves

This is why I came up with define_instance_method in the first place. But with the methods defined in the module I don't know how this would work. There is just no super method?!

But with the methods defined in the module I don't know how this would work. There is just no super method?!

I think there's some confusion here that might be clearer when I have an example for you, if it works. Forthcoming!

Opened https://github.com/ManageIQ/manageiq/pull/12227 to fix the core of what's trying to be fixed here, though the spec included in this PR does not pass (expecting the class methods to be overridden via a simple include).

I think i am missing something, i was searchimg on whole project for declaration of supports_migrate? and can not find it

Just got that on gitter. Another reason to remove dynamically defined methods (which I introduced, so blame me :)

@miq-bot add_label wip
I still think this is a relevant and needed refactoring


Regex support for format.comments of minifier

Describe the feature
The current implementation of the minimizers format.comments does not allow regex to be used like https://webpack.js.org/plugins/terser-webpack-plugin/#preserve-comments
new TerserPlugin({
        terserOptions: {
          format: {
            comments<EMAIL_ADDRESS>[\w|\d].*|==\/?UserScript==/i
          }
        }
      })

it instead requires either comments?: false | 'some' | 'all';, would like to propose supporting a regex so that certain comments will be left untouched
Babel plugin or link to the feature description
https://webpack.js.org/plugins/terser-webpack-plugin/#preserve-comments
Additional context
I raised this originally in the rspack repo but was told it can be sent here as well.

maybe this solution will solve your problem link

@lukpsaxo It's support. https://swc.rs/docs/configuration/minification#jscminifyformat
The unsupported thing is regex or function

@kdy1 I want to keep license comments and not keep pure annotations... I think that is not covered - at least the docs say only "some" and the code-change introducing the keeping of pure annotations didn't look like it was behind its own option.

+1 to this
We have a very large project, and are blocked on upgrading SWC past 1.7.12 because the PURE comments adds multiple hundreds of KBs to our bundles

@lukpsaxo @abettadapur https://github.com/swc-project/swc/pull/9775 will add preserve_annotations to support removing PURE comments without stripping license comments

Will this prevent the userscript headers from being removed?
Reason why I requested the regex is because that regex is what stops terser removing the userscript header


MINIFI-444 C2 Data Model and REST API

Adds the foundation of a data model and REST API that would support
discussed features such as a MiNiFi Agent C2 Protocol and
MiNiFi Flow Designer.
Thank you for submitting a contribution to Apache NiFi - MiNiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[ ] Does your PR title start with MINIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[ ] Has your PR been rebased against the latest commit within the target branch (typically master)?

[ ] Is your initial contribution a single, squashed commit?

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi-minifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under minifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under minifi-assembly?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

@phrocker Thanks for all the review feedback! You caught a lot of improvements, which I really appreciate. I've pushed an update to my branch that addresses a lot of it and I left a few questions. in reply to your comments.
If you have a chance to re-review that would be great. If you see any major issues that you would like me to address before merging, let me know and I'm happy to address them. Otherwise, I'd like to get this merged to the minifi-c2-server branch as a starting point, and we can tackle improvements (or unanswered questions for the parts that are still formulating) in follow up PRs prior to merging minifi-c2-server to master.
Thanks!

reviewing latest commit

Changes look good here.  Will get this merged.  Thanks!

@kevdoran This was merged in 631b59926bc28641f3277941cb6ef6e6855fe1d6.  As it is not in master this won't auto close, so if you could close this PR out at your convenience it would be appreciated!

Closed. Thanks @apiri and @phrocker for helping me get this in good shape.


Cannot work with multiple databases

The library doesn't pass the options to the repo call. When working with multiple databases, it is necessary to pass the prefix options when calling Repo.all, Repo.one, etc.

You can set the prefix on the query

Can I? Where? Calls to Repo.all, Repo.one, etc are managed internally by the library.

You can Map.put(query, :prefix, "prefix_name") or
from u in User,
  prefix: "accounts",
  join: p in assoc(u, :posts),
  prefix: "public"

if you know it at compile-time.

It works flawless. Thank you.


Publish example CloudFormation snippets for configuring fck-nat

A little while ago I wrote this Cloudformation template to make use of fck-nat in a VPC. Maybe it can be included?
https://gist.github.com/supriyo-biswas/33043bea2237f9579b1e81f712cf25f6

Excellent. This will definitely save me some time. Thanks!

@supriyo-biswas Thanks again for those snippets! I've integrated a subset of your template into the docs here: https://fck-nat.dev/deploying/#cloudformation


A really EASIST question:how to build a client page?

I am a beginner for nodejs and socket.io, I need help
All I want now is build a server-client demo which can exchange message basicly using websocket.
For example,run 'server.js' using node.exe ,and then,open 'client.html' ,on the page,I can click a button to send "hello" to the server,then the server echo it back.
It's easy,right? I get on http://socket.io/  There is a demo which you must have seen ,here it is.
server side:
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
client side:

So,the server side is right,when I 'node' it,it comes with "socket.io started"
But the client side,what is the script? I think the client side may supposed to be 'client.html',so,it means put the 'script' into a html?I really dont know how to create a client.
Now,I wish someone can give me a server-client demo,and tell me how to build and use the demo
I am not from a English-speaking country,so wish you can make words easy to understand
Everyone can do it,right? But I did it for 5 days with nothing works..I think I really need some guidance,THANK you very much!

Hello novemrain
You are correct. You should write your script inside an html page so it can communicate with the server. Did you try it?
Maybe you forgot to include the socket.io client script in your html page? Without it, it will not work.
Script file can be found here: https://github.com/LearnBoost/socket.io-client/tree/master/dist

Thank you,faeldt .I almost lose heart but you save it
At http://socket.io/ ,I saw the Client that include the script src="/socket.io/socket.io.js"
but may the version is different,I didnt find socket.io.js at that time
After see your word,well,I finally find it at  ./node_modules/socket.io-client/dist
So I include it and soon everything works,you ll never know how happy am I now!
For me its just begin,I appreciate you help me at my unlucky moment.非常感谢,新春快乐


Expose start and end date

Need to make it so that the start and end dates set for the calendar are available via json to other applications.

Load.php line 1633 has the $simpleActions array, which appears to not pull the index template which was the problem I was running into before.   Probably need to add whatever action I create to this to keep from loading the index template.


We can't seem to access the resnest model zoo.

http://download.openmmlab.com/mmdetection/v2.0/resnest/mask_rcnn_s50_fpn_syncbn-backbone+head_mstrain_1x_coco/mask_rcnn_s50_fpn_syncbn-backbone+head_mstrain_1x_coco_20200926_125503-8a2c3d47.pth
This will be an error page.
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
AccessDenied
<Message>You have no right to access this object because of bucket acl.</Message>
<RequestId>5FD7057E33FDC3905BF5D79C</RequestId>
<HostId>download.openmmlab.com</HostId>
</Error>

Thank you. I was able to download it.


Do not use static attributes for instrumentation of Enums

Suggested Solution
(Example) Use
final long _kieker_sourceInstrumentation_tin = kieker.monitoring.core.controller.MonitoringController.getInstance().getTimeSource().getTime();

instead of
final long _kieker_sourceInstrumentation_tin = ApplicationSessionCookieConfig._kieker_sourceInstrumentation_TIME_SOURCE.getTime();

Note
Might already be implemented and the implementation of Peass might be responsible  for the false instrumentation.

The error occurred with multiple test cases of Tomcat. This is one of the commands I executed that contain the error:
./peasstomcat searchcauseParameterized 6b8aeaf80860dd48d5ddd44e866fea5d6072ded3 org.apache.catalina.core.TestApplicationSessionCookieConfig#testSetDomainInitPhase

This should work since https://github.com/DaGeRe/kieker-source-instrumentation-dagere/commit/2bc48ed73dcfa52ceb75667ee373339108a1ce88, can you confirm this?


The new word must be moved to the next line

I need to find the source of this problem, why the new word is not moved to the next line like before

This bug has been fixed


Linting support

Hello, thanks for this project! I hope that one day it will get merged into Prometheus. I had this one idea for a similar thing that you are trying to build here: it could return some kind of "hints" to the user about how to fix the query that they are writing. For example, imagine a case where the user writes irate(foo[15s]) with a scraping interval of 10s. This means that only one sample is in those 15 seconds hence no results would be returned to the user. The user could get some kind of "hint" that they must increase the time between the brackets to at least 20s.
The most promiment open question AFAICT in this case is the format of those hints: how they should look like? Also, as far as I can tell, you haven't considered this in your features list. What do you think?

Thanks for your request!

The most promiment open question AFAICT in this case is the format of those hints: how they should look like? Also, as far as I can tell, you haven't considered this in your features list. What do you think?

The LSP protocol allows publishing diagnostics, like errors or warnings, that are then displayed by the client, so that's actually the easiest part of your request.
There have been numerous request to provide some sort of linting and showing warnings about common errors to the user, so this is actually already on the radar, e.g. in #6 .
There will probably be some generic way to add diagnostics and documentation providers in the future. Once these exist, the feature you described could simply be one of them.
It is also planned to be able to connect the language server to a prometheus instance (#33, #5).
For implementing this specific feature one could then  simply request the scrape interval from the config api and use that to emit warnings, if appropriate.

I hope that one day it will get merged into Prometheus.

There are plans for that, see https://github.com/prometheus/prometheus/issues/6160

Awesome to hear all of that! I have read through your documentation more closely and I haven't even realized before that a protocol exists for this kind of stuff. Either way, I hope that we will be able to leverage your work in the future on the https://github.com/thanos-io/thanos side - it would be very useful to tell our users why their queries might be returning no results or peculiar results! (:

We're getting kind of closer to be able to implement such a thing.
Another example found by @LiliC is the case of <expr> <bin_op> on (<labels>) topk(<expr>).
In this case the topk throws away data that should have been passed to the binary operator.

As an general approach to this it would make sense to have some kind of subtree matching,  combined with a cache of the new metrics metadata API of Prometheus.

Another thing that a linter could warn against: https://github.com/prometheus/prometheus/issues/4543


Audit log of changes to a site (history)

Ability to look at the history of all changes made to a record c/w timestamp and user

This is built into Arches. Need to confirm that this meets the business requirements.

This has full audit log. Assuming this satisfies the business needs.


Crash in Game

I installed the latest project version of the mod and after moving around for a bit in a new world, I get these 2 crashes.
https://paste.dimdev.org/cazaqixiku.mccrash
https://paste.dimdev.org/irujorowut.mccrash

Disable Optifine's "Smart Animations". VanillaFix includes the same fix as Optifine.


Avoid computing MD5 checksum

Should we backfill all previous stack images (or at least the current one) with a sha256?

I already did (for current versions).

Awesome

LGTM


⚠ Bofrost.be has degraded performance

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

HTTP code: 200
Response time: 1189 ms

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


New EF MVC tutorial series

This is an update of existing series for EF 6 MVC 5 at
http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application
Originally opened as #1810 from my fork.

@TomArcher This PR can't be reviewed because it is too big. GitHub can't handle rendering this many files in a PR efficiently so the browser effectively hangs or is too groggy to use. Could you please break this up into separate PRs, one for each part?


ColorPicker Fixes

What does the pull request do?

Use Transparent background in ColorPreviewer so DropShadow appears. This addresses #10539.
Use SetCurrentValue() in ToggleSplitButton to fix warning. This is unrelated but slipping it in here since I saw it now.
Switch HexInputAlphaPositionProperty default to Leading to match XAML. The control themes are now responsible to set the property to match slider position and CSS standards. Doing this has better compatibility with XAML by default. Discussed here: https://github.com/AvaloniaUI/Avalonia/pull/10439#discussion_r1147441650
Always use AlphaComponentPosition.Leading in DevTools. With the before mentioned change this is no longer an issue. However, since dev tools always edits XAML, I'm hardcoding it to be explicit and as a failsafe.
Remove alpha in Hex color strings when IsAlphaEnabled or IsAlphaVisible are false. Discussed here: https://github.com/AvaloniaUI/Avalonia/issues/10094#issuecomment-1481085446

Breaking changes
None
Obsoletions / Deprecations
None
Fixed issues
Relates to #10094 discussion
Addresses #10539

You can test this PR using the following package version. 11.0.999-cibuild0032641-beta. (feed url: https://pkgs.dev.azure.com/AvaloniaUI/AvaloniaUI/_packaging/avalonia-all/nuget/v3/index.json) [PRBUILDID]


Cannot generate app from API for FOSSASIA'17

The following API link generates an error message: https://eventyay.com/api/v1/events/6?include=sessions,microlocations,tracks,speakers,sponsors
INFO:Cleaning up the previously existing temporary folders SUCCESS:Successfully cleaned up the temporary folders INFO:Making the dist folder SUCCESS:Dist directory made successfully INFO:Copying Assets SUCCESS:Assets were successfully copied INFO:Cleaning dependencies folder created as a part of copying assets inside the appFolder INFO:Reading the contents of the dependenices directory INFO:All files of the folder have been copied INFO:Now removing the dependenices folder SUCCESS:Dependencies folder cleaned successfully INFO:Copying Jsons INFO:Fetching Jsons from the internet INFO:Creating json folder insde the appPath directory SUCCESS:All jsons have been successfully downloaded SUCCESS:SASS file compiled successfully SUCCESS:css file was written successfully INFO:Extracting data from the uploaded jsons ERROR:Invalid ZipKnow More TypeError: speakers.map is not a function

@mariobehling I am on it :)

@princu cool.

@princu, its urgent. Kindly ask if you need any help.

@aayusharora Sure. If there are any issues, I will look out for guidance. Thank you so much :)

@mariobehling @aayusharora Okay, there were some errors in the API section of the app due to which the event site was not being generated properly. Also, there are some sessions which don't have any detail containing information like start time, end time, short abstract etc. The app was also crashing because of it. Presently, I have ignored those sessions. How should we deal with them? Also, there are some issues with the sharp module which is used in the app for converting an image to a different resolution. Fortunately, it doesn't affect the app and it works fine in spite of all the errors.
Anyways, here is the Test Server
https://peaceful-earth-19050.herokuapp.com
API endpoint
https://eventyay.com/api/v1/events/6

Off-topic
@aayusharora Feels great to see you there on the Speakers list. Hope you deliver an amazing talk. Best of luck :heart:

@Princu7 Which PR is it?

@mariobehling I have just deployed the test server which corrects the errors in the official app. I haven't created the PR yet because of the above-outlined issues. Sorry. Should I also open a PR for it?

@Princu7 Same error message as before with: https://eventyay.com/api/v1/events/6?include=sessions,microlocations,tracks,speakers,sponsors

@mariobehling Please try with the API endpoint https://eventyay.com/api/v1/events/6. It is currently configured with it.

@aayusharora I guess this issue can be closed now :)


Problem with discover (or connection)

Hello,
I have tried to connect from RPI on Debian 12 aarch64 without any success.
Discovery and connection works from Console,

so I  copied all values that worked directly into code:
using OSDP.Net;
using OSDP.Net.Connections;
using OSDP.Net.PanelCommands.DeviceDiscover;

namespace App;

class Program
{
    public static async Task Main(string[] args) {
        Console.WriteLine("Discover");
        ControlPanel panel = new ControlPanel();
        await panel.Shutdown();

        void OnProgress(DiscoveryResult current)
        {
            string additionalInfo = "";

            switch(current.Status)
            {
                case DiscoveryStatus.Started:
                    System.Console.WriteLine("Device Discovery Started");
                    // NOTE Unlike other statuses, for this one we are intentionally not dropping down
                    return;
                case DiscoveryStatus.LookingForDeviceOnConnection:
                    System.Console.WriteLine($"Connection baud rate {current.Connection.BaudRate}...");
                    break;
                case DiscoveryStatus.ConnectionWithDeviceFound:
                    System.Console.WriteLine($"Connection baud rate {current.Connection.BaudRate}");
                    break;
                case DiscoveryStatus.LookingForDeviceAtAddress:
                    System.Console.WriteLine($"Address {current.Address}...");
                    break;
            }

            System.Console.WriteLine($"Device Discovery Progress: {current.Status}{additionalInfo}");
        }

        panel.ConnectionStatusChanged += (_, eventArgs) => {
            Console.WriteLine("ConnectionStatusChanged");
        };
        panel.NakReplyReceived += (_, args) => {
            Console.WriteLine("Nak recieved");
        };

        var result = await panel.DiscoverDevice(
            SerialPortOsdpConnection.EnumBaudRates("/dev/ttyS0"),       // port
            new DiscoveryOptions {
                ProgressCallback = OnProgress,
                ResponseTimeout = TimeSpan.FromMilliseconds(1000),      // response timeout
                ReconnectDelay = TimeSpan.FromMilliseconds(0)           // delay
            }.WithDefaultTracer(true)
        );
        if (result != null)
            Console.WriteLine(result);
        else {
            Console.WriteLine("Not found");
            return;
        }
    }
}

dotnet publish proj.csproj --runtime linux-arm64 -p:PublishSingleFile=true --self-contained true
So I have to use library in the wrong way, any ideas how to make it work?
Output
Console

Try connecting without discovery, by adding device using the baud rate and address. Add logging to see if there are any errors.

Try adding -p:IncludeNativeLibrariesForSelfExtract=true parameter when running  -p:PublishSingleFile=true. I had to use it in the CI build scripts. There are native libraries for accessing the serial port.

Thats it, thank you very much


404 error when trying to access http img

Using this url:
https://images.weserv.nl/?url=ssl:www.capitol.tn.gov/senate/members/images/s26.jpg
I get back a 404 error, but I can access the raw image from
http://www.capitol.tn.gov/senate/members/images/s26.jpg
I am trying to embed this into an https site, and I cannot access the image unless I use http

Looks like the site mentioned uses geoblocking. Our servers receive the following message, and I see the same message:

@andrieslouw thank you. I ended up making a proxy api for my usecase.


Donate the npm package name?

Hi !
As of Gradle 5.0 package's can't contain a @ symbol which my multislider has been published under for over a year and its actively maintained and as a significant amount of downloads per week.
Would you consider to donate your outdated package name to me so I can republish it under react-native-multi-slider instead of keeping it scoped which won't work in the beginning of 2019 any more?
Many thanks for considering<EMAIL_ADDRESS>https://www.npmjs.com/package/react-native-multi-slider
https://www.npmjs.com/package/@ptomasroos/react-native-multi-slider

Would be great!


563 translate gender where missing

Coverage remained the same at 100.0% when pulling eabe0358b79d195d8f6560392b8148fbdb55024e on 563_translate_gender_where_missing into 8cf99ba80a5e1a39e67cc12ab6fa3743fc7aedd0 on dev.

Coverage remained the same at 100.0% when pulling eabe0358b79d195d8f6560392b8148fbdb55024e on 563_translate_gender_where_missing into 8cf99ba80a5e1a39e67cc12ab6fa3743fc7aedd0 on dev.


Screen recorder application

Describe the project you want to add with tech stack
An application which records screen and you can stop the recording and download the video too.
Expected behavior
Its sole purpose is to record the screen .
Tech stack includes

HTML
CSS
JS
screen capture API

Screenshots (optional)

Please assign me @pranjay-poddar

Please assign me @pranjay-poddar

@MohitGupta121 @TusharKesarwani Can this issue be assigned to me? Its open for some time!


[Header] elevation or zIndex don't work

In Footer component this works.
Expected behaviour

Actual behaviour

Steps to reproduce
Try with this code:
render() {
    return (
      <Container>
        <Container>
          <Header style={{ elevation: 1, zIndex: 0 }}>
            <Title>
              {'Header'}
            </Title>
          </Header>
          <Content
            style={{ elevation: 0, zIndex: 0 }}
            refreshControl={<RefreshControl refreshing={false} />}
          />
        </Container>
        <Container>
          <Footer style={{ elevation: 1, zIndex: 0 }}>
            <Title>
              {'Footer'}
            </Title>
          </Footer>
          <Content
            style={{ elevation: 0, zIndex: 0 }}
            refreshControl={<RefreshControl refreshing={false} />}
          />
        </Container>
      </Container>
    );
  }

Environment
native-base 2.8.0
react-native 0.57.0
react 16.5.0

I cannot reproduce this issue with the above provided code snippet

@ahce Any updates?

@SupriyaKalghatgi test this code

React Native issue
https://github.com/facebook/react-native/issues/19872

This was React Native issue, which is fixed with its latest release
Verified with react-native 0.57.1, works like charm!

I'm having the same issue with RN 0.58.3 and Native-Base 2.11.0
Does anyone know how to solve the issue?

Same issue here, any news on how to fix this?
We are using a simple layout (caution, pseudo code) and still the refreshControl renders on top of the header:
<Container>
    <Header/>
    <Content refreshControl={} />
    <Footer />
</Container>

Using RN 0.58.4 and native-base 2.12.1.
It's no showstopper, but I want to get this right. Is there a working example in the kitchensink maybe (couldn't find one)?


Initialize variable to quiet compiler finding

The compiler believes that the variable secured_context might be used in the switch-case LIBSPDM_DATA_SESSION_SEQUENCE_NUMBER_REQ_DIR without being initialized.  This though does not happen because in that case need_session_info_for_data() will return true and secured_context will be set.

Please specify which compiler(s) complain in the commit description.

please fix CI failure


Rollover keeps failling: missing Announcement

latest master:
taker side:
2022-08-28 10:58:03  WARN fallible task handle_error{err=Failed to get announcement}: model::cfd: Rollover failed: Failed to get announcement: Failed to get announcements: Announcement /x/BitMEX/BXBT/2022-08-28T11:00:00.price?n=20 not found order_id=3712a56e-9e0d-4662-a9e3-3f47f3f5af6a peer_id=Some(12D3KooWEsK2X8Tp24XtyWh7DM65VfwXtNH2cmfs2JsWmkmwKbV1)

Announcement is available at the time of writing: https://outcome.observer/h00.ooo/x/BitMEX/BXBT/2022-08-28T11:00:00.price?n=20

I don't think this is a bug. Since https://github.com/itchysats/itchysats/pull/2680 we are sending offers via two different protocols to all takers. One of those protocols will always fail during the negotiation phase. I documented this behaviour here: e4f910f35070c47672c8e37e224b51e3b532e833.
As noted in that commit message, on the maker side we can suppress these warnings because we can choose to ignore that specific error when opening the substream. On the taker side it is emitted in a place where we handle all possible incoming substreams, so it's unavoidable.
To not send needless offers to takers we need to evolve the Endpoint to be able to decide during runtime what protocol to dial to which takers, depending on their supported listen protocols.

If you look at the Grafana logs you can see that the frequency for this particular log message increased just after https://github.com/itchysats/itchysats/pull/2680 merged.

I'm removing the bug label given what I mentioned in my previous comment. I'll assign myself to this ticket and repurpose it to describe the current behaviour and how I think we should solve it.

I don't see this log anywhere in Grafana. Could it be that the oracle was down for some time whilst BETHUSD events were being added?

The rollovers started working again after a few minutes. Closing because I've confirmed that Olivia was down during that period of time.

The log was collected locally.

The rollovers started working again after a few minutes. Closing because I've confirmed that Olivia was down during that period of time.

How did you confirm the oracle was down?

The log was collected locally.

Yeah, but what I meant is that no testnet taker failed similarly. Nor did either of the makers fail to get announcements in the last few days.

How did you confirm the oracle was down?

I inferred that it was from my communication with Lloyd. But I've gone back and asked him explicitly.

Thanks. Happy to keep it closed and monitor if it happens again.


Add support for EntityFramework 6 and EntityFramework Core 5

In this issue, we should continue the discussion and decide in which way we will proceed with plugin/addon packages.
Plugin packages contain the implementation for a given ORM, more specifically, the evaluation logic for the specification and any other ORM dependent features. For now, we're providing only one package, the implementation for EntityFramework Core 3. We should add support for EntityFramework 6 and EntityFramework Core 5.

EntityFramework 6

Naming: The official name is EntityFramework, but while installing it we are aware of the version "v6". In our case, it will be something like "Ardalis.Specification.EntityFramework v1.0", the version of our package won't necessarily correspond to the version of the EF, and it may lead to confusion. I believe we should name this plugin package EntityFramework6.
TFM: The last version of EF is v6.4.4. This version is not compatible with .NET Standard 2.0, instead, it requires .NET Standard 2.1. I assume folks that are still using EF are the ones that are still unable to migrate to .NET Core, and still using .NET Framework (for whatever reasons, and there can be plenty). Since .NET Standard 2.1 can't be referenced by .NET Framework projects, I suggest this plugin package should target .NET Framework (the lowest supported version). Officially it can run on v4.5 and newer, but I do think v4.6.2 is the "sweet" spot in terms of stability and compatibility. But, if we want to add support for Nullable Reference Types, then I guess we have to go for v4.8.

EntityFramework Core 5

Naming: The choices are either we create new package and name it "EntityFrameworkCore5", or we update the existing EntityFrameworkCore package to the latest EF Core version v5. The cons of having one consolidated package are that the users that are unable to migrate to EF Core 5 will be locked to the features that we provide up to that point. So, if we add additional features they won't be able to use them until they migrate to EF Core 5. On the other hand, the cons of having separate packages are simply having too many of them, Core, Core5, tomorrow will be Core6, and so on.
TFM: EntityFramework Core 5 is compatible with .NET Standard 2.1, so probably we should target that one.

Sorry guys, I got confused. Can we use this package with .NET 5 + Microsoft.EntityFrameworkCore v5?

Hi @nelsonprsousa
Not yet. You can use it on .NET 5, but with EF Core 3.
@ardalis any feedback here? Should we just update the existing one to EF Core 5?

Thanks for the feedback @fiseni,
Gonna wait for features releases 🙏

btw guys, will Filtered Include be included?

Let's split this issue between EF6 and EF Core 5 and note that the latter is done in the current v5 beta.
https://www.nuget.org/packages/Ardalis.Specification/5.0.1-beta

The issue is split into two separate issues. Closing this one.


ability to sort htb list

The ability to sort htb list would be great.  I usually like to sort by difficulty

Added. You can upgrade via pip to pull the new changes.


 Moving this back into draft.

Okay, back from the dead. The test was being a bit too familiar with the internals of the retry code. In particular, the net.OpError conforms to errors.Is(err, context.DeadlineExceeded) and it was causing our code to see the error earlier (which is fine in the actual context it's used in).
I updated the test to be more realistic and now it passes.

/azp run go - azeventhubs

/azp run go - azservicebus

(marked as auto-merge, live tests already ran and I only bumped the date on the changelog)


Hitting let's encrypt rate limits for crownlabs.polito.it

Currently, every ingress resource providing access to tenant VMs triggers the creation of a Certificate resource to fetch the certificate and fill the corresponding secret (through the cert-manager.io/cluster-issue annotation).
Although all ingresses point to the same domain (i.e. crownlabs.polito.it), the Order is nonetheless issued and the certificate request counts as a renewal. Hence, hitting let's encrypt rate limits (5 renewal per week per domain).
Apparently, this issue is not causing any visible problem right now (not sure why). Yet, it will break everything when the certificate will need to be renewed (the current one expires on June, 15th).
Possible solutions identified up to now:

Set-up kubed to automatically synchronize secrets between namespaces [1], [2]. This appears to be the solution suggested by cert-manager [3].
Set-up reflector to automatically synchronize secrets between namespaces [4]. It seems to include a cert-manager extension.
Configure a CronJob to copy the secret generated by one single Certificate to all tenant namespaces.
Configure the crownlabs.polito.it certificate as the default one in nginx. I would discard this solution since it does not work for different domains (e.g test).

Relevant cert-manager issue [5].
Any comments? Suggestions?

Hi @giorio94, this is a really nice analysis! Kubed and Reflector solutions seem equivalent to me and also the most appropriate. Surfing the documentation, kubed seems to be really easy to setup in particular because it leverages a namespaceSelector to select multiple namespaces instead of leveraging regular expressions (which I think it's more flexible in this case). The last two options seem a bit tricky to me (in particular the last one).

Thanks @palexster. I do also believe that Kubed may be the best solution (and easiest to setup). If you agree, I can go ahead and give it a try.


connectors: call unmountFn with the same data as to render

Is your feature request related to a problem? Please describe 🙏
If you want to implement an unmounting, you're forced to wrap the widget into a function, like done in the regular widgets, but it would be nice if that wasn't necessary
Describe the solution you'd like 🤔
Pass the data that's passed to render to unmountFn
Describe alternatives you've considered ✨
Something else that I was thinking of (to get rid of the function for mapping, pretty confusing) would be to accept any number of arguments to the connector, that would then be passed to the renderFn and also the unmountFn.
That way we don't need the "customRenderer" abstraction
Additional context
I was writing a guide for a custom infiniteHits and I wrote "you can use it as the regular functions", but you can't simply do that

Duplicate of #2843


Strange jumping origin for paint tool and unable to delete after

This one is really confusing.

At this point, i cannot delete the yellow at all.

This issue seems specific to half block mode only as when I use shade mode for paint, it does not act like this.


Add app_creation_gas_amount for app creation txs

Change summary:

Add app_creation_gas_amount for app creation txs
Set missing gas_price for chatbot tool script

Related issues:

https://github.com/ainblockchain/ain-blockchain/issues/1020

Just addressed the comments, PTAL~ @liayoo

Thanks for the review. Now merging..


Move tests to green cluster, bump dependencies

I have also added our mlops team into the access list of this repository, so hopefully dependabot will be able to retrieve participants and assign reviewers for his PRs.


How to deploy a IL2CPP Unity 2018.2 build ?

Overview
I did a build with Unity 2018.2 with IL2CPP (because it says that .Net is deprecated)
I don't have the "device" button in the "Start" button in Visual Studio 2017

Expected Behavior
Have the "Device" button to deploy on the hololens
Actual Behavior
There is only a "Start"
Unity Editor Version
2018.2.0b11
Mixed Reality Toolkit Release Version
May 2018

Do it via the build menu? This is not an issue with this repo, but rather an issue with usage of Visual Studio, close the issue.

@isurfraz how can I deploy a project in the build menu direct to the hololens ?? There is of course a Deploy Button but it installs the App on my computer, not on the hololens.

@ThomasAstrakhan this is all covered in the basics of the hololens tutorial: https://docs.microsoft.com/en-us/windows/mixed-reality/holograms-101
Further more, building and deploying from visual studio is one of the most basic skills you use when developing apps and it appears you have not done any tutorials if you do not know this yet. I recommend starting with more basic tutorials before starting on hololens development.

@isurfraz I already build many hololens app with Unity 2018.1.0 with .Net
and the tutorial says "click the dropdown and chose Device" which work when building with .net but not with IL2CPP

@ThomasAstrakhan Could you at least read the link I posted before commenting?
From the first couple of pages:
"Using the top toolbar in Visual Studio, change the target from Debug to Release and from ARM to X86.
Click on the arrow next to the Device button, and select Remote Machine to deploy over Wi-Fi.
Set the Address to the name or IP address of your HoloLens. If you do not know your device IP address, look in Settings > Network & Internet > Advanced Options or ask Cortana "Hey Cortana, What's my IP address?"
If the HoloLens is attached over USB, you may instead select Device to deploy over USB.
Leave the Authentication Mode set to Universal.
Click Select
Click Debug > Start Without debugging or press Ctrl + F5. If this is the first time deploying to your device, you will need to pair it with Visual Studio.
The Origami project will now build, deploy to your HoloLens, and then run.
Put on your HoloLens and look around to see your new holograms."
If you had gone through any of the tutorials you would have worked this out. I really dont understand why one would come and file an issue on here without attempting even the basic tutorials.
I hope this has helped you, but either way your issue is not that the software does not work properly but that you do not know how to use visual studio properly, so I recommend closing this issue so it does not complicate things for the developers, and instead invest some time in some basic visual studio building + deploying tutorials.
I recommend starting with: https://msdn.microsoft.com/en-us/library/cyz1h6zd.aspx
If you have further issues regarding this, it would be better to post them on unity forums, stack overflow or something similar rather than filing a bug report immediatly.

@ThomasAstrakhan You can also do Build > Build Solution and thenBuild > Deploy solution. this will build with the chosen settings. deploy will deploy the build to the connected device by cable or wifi depending on what is selected.
You can go to debug > options at the bottom and then select the second option "debugging", on there there will be a field "machine name", enter your IP address in there and select remote machine and it will set it to go over wifi.
Good luck, If this is not clear enough then I am sorry but you are in need of a full beginners visual studio tutorial and this is not the place for it.

Thank you.
I can't do this :

Using the top toolbar in Visual Studio, change the target from Debug to Release and from ARM to X86.
Click on the arrow next to the Device button, and select Remote Machine to deploy over Wi-Fi.

Because if you check my screenshot, there is no arrow next to de device button.
But I will try this :

You can go to debug > options at the bottom and then select the second option "debugging", on there there will be a field "machine name", enter your IP address in there and select remote machine and it will set it to go over wifi.

I'm unable to repro this in the latest 2018.2. Can you try deleting your built solution and rebuilding from scratch?
Built IL2CPP in Unity 2018.2.0f2

Not related to the MRTK, going to close this issue. You guys may carry on and discuss as needed.

Maybe you are trying to run the wrong project, change the default project
in the Solution Explorer.
El jue., 4 oct. 2018 a las 15:20, dbr4389<EMAIL_ADDRESS>escribió:

i need help to doesn't work please help please
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/MixedRealityToolkit-Unity/issues/2419#issuecomment-427015701,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAvkSeDey1DDTWq3zYEWjJogpSmpGodAks5uhgsegaJpZM4VHVpH
.

You could also be missing components in visual studio, (although, vs is pretty good about installing missing stuff)

Sorry for the lack of information i was giving. But I found a workaround.
When I build using IL2CPP and use Remote Connection there is no popup where I can put in the ip-address from the hololens.

When I build using .NET and click on Remote Connection there is this popup to put in the ip.

I've always used .NET with remote connection to build but now it's being deprecated and I wanted to switch to IL2CPP.
the workaround is very easy I found out you can also connect your hololens to the pc with a wire and switch to Device.

You should still be able to open the project properties and manually add the remote machine address. Likely this is a bug with vs.

Hi all,
did anyone find a solution to OP, i'm trying to deploy over USB but device is not showing, i've changed it to release and x86 but these are my only options

@IzzyGomezThree did you try the @robinerd solution ?

Could it be that you're running the Visual Studio studio in the main directory and not the one in the actual build folder?
After building in Unity, when the window pops up, be sure to go into the actual folder (the one you named upon build) and run the Visual Studio solution located there.

Hi
I'm getting this error while deploying. It's building sucessfully but fails to deploy.

I'm using Visual Studio 2017, unity 2018.4


fix: fix for simple type validation (boolean, string, number) + added tests

This fixes errors like this i was getting while using the validator:

thank you ser


fix FakeWeb link

RubyForge doesn't work anymore, so this points to the Github page.

Thank you @mockdeep


Can't see property starting with underscore in data

Version
6.0.0-beta.7
Browser and OS info
Chrome 88 / Ubuntu 20.10
Steps to reproduce
Having a data like so :
myArticles: [
0: {…}
_paging: {total: 1, totalPages: 1, links: {…}}
]
What is expected?
To see _paging in the data part of the devtool
What is actually happening?
Only the item 0 is shown, _paging is not despite existing

It seems like you are adding non standard properties to Array which will not be serialized when sent to the devtools.


Calico: Ability to define global peerings

With this, it is possible to define global peers by setting the scope attribute in each peer definition:
peers:
  -router_id: "<IP_ADDRESS>"
    as: "65xxx"
    scope: global

When the scope attribute is not set, the BGPPeer resource is considered at node scope and the current behaviour remains

cc @rsmitty @bradbeam @mattymo

ci check this

/lgtm
/approve

@woopstar I have fixed the conflict. Does it still lgty?

/lgtm
/approve


reddit: add media redirect shortlink

Description of your pull request and other information
Sometimes I use this code to check if something has a dedicated extractor
def is_supported(url) -> bool:  # thank you @dbr
    ies = yt_dlp.extractor.gen_extractors()
    for ie in ies:
        if ie.suitable(url) and ie.IE_NAME != "generic":
            return True  # Site has dedicated extractor
    return False

This works pretty well most of the time but I have noticed that v.redd.it is not recognized. This is a pretty common shortlink that reddit uses publicly to link to content.
Template
Before submitting a pull request make sure you have:

[x] At least skimmed through contributing guidelines including yt-dlp coding conventions
[x] Searched the bugtracker for similar pull requests
[ ] Checked the code with flake8 and ran relevant tests

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check all of the following options that apply:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Fix or improvement to an extractor (Make sure to add/update tests)
[ ] New extractor (Piracy websites will not be accepted)
[ ] Core bug fix/improvement
[ ] New feature (It is strongly recommended to open an issue first)

RedditIE should not match URL 'https://v.redd.it/zv89llsvexdz' . That URL belongs to Generic

ahh okay I see that from a test. well okay.. just thought it was worth a try

Checking whether a URL is supported is not generally possible without running a full extraction. See https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-can-i-detect-whether-a-given-url-is-supported-by-yt-dlp
Since Generic can handle this URL, there is no need for it to be in RedditIE. But adding is harmless as well. So I will accept it if you move the test to the correct IE.


SafeAreaPadding is zero when keyboard is in view

Describe the bug
The SafeAreaPadding value reported from InsetsManager.SafeAreaChanged is always zero. This is a regression compared to 11.0.10.
To Reproduce
Subscribe to TopLevel.InsetsManager.SafeAreaChanged, print SafeAreaPadding and open/close the Android keyboard.
Expected behavior
No response
Avalonia version
11.1.0-beta2
OS
Android
Additional context
No response

That's by design.
Keyboard taking over the screen is not part of the insets.
To handle on screen keyboard (or other types of input panels), use TopLevel.InputPane API.


Improve code style of cutout

This switches an instance method to a classmethod.

Codecov Report

Merging #576 into master will decrease coverage by 0.04%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #576      +/-   ##
==========================================
- Coverage   96.47%   96.43%   -0.04%
==========================================
  Files          40       40
  Lines       14550    14550
==========================================
- Hits        14036    14030       -6
- Misses        514      520       +6


#4326 - TypeError: Cannot read property 'param' of undefined

PR checklist

[ X ] Addresses an existing issue: fixes #0000
[ ] New feature, bugfix, or enhancement

[ ] Includes tests

[ ] Documentation update

Overview of change:
There was an issue with setting the tag variable of the jsDoc rule to an empty array. The empty array wasn't a case that the exclude function was capturing. I added a  case of what to do if the contentTag is undefined.
Is there anything you'd like reviewers to focus on?
N/A
CHANGELOG.md entry:

Thanks for your interest in palantir/tslint, @JBhagat841! Before we can accept your pull request, you need to sign our contributor license agreement - just visit https://cla.palantir.com/ and follow the instructions. Once you sign, I'll automatically update this pull request.


Error loading JSONAPI.Core

Hi, while setting up the project, I'm getting this error when I run the project,
Could not load type 'JSONAPI.Core.IPluralizationService' from assembly 'JSONAPI, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'.
I've installed the lib through Nuget. Any ideas on how to fix this?

No Idea what was wrong, created a new project and added the libs again from Nuget and it seemed to work again!!


Update to gnag 1.0; Android Studio 2.1

Coverage decreased (-0.6%) to 19.593% when pulling 7867779c668d199431ef9ffd59a69fb77878c20d on gnag-1.0 into da33a4de7b7048056698d0d9b0ea6824a6386ff7 on master.

Hmm wonder what the coverage drop is about.


[No QA][HOLD] Change expensify.cash => new.expensify.com

Details

Fixed Issues

Part of https://github.com/Expensify/Expensify/issues/161422
Tests
N/A

QA Steps

Tested On

[ ] Web
[ ] Mobile Web
[ ] Desktop
[ ] iOS
[ ] Android

Screenshots

Web

Mobile Web

Desktop

iOS

Android

npm has a package.json file and a package-lock.json file. It seems you updated one without the other, which is usually a sign of a mistake. If you are updating a package make sure that you update the version in package.json then run npm install

:warning: :warning: Heads up! This pull request has the CP Staging label. :warning: :warning:
Merging it will cause it to be immediately deployed to staging, even if the open StagingDeployCash deploy checklist is locked.

If the actual domain name from which the site is hosted is changing, I think we'll also need to modify this and it's associated usages

Yep good call @roryabraham, those do need to be updated as well

I think that one's just used here

Might also want to change this guy

Also this and this are important if the cloudflare domain is being changed.

I think this looks good now.

npm has a package.json file and a package-lock.json file. It seems you updated one without the other, which is usually a sign of a mistake. If you are updating a package make sure that you update the version in package.json then run npm install

🚀 Deployed to staging         in version: 1.0.77-4🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production         in version: 1.0.77-5🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging         in version: 1.0.77-6🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to production         in version: 1.0.79-4🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Issue 37270

Description
This is a proof-of-concept so far to enquire on the overall approach and get feedback.
@mdo this is an incomplete PR but I wanted to ask if moving the offending code to only the .btn-#{$color} section is acceptable and/or not risky. My reasoning is that it appears that --#{$prefix}btn-hover-bg: #{$hover-background}; is only ever going to get defined in a button variant anyway.
Motivation & Context

https://github.com/twbs/bootstrap/issues/37270
Type of changes

[x] Bug fix (non-breaking change which fixes an issue)

Checklist

[x] I have read the contributing guidelines
[x] My code follows the code style of the project (using npm run lint)
[x] All new and existing tests passed

Live previews

https://deploy-preview-37273--twbs-bootstrap.netlify.app/docs/5.2/components/buttons/

Related issues
Fixes #37270

See ticket. Closing this


Could it be made into a template?

Could it be made into a repo template, so you can copy it to your own repository?

Could it be made into a repo template, so you can copy it to your own repository?

Thank you for your suggestion!
I've just turned it into a repository template. Now, you can easily copy it to your own repository


Enable port updates for outdated library versions

Discussed in https://github.com/microsoft/vcpkg/discussions/34241

Originally posted by WKarel October  3, 2023
I'd like to build Python 3.10 (on Windows x64 using MSVC 2019), while my built-in baseline has its Python version set to 3.11, already. I expected Python 3.10 to build nevertheless, using the following manifest:
{   "dependencies": [ "python3" ],   "overrides": [ { "name": "python3", "version": "3.10.7#7" } ],   "builtin-baseline": "38dd6b15ada368740b5047e4282cbd8395228f03" }
However, this fails, because libffi's port has been changed to produce "ffi.lib" insted of "libffi.lib" on Windows since the most recent port version (#7) for Python 3.10 has been released. A simple fix would be to apply the changes to the port for Python 3.11 in that same commit also to port #7 for Python 3.10, and commit that as port #8 for Python 3.10.
But it seems to me that a minimalistic manifest
{   "dependencies": [ "python3" ] }
without explicit baseline and version override simply uses what is there in ports/python3, instead of checking out the according git tree into buildtrees/versioning_/versions/python3/, as is done when using version overrides. So even for Python 3.11+, the revision of the port for Python 3.10 would be used.
Is it possible at all to update ports of "outdated" package versions? If so, how? Would a pull request be welcome?
Note that I am aware of alternatives to successfully build Python 3.10 (lower baseline and/or version override also for libffi).
According to the linked discussion and my observations, it is currently impossible to update a port for a version of a library that is older than the one that vcpkg currently considers as baseline AND push the respective commit to the vcpkg repository. The problem I see is that if a manifest does not define a builtin-baseline (and when using classic mode?), then vcpkg does not check out the respective git tree into buildtrees/versioning_/versions/<portname>/<hash> (as is done when the manifest defines a builtin-baseline), but vcpkg then simply uses the contents of ports/<portname> of HEAD. Hence, when a port update for an outdated library were pushed into vcpkg, then other users whose manifests do not define a ``builtin-baseline` (or use classic mode?) would use the updated port of the outdated library version, too.

I'm not sure I fully understand the context, but here are possible workarounds:

it should be possible to explicitly specify both Python and libffi versions. So you can use an older libffi version as well.
you could make an overlay_ports directory in your project repo and use your own python/libffi ports (copied from vcpkg and patched)
same as №2 but with custom vcpkg registry

Thanks, I am aware of these work-arounds, which work for me locally.
But I am seeking for modifications such that an updated port for the now outdated Python 3.10 can be merged upstream. Users could then use the current vcpkg baseline to build Python 3.10 only by overriding the version for python3, but without overriding the version of libffi. Or is that out of the scope of vcpkg/vcpkg-tool?
How to create an updated port is documented. But if I follow these instructions to update the port for the now outdated Python 3.10, and the respective commit were merged into upstream vcpkg, then it seems to me that users that do not specify a builtin-baseline in their manifests would accidentally use my port for the outdated Python 3.10, instead of the existing port for Python 3.11.
My guess is that vcpkg-tool would need to be changed such that it always checks out the respective git tree for the requested port, even if users do not specify a builtin-baseline.

What works without modifications to vcpkg-tool is to commit an updated port for the outdated library version into its own branch, and reference the respective git-tree in the version database on the master branch:

Lookup the git-tree of the most recent port (7) of the outdated library version (3.10.7) in versions/p-/python3.json:
{
  "git-tree": "a0f1ead9323b9521f3c3016469f028be712c0252",
  "version": "3.10.7",
  "port-version": 7
}

Find the commit that added the git-tree above:
$ git log --all --find-object=a0f1ead9323b9521f3c3016469f028be712c0252
...
commit f84c18b6a5fb31983853b0d481b9de0263d6fc6c

Create and checkout a branch based on that commit:
$ git checkout -b python3_3.10.7 f84c18b6a5fb31983853b0d481b9de0263d6fc6c

Apply the necessary changes:
a. Edit ports/python3/portfile.cmake: replace find_library(... libffi ...) with find_library(... ffi ...)
b. Edit ports/python3/vcpkg.json: increment the port version to 8

Commit these changes to the (non-master-) branch:
$ git add .
$ git commit -m "updated python 3.10 to match current libffi baseline"

Find the git-tree to be used in the version database:
$ git rev-parse HEAD:ports/python3
8b717a0b2a896832a1bf318a2e36ac4b6adf475a

Checkout the master branch, again:
$ git checkout master

Edit versions/p-/python3.json: insert the updated port with the git-tree from above:
{
  "git-tree": "8b717a0b2a896832a1bf318a2e36ac4b6adf475a",
  "version": "3.10.7",
  "port-version": 8
},

Commit these changes to the master branch:
git add .
git commit -m "updated python 3.10 to match current libffi baseline"

Now to successfully build Python 3.10, it is enough to override the version of the python3 port with "3.10.7#8" in a manifest. No more need to use a lower baseline (resulting in all ports being outdated), or to override the appropriate port version of libffi (which is not easy to find out).
Also, this should be acceptable as pull request for the upstream repository here, because the contents of  ports/python3 are unchanged on the master branch. Hence, projects that use the contents of the port directory right away (because they do not define a baseline in their manifest, or when using classic mode), continue to use the latest port version of the current Python version, as defined in versions/baseline.json.
Still, would such a pull request be welcome? Does it fit into the idea of vcpkg about versioning (maintaining outdated library versions)? Is such a port-specific branch in the upstream repository acceptable?

This issue hasn’t been updated for a long time; if it is still an issue, please ping me and I will reopen this issue.


List duplicate locations when failing a deploy due to duplicated fragment names

For complex deployments with many dependencies, it's easy to lose track of exactly which ones are causing trouble. Currently, you need to look inside each of your dependency jars in order to figure out what's wrong - I think this change is a harmless quality-of-life improvement, and that it should apply cleanly to all three release branches.
Caused by: java.lang.IllegalArgumentException: More than one fragment with the name [some-popular-library] was found.
This is not legal with relative ordering. See section 8.2.2 2c of the Servlet specification for details.
Consider using absolute ordering.
(Duplicates found in: [[file:/home/mads/dev/tomcat/output/build/webapps/madswar/WEB-INF/lib/popular-lib-duplicate.jar, file:/home/mads/dev/tomcat/output/build/webapps/madswar/WEB-INF/lib/popular-lib.jar]]).

Thanks for the PR. I like it. I'm probably being over cautious but I'd like to retain backwards compatibility for the existing methods on WebXml - at least up to 10.0.x anyway. Therefore, I'm going to apply this manually with a few tweaks.

AS per previous comment, merged manually. Thanks very much for the PR.


Added citations to notebooks

Fixes #84

thanks for the review, I've added the requested changes.


Documentation doesn't make it clear which ReFS features apply to Windows 10 Pro for Workstations

I'm trying to figure out which ReFS features apply to Windows 10 Pro for Workstations, but the document header says the ReFS docs apply to Server only.
Can someone clarify?

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

ID: eb95c569-f9ad-8e2d-3423-2c9629e65b72
Version Independent ID: e2a4c64a-97c0-b310-2e47-d0c348a8ead7
Content: Resilient File System (ReFS) overview
Content Source: WindowsServerDocs/storage/refs/refs-overview.md
Product: windows-server-threshold
Technology: storage-file-systems
GitHub Login: @gawatu
Microsoft Alias: gawatu

I think ReFS was used only in Windows 8. Note, that ReFS is NOT bootable.

ReFS was used only in Windows 8

It's listed among Windows 10 Pro for Workstations' features.

ReFS version are listed on https://en.wikipedia.org/wiki/ReFS
Maybe should add that info here

Agreed!
On Thu, Oct 3, 2019, 15:56 stephc-msft<EMAIL_ADDRESS>wrote:

ReFS version are listed on https://en.wikipedia.org/wiki/ReFS
Maybe should add that info here
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/windowsserverdocs/issues/2917?email_source=notifications&email_token=AAIB75ZESCUGTXNVG2GDWRDQMZL7XA5CNFSM4HTGKSEKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAJSFXI#issuecomment-538125021,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAIB75ZESLDNFZFJFISM5N3QMZL7XANCNFSM4HTGKSEA
.


Modified the FlushToDisk method in JsonStore.cs to wait for a locked file to be released

Modified the FlushToDisk method in JsonStore.cs to wait for a locked file to be released. Handy when you have multiple processes saving to the same json file at irregular intervals.

Great to see you implemented my solution :-). Quick q: where do I find SqlDocumentStore.cs...?

I was keeping the number of stores to a minimum until we stabilize on a final API. One of the problems with the original project was adding stores and features willy-nilly. Then, every time we adjusted the architecture, they all needed to change.
When we decided to peel it all back, we went with one store of each flavor (File-Based, File-based Db, and full client-server Db) until we finalize a structure/api/feature set.
We went with Postgres instead of SQL Server because . . . well, Rob and I both liked PG better :-)
For the moment, if you wanted to implement a SQL Server store, it isn't difficult. Mainly a few tweaks to what you find the in the Postgres store (mainly to the SQL gen, and particularly in the Add(IEnumerable<T>() method - there are some tricks to keeping the next generated auto-int ID in sync within the persisted JSON)
If you got it up, I may accept a PR on it, but likely would wait a bit, until we determine a final API.
I am convinced that the current API is overly verbose. Also, there is still a need (I think) for some sort of unit of work that retains consistency between what's in the back end, and what is in memory if/when a transaction fails.

Ah, I see -- cristal.
I'll wait until you settle on a final architecture then. Meanwhile i'll use PG.
I'm really digging biggy :-). One problem I ran into when using JsonStore is that when files got bigger (say, 30mb+) the writes became slow, so I moved to Sqlite which gave way better perf. Due to a certain backup scenario i'm moving to a db server. I am using biggy with a stand alone desktop app btw, not a web app -- works great

Nice. Yeah, the tiered file/local db/client server appraoch is specifically aimed at that perf issue. THere is a limit to how far we can take a JSON file before it becomes more practical to use SQLite or pg.
This is also the driving reason for maintaining a consistent interoperability between the `BiggyList' and any store - so scaling up requires minimal code changes.
Definitely interested in hearing about bugs or issues, suggestions for API not that you are using it a little. Open new issues for each item, tag each PR with "Closes #12" or whatever issue number it is.
We aim to tie each PR to an open issue, and where it makes sense, (bug fixes) each commit.

:+1:


Fix simulcast using hardware encoder on Android

Hi! When using simulcast on Android with hardware encoder we noticed that all simulcast layers have the same resolution and switching between them is broken (video stops encoding when there is only one layer etc.). That's not only our problem, other people noticed it as well, there is a discussion here: https://bugs.chromium.org/p/webrtc/issues/detail?id=12328
We know what causes the problem. Some phones have weird hardware encoders that accept only resolutions aligned to 16x16. Webrtc developers added apply_alignment_to_all_simulcast_layers  option to apply 16x16 alignment to all simulcast layers. There is a code in alignment_adjuster.cc that tries to change the scales to apply the alignment but for 16x16 alignment it will always set the scales to {1, 1, 1}. I added a description why it happens in the discussion linked above.
There are basically two solutions to this problem:

allow to customize kMaxAlignment constant. Right now it's hardcoded to 16. When kMaxAlignment = 64 the scales can be adjusted to {1, 2, 4}. However, this comes with a cost that the video can be cropped (even more than 64px) and aspect ratio of the video might be changed a bit. That's what we tried at first here https://webrtc-review.googlesource.com/c/src/+/277440 but the reviewer told us about cropping.
allow to disable apply_alignment_to_all_simulcast_layers, that's what the reviewer suggested to us and we think it would be a better idea. It fixes the simulcast issues and there will be no cropping. However right now apply_alignment_to_all_simulcast_layers is set in the cpp code and we can't disable it from java code. This PR changes that. It can break the encoding on some devices though. From the discussion here: https://bugs.chromium.org/p/chromium/issues/detail?id=1084702 apparently it affects only Pixel 3 and 3a with Android < 12. If that's a problem we can enable apply_alignment_to_all_simulcast_layers only on those affected devices.

Please let us know what do you think about those solutions. We're open for ideas on how to fix that. Thanks!

Thanks for the PR! We'll take a look.

Seems like the apply_alignment_to_all_simulcast_layers solution seems to be more proper since it's fixed going forward from Android 12 (albeit slowly).
Would simply setting apply_alignment_to_all_simulcast_layers to true on the bad devices be enough to fix them? Will always bypassing the size check in HardwareVideoEncoder.java affect this?

Would simply setting apply_alignment_to_all_simulcast_layers to true on the bad devices be enough to fix them? Will always bypassing the size check in HardwareVideoEncoder.java affect this?

Yes, the checks simply stops encoding if frame size is not aligned. I don't see ERR_SIZE handled anywhere in the code.

Ah, I think I ran into an old issue with this now:
Attempting to initEncode with odd dimensions will crash; this wasn't an issue before since alignment fixed this, but without alignment on simulcast layers, that becomes an issue again. I don't think this route will be viable without someway to at least aligning to even numbers.
I wonder if each simulcast layer can be aligned independently; that way so we don't have to deal with the cropping issues as well as not being limited to powers of 2 scales.

I am wondering how other people use H264 hardware encoder as it cleary doesn't work as expected :slightly_frowning_face:

I tested this on my device some odd resolutions like 1279x719 or 1111x1111 and it works for me. Could you tell us:

what resolutions crash
what error do you get
on what device have you tested?

I wonder if each simulcast layer can be aligned independently
Some time ago I considered that too but it would be too many changes if it's possible at all.

Here, the issue is that the base layer gets aligned, but the scaled layers are scaled without any further alignment (since the previous math dictated that no further alignment was needed).
I have the base layer being 600x800, with a separate simulcast layer downscaled to 360x480 (0.6x). Since 600 isn't divisible by 16, it gets aligned to 592. The simulcast layer's width becomes 592*0.6 = 355.
I reproduced this issue on my Pixel 4, but the last time I saw this issue was around m97ish, and that pretty reliably crashed on all devices IIRC.

So, if the problem is that all layers aren't aligned to 2, then my idea is to set them to be aligned to 2, instead of 16 like now. Turns out it's already configurable on the Java side here: https://github.com/livekit/client-sdk-android/blob/main/livekit-android-sdk/src/main/java/io/livekit/android/webrtc/SimulcastVideoEncoderFactoryWrapper.kt#L193
Change:
val future = executor.submit(Callable { return@Callable encoder.encoderInfo })
into:
val future = executor.submit(Callable { return@Callable EncoderInfo(2, true) })
and all layers are aligned to 2 and with kMaxAlignment = 16 in alignment adjuster that's ok, in our case (standard resolutions and {1, 2, 4} scaling factors) there is no cropping and resolutions are scaled correctly.
I tested also weird scaling factors like 1.78571 (to reproduce bug with odd resolutions) and it gets changed to 1.6 which is ok I guess (better 1.6 than 1 😄). If you don't change the code above then nothing changes anyway.
I updated the PR accordingly, now all it does is removing the crash if the resolutions are not aligned to 16x16.

Getting some weird outputs now:
For a base layer of 600x800, with scaleResolutionDowns of [1, 1.66667, 3.33333], the alignment adjuster changes the scales like so:
2022-11-18 01:39:08.331 30545-30680/io.livekit.android.composesample I/RTCModule: alignment_adjuster.cc: (line 44): scale_resolution_down_by 1 -> 1.08333
2022-11-18 01:39:08.331 30545-30680/io.livekit.android.composesample I/RTCModule: alignment_adjuster.cc: (line 44): scale_resolution_down_by 1.66667 -> 1.625
2022-11-18 01:39:08.331 30545-30680/io.livekit.android.composesample I/RTCModule: alignment_adjuster.cc: (line 44): scale_resolution_down_by 3.33333 -> 3.25

The 1 -> 1.08333 seems a little weird, though it still results in an even number for the dimens. The 1.625 results in an odd number though (600 / 1.625 = 369). I'll take a look into alignment adjuster to see what went wrong here.

I think I understand what's going on here now; the issue is that no realignment seems to be done after the alignment is changed from the alignment adjuster. In the case above, the alignment changes to 13, with scales of [13/12, 13/8, 13/4]. This works as long as the resolution is a multiple of 13, as the scales will turn that multiple of 13 into multiples of 12, 8, 4 respectively, which are all divisible by the original required alignment of 2.
However, no alignment seems to be taking place, and the scales are applied directly to the original resolution, resulting in the odd number I was see. I wonder if there's something we need to do to trigger an alignment when needed.

@graszka22 would you happen to know where the alignment takes place?

Ok, with a little more digging, I think I have a solution to this issue; in HardwareVideoEncoder, put back the width/height checks, but reduce REQUIRED_RESOLUTION_ALIGNMENT to 2 from 16. The returning of an error from initEncode seems important in getting that final alignment working properly (not exactly sure of the exact mechanism though).
With this in place (and EncoderInfo(2, true)), the streams get adjusted twice:
2022-11-19 22:51:44.049 18627-18761/io.livekit.android.composesample I/RTCModule: video_stream_encoder.cc: (line 1125): ReconfigureEncoder:
    Simulcast streams:
    0: 554x738 min_kbps: 134 target_kbps: 1500 max_kbps: 2000 max_fps: 30 max_qp: 56 num_tl: 1 active: true
    1: 369x492 min_kbps: 320 target_kbps: 320 max_kbps: 320 max_fps: 30 max_qp: 56 num_tl: 1 active: true

2022-11-19 22:51:44.221 18627-18761/io.livekit.android.composesample I/RTCModule: video_stream_encoder.cc: (line 1125): ReconfigureEncoder:
    Simulcast streams:
    0: 552x720 min_kbps: 128 target_kbps: 1500 max_kbps: 2000 max_fps: 30 max_qp: 56 num_tl: 1 active: true
    1: 368x480 min_kbps: 313 target_kbps: 320 max_kbps: 320 max_fps: 30 max_qp: 56 num_tl: 1 active: true

Alternatively, changing the catch clause when configuring the codec in HardwareVideoEncoder.initEncodeInternal() from IllegalStateException to also handle IllegalArgumentException also works.

@davidliu Agreed, I changed REQUIRED_RESOLUTION_ALIGNMENT to 2 and it works. I updated the PR accordingly.

Seems good. Any other changes you think this will need? Or ready to merge?

It's ready to merge 👍

@davidliu Thank you 😄


Feature request: Ability to add routes programmatically

At the moment we can use a hook onCreatedApp in enchance-app.ts where we have an access to app, router and initiateState.
If I add a new route using router API (e.g router.addRoute({...})  this route will work only after the application loaded in the browser. So I can go to this new page, and it will be rendered.
But if I reload the page it will give me 404 error. It happens because this hook onCreatedApp has not been taken to consideration during SSR.
Thank you for this framework.

Yeah onCreatedApp is called after we use router.currentRoute, will fix it soon.

I'll add another hook for it since router.currentRoute needs to be resolved before creating the app.

Actually it might be better to add routes at build time, I've added this as an option in the config file:
// ream.config.ts
export default {
  routes(defaultRoutes) {
    return [
      ...defaultRoutes,
      {
        path: '/foo',
        file: path.join(__dirname, './views/Foo.vue'),
      },
      {
        path: '/api',
        file: path.join(__dirname, './server/api.ts'),
        isServerRoute: true,
      },
    ]
  },
}

An app hook extendRouter is also added if you want it: https://ream.dev/docs/references/app-hooks#extendrouter (enhance-app.ts is renamed to ream.app.ts)


Update the example game study configuration

Currently, the example study uses an old version of the study configuration template. It should be updated to use the latest version of the study configuration template. I'm not even sure if the current version of the website would allow you to upload it.
Current Example Study Configuration: https://docs.google.com/spreadsheets/d/1FGyizON4WNmfOrmKtifsqxGCMI0XoJidndikDeCAMcA
Current Study Configuration Template: https://docs.google.com/spreadsheets/d/1BeJ2krpg_lDG8dnq5n4Gqopin2NBhVbDyTDdsplbVUY
I believe there are also many links to the example study configuration scattered around. Ideally, we would update the example study configuration in-place, so that these links do not have to be updated. Alternatively, I think it would be better to have a dedicated page on the documentation website with a Google Sheets link and a download link. That way, we can permanently link to that page, and then update the contents of that page when we want to update the study configuration template or the example study configuration.

Done


[FIX] Fix model name difference in README

The sentence above the example says NewsItem and the actual class is LogItem. I updated the sentence to read LogItem.
Please prefix your pull request with one of the following: [FEATURE] [FIX] [IMPROVEMENT].
In raising this pull request, I confirm the following (please check boxes):

[x] I have read and understood the contributors guide.
[x] I have checked that another pull request for this purpose does not exist.
[x] I have considered, and confirmed that this submission will be valuable to others.
[N/A] I have added tests to prove that the code in this PR works.

Description
...

Thank you!


[Bug] Mangas disappearing from library after reading

Device information

Tachiyomi version: <IP_ADDRESS>
Android phone & version: Galaxy Tab S5E

Steps to reproduce

Open the reader for a manga
Read the manga for a few pages
Exit the reader

Expected behavior
Manga should stay in library
Actual behavior
Manga disappeared from library
Other details

do you have any filters enabled?   I don't see why the manga would be removed as nothing is set to auto remove manga

I'm so sorry, it looks like I've enabled the read tags all this time without realizing it and now all is well


Add Trace tuning to doc website repo.

Signed-off-by: carolxob<EMAIL_ADDRESS>Description
Add Trace tuning to doc website repo.
Issues Addressed
Addresses #1267
Checklist

[x] By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and subject to the Developers Certificate of Origin.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@cmanning09 This PR is ready for tech review.

@asifsmohammed This is ready for tech review.

@cwillum This is in technical review, but it also needs doc review.

This page can be part of #1873, or a sub-page to that page.

Closing this PR because content will be added to #1873.