middleware prevents browser-sync client.js to be injected

I need to process requested html files. if i do it like this client.js injection gets eaten.

do you have a snippet for me to easily reincejt it or
maybe injection should happen after all middleware did their job?

middleware: function(req, res, next) {

        var url = req.url === '/' ? ('/index.html') : req.url;
        var filename = __dirname + '/src' + url;

        if (url.indexOf('.html') > -1 && fs.existsSync(filename)) {

          var contents = fs.readFileSync(filename, {
            encoding: 'utf8'
          });
          res.end(contents);

        } else {
          next();
        }
      }

I would reword the problem.  I should be able to modify the body in any middleware and something as simple as this doesn't work:
function (req, res, next) {
        res.body = res.body + "modified";
        next();
}

@altano - res.body does not exist - that's a property added express, and Browsersync does not use express

@soenkekluth After #372 merged, now you can improving browsersync-ssi without script injection.


cut releases of verify command

Description
Currently, there are places where sigstore infrastructure is pinning to the verify utility at specific commits. Dependabot is not recommending upgrades because it can not safely determine whether or not a subsequent commit is appropriate or not. It would be ideal if root-signing created tagged releases, so that dependabot would properly notice changes and recommend that we use the latest verify utility.

I'll take a look! I might need to loop in some release help, but happy to cut some tags to mark state.

Check out the TSA repo, we have a really simple way of cutting releases by pushing a tag and building on GitHub actions.


Support pub use x as y;

I can't reproduce this 😕

Yeah, we support pub use as. Either there's some other thing going on in the code there, or this is an incremental update bug.

Do you have any panics in the Output window?

This was fixed by closing the tab and reopening it. I don't see any panics - maybe VSCode was caching the errors after I already fixed them?

This was probably a desync issue/diagnostics not clearing properly.


Fails to CreateTableUsers when used with GenieAuthentication: ERROR: MethodError: no method matching query(::String)

Describe the bug
Following the setup instructions for GenieAuthentication, the moment I run the SearchLight migration, I get an error.
Error stacktrace
julia> SearchLight.Migration.up("CreateTableUsers")
ERROR: MethodError: no method matching query(::String)
Stacktrace:
 [1] upped_migrations()
   @ SearchLight.Migration ~/.julia/packages/SearchLight/B9d2o/src/Migration.jl:337
 [2] run_migration(migration::SearchLight.Migration.DatabaseMigration, direction::Symbol; force::Bool)
   @ SearchLight.Migration ~/.julia/packages/SearchLight/B9d2o/src/Migration.jl:279
 [3] #up#15
   @ ~/.julia/packages/SearchLight/B9d2o/src/Migration.jl:187 [inlined]
 [4] up(migration_module_name::String)
   @ SearchLight.Migration ~/.julia/packages/SearchLight/B9d2o/src/Migration.jl:186
 [5] top-level scope
   @ REPL[7]:1

To reproduce
Genie.newapp_mvc("something") # choose sqlite
GenieAuthentication.install(@__DIR__)
SearchLight.Migration.up("CreateTableUsers")

This happens independently of whether I restart julia between invocations of each command. I am using sqlite
Expected behavior
It should run without error.
Additional context
julia> versioninfo()
Julia Version 1.7.0-rc2
Commit f23fc0d27a (2021-10-20 12:45 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: DO-Premium-AMD
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, znver2)
Environment:
  JULIA_REVISE = auto

(Moonshot) pkg> st
     Project ...
      Status `~/.../Project.toml`
  [c43c736e] Genie v4.5.0
  [e115e502] GenieAuthentication v1.1.0
  [6d011eab] Inflector v1.0.1
  [e6f89c97] LoggingExtras v0.4.7
  [739be429] MbedTLS v1.0.3
  [340e8cb6] SearchLight v2.0.1
  [21a827c4] SearchLightSQLite v2.0.0
  [ade2ca70] Dates
  [56ddb016] Logging

All of this on a brand new julia environment.

SearchLight.Migration.status() and last_up() cause the same error
SearchLight.Migration.create_migrations_table has zero methods
This happens on 1.7.0 as well.

downgrading Searchlight to 1.0.2 does not help either...

Ah... Selecting SQLite in the wizard does not actually set up an sqlite file.
I attempted to clarify the Readme to avoid similar confusions in the future: https://github.com/GenieFramework/GenieAuthentication.jl/pull/10

Selecting that just installs the dependencies.
Valid point about also setting up the db, but I'm not sure it's doable - how do we know what name to give it, how to connect to MySQL/Postgres, etc?

Maybe a warning log message (not an info log message) along the lines of:
To complete the SQLite installation be sure to update the db/config file and to run the migration creation command
To complete the Postgres installation be sure to install and configure a postgres server (independent from Julia) and update the db/config file and to run the migration creation command

@Krastanov good ideas! For interactive setups it would be nice even ask for the data at the REPL (location for sqlite file, postgres host/user/pass etc).

@Krastanov we can do this with Julia e.g. via SearchLightPostgreSQL ahead / without Genie app scaffolding:
Firstly, we add connection data for postgres and database databases:
using SearchLight, SearchLightPostgreSQL
using YAML

path = SearchLight.DB_PATH

database = "postgres"

filename = "$(database)_$(SearchLight.SEARCHLIGHT_DB_CONFIG_FILE_NAME)"

SearchLight.Generator.newconfig(path; filename)

filepath = joinpath(path, filename)
db_conn_data = YAML.load(open(filepath))

host  = ENV["POSTGRES_HOST"]
port = ENV["POSTGRES_PORT"]
username = ENV["POSTGRES_USERNAME"]
password = ENV["POSTGRES_PASSWORD"]

env = "dev"

db_conn_data[env]["host"] = host
db_conn_data[env]["port"] = port
db_conn_data[env]["database"] = database
db_conn_data[env]["username"] = username
db_conn_data[env]["password"] = password

YAML.write_file(filepath, db_conn_data)

database = ENV["POSTGRES_DATABASE"]

db_conn_data[env]["database"] = database

filename = "$(database)_$(SearchLight.SEARCHLIGHT_DB_CONFIG_FILE_NAME)"
filepath = joinpath(path, filename)

YAML.write_file(filepath, db_conn_data)

Then, we create the database database:
using SearchLight, SearchLightPostgreSQL

path = SearchLight.DB_PATH

database = "postgres"

filename = "$(database)_$(SearchLight.SEARCHLIGHT_DB_CONFIG_FILE_NAME)"
filepath = joinpath(path, filename)

postgres_conn_data = SearchLight.Configuration.load(filepath)
postgres_db_handle = SearchLight.connect(postgres_conn_data)

database = ENV["POSTGRES_DATABASE"]
owner = "postgres"

SearchLight.query("CREATE DATABASE $database OWNER $owner")
SearchLight.query("GRANT all ON DATABASE $database TO $owner")

data_frame = SearchLight.query("SELECT 1 FROM pg_database WHERE datname = '$database'")
println(data_frame[!, 1]) # Union{Missing, Int32}[1]

SearchLight.disconnect(postgres_db_handle)

Connect to and use the database database with Julia via SearchLight or scaffold your Genie app...
Finally, we can drop the database database:
using SearchLight, SearchLightPostgreSQL

path = SearchLight.DB_PATH

database = "postgres"

filename = "$(database)_$(SearchLight.SEARCHLIGHT_DB_CONFIG_FILE_NAME)"
filepath = joinpath(path, filename)

postgres_conn_data = SearchLight.Configuration.load(filepath)
postgres_db_handle = SearchLight.connect(postgres_conn_data)

database = ENV["POSTGRES_DATABASE"]

SearchLight.query("DROP DATABASE IF EXISTS $database")

data_frame = SearchLight.query("SELECT 1 FROM pg_database WHERE datname = '$database'")
println(data_frame[!, 1]) # Union{Missing, Int32}[]

SearchLight.disconnect(postgres_db_handle)

@essenciary Would it make sense to adapt this to SQLite and MySQL and integrate it with SearchLight?
Related https://github.com/GenieFramework/SearchLight.jl/issues/46#issuecomment-1026509333, https://github.com/GenieFramework/SearchLight.jl/issues/18#issue-467680103


Support heading IDs

This is a non-standard feature https://www.markdownguide.org/extended-syntax/#heading-ids
However it can be useful! For instance, docusaurus (docusaurus.io) understands custom heading IDs.

@reagle how does this work exactly? Is [<text>]{id="<id>"} the syntax you need to use to decorate something with an id (basically, wrap it in a link-like thing)?

Hi @artempyanykh.
Pandoc supports two extensions that I use, implicit header references on headings and bracketed spans elsewhere. Neither is in the core CommonMark specification, but bracketed spans are supported in djot, which I hope will become commonplace. I use both extensions and marksman gives warnings of missing targets. I thought there might be a way to turn off these warnings or perhaps it could support these extensions, which brought me to this issue. 😄

@reagle I like the idea of supporting these extensions. I extracted each into its own issue.


Prepare 1.8.4

Main changes:
Attempt at fixing conda-forge deployment issues, which are partially linked to distutils.msvcompiler not being available for recent versions of setuptools.
Solved (hopefully) by pinning setuptools <64
#996

Hello @Didou09! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file tofu/tests/tests00_root/test_03_plot.py:

Line 141:49: E231 missing whitespace after ':'
Line 149:49: E231 missing whitespace after ':'
Line 153:25: W292 no newline at end of file


Documentation doesn't mention path locality

Options such as include and index (but probably not limited to those) are local to the vault path, which is fine but is a gotcha for anybody starting out with o2w.
This should be mentioned in the documentation.

https://github.com/lun-4/obsidian2web/commit/4755250519bf166f3cbbff4c73555e2e73371078


Create "mini-whatis" for deployment

Done for this includes:

A 2-line description of topic on:
https://github.com/betterscientificsoftware/betterscientificsoftware.github.io/blob/master/Site/Categories/Planning.md

A half page of text in a new file located here:

https://github.com/betterscientificsoftware/betterscientificsoftware.github.io/blob/master/Site/Categories/Topics/WhatIsDeployment.md
Target completion for this is May 26, 2017.

@curfman
I propose to narrow the focus of this what is from deployment to CSE Software Deployment, and change the location of the file to:
https://github.com/betterscientificsoftware/betterscientificsoftware.github.io/blob/master/Site/Categories/Topics/WhatIsCseSwDeployment.md

Sounds good; thanks.

Looking at the possibility of changing the focus of this from deployment to delivery, distribution, or some other term that is more general and better describes what we currently do.

Changing the focus from deployment to distribution would result in a file location of:
https://github.com/betterscientificsoftware/betterscientificsoftware.github.io/blob/master/Site/Categories/Topics/WhatIsCseSwDeployment.md

Additionally, @curfman mentioned the topic of deployment has been move under the software development category, so it will go on the page:
https://github.com/betterscientificsoftware/betterscientificsoftware.github.io/blob/master/Site/Categories/Development.md

This is done: https://bssw.io/items/what-is-cse-software-distribution


examples/textinput: doesn't work on mobile browsers

Ebitengine Version
v2.6.2
Operating System

[ ] Windows
[ ] macOS
[ ] Linux
[ ] FreeBSD
[ ] OpenBSD
[X] Android
[X] iOS
[ ] Nintendo Switch
[ ] PlayStation 5
[ ] Xbox
[ ] Web Browsers

Go Version (go version)
?
What steps will reproduce the problem?
Run examples/textinput on mobile browsers.
What is the expected result?
A keyboard appears
What happens instead?
A keyboard doesn't appear
Anything else you feel useful to add?
The BlockBros team reported that.

Pressing backspace doesn't work yet.

With a virtual keyboard, a key event is available. https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values

A virtual keyboard doesn't appear on iOS.


_Generic failing on function types and literal string

This program should compile with no errors
int main(void)
{
    _Static_assert(_Generic(main, int (*)(void) : 1 ), "");
    _Static_assert(_Generic("abc",  char *: 1), "");
}

https://godbolt.org/z/d6zvh13KG
hlc is giving
Error at '_Generic': _Generic choice did not match any of the associations.
Error at '_Generic': _Generic choice did not match any of the associations.

The problem with the literal string is that it is not doing lvalue conversion.
I checked with this sample
  _Static_assert(_Generic("abc",  char [4]: 1), "");

that is not giving any error.(it should)
https://godbolt.org/z/o8q58o3Gz

Thanks for the report! I have fixed it and pushed a commit to 'main' :)


Added PressedButtons to PickingInteraction::Pressed.

Objective
Fixes #15983. PickingInteraction is preferable to events in some use cases for code organization. This PR adds the keys pressed to PickingInteraction::Pressed, allowing the user to ignore certain keys like the RMB in such use cases.
Solution

Added field PressedButtons to PickingInteraction::Pressed.

Testing

Added a test for merging PickingInteractions.
Added an example for PickingInteraction.

Migration Guide
PickingInteraction::Pressed now has a field, code matching against it should use matches!(interaction, PickingInteraction::Pressed(..)) instead.

This will be useful as part of #15597, and I'd like to get this merged first.

Many computer mice have a "Back" and "Forward" button, but I don't know if those affect focus.

That might mean refactoring the pointer events a bit to coalesce button information.

Which I am more than happy to do if we get specs for the events we need. Enter/Leave is already on the radar.

Yeah, this is increasingly my opinion. It's nice for the "change widget style based on interaction", but that's the only use case where it's nicer than observers.

We definitely have a need to coalesce multiple events to determine state. You can't, for example, use Over and Out to determine if an entity is hovered, that entity might receive multiple of these events from multiple pointers and bubbled from children. I'm not sure what the right approach is though. I'm kinda leaning towards keeping this struct for that reason though.
I think this PR would be okay to merge with some modifications to make it match the pointer API I linked. It currently mixes the concept of abstract pointer buttons and device button.

Change the name to PointerDeviceButtons or something similar. This struct tracks which device buttons are down, but presents a public API that aggregates them, to help push users toward correct code.
Change PRIMARY/SECONDARY to something like LEFT_MOUSE/RIGHT_MOUSE/MIDDLE_MOUSE. E.g. every bit field should be device specific, this would also include mouse fwd/back and pen barrel when we have them. This structure would become an aggregate of all types of devices, if there are multiple devices (e.g. touch) all states should be OR'ed (like present).
Make the fields private if possible, and expose methods primary(), secondary(), middle(). To expose the internal details, add pressed_by_any(button: PointerDeviceButtons) and pressed_by_all(button: PointerDeviceButtons) so they can check if a specific button(s) was pressed.

This would also support chording, because you could pass in pressed_by_any(PointerDeviceButtons::LMB | PointerDeviceButtons::LMB ) or pressed_by_all(PointerDeviceButtons::LMB | PointerDeviceButtons::LMB ).
LMB and touches should both be considered a primary press. RMB and pen barrel (once it is supported) would be secondary presses. Again, follow the spec used on the web.

Change the name to PointerDevicePressed or something similar. This struct tracks which device buttons are down, but presents a public API that aggregates them, to help push users toward correct code. PressedButtons is probably fine too, but we should disambiguate from, say keyboard buttons. PointerPressed?

Do you think it is fine to just reserve X1 and X2 on the bitflags? I don't see a reason to encapsulate it further.

https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events#determining_button_states

According to this spec the current implementation is a upgrade on touch input since usually we treat touch as left click, but with this implementation you can potentially treat them differently.


[DO NOT REVIEW] Test flow

🚀 Deployed on https://628bfbc203efd4009595e207--cozy-fox-0defec.netlify.app


MAINT: Update dependencies with ranges

The current way we handle dependencies is too "tight" and can easily lead to conflicts when installing pyaedt with other projects. This is even more problematic as it happens with other ansys projects, e.g. pyedb, pyaedt toolkits, ...
This PR proposes to use ranges to specify a wider compatibility of dependencies.

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

Project coverage is 76.66%.  Consider uploading reports for the commit 1f71f49 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4369      +/-   ##
==========================================
- Coverage   81.59%   76.66%   -4.93%
==========================================
  Files         107      107
  Lines       52463    52463
==========================================
- Hits        42807    40222    -2585
- Misses       9656    12241    +2585


feat: add a new api to get rag evaluation report

What type of PR is this?
/kind feature

What this PR does / why we need it
feat: add a new api to get rag evaluation report
Which issue(s) this PR fixes

Fix https://github.com/kubeagi/arcadia/issues/684
Special notes for your reviewer

For the English message, I think it can be implemented in the next version


.Net: Promote the new Oobabooga repo/package (and remove from SK)

[!IMPORTANT]
Labeled Urgent because it may require a breaking change if we should remove TextCompletionRequest.

There are two types that derive from AIRequestSettings: OpenAIRequestSettings and TextCompletionRequest. The latter is specific to the Oobabooga connector but doesn't have Oobabooga in the name nor the RequestSettings suffix. It's not clear to me how someone is supposed to know they should be creating a TextCompletionRequest in order to fulfill an AIRequestSettings parameter.
To solve this, we will remove it from our current repo and point users to the new Oobabooga repo/package.

Agreed, TextCompletionRequest from Oobabooga package should be renamed to OobaboogaRequestSettings.

Based on @dmytrostruk, the Oobabooga connector now has its own repo. We should mark all of the existing Oobabooga functionality deprecated and redirect to the new repo.
Will change name/description to reflect the change.

Adding my 2 cents here since I'm currently trying to update the new Oobabooga connector, the latest Nuget package of which seems to have issues that didn't appear upon initial tests and were recently reported.
I went ahead updating the reference to the new Beta Nuget package, and now I'm scratching my head trying to adapt to the new AIRequestSettings model, not sure to understand the way forward, especially for the MultiConnector.
I mean I've read about the 3 evolution options considered and the final choice but the current implementation has me puzzled by the way the new OpenAI settings we implemented.
I understand the new ExtensionData dictionary is supposed to be a way to share properties like temperature or max tokens between prompt settings and various connectors, in a more flexible way that the former rigid structure but the OpenAI implementation only seems to use it one way through this weird json serialization/deserialization with a custom converter.
Accordingly, that seems to mean to me there won't be any simple way to serialize/deserialize AIRequestSettings in a general manner, nor to recover the actual settings apart from when the new ExtensionData property, which does not seem to be the case when OpenAI request settings are used.
This is going to make updating the Multiconnector pretty hard, and I'm a bit lost on what to do with Oobabooga.
Shouldn't all concrete implementation of AIRequestSettings have ensured that dictionary property was used in the first place?

@jsboige Thanks for reporting, I would like to understand your use-case better, if possible.
In general, you should be able to define class OobaboogaRequestSettings : AIRequestSettings and inside this class define properties with Oobabooga-related settings. Then, in Oobabooga connector you should be able to check if requestSettings is OobaboogaRequestSettings oobaboogaRequestSettings and then work with your settings instance. Serialization/deserialization is not required at this point.

but the OpenAI implementation only seems to use it one way through this weird json serialization/deserialization with a custom converter

Custom converter was implemented with purposes to support different naming cases for settings in config.json file. For example, there won't be any difference if user will have max_tokens or MaxTokens. But it's optional feature, and it is not required for Oobabooga or any other connectors.

This is going to make updating the Multiconnector pretty hard, and I'm a bit lost on what to do with Oobabooga.

It would be really helpful, if you could share some code examples where AIRequestSettings class doesn't cover your case, so we will be able to understand how we can improve it.

Shouldn't all concrete implementation of AIRequestSettings have ensured that dictionary property was used in the first place?

So, dictionary property was introduced as additional feature for flexibility. You can use only this property and access your settings in connector like requestSettings["MyProperty"]. But if you want to work with settings using strong types like requestSettings.MyProperty, then you can define class OobaboogaRequestSettings: AIRequestSettings and use it like:
var function = kernel.CreateSemanticFunction(prompt, requestSettings: new OobaboogaRequestSettings { MyProperty = "value" });

Please, let me know if this information is helpful! Thank you!

@dmytrostruk thanks for your answer.
This is in line with what I understood, and I started implementing the new Oobabooga text and chat completion request settings the way the OpenAI request settings were implemented (that is, keeping the concrete properties that preexisted to the change).
I also started adding a similar method to that of OpenAI connector trying to make sense of the AIRequestSettings parameter, figuring out if it's a native Oobabooga settings instance, or one of a distinct kind.
I find it a bit cumbersome that we don't know really what's in this dictionary depending on the original AIRequestSettings, whether actual "soft" properties manually inserted at some point, JsonElements, as a result of the JsonExtensionData attribute upon deserialization of prompt settings, or nothing at all if settings are of a concrete type that do not make use of them.
The fact that the OpenAI implementation relies on serializing and deserializing using a custom converter low-level primitives to make sense of it is a bit frightening and hard to grasp.
As for the multiconnector, it is supposed to work seemlessly with request settings regardless of their kinds, with several stages where they can be passed over unchanged or updated depending on the model-specific configurations, and there are several places where custom settings are serialized or deserialized.
I will have to think about how to upgrade that...
Anyway, I believe I have the global picture, and will try my best with the current state.

I find it a bit cumbersome that we don't know really what's in this dictionary depending on the original AIRequestSettings, whether actual "soft" properties manually inserted at some point, JsonElements, as a result of the JsonExtensionData attribute upon deserialization of prompt settings, or nothing at all if settings are of a concrete type that do not make use of them.

@jsboige As Connector developer, you define how you want to work with settings, and at the point when you receive AIRequestSettings, as author of Oobabooga connector, you should already know how to handle it in your Connector.
For example, if you add new Connector and you say that it should work with MySettings : AIRequestSettings, then users of your connector should pass MySettings when they create semantic function, and they should follow the same naming in their config.json.
But if you say that there is no concrete type of settings and users should set them in ExtensionData, then users will have to create new instance of AIRequestSettings and set all properties in dictionary, and then in your Connector you will be able to receive it. It's also an option, but from user perspective, there will be no strong types for settings, which makes it harder to control them in compile-time.
If users pass some settings, which are not compatible with Oobabooga settings pattern, then you should probably throw an exception in Connector, or try to use default settings, if it's acceptable scenario.

Anyway, I believe I have the global picture, and will try my best with the current state.

Please let us know if any help is needed. Your use-case is very helpful, because it will allow us to understand if current AIRequestSettings implementation is scalable enough, or something should be improved. Thanks a lot!

For example, if you add new Connector and you say that it should work with MySettings : AIRequestSettings, then users of your connector should pass MySettings when they create semantic function, and they should follow the same naming in their config.json.

Sure, dealing with the concrete Oobabooga settings should be straightforward and the documented regular case. It's the other cases that I find difficult. Again, having to serialize and deserialize using a custom converter because you don't really know what's in the object but you expect it might have shared parameters like temperature or maxtokens looks like a strange evolution from the base class where those properties were well defined and you didn't have to guess them from the json result.
For Oobabooga, I might try to use the dictionary directly to save on perfs because we're not expecting something different the JsonElements deserialized from config.json. But for the multiconnector, I guess I'm left with the same OpenAI approach of serializing / deserializing and hope for the best.

but you expect it might have shared parameters like temperature or maxtokens looks like a strange evolution from the base class where those properties were well defined and you didn't have to guess them from the json result.

Parameters like temperature or maxtokens were defined initially based on OpenAI API, but they are not common across different connectors (e.g. Hugging Face). But if you have similar parameters in Oobabooga, you can define OobaboogaRequestSettings and define same parameters there. It should be possible to avoid serialization/deserialization completely and use just strong type for settings.

Sure, that's the plan, thanks

@dmytrostruk I just published a new Nuget package, with an attempt at following the new request settings format.
I'm not super satisfied with the current state, but it should do for a while since there were issues that needed fixing.
Oobabooga RequestSettings (this class and that one) are relatively similar to OpenAI, in that they will attempt to read the extended properties only if the passed in settings are not of the concrete type or OpenAI's. They also account for the fact that MaxTokens has a different name in Oobabooga (MaxNewTokens), and that RepetitionPenalty has a different scale (that was already implemented in the previous version). Also, they don't rely on serialization and will directly read JsonElement values or use IConvertible if the dictionary contains primitive types instead.
As for the MultiConnector, I introduced specific settings class that tries to keep everything in the extended properties' dictionary, while upper casing keys.
When some parameters such as temperature or max tokens are intercepted, the values are changed from JsonElements to primitive types.
The intent is that input settings could be any settings from OpenAI, Oobabooga or Prompt template config, MultiConnector settings then import and flatten everything inside the dictionary in a common implementation, optionally performs updates to maxtoken or temperature during the pipeline, and then either OpenAI or Oobabooga should be able to recover the settings at the other end of the pipeline.
That was tested on the existing simple examples, but in order to support all cases, I will need to rework those settings to account for and map all existing connectors specific settings properties.
This is inline with what I had foreseen, thus not very convenient. To be honest, I believe the Oobabooga way of having concrete settings with all properties for all supported models was a bit dumb but so much easier, since most models share things like temperature, maxtokens etc., and here we're now left with trying to guess their names and dealing with the hybrid serialization hack to account for concrete properties on top of the dictionary.
Anyway, I guess that makes up for some feedback for your team, and I'll be happy to know what you think is the best way forward from there.

Oobabooga RequestSettings (this class and that one) are relatively similar to OpenAI, in that they will attempt to read the extended properties only if the passed in settings are not of the concrete type or OpenAI's.

@jsboige I would suggest removing OpenAI dependency from Oobabooga Connector. Even if settings for both Connectors are similar or exactly the same, it's still separate Connectors and having different types for them (even with the same properties) is completely fine.
Here is the example, how the settings could be defined for semantic function:
{
  "schema": 1,
  "description": "My semantic function",
  "models": [
    {
      "service_id": "open-ai-gpt-4",
      "max_tokens": 150,
      "temperature": 0.9,
      "top_p": 0.0
    },
    {
      "service_id": "oobabooga-ai-model",
      "max_new_tokens": 200,
      "repetition_penalty": 1.18,
      "do_sample": false
    },
  ]
}

At the point of semantic function execution, it should recognize available AI Connectors in Kernel and map settings to specific Connector. Also, it should be possible to specify settings not only on Connector level, but on AI Model level (e.g. For OpenAI, there will be separate settings for gpt-4, gpt-3.5-turbo etc.) If settings for different AI Models from the same AI provider (e.g. OpenAI) are the same, they can share the same settings type. But if it's different AI providers (OpenAI, Oobabooga, HuggingFace), it's probably better to have different types, because you won't be coupled to another Connector when you want to add/remove/update some property in the future.

They also account for the fact that MaxTokens has a different name in Oobabooga (MaxNewTokens), and that RepetitionPenalty has a different scale

That's exactly the reason why we shouldn't try to align settings to the same type/format. They are just different by nature and should be implemented separately.

To be honest, I believe the Oobabooga way of having concrete settings with all properties for all supported models was a bit dumb but so much easier, since most models share things like temperature, maxtokens etc.

From Semantic Kernel perspective, we should be compatible with different AI providers, AI models and related settings for them. In Hugging Face, there are around 30,000 text completion models available at the moment and most probably the settings for each of them are different as well.

and here we're now left with trying to guess their names and dealing with the hybrid serialization hack to account for concrete properties on top of the dictionary.

In your scenario, I would suggest avoiding dictionary property at all (at least in first implementation). Try to use just concrete type (OobaboogaCompletionRequestSettings) and rely on snake_case in your settings (e.g. max_new_tokens). If you remove OpenAI dependency and dictionary deserialization logic, your Connector and settings should still be compatible with SK. If it's not the case, please let us know and we will add required changes to support that scenario.
I hope that makes sense and thank you for your feedback! I would be happy to continue this conversation and see if current setting model is scalable enough to cover your and other cases. Thanks again!

@jsboige I would suggest removing OpenAI dependency from Oobabooga Connector. Even if settings for both Connectors are similar or exactly the same, it's still separate Connectors and having different types for them (even with the same properties) is completely fine.

@dmytrostruk I didn't plan to support OpenAI in the Oobabooga connector to start with, and you're probably right it is overkill. I just realized the OpenAI dependency already exists in the regular Semantic-kernel nuget package so I thought why not. But this is a very edge case indeed. Maybe I should reference a more restricted package?

In your scenario, I would suggest avoiding dictionary property at all (at least in first implementation). Try to use just concrete type (OobaboogaCompletionRequestSettings) and rely on snake_case in your settings (e.g. max_new_tokens).

As for the dictionary property, it is necessary to support it as it is where the prompt template config params reside, in the form of deserialized JsonElement properties. OpenAI connector does it through a round trip of json serialization/deserialization and a custom json converter. I chose to tap in the dictionary property directly to avoid the overhead, but I believe it is pretty much equivalent.
Now the multiconnector is a different story. It has to harmonize accross models and prompt settings by definition, on the way in and on the way out, thus the use of the same serialization mechanism to flatten both concrete and dictionary properties.
As for Huggingface, this is pretty much what Oobabooga is about. Pretty much all the models in the open LLM leaderboard are supported in Oobabooga, and I can tell you that apart from specific properties like mirostat for Llama.cpp models, pretty much all of them use the set of common properties that the previous ChatGPT inspired shared Completion settings exhibited. Only the scale for repetition penalty and beam search instead of alternate responses were significantly different.
Anyway, I'll remove the OpenAI dependency on next release, but for now, it seems to work fine. Let's see what users say.

I just realized the OpenAI dependency already exists in the regular Semantic-kernel nuget package so I thought why not. But this is a very edge case indeed. Maybe I should reference a more restricted package?

@jsboige So, if we look from SK user perspective, if I want to use SK in my applications, I install SK and I have OpenAI Connector out of the box in order to be able to quickly jump in and integrate with AI. But if I'm SK Plugin or Connector developer, in ideal scenario I need to use just SemanticKernel.Abstractions package in order to provide my own implementation of some Plugin or Connector, so it can be re-usable by others. At the moment we are testing if it's possible to develop using SemanticKernel.Abstractions only for Plugin and Connector authors. If you have a chance to see, if Oobabooga Connector can be implemented with provided abstractions only, and share your feedback with us, that would be awesome!

As for the dictionary property, it is necessary to support it as it is where the prompt template config params reside, in the form of deserialized JsonElement properties. OpenAI connector does it through a round trip of json serialization/deserialization and a custom json converter. I chose to tap in the dictionary property directly to avoid the overhead, but I believe it is pretty much equivalent.

I got the point now. Yes, so in current implementation you can work with strong settings type if you inject it programmatically, but when you load them from config.json file you will receive it in ExtensionData:
// Pass settings instance directly - access MySettings in Connector
var semanticFunction1 = kernel.CreateSemanticFunction("template", requestSettings: new MySettings { Text = "text", Number = 2 });

// Initialize settings instance with config.json - access ExtensionData in Connector
var semanticFunction2 = kernel.CreateSemanticFunction("template", PromptTemplateConfig.FromJson(GetConfigPayload()));

But even with this case, ExtensionData deserialization should be simple. You don't need to implement switch/case to handle each property separately. This is something we consider removing in the future. Basically, you can have your FromRequestSettings method very similar to OpenAI one, but without JsonConverter logic:
https://github.com/microsoft/semantic-kernel/blob/18ffc4bf2f2b57d3c58381e8d961e3757ce0c991/dotnet/src/Connectors/Connectors.AI.OpenAI/OpenAIRequestSettings.cs#L131-L155
Your FromRequestSettings method will have three phases:

Check if settings are null, and if yes - provide default one.
Try to cast it to strong type and if it's successful - use it.
Deserialize and use it.

Please let me know if this scenario will work for you. Thank you!


Misaligned arrow controls for IE browser

Bug Report
Description
Visual alignment issue with the calendar filter for terra-date-picker and terra-clinical-onset-picker; based on our investigation we believe the issue is with the framework component. I was unable to recreate this for Edge or Chrome, but wanted to get the issue logged in case it was deemed important enough to correct.
Steps to Reproduce

Render the date picker within the orion-fusion-theme.
Open the calendar-filter
Arrows are misaligned under that theme.

Additional Context / Screenshots

Expected Behavior
Arrows should be aligned properly in supported themes.
Possible Solution
The arrows themselves may be sized incorrectly for the theme. Another image or potentially resizing as part of the theme may be appropriate but these are just guesses at this point.
Environment

Component Name and Version: terra-date-picker (via terra-clinical-onset-picker)
Browser Name and Version: IE10 (Tested against Chrome and Edge, issue was not present)
Node/npm Version:
Webpack Version:
Operating System and version (desktop or mobile): Desktop, Windows

@ Mentions

I checked the date picker with orion fusion theme on IE, the arrows look fine to me. Are you using the latest version of the date picker.

@JB016205 Can you provide more details as to where your originating screenshot came from (you mentioned you were unable to recreate it in Edge or Chrome) to help us recreate the alignment issue?

What version of the date-picker are you using? (looks to be version 4.47.0 or newer)
What Windows environment are you seeing this in? (e.g. local with a VM, or Citrix + development domain, etc.)
What edition of Windows (if local), or Windows Server (for a specific Citrix box) are you seeing the issue?

Not certain if the component in the originating screenshot is ion-condition-js since it one of only few components using terra-clinical-onset-picker and displays the "Confirmation" and "Laterality" field names. If ion-condition-js is the component, then it should using terra-clinical-onset-picker 4.28.0 which uses the latest terra-date-picker 4.59.0.
I also was unable to recreate using the onset-picker in Terra-ui on IE10 with orion-fusion-theme.
@JB016205 With the environment you're usiing, are you able to recreate using an onset-picker example on Terra-ui?


Filter mobile services and list clients

Adding list command for clients
filtering serviceInstances which have been tagged "mobile-service"

ping @wei-lee
This branch now requires a new env var. Set:
export KUBERNETES_CONFIG=$HOME/.kube/config

@ciaranRoche This look ok? https://github.com/aerogear/mobile-client-service/blob/45e87239634980cbd9ad112d72e2895854db95e2/README.md#run

Pull Request Test Coverage Report for Build 242

22 of 64 (34.38%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-7.2%) to 74.39%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/mobile/serviceInstances.go
22
25
88.0%

pkg/web/router.go
0
6
0.0%

pkg/mobile/MobileResource.go
0
8
0.0%

pkg/web/mobileResourceHandler.go
0
25
0.0%

Totals

Change from base Build 181:
-7.2%

Covered Lines:
122

Relevant Lines:
164

💛  - Coveralls

@sedroche I think this one is ok to merge now. I am not too concerned about the coverall reports

@wei-lee Just fixing up some last comments and ill merge


Addition of Tree Algoritms

Description:
The algorithm consists of :
-Binary Tree
-AVL Tree
-Splay Tree
and it's operations such as -

Insertion
Deletion
Searching
Traversal

Issue Number: #23
Checklist:

[.] Are you assigned for this?
Yes, I have been assigned this
[.] I have also created a README.md file for the following algorithm.
Yes, I have created a README.md file

Additional Information:
Tree data structure is a specialized data structure to store data in hierarchical manner. It is used to organize and store data in the computer to be used more effectively. It consists of a central node, structural nodes, and sub-nodes, which are connected via edges. We can also say that tree data structure has roots, branches, and leaves connected.

@pankaj-bind please review it


fix: fallback to latest form state if resthandler skips some table fields from response

Jira: https://jira.splunk.com/browse/ADDON-38581

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

v1.7.7
GitHub release

Your semantic-release bot :package::rocket:


Weird text in tasks

Challenge http://freecodecamp.com/challenges/waypoint-check-the-length-property-of-a-string-variable has an issue. User Agent is: Mozilla/5.0 (Windows NT 10.0, WOW64

All works, but looks weird

Thanks for reporting the issue @Bravo13, but the text is not weird :)

@Bravo13 By saying not weird @awesomeaniruddh meant that it is normal that you are able to see the contents of asserts. For more info see here.

Please review the Guidelines for Contributing, thank you!.

I was going to report the same issue - Maybe it is not entirely clear that it's supposed to show up?

@seewhen there is a mention about this in Waypoint: Comment your JavaScript Code. See the last paragraph of the challenge's description.


fluentd - ConcatFilter::TimeoutError

Describe the bug
Fluentd fails with:
Fluent::Plugin::ConcatFilter::TimeoutError: Timeout flush: kubernetes.var.log.containers.scan-vulnerabilityreport
Fluent::Plugin::ConcatFilter::TimeoutError: Timeout flush: kubelet:default
To Reproduce
Steps to reproduce the behaviour:

Go to kibana/opensearch dashboard
Filter the fluentd pods
Search for error
See error logs

Expected behaviour
No errors for scan-vulnerabilityreport
Version (add all relevant versions):

Compliant kubernetes apps version v0.19

Definition of Done

find the root cause of the error
apply a fix or a workaround for it

didn't see it anymore


Assert crashes app

Line 33 in HexColor.m
assert(7 == hexString.length || 4 == hexString.length);
This crashes the app if the hexString is not the right length. I'd be nice if it just provided a default color instead of crashing. My solution:
    if (7 != hexString.length && 4 != hexString.length) {
        NSString *defaultHex    = [NSString stringWithFormat:@"0xff"];
        unsigned defaultInt = [[self class] hexValueToUnsigned:defaultHex];

        HXColor *color = [HXColor colorWith8BitRed:defaultInt green:defaultInt blue:defaultInt alpha:1.0];
        return color;
    }

It's not perfect, but I think providing a wrong color is a much better experience than crashing the app. Also, I think error handling belongs inside that library rather than outside of it.
Thanks

prefixing will be in the next major release. breaking the current implementation


Loss function does not decrease

The loss remains at 2.97, which is close to the initial value，its performance is as follows:
Epoch: [3][1700/2512]   Time 0.556 (946.500)    Data 0.546 (929.288)    Loss 2.977 Epoch: [3][1750/2512]   Time 0.557 (975.468)    Data 0.547 (957.740)    Loss 2.977 Epoch: [3][1800/2512]   Time 0.557 (1002.367)   Data 0.546 (984.131)    Loss 2.976 Epoch: [3][1850/2512]   Time 0.556 (1029.715)   Data 0.546 (1010.939)   Loss 2.976 Epoch: [3][1900/2512]   Time 0.557 (1058.871)   Data 0.547 (1039.615)   Loss 2.975 Epoch: [3][1950/2512]   Time 0.556 (1085.180)   Data 0.546 (1065.417)   Loss 2.975 Epoch: [3][2000/2512]   Time 0.556 (1112.911)   Data 0.546 (1092.618)   Loss 2.976 Epoch: [3][2050/2512]   Time 0.557 (1141.840)   Data 0.547 (1121.041)   Loss 2.976 Epoch: [3][2100/2512]   Time 0.556 (1168.497)   Data 0.546 (1147.199)   Loss 2.975 Epoch: [3][2150/2512]   Time 0.556 (1196.627)   Data 0.546 (1174.804)   Loss 2.975 Epoch: [3][2200/2512]   Time 0.557 (1225.442)   Data 0.547 (1203.099)   Loss 2.975 Epoch: [3][2250/2512]   Time 0.556 (1252.026)   Data 0.546 (1229.191)   Loss 2.975 Epoch: [3][2300/2512]   Time 0.556 (1279.078)   Data 0.546 (1255.758)   Loss 2.975 Epoch: [3][2350/2512]   Time 0.556 (1308.258)   Data 0.546 (1284.438)   Loss 2.975 Epoch: [3][2400/2512]   Time 0.556 (1334.303)   Data 0.546 (1310.024)   Loss 2.976 Epoch: [3][2450/2512]   Time 0.555 (1360.843)   Data 0.545 (1336.055)   Loss 2.975 Epoch: [3][2500/2512]   Time 0.556 (1390.264)   Data 0.546 (1364.993)   Loss 2.976 Train: [3]      Time 1393.267   Data 1367.887   Loss 2.976 Epoch: [3][0/38]        Time 7.631 (7.631)      Data 7.345 (7.345)      Dist 0.564      MinDist 0.393    Val: [3]        Time 48.641     Data 38.395     Dist 0.572      MinDist 0.415
I am not sure if it is related to these warnings when I running this project.

=>no checkpoint found at 'none'
/usr/local/lib/python2.7/dist-packages/skimage/transform/_warps.py:84:` UserWarning: The default mode, 'constant', will be changed to 'reflect' in skimage 0.15.
warn("The default mode, 'constant', will be changed to 'reflect' in "
('Starting epoch number:', 1, 'Learning rate:', 0.001)
/Where-are-they-looking-PyTorch-master/train.py:46: UserWarning: invalid index of a 0-dim tensor. This will be an error in PyTorch 0.5. Use tensor.item() to convert a 0-dim tensor to a Python number
self.losses.update(loss.data[0], inputs_size)

These SourceChangeWarnings:
"/usr/local/lib/python2.7/dist-packages/torch/serialization.py:367: SourceChangeWarning: source code of class 'torch.nn.modules.container.Sequential' has changed. you can retrieve the original source code by accessing the object's source attribute or set torch.nn.Module.dump_patches = True and use the patch tool to revert the changes.
warnings.warn(msg, SourceChangeWarning)
/usr/local/lib/python2.7/dist-packages/torch/serialization.py:336: UnicodeWarning: Unicode unequal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
if original_source != current_source:
/usr/local/lib/python2.7/dist-packages/torch/serialization.py:367: SourceChangeWarning: source code of class 'torch.nn.modules.conv.Conv2d' has changed. you can retrieve the original source code by accessing the object's source attribute or set torch.nn.Module.dump_patches = True and use the patch tool to revert the changes.
warnings.warn(msg, SourceChangeWarning)
/usr/local/lib/python2.7/dist-packages/torch/serialization.py:367: SourceChangeWarning: source code of class 'torch.nn.modules.activation.ReLU' has changed. you can retrieve the original source code by accessing the object's source attribute or set torch.nn.Module.dump_patches = True and use the patch tool to revert the changes.
warnings.warn(msg, SourceChangeWarning)
/usr/local/lib/python2.7/dist-packages/torch/serialization.py:367: SourceChangeWarning: source code of class 'torch.nn.modules.pooling.MaxPool2d' has changed. you can retrieve the original source code by accessing the object's source attribute or set torch.nn.Module.dump_patches = True and use the patch tool to revert the changes.
warnings.warn(msg, SourceChangeWarning)
/usr/local/lib/python2.7/dist-packages/torch/serialization.py:367: SourceChangeWarning: source code of class 'torch.nn.modules.dropout.Dropout' has changed. you can retrieve the original source code by accessing the object's source attribute or set torch.nn.Module.dump_patches = True and use the patch tool to revert the changes.
warnings.warn(msg, SourceChangeWarning)
/usr/local/lib/python2.7/dist-packages/torch/serialization.py:367: SourceChangeWarning: source code of class 'torch.nn.modules.linear.Linear' has changed. you can retrieve the original source code by accessing the object's source attribute or set torch.nn.Module.dump_patches = True and use the patch tool to revert the changes.
warnings.warn(msg, SourceChangeWarning)"

I hope you can help solve this problem. Looking forward to your reply. Thanks.

Hi MengsiYan, I have recently realized there are several bugs with our implementation after going through the paper again. We plan to address these soon and try to attain the results similar to the paper. The bugs are related to the shifted grids and label size part. Also, we did not perform data augmentation and we should.
If you require urgently, you can switch off the shifted grids and make the number of labels to be 100 and output fc layer to be 10x10 which would give you some okayish results but not perfect

Hi, the issued have been fixed mostly and the model is working decently. Please feel free to take a look :)


Fix broken URLs

@bridgetkromhout This should fix it

It's only a PR away ;)

Ah, yeah, this fixes things in a netlify context. nice.


I am having issues using the attach_dbs with docker-compose

So I have a few issues with the attach_dbs when using it with docker-compose, I attempted building off of the example json which fails as invalid JSON so I cleaned it up.
[
   {
      "dbName":"MaxDb",
      "dbFiles":[
         "C:\\temp\\maxtest.mdf",
         "C:\\temp\\maxtest_log.ldf"
      ]
   },
   {
      "dbName":"PerryDb",
      "dbFiles":[
         "C:\\temp\\perrytest.mdf",
         "C:\\temp\\perrytest_log.ldf"
      ]
   }
]

Am I supposed to have this configured differently ?

[@beaudryj] Does it work with docker run?
docker run -d -p 1433:1433 -v C:/temp/:C:/temp/ -e sa_password= -e ACCEPT_EULA=Y -e attach_dbs="[{'dbName':'SampleDB','dbFiles':['C:\temp\sampledb.mdf','C:\temp\sampledb_log.
ldf']}]" microsoft/mssql-server-windows-express

I'll try it out when I get home, but why should that matter if both methods are going to be grabbing an environment variable that is being set?

It should not - I want to start by excluding everything else and see if the simple docker run with the attach_dbs var works on your side.

when I run the docker run it fails to find the files

Do you have the C:\temp\sampledb.mdf and C:\temp\sampledb_log.ldf files on the host?

I used mine but yes

Do you mind posting the exact error so we can repro on our side?

Also, I am assuming that you can docker run the microsoft/mssql-server-windows-express container if you do not pass the attach_dbs var?

Could you please try the following when you can (added \):
docker run -d -p 1433:1433 -v C:/temp/:C:/temp/ -e sa_password= -e ACCEPT_EULA=Y -e attach_dbs="[{'dbName':'SampleDB','dbFiles':['C:\temp\sampledb.mdf','C:\temp\sampledb_log.
ldf']}]" microsoft/mssql-server-windows-express

I was able to repro this behavior locally. By doing the following I was able to successfully run and connect to the container bypassing the error:

Assign an sa_password (E.g. -e sa_password=Password1!) instead of leaving it blank. [Sorry about that, I should have put a sample password (E.g. sa_password=<YourStrongPassword!>) in the docker run command above]
Not using the -a at the end of the command. We are currently looking into this to figure out why this is causing an issue. Will let you know what we find.

Could you please try the following and see if it works on your end (passing and sa_password and omitting the -a at the end):
docker run -d -p 1433:1433 -v C:/temp/:C:/temp/ -e sa_password=Password1! -e ACCEPT_EULA=Y -e attach_dbs="[{'dbName':'SampleDB','dbFiles':['C:\temp\sampledb.mdf','C:\temp\sampledb_log.
ldf']}]" microsoft/mssql-server-windows-express

so it is not outputting anything now and when I do a docker ps there are no containers

What environment are you using? Windows/Linux and what version
What is the docker version that you have installed (docker info)

Thanks! Let me see if I can repro the same behavior on the same environment.

Just noticed on the os version thats running server 2016 not win 10

Are you on a Windows 10 or Windows Server 2016 host?

Windows Server 2016 Host

Did you follow the below article to setup?
https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-windows-server

Yeah I did.

Let me setup a Win 2016 machine and get back to you.

👍 thank you for the quick replys, in the mean time I pulled down the dockerfile and force set the variables. I wonder if it would be possible to refactor this in a way to have the script convert the yml down to JSON for people using docker compose.
ex:
services:
  db:
    image: microsoft/mssql-server-windows-express
    environment:
      sa_password: "Password1"
      ACCEPT_EULA: "Y"
      attach_dbs:
        dbname: sampledb
        dbfiles: '["C:\\temp\\maxtest.mdf","C:\\temp\\maxtest_log.ldf"]'
    ports:
      - "1433:1433" # REMARK: This is currently required, needs investigation

No problem :) Converting yml to JSON is a good idea - I'll add it to our backlog.

https://github.com/Microsoft/mssql-docker/issues/41

I followed all the instructions here (just to double check): https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-windows-server on a brand new Windows Server 2016 VM and I was not able to repro your issue.
Is it possible to share screens and troubleshoot further?

Sure I might be able to get something going tomorrow

Sounds good - Ping me when you are ready.

So I revisited your formatting and believe there was a typo in my JSON in terms of working with double quotes and single quotes

Does it work on your side now? Should we close this issue?

Yeah I think so.

Thanks [@beaudryj].

@perrysk-msft
Hi,
I am also have a problem running the attach_dbs from docker-compose.  Running the exact same command via docker run works just fine.  The container starts just fine, I can connect and validate that the volume (c:\temp) is there and I can see the mdf/ldf file.
Below is my docker-compose file and the error I am receiving.
Thanks
docker-compose
version: '3'
services:
db:
image: microsoft/mssql-server-windows
environment:
sa_password: "P@ssword!"
ACCEPT_EULA: "Y"
attach_dbs: "[{'dbName':'DemoAE','dbFiles':['C:\temp\DemoAE.mdf','C:\temp\DemoAE.ldf']}]"
volumes:
- "c:/temp:c:/temp"
tty: true
networks:
default:
ipv4_address: <IP_ADDRESS>
Error:
Compose starts but error attaching db's:
db_1   | ConvertFrom-Json : Unrecognized escape sequence. (49): [{'dbName':'DemoAE',
db_1   | 'dbFiles':['C:\temp\DemoAE.mdf','C:\temp\DemoAE.ldf']}]
db_1   | At C:\start.ps1:36 char:30
db_1   | + $dbs = $attach_dbs_cleaned | ConvertFrom-Json
db_1   | +                              ~~~~~~~~~~~~~~~~
db_1   |     + CategoryInfo          : NotSpecified: (:) [ConvertFrom-Json], ArgumentEx
db_1   |    ception
db_1   |     + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Co
db_1   |    mmands.ConvertFromJsonCommand

Would be nice if you guys could post what the fix actually was im still having the same problem. Any help ?

Mine was a matter of using 4 \\ on the file path instead of 1 or 2
On Mon, Nov 6, 2017 at 4:54 PM pradley<EMAIL_ADDRESS>wrote:

Would be nice if you guys could post what the fix actually was im still
having the same problem. Any help ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/mssql-docker/issues/40#issuecomment-342300246,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACgvXFIHQuDjHfKJWCC9nH05ERDRFjrsks5sz4ACgaJpZM4MWFiN
.

it work with this env:
attach_dbs: [{'dbName':'DemoAE','dbFiles':['C:\temp\DemoAE.mdf','C:\temp\DemoAE.ldf']}]
without quotation environment variable and use \ instate of \


fix: Add JSON payload images in apk

Fixes #1610
Changes:

Add speaker and sponsor images in apk
Add option to load images from asset URI via Picasso
Add tests for URI converter

@arp95 @mahikaw @Shailesh351 You may review as well

@arp95 @Shailesh351 @mahikaw @shreyasnbhat @rohanagarwal94 Please review

Unit tests are detached from any network and other real life constraints. We can't add those considerations in them. If the images are not present. Picasso will show the error image.
In short, it's the job of Picasso

@arp95 @Shailesh351 Please review now

@arp95 Please review

@niranjan94 Please merge


Not enough info on data virtualization

There is an off-hand comment on a different page about data virtualization but no indication if this control actually supports virtualization (e.g. correctly using the IEnumerable in the ItemsSource to only retrieve data when necessary). If the only form of “virtualization” is the (cumbersome) event-driven version then it should be explicitly stated that this control does not support true data virtualization.

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

ID: 12370c4e-0935-d43a-7d28-32a10a30074f
Version Independent ID: bb1eccf7-c1b8-25b1-5325-3b37a9b1bd94
Content: Xamarin.Forms CollectionView Data - Xamarin
Content Source: docs/xamarin-forms/user-interface/collectionview/populate-data.md
Product: xamarin
Technology: xamarin-forms
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Hi @jefffhaynes
Thanks for your feedback. I've added a note to the doc to specify that only incremental data virtualisation is supported, in a PR that will go live later today.


Remove base AuthChecker

There is a base AuthChecker that gets added that isn't relevant to most projects.  Remove it.

Done.


Exception at com.android.okio.Util.checkOffsetAndCount (Util.java:29)

Got this from a user
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException
com.android.okio.Util.checkOffsetAndCount (Util.java:29)
com.android.okhttp.internal.http.HttpURLConnectionImpl.disconnect (HttpURLConnectionImpl.java:113)
com.danikula.videocache.HttpUrlSource.close (HttpUrlSource.java:80)
com.danikula.videocache.ProxyCache.closeSource (ProxyCache.java:160)
com.danikula.videocache.ProxyCache.readSource (ProxyCache.java:141)
com.danikula.videocache.ProxyCache.access$100 (ProxyCache.java:19)
com.danikula.videocache.ProxyCache$SourceReaderRunnable.run (ProxyCache.java:179)
java.lang.Thread.run (Thread.java:818)

seem here. Is this possible to rewrite use okHttp from square?

I'm seeing this a lot as well. It seems to be related to Android 5 according to Crashlytics.

Yes mostly on Android 5.0.1

Looks like related to https://github.com/square/okhttp/issues/658

@danikula could you please review?

This error is coming on android 5 devices.
stacktrace from my application:
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException
       at com.android.okio.Util.checkOffsetAndCount(Util.java:29)
       at com.android.okio.Okio.copy(Okio.java:39)
       at com.android.okhttp.internal.http.HttpConnection$AbstractSource.cacheWrite(HttpConnection.java:378)
       at com.android.okhttp.internal.http.HttpConnection$FixedLengthSource.read(HttpConnection.java:449)
       at com.android.okhttp.internal.Util.skipAll(Util.java:227)
       at com.android.okhttp.internal.http.HttpConnection.discard(HttpConnection.java:212)
       at com.android.okhttp.internal.http.HttpConnection$FixedLengthSource.close(HttpConnection.java:464)
       at com.android.okhttp.internal.Util.closeQuietly(Util.java:97)
       at com.android.okhttp.internal.http.HttpEngine.close(HttpEngine.java:434)
       at com.android.okhttp.internal.http.HttpURLConnectionImpl.disconnect(HttpURLConnectionImpl.java:113)
       at com.android.okhttp.internal.http.DelegatingHttpsURLConnection.disconnect(DelegatingHttpsURLConnection.java:93)
       at com.android.okhttp.internal.http.HttpsURLConnectionImpl.disconnect(HttpsURLConnectionImpl.java:25)
       at com.facebook.ads.internal.g.b.h.b(h.java)
       at com.facebook.ads.internal.g.b.k.h(k.java)
       at com.facebook.ads.internal.g.b.k.e(k.java)
       at com.facebook.ads.internal.g.b.k.a(k.java)
       at com.facebook.ads.internal.g.b.k$a.run(k.java)
       at java.lang.Thread.run(Thread.java:818)

I'm getting this error a lot as well. @danikula could you review @CAMOBAP795's solution.

Fix by @CAMOBAP795 was provided 4 month ago, no reaction from the owner?

ok, I've forked @CAMOBAP795 's fix, and created a release, so now you can use it from jitpack.io

Real problem is described here. @CAMOBAP795  solution works, but it hides the real problem. Version 2.5.0 resolves the problem.


Background

How exactly would I go about changing the background? Much luv on the work homie.

Thanks! You can do that in the app.css file in the selector below, where it says background-color
:root {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
    Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  background-color: black;
}

Thanks! You can do that in the app.css file in the selector below, where it says background-color
:root {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
    Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
  background-color: black;
}

And how do I make it like a png I have? Also, do you have any NFTs for sale? When I am squared up I will look to purchase forsure. Gotta support the homies that are making my project possible.

And how do I make it like a png I have? Also, do you have any NFTs for sale? When I am squared up I will look to purchase forsure. Gotta support the homies that are making my project possible.

And how would I change it to a .png I have? Do you have any NFTs for sale? When I'm squared up I'll be looking to purchase... Gotta take care of the homies making my project possible.

And how would I change it to a .png I have? Do you have any NFTs for sale? When I'm squared up I'll be looking to purchase... Gotta take care of the homies making my project possible.


Kernel build is not sandboxed

Issue description
The kernel module build seems not to be correctly sandboxed:
trace.txt
The use_blk_mq and mobile_lpm_policy modules that modinfo complains about are modules from my (building, but not nixos) local machine and not modules from the remote one, so there seems to be impureness happening when building modules. It’s reproduced with linuxPackages_latest and linuxPackages_hardened, both with sandbox = true and sandbox = relaxed. I’m not in a position to correctly test linuxPackages (I see no reason for it to be different though)
Steps to reproduce
Set boot.kernelPackages = pkgs.linuxPackages_latest in a nixops build, and try to build.
Technical details

system: "x86_64-linux"
host os: Linux 4.20.13-arch1-1-ARCH, Arch Linux, noversion
multi-user?: yes
sandbox: relaxed
version: nix-env (Nix) 2.2.1
channels(root): "nixpkgs-18.09.1834.9d608a6f592"
channels(immae): ""
nixpkgs: /nix/store/0ncif1fzmmcsx5f6h7c1ah9pzd8pgc10-nixexprs.tar.xz

(the nixpkgs version used to build the derivation was https://releases.nixos.org/nixos/19.03/nixos-19.03.172361.cf3e277dd0b/nixexprs.tar.xz )
cc @nh2

Note: it seems to be harmless anyway, at least in my case, as everything boots correctly

Is this still happening on recent nixpkgs ? (there were some major changes to pkgs/build-support/kernel/modules-closure.sh in the meantime)
Also I assume that these modules (and their options) were referenced on the kernel command line (i.e. /proc/cmdline) in your case? modprobe parses that, so that's probably the source of the impurity.

@xaverdh : the server that has the terms in /proc/cmdline is now gone (but I can confirm that it had ahci.mobile_lpm_policy=0 dm_mod.use_blk_mq=0 scsi_mod.use_blk_mq=0 in it). All my remaining machines now have a "standard" content there so I’m now unable to reproduce this...
If you believe that the recent change fixed that feel free to close the issue!

My attempt at fixing this is here


Implemented unicast responses to direct unicast, unicast questions and legacy unicast queries.

Draft for now as I now need to construct some tests for this to verify it functions as expected.
One missing area for now is the following from RFC 6762:

When receiving a question with the unicast-response bit set, a
responder SHOULD usually respond with a unicast packet directed back
to the querier.  However, if the responder has not multicast that
record recently (within one quarter of its TTL), then the responder
SHOULD instead multicast the response so as to keep all the peer
caches up to date, and to permit passive conflict detection.  In the
case of answering a probe question (Section 8.1) with the unicast-
response bit set, the responder should always generate the requested
unicast response, but it may also send a multicast announcement if
the time since the last multicast announcement of that record is more
than a quarter of its TTL.

Implementing the above will require storing the time in which each service record was last multicasted on each specific interface so is therefore quite complex. For now I have simply used the logic that if all the questions in a given query request a unicast response, a unicast response is sent.

Draft for now as I now need to construct some tests for this to verify it functions as expected.
One missing area for now is the following from RFC 6762:

When receiving a question with the unicast-response bit set, a
responder SHOULD usually respond with a unicast packet directed back
to the querier.  However, if the responder has not multicast that
record recently (within one quarter of its TTL), then the responder
SHOULD instead multicast the response so as to keep all the peer
caches up to date, and to permit passive conflict detection.  In the
case of answering a probe question (Section 8.1) with the unicast-
response bit set, the responder should always generate the requested
unicast response, but it may also send a multicast announcement if
the time since the last multicast announcement of that record is more
than a quarter of its TTL.

Implementing the above will require storing the time in which each service record was last multicasted on each specific interface so is therefore quite complex. For now I have simply used the logic that if all the questions in a given query request a unicast response, a unicast response is sent.

Sounds good to me, to implement this part later / separately.


Support ProtoDataSotre

To konw how to use, look updated README.md and sample app.

Hi @S-H-Y-A
Thanks for this PR, it looks promising!!
I will take a look this weekend and give you feedback!

I will get a release later this afternoon


Remove vendored libraries and rely on the Zig package manager

My understanding is that the Zig package manager will eventually support pulling down non-zig code and using it in the build process. Maybe this is already possible?
But this would remove all of the files in ./lib. Doing this would make it much easier to update subprojects like Luau or LuaJIT, which have more frequent updates. It also makes it more clear that Ziglua actually does rely on Lua, and that we haven't tampered with the source code.
We could rely on the upstream project for everything except Lua 5.1. https://github.com/natecraddock/ziglua/issues/2 reported a CVE that some distros have patched in Lua 5.1, but that Lua hasn't patched. So I would make a lua repo that contains the full history of Lua, and then that patch.

I actually generally like vendored in libs because then the source code to the libraries is handily available in the project.  However, in the case of Luau, I notice that some parts of Luau are missing from the currently vendored code, like the Analysis folder.
I recently realized that luau-analyze is missing some useful functionality like being able to specify type declaration files on the command line.  Again, the docs for this are sorely missing from luau, but the idea is that you can declare types for any classes, types or functions that your "engine" (the thing embedding luau into) might declare.  Like if you have a game engine and it registers a bunch of classes and functions when you load the Lua state, then you can static check your game code against those types.  Except that right now you can't, since luau-analyze doesn't seem to have a way to specify what type defs to load.  This is supported in https://github.com/JohnnyMorganz/luau-lsp and that's how I've become familiar with this feature, I'd just like to be able to have the analysis option available on the command line too.
Why is this relevant here? Well, if the Luau lib is pulled from the Zip package manager as the original source tarball, I could amend the Zig luau parts to expose everything that's needed for analysis.  Then it'd be straightforward to implement a zig-luau-analyze tool that's more fully featured that Luau's own luau-analyze.

I saw the email notification a few days ago and came here just now prepared to reply. Guess I don't have to anymore 😂
I started work on this today. I am currently updating Ziglua to use the changes in https://github.com/ziglang/zig/pull/18160 and it makes sense to also remove the vendored libraries at the same time for simplicity.
I guess I'm mostly commenting this to let you know I saw your many issues and PRs over the last week. I'm slowly working through them now :)

Bummer that the luau-analyze isn't fully featured.

I've given this about 2 seconds of thought, but it's possible that we could include a more fully featured version of luau-analyze with ziglua. Let's just see how the Luau bindings progress over time and what is needed


Instagram live?

Hello!
I really love your application, it's an amazing way to watch the instagram stories! Do you think you could add the instagram lives too?
Thanks in advance!

@tbwktm Currently you can watch Instagram Live Videos on Matcha (https://watchmatcha.com/) which I am developing as a better version of Chrome IG Story. I'll consider adding Live Videos support to this extension as well.

@CaliAlec Amazing, thank you so much!

How about Live stories? Like public broadcast stories


[BUG] Can't import sparse operation kit in nvcr.io/nvidia/merlin/merlin-tensorflow-training:22.02

Describe the bug
Can't import sparse operation kit in nvcr.io/nvidia/merlin/merlin-tensorflow-training:22.02
To Reproduce
Steps to reproduce the behavior:

How to build including docker pull & docker run commands
docker run -it nvcr.io/nvidia/merlin/merlin-tensorflow-training:22.02 python3 -c "import sparse_operation_kit as sok"

Expected behavior
Shouldn't fail.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):

OS: [e.g. Ubuntu xx.yy]
Graphic card: [e.g. a single NVIDIA V100 or NVIDIA DGX A100]
CUDA version: [e.g. CUDA 11.x]
Docker image

Additional context
Stack trace

================
== TensorFlow ==
NVIDIA Release 22.01-tf2 (build 31081301)
TensorFlow Version 2.7.0
Container image Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
Copyright 2017-2022 The TensorFlow Authors.  All rights reserved.
Various files include modifications (c) NVIDIA CORPORATION & AFFILIATES.  All rights reserved.
This container image and its contents are governed by the NVIDIA Deep Learning Container License.
By pulling and using the container, you accept the terms and conditions of this license:
https://developer.nvidia.com/ngc/nvidia-deep-learning-container-license
WARNING: The NVIDIA Driver was not detected.  GPU functionality will not be available.
Use the NVIDIA Container Toolkit to start this container with GPU support; see
https://docs.nvidia.com/datacenter/cloud-native/ .
NOTE: MOFED driver for multi-node communication was not detected.
Multi-node communication performance may be reduced.
NOTE: The SHMEM allocation limit is set to the default of 64MB.  This may be
insufficient for TensorFlow.  NVIDIA recommends the use of the following flags:
docker run --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 ...
[INFO]: sparse_operation_kit is imported
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python3.8/dist-packages/SparseOperationKit-1.1.1-py3.8-linux-x86_64.egg/sparse_operation_kit/init.py", line 19, in
from sparse_operation_kit.core._version import version
File "/usr/local/lib/python3.8/dist-packages/SparseOperationKit-1.1.1-py3.8-linux-x86_64.egg/sparse_operation_kit/core/init.py", line 22, in
from sparse_operation_kit.core.embedding_variable_v2 import EmbeddingVariable
File "/usr/local/lib/python3.8/dist-packages/SparseOperationKit-1.1.1-py3.8-linux-x86_64.egg/sparse_operation_kit/core/embedding_variable_v2.py", line 31, in
from tensorflow.distribute import get_strategy, has_strategy
ImportError: cannot import name 'get_strategy' from 'tensorflow.distribute' (/usr/local/lib/python3.8/dist-packages/tensorflow/distribute/init.py)

Works fine for nvcr.io/nvidia/merlin/merlin-tensorflow-training:22.01

@cmgreen210 That went faster than expected. Can you try checking out the https://github.com/NVIDIA-Merlin/HugeCTR/commits/master to see if that fixes your problem?

Closing. Officially fixed in v3.4.1.


typo in the docs @Persist State

If I'm not mistaking preStoreUpdate is key : function but in the docs its written like normal function inside of an object.
https://netbasal.gitbook.io/akita/enhancers/persist-state
Angular 9+

That's fine. This is just another way to write a function. But I'll change it to be consistent. Thanks.


Need schema for configuring 'services'

@heathbar: An idea for configurations: The service author defines a schema and we have a UI component that dynamically renders the appropriate controls on the edit page.
For example, as the author of the xyz service, I could provide a configuration schema like this:
{
    username: {
        label: 'User Name',
        type: 'text-input'
    },
    password: {
        label: 'Password',
        type: 'password-input'
    },
    mode: {
        label: 'XYZ Mode',
        type: 'radio',
        options: ['alpha', 'beta', 'charlie']
    }
}

Hopefully you follow.
The good is that the user feels like they get a custom page tailor-made to each service. No editing of config files.
The bad is that service authors need to learn our custom JSON syntax.

@heathbar.
Here's my initial draft of a schema. I'm not tied to any ideas and would love your feeedback:
Authors would create a .thconfig.json in the root of their project, providing us with the info needed to display the appropriate fields for their product. the schema file could be validated by this thconfig.schema.json file:
{
    "meta": {
        "organization": "string",
        "stats_endpoint": "string", // href for anonymous usage stats for their product (if allowed by user)
        "documentation": "string" // href
    },
    "config": {
        "url": "string", // possibly a place for us to send users to configure their device, which would send us back the appropriate config data
        "fields": [
            {
                "id": "string",
                "label": "string", // doubles as placeholder
                "type": "string", // whitelisted
                "prefix": "string", // either
                "validation": "string", // possibly regex, though that could get unsafe
                "min": "number",
                "max": "number",
                "required": "boolean", // defaults to true
                "default": "any",
                "hint": "string"
            }
        ]
    },
    "interactions": {
        "url": "string", // href ...maybe
        "fields": [
                 // either statically provided here or dynamically written after config
        ]
    }
}

+1 for the .thconfig.json file
meta: looks good
config: we also need to consider radio or drop-down-list fields. How do we specify the options? Perhaps we add a "values": ["a", "b", "c"] element?
config: we also need to consider repeating elements/sections. For example, when configuring MQTT, each feed will need a name, topic, host, port, tls info, etc. So we will need to duplicate all of those fields as many times as the user needs. Perhaps we reuse the values element from above? We could fill the array with the field IDs that need to be rendered in each row of the list.
interactions: I don't follow what this is for, but it may be related to my next item.
There is another use case for configuration that may be out of scope for this solution, but I wanted to at least surface it here. Some devices require a pairing process. For instance, my TV can be discovered with a standard SSDP query, but before one can use the API, a probe must be sent to the TV's API. The TV displays a pin on the screen which needs to be sent back to the TV via the API within 90 seconds. The TV returns a token which can be used in subsequent requests. Without getting too much into the weeds on this particular example, does the 'pairing process' fit into the .thconfig.json file, or is that a separate concern? Maybe there is an optional setup-wizard interface that package authors can implement if needed.

config: I think we can add keys as we find needs, but I agree that a values element would be valuable for drop-downs and radios, as well as sliders if we wish. Would a "repeatable": "boolean | number" key make sense? And we could just append the id of the repeated field with a numeric value.
pairing:  I'm guessing the node authors don't usually handle the pairing process since the lib would need access to the ports and protocols handling the request. We could add a "pair" object that includes a schema for the send and receive packets, though It would be somewhat strange having the json file be both a data and schema file. I'm thinking we need to think more about this.
interactions: This was just an idea for the lib authors to provide default controls for their product.

Adding a repeatable key only allows us to repeat a single field, right? What if I need the same 4 fields repeated/grouped? I think we want a new field type named repeatable than can nest other fields inside.

FWIW: I was struggling with where to put the friendly/display name of Connectors. I borrowed/stole the thconfig.json idea, so if you pull latest, each connector now has a very simple thconfig.json file.


JUnit Test Extension for MockWebServer

When wrapping APIs we test the code using mockwebserver in JUnit.
I use to inline the HTTP responses in Strings, but eventually moved to putting the responses in files in the test resource classpath instead as some APIs can return huge responses. This isn't really a big deal but can be very messy and repetitive.
I feel it would be nice if there was a way to create a MockResponse using a resource in the classpath.
Following this it would be even better if there was a simple JUnit 5 Extension that could be used to start and stop the server, and create the MockResponse via an annotation.
I've already made something which does the MockResponse part as I actively desired this, you can see it here:
https://gist.github.com/SethiPandi/4c31a2fd01f6d7f0702fc089815d6c67
The classes TestUtils, Response, and MockResponseExtension are the implementation.
SteamTest is just what it would look like to use it.
The example code I've provided is probably nowhere near good enough for an official implementation; it's just to give an idea of what I mean and why I think it'd be nice.

Sorry, we aren't going to commit to doing this.
See a mostly dupe issue https://github.com/square/okhttp/issues/4667

MockWebserver probably isn't considered a top priority public API compared to the client, and upgrading this is awkward.

We have also avoided incremental improvements for this reason
https://github.com/square/okhttp/issues/5392
https://github.com/square/okhttp/issues/5380


SVG Support (desktop only)

Skija now supports SVG drawing (https://github.com/JetBrains/skija/commit/94d2141b37e1e87af036422f0f61c1d24389c31c)
So we can integrate SVG in Compose as well. We can implement something like this:
vectorSvgResource(resourcePath: String): Painter

and use it like this:
Image(vectorSvgResource("image.svg"))

Note that internally we should probably cache drawing into bitmap (using DrawCache, similar to androidx.compose.ui.graphics.vector.VectorComponent). It depends on performance.

@igordmn what left here?

what left here?

Support of Composable SVG isn't merged yet

Is there any timestamp on when will this get merged?

Soon I suppose (https://android-review.googlesource.com/c/platform/frameworks/support/+/1575164).
The changes are ready for review, but not reviewed yet.
You can copy-paste code from there to be able to use SVG.

Should this be closed because M3 is out?

Thanks for the reminder! Yes, this should be closed.
SVG is working in 0.3.1

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


JS error "swiper.a11y is undefined" when destroying swiper after click in slide

Check that this is really a bug

[X] I confirm

Reproduction link
no reproduction link
Bug description
I hope this description will show the problem I'm having difficulties to create a codesandbox.
In my vue project including the swiper (core, not vue) I have the problem getting an error message since v8.4.3 when clicking on a linked element in a slide:
Uncaught TypeError: swiper.a11y is undefined in a11y.js:195
I have to use the method beforeDestroy() to call swiper.destroy(deleteInstance, cleanStyles) with cleanStyles=false. But if the swiper is destroyed, swiper.a11y.clicked can't be set to false, because it is undefined after destruction.
As a workaround I am setting swiper.a11y = {} after calling swiper.destroy(deleteInstance, cleanStyles).
I suggest adding a check if swiper.destroyed is not true in src/modules/a11y/a11y.js:
const handlePointerUp = () => {
  requestAnimationFrame(() => {
    requestAnimationFrame(() => {
      if (!swiper.destroyed)
      swiper.a11y.clicked = false;
    });
  });
};

Expected Behavior
No javascript error when swiper is destroyed after clicking a link within a slide.
Actual Behavior
Receiving error message in console after clicking a link within a slide and destroying the swiper:
Uncaught TypeError: swiper.a11y is undefined in a11y.js:195
Swiper version
8.4.3
Platform/Target and Browser Versions
Windows Chrome 107
Validations

[X] Follow our Code of Conduct
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
[X] Make sure this is a Swiper issue and not a framework-specific issue

Would you like to open a PR for this bug?

[X] I'm willing to open a PR

Same happened for react version
React 18
Swiper 8.4.4
Chrome Version 107
Receiving error message in console after clicking a link within a slide and destroying the swiper:
Uncaught TypeError: Cannot set properties of undefined (setting 'clicked')
at a11y.js:195:21


images.edge.messenger.live.com is used by SfB Online to download Skype icon but not listed as required FQDN for SfB Online

Without bypassing this FQDN in proxy, users may keep getting network prompts after signing in SfB Online

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

ID: 077406d8-bff1-496e-3ea2-b38558fd9355
Version Independent ID: 57db3dec-2250-2dee-fd1a-ec6656911798
Content: Office 365 URLs and IP address ranges
Content Source: Enterprise/urls-and-ip-address-ranges.md
Service: o365-administration
GitHub Login: @JoeDavies-MSFT
Microsoft Alias: josephd

@MavisShi Moved this to an internal Microsoft discussion. Thanks.


Architecture: routing, navigation, introspection

Follow on from strimzi/strimzi-ui#6
Investigate and propose an approach for routing and navigation, and how GQL introspection can dynamically enable/disable routes in the UI

The first thing I have looked into is available libraries/options we could take, being:

Roll our own/use browser history
Reach router
Remix router
React router

Thoughts so far:

Our expected usage does not require anything bespoke - ie we should not need to (nor should we when libraries exist) write our own implementation
Remix is pre release, and has an interesting licence. It has some really nice features, but requires code to be layed out in a particular manner to work. The fact it has a non apache/MIT licence and is pre release for me means we should not use it for the Strimzi ui
Reach has been somewhat superceeded by react router - https://reacttraining.com/blog/reach-react-router-future/ - while maintained, focus is on React router going forward.

Current proposal:

Use the React Router library for routing implementation.

Next step for me is to consider how we could make use of GQL Introspection, and the metadata around a page. With some thought, a set of metadata could describe a page, and have parts of the page (or no page at all) be shown depending on what the backend can support. This meta can then be used to generate the routing/navigation implementation. Details to follow in my next comment.

Summary:
In considering the wider navigation, metadata to drive it and introspection, I have inadvertently dived down much lower into how the UI fundamentally could work than I was expecting. In doing so I have touched upon the intended metadata and introspection areas, but also authentication, authorization, feature flagging, client side configuration, security and access, translation, areas of global state as well as identifying a few pages/states/components the navigation would need available to be implemented. I have implemented a rough prototype to validate the approach where required, and confirmed it is viable. Below is a more detailed write up of my findings and what I have prototyped, but the short version is:

A change to keep Panels components a just component implementation. They still will implement a page, but the metadata for them will be split out into a new Pages module
This Pages metadata will bind a Panel component (via React suspense/lazy and error boundaries - https://www.npmjs.com/package/react-error-boundary) to 1 to N usages of that Panel across the UI as a page - referred to as contexts
contexts define a path at which the page will appear, its name, a feature flag for it, as well as a 'declarative' description of the type of page it is (along with other visual metadata). This is then used to render the navigation as required. It also details what is required to access it, from an authz point of view, but also from a backend implementation
The backend implementation is determined via GraphQL introspection. It maps the served Schema to Entities shown in the UI, and the ability to CRUD them. This logic is included in the UI Bootstrap code
A call will be made to the backend by the UI to discover what a user can do (authorization) across all backend entities
Both the backend support and authorization ability of a user will be represented in a simple CRUD type model, abstracting the implementation details of how these are provided from the wider UI
At runtime, Navigation code will 'discover' and process the page metadata, building a routing structure with respect to what has been configured to show, what the backend supports and what the user can access. If a page is not accessible by a user, they will be shown an appropriate error screen if they try to access it
Pages will be asynchronously loaded as a user (can and does) access them. This means the user only ever has the client side code they need (faster loading times)/should have access to. Support for this is already available in React, and our existing strimzi ui build. It will mean there may be a small loading state while the page is retrieved for the first time.

Next steps:
Discuss all this, and write up. Comments very welcome!
Full write up:
Security on example - user to provide username/password via oauth. If Security off, no challenge is made, and user can access/do everything (response from userauth call mentioned below). This security on state should be the more involved flow.

UI configured/deployed with oauth mechanism - this configuration is known by express, and handles the oauth dance on request
User accesses UI, Oauth dance completes and user is authenticated - express serves index/public content/config in html templated in
Bootstrap code inits - including Navigation

Config in index.html parsed and stored in context (configContext)
Core pages load as needed:

/ (while next phase occurs)
error pages (404, 403 etc) as well as 'no pages to show' state

Bootstrap calls express userauth endpoint, which replies with the user's name, and details of what they can/cannot do against authorized resources - eg topics, groups, cluster etc. Express (based on auth mechanism) to abstract how this info gathered depending on oauth/scram etc, and return UI specific entity/crud response (abstract the backing authz mechanism). Result referred to from now on as canI
Username and canI state stored in context
Bootstrap starts GQL Introspect - a GQL Query is made to the admin-api, and the response compared/mapped to what the UI requires to operate. loading state is shown. If error, error state shown
Introspect logic runs, result stored in context
When we have authz result and introspect results, we trigger the navigation to look at all the pages defined, and determine what we will show the user.

The navigation logic could work as follows:
import * as pages from 'Pages';

Where:
New alias - Pages => client/pages/
We deliberately do not hard code or reference a single page - this is meant to be dynamic. client/pages/ hosts a barrel file, which references a number of configuration modules.
Eg (Topic) Panel page.js:
export const Topic {
    contentComponent: () => import('Panel/Topic') // async import of view from a panel representing the whole topic page - must be exported as default to work - will be wrapped by suspense/lazy in nav code
    contexts: [ // all the contexts or scenarios that panel component is used in
        {
            name: TRANSLATION_KEY, // name of page - key used in translation
            path: '/path/to/page', // path for page - used for id (encoded) - must be unique
            feature_flag: PAGE.TOPICS, // feature flag for page
            order: 0, // simple numeric value to enable sorting if more than one peers are available
            Icon: <Icon />, // optional - a page may wish to have an icon to identify it in top level navigation, or at sub levels when there are many peers. If not required, should be undefined
            pageType: NORMAL, // type of page this is (and thus what supporting UI nav elements are rendered). Suggested types: NORMAL (1st level nav, 2nd level nav with title, breadcrumb if not top level page (based on route)), CREATE (back breadcrumb item only), HOME (1st level only)
            requiresMinimum: {  // minimum requirements of this page - if one element missing, will not render component - instead will be 404 (backendSupportFor) or 403 (authorizationOf) page
                backendSupportFor: {
                    Topic: {create, read, update, delete} // this page needs all these things supported by the backend for Entity 'Topic' - from GQL Introspect check
                },
                authorizationOf: {
                    Topic: {create, read, update, delete}, // this page needs a user to be able to CRUD a kafka topic - from authz check on login
                    Group: { read } // this page needs a user to be able to read kafka consumer groups - from authz check on login
                }
            },
            ... // other keys here as appropriate
        }
    ]
}

Note the content of Topic and Group above. Deliberately the values are generic CRUD type values, and do not map to actual backing implementation (eg Kafka ACLS). This keeps the format the same for both authz and introspection.
We use these pages metadata shapes when we have both authz and introspect results as mentioned in a registerPages function:
const routes = registerPages(Object.values(pages));

registerPages returns object, being:
{
    links: [] // Configuration for React Router `Link` components for all pages which are leafs of / .
    routes: [] // Configuration for React Router `Route` objects for all pages - the components they map to a result of the reduction of requiresMinimum.
    meta: { // metadata - a map of route to meta, such as the page name and type, as well as how pages relate.
        '/foo': {
            name: 'TRANSLATION_KEY',
            pageType: NORMAL,
            order: 0,
            icon: <Icon/>,
            isTopLevel: true, // specifies if a top level page (or not) - determined/derived by paths
            leaves: [{ // list child pages of this page - determined/derived by paths
                path: '/foo/bar',
                name: 'BAR_TRANSLATION_KEY'
            },
            ...]
        }
    }
}

determined by iterating over each 'page':

predefine standard routes - 404 403, loading etc
if path already processed - error - no duplicate paths allowed. If new, add to set processed for next iteration
if path leaf of /, create Link config entry for it.
looking at all objects and paths provided, see if any leafs of this leaf - calculate and store in meta if so
look at user's authz ability returned vs requiresMinimum.authorizationOf and introspect result for requiresMinimum.backendSupportFor from context.

if all present, Route contains path, and component = React.lazy call to component for this page
if requiresMinimum.authorizationOf not met, Route contains path, but component is custom 403 page (as user does not have all required rights)
if requiresMinimum.backendSupportFor not met, Route contains path, but component is custom 404 page (as backend cannot support request)

Resulting links and routes iterated and rendered by nav view logic:

Processed meta for current page provided via model to render (or not) sections of navigation UI, titles, icons etc
React router links and routes rendered to configured components, as per metadata
Nav logic will pass props and path parameters to panels rendered (current Entity name, forward/back functions etc)

In short, to fully enable all this we will need:
-Translation approach
-Loading state component
-Error state component
-404/403 page, loading page, error page, 'no pages' page (if user cannot access any pages, or if the backend cannot support any pages)
-User/auth context on client side - userauth express call which returns username and what they can do
-Entity available/introspect context and backing model logic
-General config context
-Nav component

Discovers (via alias) all 'Pages'
Renders routes for reduced set based on what the user can access and the backend can support
Renders supporting navigation page components (TBD)
Renders the following when async getting panel components on access:
-Loading state component (via suspense)
-Error state component (via error boundary - https://www.npmjs.com/package/react-error-boundary)


dark-overlay remains after window is resized larger than the breakpoint

another issue that I found while messing around is that when you have the window sized small enough to show the "Add Filter" button, and then click it, and then resize the window to a larger size than the breakpoint (at 1000px currently), the screen remains unusable with no way of getting rid of the overlay.  You have to resize the window below 1000px and then click on the "close" button.
I believe it would be best to restructure the css code a bit, but currently, I can only come up with the following:
window.onresize = function () {
  if (window.screen.width > 1000) {
     document.querySelector('.-js-dark-overlay').style.display = '';
 	 document.querySelector('.-js-filter-panel').style.display= '';
  }
}

You can use a CSS Media Query like this one:
@media (min-width: 1000px){      .dark-overlay.-js-dark-overlay { display: none !important; } }
Or you can attach the sidebar's close handler to the click event on overlay too

I might be wrong here, but I think our css linter prevents !important css calls (with good reason)

You're right, well that was the easy way. Another approach is to create a class for when the sidebar is open
.left-layout__sidebar.sidebar-open {
  .dark-overlay,
  .filter-panel {
    display: block;
  }
}

@media (min-width: 1000px){
  .left-layout__sidebar.sidebar-open {
    .dark-overlay{
      display: none;
    }
  }
}

Then instead of use inline-styles to show/hide the elements just add/remove this(.sidebar-open) class in .left-layout__sidebar, with this you'll avoid to override the Specificity of the classes.