az ssh config - windows - missing rpds python module

Command Name
az ssh config
Issue Summary
After upgrading Azure CLI from version 2.65 to 2.66, the az ssh config command now produces an error due to a missing module, rpds.rpds. This issue seems to specifically affect the az ssh config command, even when other ssh-related commands like az ssh vm function without issue. This differs from previous reports of rpds.rpds errors tied to az ssh vm or other SSH commands in the CLI.
Errors:
No module named "rpds.rpds"

This suggests that a dependency may be missing or was improperly packaged in the 2.66 update, leading to an unexpected failure in running SSH configuration commands.
Steps to Reproduce:

Upgrade Azure CLI from version 2.65 to 2.66.
Install any required extensions:

aks-preview (version 9.0.0b7)
azure-iot (version 0.25.0)
interactive (version 1.0.0b1)

Run:az ssh config --ip {Your_IP} --file {Path_to_File} --keys-dest-folder {Destination_Folder}

Expected Behavior
The command should execute successfully, generating SSH configuration files and placing them in the specified --keys-dest-folder without dependency-related errors.
Actual Behavior
The command fails with a ModuleNotFoundError: No module named "rpds.rpds" error, preventing SSH configuration.
Environment Summary
Operating System: Windows 11, Version 10.0.22631
Python: 3.12.7
Installer: MSI

Azure CLI version: 2.66.0
Extensions:
- aks-preview 9.0.0b7
- azure-iot 0.25.0
- interactive 1.0.0b1

Dependencies:
- msal 1.31.0
- azure-mgmt-resource 23.1.1

Additional Context
This bug seems unique to the 2.66 update, as it did not occur in 2.65. Attempting to downgrade may serve as a temporary workaround, but please note that downgrading is not always feasible depending on dependency requirements and setup configurations.
Why This Differs from #29938
While issue #29938 also references rpds.rpds errors, that issue generally impacts az ssh vm and similar commands, resulting from issues with SSH connection setups to Azure VMs. In this case, az ssh config fails independently, suggesting that the dependency error in version 2.66 may be specific to the configuration functions and related only to this command.

Thank you for opening this issue, we will look into it.

Thank you for opening this issue, we will look into it.

Thank you so much!
Strangely, 32 bit version of azure-cli (2.66.0) does not seem to have this problem on windows platform.

I have the same issue on Linux (Ubuntu 22.04) after upgrading the azure-cli package yesterday
❯ az --version
azure-cli                         2.67.0

core                              2.67.0
telemetry                          1.1.0

Extensions:
ssh                                2.0.6

Dependencies:
msal                              1.31.0
azure-mgmt-resource               23.1.1

Python location '/opt/az/bin/python3'
Extensions directory '/home/felested/.azure/cliextensions'

Python (Linux) 3.12.7 (main, Nov 13 2024, 04:02:11) [GCC 11.4.0]

Legal docs and information: aka.ms/AzureCliLegal

Your CLI is up-to-date.

Experiencing this on 2 different arm platforms;
From where I'm sitting it looks like there are missing dependencies in some of the Az CLI distributions.
Failing configuration: ubuntu 24.04 on arm with az cli 2.67.0:
$ az version
{
  "azure-cli": "2.67.0",
  "azure-cli-core": "2.67.0",
  "azure-cli-telemetry": "1.1.0",
  "extensions": {
    "bastion": "1.3.1",
    "ssh": "2.0.5"
  }
}

$ uname --operating-system
GNU/Linux

$ uname --hardware-platform
aarch64

Failing configuration: windows 11 on arm with az cli 2.66.0:
> az version
{
  "azure-cli": "2.66.0",
  "azure-cli-core": "2.66.0",
  "azure-cli-telemetry": "1.1.0",
  "extensions": {
    "bastion": "1.3.1",
    "ssh": "2.0.6"
  }
}

> Get-ComputerInfo | Select-Object OsName, OsArchitecture, OsHardwareAbstractionLayer, WindowsUBR, WindowsBuildLabEx
OsName                     : Microsoft Windows 11 Pro
OsArchitecture             : ARM 64-bit Processor
OsHardwareAbstractionLayer : 10.0.26100.1
WindowsUBR                 : 2314
WindowsBuildLabEx          : 26100.1.arm64fre.ge_release.240331-1435

Failing configuration: just updated the cli on the windows 11 on arm system, also did az upgrade after, but the error is still there with az cli 2.67.0:
> az version
{
  "azure-cli": "2.67.0",
  "azure-cli-core": "2.67.0",
  "azure-cli-telemetry": "1.1.0",
  "extensions": {
    "bastion": "1.3.1",
    "ssh": "2.0.6"
  }
}

Working configuration: windows 10 on x64 with az cli 2.65.0:
> az version
{
  "azure-cli": "2.65.0",
  "azure-cli-core": "2.65.0",
  "azure-cli-telemetry": "1.1.0",
  "extensions": {
    "account": "0.2.5",
    "aks-preview": "4.0.0b2",
    "bastion": "0.3.0",
    "devcenter": "4.0.1",
    "ssh": "2.0.2"
  }
}

> Get-ComputerInfo | Select-Object OsName, OsArchitecture, OsHardwareAbstractionLayer, WindowsUBR, WindowsBuildLabEx

OsName                     : Microsoft Windows 10 Pro
OsArchitecture             : 64-bit
OsHardwareAbstractionLayer : 10.0.19041.5072
WindowsUBR                 : 5131
WindowsBuildLabEx          : 19041.1.amd64fre.vb_release.191206-1406

Working configuration: just upgraded to az cl i 2.67.0 on the windows 10 system and it still works:
> az version
{
  "azure-cli": "2.67.0",
  "azure-cli-core": "2.67.0",
  "azure-cli-telemetry": "1.1.0",
  "extensions": {
    "account": "0.2.5",
    "aks-preview": "13.0.0b2",
    "bastion": "1.3.1",
    "devcenter": "6.1.0",
    "ssh": "2.0.6"
  }
}

Thank you for raising this issue. We are able to repro this behavior and are currently investigating how to best fix. Will update this issue once I have an estimate for a fix.

Python version bumped to 3.12 in 2.66.0.
ssh extension's dependency rpds-py does not have a cross-platform wheel, which means Python 3.11 package isn't compatible with Python 3.12.
Reinstalling the ssh extension should fix the issue: az extension remove -n ssh && az extension add -n ssh

Python version bumped to 3.12 in 2.66.0. ssh extension's dependency rpds-py does not have a cross-platform wheel, which means Python 3.11 package isn't compatible with Python 3.12.
Reinstalling the ssh extension should fix the issue: az extension remove -n ssh && az extension add -n ssh

Reinstalling ssh extension fix it in az cli 2.67.0 on WSL Ubuntu. Thank you very much indeed @bebound!

Found that it solves the WSL Ubuntu AZ CLI but breaks Windows AZ CLI.
Reinstalling ssh extension into Windows fix AZ CLI Windows BUT breaks WSL Ubuntu AZ CLI (-__-)

@marcoaversanoigt This should not happen.
Are you using az.exe in WSL, what's the output of az -v in WSL?

But it happens. I was forced to uninstall it from Windows, in linux is where I need it most, but it is a real issue to not have it in Windows..
~$ az -v

azure-cli                         2.67.0

core                              2.67.0
telemetry                          1.1.0

Extensions:
account                            0.2.5
ssh                                2.0.6

Dependencies:
msal                              1.31.0
azure-mgmt-resource               23.1.1

Python location '/opt/az/bin/python3'
Extensions directory '/home/marcox/.azure/cliextensions'

Python (Linux) 3.12.7 (main, Nov 13 2024, 04:02:11) [GCC 11.4.0]

Legal docs and information: aka.ms/AzureCliLegal

Your CLI is up-to-date.```

The last log indicates that you're using Windows' az on Linux.
Please see https://github.com/Azure/azure-cli/issues/13573#issuecomment-888791313 and https://github.com/Azure/azure-cli/issues/13573#issuecomment-1547125916. This is an issue caused by the C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin\az.
Workaround: change the PATH to ensure /usr/bin/ precedes /mnt/c/Program Files/Microsoft SDKs/Azure/CLI2/wbin.


Decide on sharing assemblies when loading using AssemblyLoadContext

The application uses AssemblyLoadContext to load plugins.
Plugins could sometime require the same library as another plugin. By default they are both isolated and the assembly will be loaded twice. This may not be the desired effect for some libraries.
Is technique for sharing libraries needed? How should it be done?
Same BaseLib, EF Core and Discord.NET libraries must be used, should we stick to using references like this one
      <PackageReference Include="Discord.Net" Version="2.4.0">
          <Private>false</Private>
          <ExcludeAssets>runtime</ExcludeAssets>
      </PackageReference>

or should we implement AssemblyLoadContext.Load(AssemblyName); to take care of these shared libraries for all plugins?

Part of this was implemented in #29.
Still some kind of sharing between plugins could be useful sometime.

Sharing between plugins would be overly-complicated as it would have to be in custom LoadContext that would be shared between the two plugins. If one of them was detached, the other would still need the libraries. If both of them were detached, library would need to be detached as well. This seems like a lot of work.
If we would need some kind of sharing objects between plugins, I think BaseLib should have some kind of way to communicate between plugins or just use something else like a pipe or pushing rows to the database etc.

Closing this for now


⚠ Bofrost.es has degraded performance

In b947cf7, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1095 ms

Resolved: Bofrost.es performance has improved in 4ec681b after 19 minutes.


What is the role of the parameter 'coord'?

在你们的代码中，经过数据预处理后得到了一个参数coord。在搭建神经网络时，以res18为例，self.back2中有定义额外的channel。在forward中，这个额外的channel就是为coord准备的。这个coord参数是如何得到的？它有什么作用和含义？为什么在原论文中没有提到这个参数？如果将这个参数删去会对结果造成什么影响？希望您解答一下我的困惑，感谢您。
In your code, after the data is preprocessed, a parameter coord is obtained. When building a neural network, take res18 as an example. There are additional channels defined in self.back2. In forward, this additional channel is prepared for coord.
The code in res18.py:
comb2 = self.back2(torch.cat((rev2, out2,coord), 1))
How is this coord parameter obtained? What is its meaning and role? Why is this parameter not mentioned in the Deeplung paper? If you delete this parameter, what effect will it have on the result? I hope you can answer my questions, thank you very much.

That is the crop coordinate of the current batch. There is no effect if you delete this parameter.

awesome


Add brc 137 inscription book collection

https://www.okx.com/web3/marketplace/nft/collection/btc/brc-137-inscription-book-2


2016 q4 version updates

update major versions in styles doc
update supported feature per style in styles doc (they all support everything now)
add note about minimum style versions needed for full icon support (/cc @burritojustice)

@kkowalsky the icons.md addition could use some serious word smithing, please :)


fixed ladder height

Fixed Ladder Height
Summary
Closes #330
Switched png ladder images to be svg images
Screenshots

Can you move the ladders down and maybe lengthen them? They don't extend down all the way

I am guessing should just need to modify the CSS file here.


Add didSet, willSet, get, and set to control keywords

The Swift Programming Language - Properties
Let me know if they should go elsewhere in the syntax and I'll make the change.
Thanks!

Thanks!

Available in 2.5.2.


Estimate tree height (part of #49)

Estimate tree height based on est_height, crown_diameter, diameter or circumference if height is not available.
Also, correctly subtract min_height from height or est_height.

It looks fine, but can you please use ?? instead of || in case you need to add a fallback value to a number | undefined? In this particular case it probably doesn't matter, but this is just so that this code fits the general code style. Thank you.
Also, keep in mind that this code probably won't be used for long. I'm going to migrate to self-hosted tiles soon, and all the logic for handling tags on the frontend will get simplified as quite a lot of stuff can be parsed/calculated on the backend during the tile generation process. See https://github.com/StrandedKitty/planetiler

and all the logic for handling tags on the frontend will get simplified as quite a lot of stuff can be parsed/calculated on the backend during the tile generation process. See https://github.com/StrandedKitty/planetiler

Is it really necessary to fork it? I would have thought that what gets put into the vector tiles would be configurable through some scriptable configuration. After all, pretty much every commercial vector tile service (MapTiler, Thunderforest, jawg.io, MapBox, ...) has a different schema with different names etc.

Is it really necessary to fork it? I would have thought that what gets put into the vector tiles would be configurable through some scriptable configuration. After all, pretty much every commercial vector tile service (MapTiler, Thunderforest, jawg.io, MapBox, ...) has a different schema with different names etc.

Existing schemas don't really suit 3D applications, they are meant for 2D rendering. In the readme of my fork there's a list of the most substancial changes that were made. It's not possible to implement them by just modifying some config.

@westnordost Thank you, I will transfer your height calculation logic to the Planetiler fork soon.


Allocate specific apps to specific fanzy zones

Description of the new feature / enhancement
I can't seem to find this so I thought i'd ask. Could we have the ability to pre-set in the fancy zones settings which apps should use that zone by default?
Scenario when this would be used?
Say you have 4 zones, evenly split and you always want mail to be the top left and web browser bottom right. Having a setting to auto do this on launch would be handy vs. shift dragging. You could even just make it 1 app per fancy zone preset if it makes life easier.
Supporting information
I don't really have any other than being massively OCD on where my app windows are. I don't have a problem, it's not a problem.

In the settings there's "open windows in their previously known zones", can you check if that does what you want?

/needinfo

omg i’m sorry I didn't notice this setting.
Take care!!
Sent from my iPhone
On Feb 20, 2022, at 1:50 AM, Franky Chen @.***> wrote:

/needinfo
—
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FPowerToys%2Fissues%2F16457%23issuecomment-1046201106&data=04|01||f5fe10a12da143f631a508d9f4567dfe|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637809474584874316|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=4QYdfAHkwdluN89r0uouXt1IWVUFuWOjN0iBY14%2Brn0%3D&reserved=0, or unsubscribehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAWI7X3S2NQ2I7RTFJ5QFD7LU4C2QBANCNFSM5O3AHCQA&data=04|01||f5fe10a12da143f631a508d9f4567dfe|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637809474584874316|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=Wz6sXQrD%2FV2yJroJVMQEjszkVtRQ8LGJ51NJoEbmpm8%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01||f5fe10a12da143f631a508d9f4567dfe|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637809474584874316|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=XFF3V%2BQ%2Fm0DFWsZvGBFdt0Wu0PUwwLxDm%2FGDQ2u37Oc%3D&reserved=0 or Androidhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01||f5fe10a12da143f631a508d9f4567dfe|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637809474584874316|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=6zPg%2BcBQomHutjMu3pfoCAuPkoQCf3WJerSYKOyOM94%3D&reserved=0.
You are receiving this because you authored the thread.Message ID: @.***>


The output label is not match to the character in picture

https://github.com/keras-team/keras-io/blob/0da4523f083ca68d4d1970efb523b0c83fac29ab/examples/vision/captcha_ocr.py#L176
When I run the code, the output plt.show() does not correct . Label is not match to the img.
I try to verify the code :
label = tf.strings.reduce_join(num_to_char(labels[i]+1)).numpy().decode("utf-8")
then it runs ok!

@myyang19770915 did u solve this?

use this instead~
label = tf.strings.reduce_join(num_to_char(labels[i]+1)).numpy().decode("utf-8")

@myyang19770915 yeah, but we also have to replace this:
res = tf.strings.reduce_join(num_to_char(res)).numpy().decode("utf-8")

to this:
res = tf.strings.reduce_join(num_to_char(res+1)).numpy().decode("utf-8")

I've also came across the same issue, it seems that there was a change in behaviour on how layers.experimental.preprocessing.StringLookup works. As char_to_num is using num_oov_indices=0 while num_to_char is using the default one (which happens to be num_oov_indices=1) all mappings seem to be drifted by 1.
The easiest way to apply a quick fix is to wrap the num_to_char function in order to perform that drift:
# Mapping integers back to original characters
_num_to_char = layers.experimental.preprocessing.StringLookup(
    vocabulary=char_to_num.get_vocabulary(), mask_token=None, invert=True
)

num_to_char = lambda x: _num_to_char(x + tf.ones(tf.shape(x), dtype='int64')

I've tried changing the num_oov_indices=0 of char_to_num (erasing this parameter, so it takes the default argument which will be the same as num_to_char):
# Mapping characters to integers
char_to_num = layers.experimental.preprocessing.StringLookup(
    vocabulary=list(characters), mask_token=None
)

# Mapping integers back to original characters
num_to_char = layers.experimental.preprocessing.StringLookup(
    vocabulary=char_to_num.get_vocabulary(), mask_token=None, invert=True
)

This fixes the mapping but training will fail with the following error:
Epoch 1/100
---------------------------------------------------------------------------
InvalidArgumentError                      Traceback (most recent call last)
<ipython-input-31-2c137061a23a> in <module>()
     11     validation_data=validation_dataset,
     12     epochs=epochs,
---> 13     callbacks=[early_stopping],
     14 )

6 frames
/usr/local/lib/python3.7/dist-packages/tensorflow/python/eager/execute.py in quick_execute(op_name, num_outputs, inputs, attrs, ctx, name)
     58     ctx.ensure_initialized()
     59     tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
---> 60                                         inputs, attrs, num_outputs)
     61   except core._NotOkStatusException as e:
     62     if name is not None:

InvalidArgumentError: 2 root error(s) found.
  (0) Invalid argument:  Saw a non-null label (index >= num_classes - 1) following a null label, batch: 10 num_classes: 54 labels: 30,9,30,53,5 labels seen so far: 30,9,30
	 [[node ocr_model_v1/ctc_loss/CTCLoss (defined at <ipython-input-30-de6e4835d664>:17) ]]
  (1) Invalid argument:  Saw a non-null label (index >= num_classes - 1) following a null label, batch: 10 num_classes: 54 labels: 30,9,30,53,5 labels seen so far: 30,9,30
	 [[node ocr_model_v1/ctc_loss/CTCLoss (defined at <ipython-input-30-de6e4835d664>:17) ]]
	 [[gradient_tape/ocr_model_v1/ctc_loss/Shape/_88]]
0 successful operations.
0 derived errors ignored. [Op:__inference_train_function_71434]

Function call stack:
train_function -> train_function

Any idea about this?.

Well, I managed to finally understand what was failing.
As I've said in the previous message the wrong translation was due to the difference between char_to_num and num_to_char. The first one was created without an out of vocabulary character (num_oov_indices=0) while the latter with one. Apparently, this didn't create a problem in previous tensorflow versions (i.e.: 2.4.x, I've been manually installing 2.4.3 in colab in order to get the previous behavior), but, with newer ones (2.5.x, at the time of writing colab uses 2.5.0) it drifts numbers by one.
Following the reasoning of the previous message, if both mappings are created with the default num_oov_indices (which is having one out of vocabulary), translation works fine (ie.: char_to_num(num_to_char(tf.strings.unicode_split('test', input_encoding="UTF-8"))) will yield test):
# Mapping characters to integers
char_to_num = layers.experimental.preprocessing.StringLookup(
    vocabulary=list(characters), mask_token=None
)

# Mapping integers back to original characters
num_to_char = layers.experimental.preprocessing.StringLookup(
    vocabulary=char_to_num.get_vocabulary(), mask_token=None, invert=True
)

But in order the CTC layer to work correctly, the last dense layer has to have len(char_to_num.vocabulary()) + 1 units. The original code was using len(character)+1 units for this layer, as now we have added oov,  len(characters) != len(char_to_num.vocabulay()). If I'm not misunderstanding something this is due to the blank pseudo character introduced in order to perform the ctc loss (the problem of encoding a repeated character).
    # Output layer
    x = layers.Dense(len(char_to_num.get_vocabulary()) + 1, activation="softmax", name="dense2")(x)

I've created the pr in order to fix the example ( #533 ) and also you can checked it on this colab

This should be fixed by #533 . The issue can be closed.

It is ok, thanks
取得 iOS 版 Outlookhttps://aka.ms/o0ukef

寄件者: SuryanarayanaY @.>
寄件日期: Thursday, August 3, 2023 12:45:57 AM
收件者: keras-team/keras-io @.>
副本: myyang19770915 @.>; Mention @.>
主旨: Re: [keras-team/keras-io] The output label is not match to the character in picture (#514)
Hi @myyang19770915https://github.com/myyang19770915 ,
The Proposed PR merged and I have tested the tutorial with Tf2.12v and its working fine. Please refer the attached gisthttps://colab.sandbox.google.com/gist/SuryanarayanaY/b4d5420c9994d3fe23f3dfda10a9b48c/kerasio_514-kerasio-captcha_ocr-r2.ipynb.
Shall we mark it as resolved. Please check and confirm. Thanks!
—
Reply to this email directly, view it on GitHubhttps://github.com/keras-team/keras-io/issues/514#issuecomment-1662573022, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AOK2A233ZCSWQLNGVS3MOITXTJ74LANCNFSM46734X6Q.
You are receiving this because you were mentioned.Message ID: @.***>


How to iterate and identify validator for field?

I'm trying to write a module to convert an Astronomy's schema into a Simple Schema (because eventually I will migrate to Astronomy), and I need to figure out what validators are used, but because they're all a bunch of functions, it doesn't seem possible to do so.

Is it possible for the validator returned here, to be a class with the validation options exposed somehow?

You are right. Right now it's not possible. However functions are also objects in JavaScript, so I can add to each validation function the name property.
At the beginning I also wanted to make each validator an object with the validate method. But we had a fierce discussion about that. We came to conclusion that validators should be functions. And I don't want to change that.
But I will add name property our some other way of taking its type. In fact I wanted to make refactoring, so maybe it's the time :-)

Is it possible to add more than just the name? Like, with options and even nested properties?
For example:
Validators.or([
  Validators.minLength(5),
  Validators.equal('test')
])
// The custom property of the function returned will give you:
{
  type: 'or',
  children: [{
    type: 'min',
    arguments: [5]
  }, {
    type: 'equal',
    arguments: ['test']
  }]
}

Yes I think so. I will rethink how validators are constructed and come tomorrow with some solution for that. So stay tuned :)

@rclai ok I've made a fix we've been talking about. Now when you call:
var validators = Post.getValidators();
var validator = validators.firstName[0];

You will receive object with list of validators where each validator has following properties:
validator.options; // options passed to validator
validator.message; // validator error message passed by the user
validator.definition; // definition of the validator
validator.definition._events; // `validationerror` events
validator.definition.name; // name of the validator
validator.definition.validate; // validate function

I hope, now you will be able to write your package :)

Cool thanks.

Thanks for the great work @jagi and @rclai
Any ETA on the simple-schema conversion package?

It would be nice if someone would write such conversion package. Right now I'm busy with other stuff.

I think I may be able to work on this. How should I name this?

rclai:astronomy-to-simple-schema :-) or
rclai:astronomy-to-simple-schema-converter long but descriptive :-)

I am a newbie at Web development, so I am not sure if I can provide any valuable help with development.
Regarding the name, rclai:astronomy-autoform-schema or something similar sounds more appropriate. Triggers the idea that this package can be used to drive Autoform until native astro forms are available. Will boost popularity, IMO.

I just realized that it could just be named astronomy-simple-schema. What do you guys think?

@jagi, right now I'm using .getFields() to grab all the fields, but in order to see what kind of field constructor they're using, I've been using field.constructor.name. Is that the best way to see which field type constructor they're using?

Hey guys, here is a work in progress that you can try out at the moment.
There's a bit of hurdles because you can do so much more with Astronomy lol, so there are some limitations at the moment, at least in my brain right now, which needs sleep now.

@rclai Oh sorry, I don't know how I could miss your comment. Thanks for this package! I would like to here comments from other developers how good it is. I will add info to the documentation about this package.
To answer your question about field type. It would be easy using the newest version of underscore of lodash, but right now you can do it in the following way:
var field = User.getField('address');

var type;
_.some(Astro.fields, function(fieldConstructor, fieldType) {
  console.log(fieldType);
  if (field instanceof fieldConstructor) {
    type = fieldType;
    return true;
  }
});

Your solution will also work but not in all old browsers, because the function's name property is the new thing. Maybe I will just add type name to the field.

I will change it to
var field = User.getField('address');
field.type;

In the next version.


Why not just JavaScript?

First, thank you for your work on this!  I think this library needs to be more of a first class citizen in the Firebase world.  If you're doing anything non-trivial with Firebase, maintaining the rules JSON can quickly become a pain.  This pretty much solves most of my pain points.
This is less of an issue and more just a curiosity about the project.  I'm wondering why Bolt is implemented with a "JavaScript-like" syntax that needs to be parsed instead of just JavaScript.  I realize this allows for a cleaner API in places, but it seems like if the library was build with a regular JavaScript API then as a user I could leverage all the tooling that comes with JavaScript to implement my rules with Bolt.
For example, with a .bolt file, I don't get syntax highlighting or code completion in my editor, which I would if the file were just JavaScript.  Also, I noticed an issue thread in this repo about implementing an import statement to break up larger .bolt files.  If the file was just JavaScript, then you would get a mechanism for this out of the box.  It seems like there would be some wins for going the just JavaScript route.

Hi Elliot.
Interesting question about why not just JavaScript.  A DSL can be embedded inside a regular programming language.  But you then have to deal with how to manage constructs of the language that are no supported by our more constrained DSL.
There are some projects where people have made syntax highlighters for Bolt.  We are close enough to JavaScript that entering "JavaScript-mode" in your editor may provide enough help on formatting.
Our goal for Bolt was to strike a balance between expressive power and simplicity, while presenting a syntax that would feel familiar to developers.

Okay, that makes sense.  Thanks again!

There's a Sublime package for Bolt syntax highlighting.
I've never tried it, but I'd like to see one for VSCode.

@davideast Do you know if there a VSCode highlighting plugin for Bolt?


Basic authentication and custom domain name support

Background
Desk supports custom urls for business accounts which creates some problems when it comes to OAuth and the current domain strategy. To my knowledge, some of these also support only basic authentication (username/password), or basic auth may be needed for prototyping.
Solution
Allow for the customization of base domain name, but leave everything desk.com by default. Update the authentication and connection paths to support switching to Basic Mode.
Extra Notes
af7850f has a simple test rewrite. Hopefully you don't mind me throwing that in there!
There wasn't a lot of testing of connection parameters outside of the desk_spec.rb as far as I could tell. If I'm missing anything please let me know.
I'm not as familiar with Yardoc, but I didn't appear to introduce any new issues there. (Coverage percentage net increased too)
This is my first "true" open source PR; thanks for providing a great project with which to get started!

This looks really good, thanks. And sorry for the delay in taking a look at it.
I'm going to go over the code a bit more and then pull it in if everything looks good.


USB CDC ECM driver does not support NetworkConnection management element

Platforms such as macOS, iOS and iPadOS will not perform DHCP negotiation with autoconf fallback without the interface being "connected".
We have a need to implement a link-local connection between a device using autoconf. I have already fixed the driver to report correct status, but I wanted to open this issue to see if you all want me to open a pull request.
This was tested using a b_u585_iot02a discovery board from ST using the echo_server sample located at samples/net/sockets/echo_server. Build with overlay-netusb.conf. On macOS you can see USB-DEV show as "Not connected" when connected to board with example flashed.
west build -b b_u585i_iot02a samples/net/sockets/echo_server -- -DOVERLAY_CONFIG=overlay-netusb.conf
With my fix and implementing a simple DHCP server you will see the following. Without DHCP you should see it fallback to "Self-assigned IP Address".

Per the CDC ECM specification, NetworkConnection management element is required.

NetworkConnection Notification is implemented for the CDC ECM in the new USB support.
I have no plans to implement it for the CDC ECM in the current USB device support. Move it to discussions.


Doclaynet Metrics

Thank you for releasing your checkpoints and repo, however I have been having a hard time understanding the doclaynet results. Just looking at Table 6:

Classes
MaskRCNN
FasterRCNN
Yolov5
Ours

Caption
71.5
70.1
77.7
83.56

Footnote
71.8
73.7
77.2
64.82

Formula
63.4
63.5
66.2
62.31

List-item
80.8
81.0
86.2
82.33

Page-footer
59.3
58.9
61.1
65.11

Page-header
70.0
72.0
67.9
66.35

Picture
72.7
72.0
77.1
84.71

Section-header
69.3
68.4
74.6
66.5

Table
82.9
82.2
86.3
87.42

Text
85.8
85.4
88.1
88.23

Title
80.4
79.9
82.7
63.27

Reported All
73.5
73.4
76.8
76.85

Calculated All
73.4
73.4
76.8
74.1

For all other methods the reported total coco-mAP (macro) naturally matches averaging the per-class AP as reported (allowing for rounding errors), however for your method there is a very large difference.
Further, using the provided checkpoint and calculating the mAP using your repo, I get a third number of 75.2:
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.752
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.916
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.842
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.554
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.654
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.781
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.387
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.795
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.841
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.684
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.786
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.876

Would you help clarifying which is the correct mAP: 75.2 or 74.1 or 76.85?
Thank you!

Hi, Thanks for raising the question. With all due respect, I am sorry to write you that I didn't understand the term "very large." The results you have reported are just a difference of 1-2%, which usually happens depending on the hardware, environment, other parameters, and so on.

Thank you for your prompt response!
"Very large" in the sense that the difference between the reported and calculated mAP, by equally averaging the classes, (76.85 and 74.1) of 2.75 is a larger number itself than the 0.05 difference between convolutional-based Yolov5 and SwinDocSegmenter, which by your own words is a significant margin:

From Table 6 we conclude that our proposed SwinDocSegmenter outperforms the convolutional-based algorithms (MaskRCNN, FasterRCNN, etc.) by a significant margin.

I was just trying to understand if perhaps some of the per-class APs reported in the table have a typo? The average of the 11 classes should really match the number for All at least to 1 decimal place.

I can't remember the table has a typo or not. Maybe it has. I will recheck and update the in the ArXiV. Still I don't agree with your "very large" word. There is difference between significant margin and very large. I am not saying that I am 100% correct. We release the weights so the people can use it their own work. May be it doesn't exactly same the results are reported in the paper. It depends on the hardware, python, torch version, environment and so on. I think this discussion is not going in the write direction. So if you agree I will close this issue.

Sure, if you don't mind checking the averaging of the classes in Table 6 that would be appreciated! Feel free to close, and thank you for providing the checkpoint and being responsive on Github.

Thanks. I will check it.


Potentially easier way to escape functions

To make sure that user-provided functions are evaluated in the user's namespace (and not in the package namespace), Tidier currently escapes functions individually using MacroTools.postwalk.
While this generally works well, I believe there are corner cases where this fails, such as when a compound function is embedded within an anonymous function.
(x -> mean•skipmissing(x))
If this is rewritten as a non-compound function, then it works fine.
A potential solution is to escape the entire expression as it is interpolated into eg transform() or other functions, as opposed to escaping functions individually.
Will leave this issue here as something to explore as this will likely fix this edge-case bug.

The reason the entire expression can't be escaped easily is that the anonymous functions are then created in the user's namespace, which is not what we want.
Leaving this issue open because I do want to fix the specific example here. Can probably fix it another way when parsing the expression.


[ADD] DCOS-1323 with tests

Rewrite task DCOS-1323 with remarks from https://github.com/mesosphere/dcos-cli/pull/240

@ssk2 Please review

@truskovskiyk looks good. just a little refactoring to keep the tests files easier to read.

@tamarrow  and @jsancio  PR updated, please review

@tamarrow  and @jsancio  PR updated, please review

@truskovskiyk looks good, just a few comments.

@truskovskiyk bump


Improve display of graph image downloads on desktop

Is your feature request related to a problem? Please describe.
Legends on graph image downloads ('dowload plot as png') appear very small in the default view, because of the high resolution. This makes them less usable and is only of benefit to people wanting to use the images for publication. This is particularly a problem with the vaccinations waffle on the vaccinations topic page, which has no axis labels, so is meaningless without clear legends.

Describe the solution you'd like
Design and engineering discussed this at a meeting. Pouria said he would investigate ways to improve how this display, such as defaulting to a lower resolution or improving how headings and legends display.
The meaning of the graph should be clear in the downloaded image. This would usually mean including:

the heading
legends in a readable size as default
axis labels, where relevant

Move to JIRA for action. Close


Fail2ban Middleware does not recognise 200 status code

For some reason my setup does not recognize successful status codes and bans on the 11th request.
I also don't see anything in the logs even though I have enabled DEBUG logging.
Setup:
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
    name: fail2ban
spec:
    plugin:
        fail2ban:
            logLevel: DEBUG
            rules:
                bantime: 30m
                enabled: "true"
                findtime: 10m
                maxretry: "10"
                statuscode: 400-499

apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
    name: whoami-http
spec:
    entryPoints:
        - http
    routes:
        - match: Host(`redacted.com`) || Host(`www.redacted.com`)
          kind: Rule
          services:
              - name: whoami
                port: 80
          middlewares:
              - namespace: traefik
                name: fail2ban

i have the same problem :(

I had the same problem

I think I'm seeing the same things myself. Is this plugin working?
Also, the logLevel parameter shows up only once in the entire codebase - I think it straight up doesn't work as one might expect.

Hello all,
Thanks for your interest in this Traefik plugin !
I've released https://github.com/tomMoulard/fail2ban/releases/tag/v0.8.2 with an intensive logging approach. Can you try again your issue with the latest version and tell me if it's still relevant ?
Thanks !

I'm immediately hit with an error when trying to load the latest version into Traefik:
2024-09-06T20:15:38Z INF Loading plugins... plugins=["GeoBlock","fail2ban"]
2024-09-06T20:15:39Z ERR plugins-storage/sources/gop-281385154/src/github.com/tomMoulard/fail2ban/pkg/data/data.go:14:9: panic: github.com/tomMoulard/fail2ban/pkg/data(...) module=github.com/tomMoulard/fail2ban plugin=plugin-fail2ban runtime=
panic: reflect.Set: value of type string is not assignable to type struct { Logger *stdlib.logLogger } [recovered]
	panic: reflect.Set: value of type string is not assignable to type struct { Logger *stdlib.logLogger }

goroutine 1 [running]:
github.com/traefik/yaegi/interp.runCfg.func1()
	github.com/traefik/yaegi@v0.16.1/interp/run.go:226 +0x1ae
panic({0x4976d20?, 0xc0022411f0?})
	runtime/panic.go:770 +0x132
reflect.Value.assignTo({0x4976d20?, 0xc002240c10?, 0xc002240c10?}, {0x5a6e45b, 0xb}, 0xc0020b58c0, 0x0)
	reflect/value.go:3356 +0x299
reflect.Value.Set({0xc0020b58c0?, 0xc002272040?, 0xc002272030?}, {0x4976d20?, 0xc002240c10?, 0xc001e0a2f0?})
	reflect/value.go:2325 +0xe6
github.com/traefik/yaegi/interp.call.func9(0xc001dc9600)
	github.com/traefik/yaegi@v0.16.1/interp/run.go:1391 +0xbc5
github.com/traefik/yaegi/interp.runCfg(0xc002220f00, 0xc001dc9600, 0x1?, 0x1?)
	github.com/traefik/yaegi@v0.16.1/interp/run.go:234 +0x285
github.com/traefik/yaegi/interp.(*Interpreter).run(0xc001cd7d48, 0xc002261400, 0xc00231bb01?)
	github.com/traefik/yaegi@v0.16.1/interp/run.go:119 +0x395
github.com/traefik/yaegi/interp.(*Interpreter).importSrc(0xc001cd7d48, {0xc00231bb90, 0x28}, {0xc00231bb01, 0x27}, 0x1)
	github.com/traefik/yaegi@v0.16.1/interp/src.go:162 +0xf3b
github.com/traefik/yaegi/interp.(*Interpreter).gta.func1(0xc0021f5b80)
	github.com/traefik/yaegi@v0.16.1/interp/gta.go:273 +0xcdb
github.com/traefik/yaegi/interp.(*node).Walk(0xc0021f5b80, 0xc00269c710, 0x0)
	github.com/traefik/yaegi@v0.16.1/interp/interp.go:282 +0x2e
github.com/traefik/yaegi/interp.(*node).Walk(0xc0021f5540, 0xc00269c710, 0x0)
	github.com/traefik/yaegi@v0.16.1/interp/interp.go:286 +0x6b
github.com/traefik/yaegi/interp.(*node).Walk(0xc0021f52c0, 0xc00269c710, 0x0)
	github.com/traefik/yaegi@v0.16.1/interp/interp.go:286 +0x6b
github.com/traefik/yaegi/interp.(*Interpreter).gta(0xc001cd7d48, 0xc0021f52c0, {0xc00231bb90, 0x28}, {0xc00231b741, 0x28}, {0xc001ca50e7, 0x5})
	github.com/traefik/yaegi@v0.16.1/interp/gta.go:20 +0x22b
github.com/traefik/yaegi/interp.(*Interpreter).importSrc(0xc001cd7d48, {0xc001da78e0, 0x1e}, {0xc00231b741, 0x28}, 0x1)
	github.com/traefik/yaegi@v0.16.1/interp/src.go:109 +0x925
github.com/traefik/yaegi/interp.(*Interpreter).gta.func1(0xc0021c1180)
	github.com/traefik/yaegi@v0.16.1/interp/gta.go:273 +0xcdb
github.com/traefik/yaegi/interp.(*node).Walk(0xc0021c1180, 0xc00269d458, 0x0)
	github.com/traefik/yaegi@v0.16.1/interp/interp.go:282 +0x2e
github.com/traefik/yaegi/interp.(*node).Walk(0xc0021c0140, 0xc00269d458, 0x0)
	github.com/traefik/yaegi@v0.16.1/interp/interp.go:286 +0x6b
github.com/traefik/yaegi/interp.(*node).Walk(0xc0021b1e00, 0xc00269d458, 0x0)
	github.com/traefik/yaegi@v0.16.1/interp/interp.go:286 +0x6b
github.com/traefik/yaegi/interp.(*Interpreter).gta(0xc001cd7d48, 0xc0021b1e00, {0xc001da78e0, 0x1e}, {0xc001da7821, 0x1e}, {0xc001c912e8, 0x8})
	github.com/traefik/yaegi@v0.16.1/interp/gta.go:20 +0x22b
github.com/traefik/yaegi/interp.(*Interpreter).importSrc(0xc001cd7d48, {0xc001c90e88, 0x4}, {0xc001da7821, 0x1e}, 0x1)
	github.com/traefik/yaegi@v0.16.1/interp/src.go:109 +0x925
github.com/traefik/yaegi/interp.(*Interpreter).gta.func1(0xc0021b1b80)
	github.com/traefik/yaegi@v0.16.1/interp/gta.go:273 +0xcdb
github.com/traefik/yaegi/interp.(*node).Walk(0xc0021b1b80, 0xc00269e1a0, 0x0)
	github.com/traefik/yaegi@v0.16.1/interp/interp.go:282 +0x2e
github.com/traefik/yaegi/interp.(*node).Walk(0xc0021b1a40, 0xc00269e1a0, 0x0)
	github.com/traefik/yaegi@v0.16.1/interp/interp.go:286 +0x6b
github.com/traefik/yaegi/interp.(*node).Walk(0xc0021b17c0, 0xc00269e1a0, 0x0)
	github.com/traefik/yaegi@v0.16.1/interp/interp.go:286 +0x6b
github.com/traefik/yaegi/interp.(*Interpreter).gta(0xc001cd7d48, 0xc0021b17c0, {0xc001c90e88, 0x4}, {0xc001c90e88, 0x4}, {0xc001c90e88, 0x4})
	github.com/traefik/yaegi@v0.16.1/interp/gta.go:20 +0x22b
github.com/traefik/yaegi/interp.(*Interpreter).gtaRetry(0xc001cd7d48, {0xc00269e388?, 0xc0016854a0?, 0xc00269e2c8?}, {0xc001c90e88, 0x4}, {0xc001c90e88, 0x4})
	github.com/traefik/yaegi@v0.16.1/interp/gta.go:395 +0x158
github.com/traefik/yaegi/interp.(*Interpreter).CompileAST(0xc001cd7d48, {0x698b9a0?, 0xc0016854a0?})
	github.com/traefik/yaegi@v0.16.1/interp/program.go:92 +0x11f
github.com/traefik/yaegi/interp.(*Interpreter).compileSrc(0xc001cd7d48, {0xc00231b680?, 0x1?}, {0x0?, 0xc00231b680?}, 0xa0?)
	github.com/traefik/yaegi@v0.16.1/interp/program.go:64 +0xaa
github.com/traefik/yaegi/interp.(*Interpreter).eval(0xc001cd7d48, {0xc00231b680?, 0xc00269e8c8?}, {0x0?, 0x1?}, 0x0?)
	github.com/traefik/yaegi@v0.16.1/interp/interp.go:554 +0x25
github.com/traefik/yaegi/interp.(*Interpreter).Eval(...)
	github.com/traefik/yaegi@v0.16.1/interp/interp.go:496
github.com/traefik/traefik/v3/pkg/plugins.newInterpreter({0x69bd0c0, 0xc001f5f8c0}, {0xc001c753e0, 0x25}, {0xc001da6a00, 0x1e})
	github.com/traefik/traefik/v3/pkg/plugins/middlewareyaegi.go:140 +0x589
github.com/traefik/traefik/v3/pkg/plugins.newMiddlewareBuilder({0x69bd0c0?, 0xc001f5f8c0?}, {0xc001c753e0?, 0x1?}, 0xc001b0f9e0, {0xc001c806e0?, 0x69bcfe0?}, {{0x0, 0x0, 0x0}, ...})
	github.com/traefik/traefik/v3/pkg/plugins/builder.go:142 +0x16f
github.com/traefik/traefik/v3/pkg/plugins.NewBuilder(0xc001c47310, 0xc001c77710, 0xc002590270)
	github.com/traefik/traefik/v3/pkg/plugins/builder.go:55 +0x6d5
main.createPluginBuilder(0xc001a434a0?)
	github.com/traefik/traefik/v3/cmd/traefik/plugins.go:18 +0x2b
main.setupServer(0xc001b0e120)
	github.com/traefik/traefik/v3/cmd/traefik/traefik.go:238 +0xa86
main.runCmd(0xc001b0e120)
	github.com/traefik/traefik/v3/cmd/traefik/traefik.go:117 +0x2b4
main.main.func1({0xc001957bc0?, 0xc0001d2080?, 0x10?})
	github.com/traefik/traefik/v3/cmd/traefik/traefik.go:65 +0x19
github.com/traefik/paerser/cli.run(0xc0018f3200, {0xc0001d2080, 0x0?, 0x0})
	github.com/traefik/paerser@v0.2.0/cli/commands.go:133 +0x243
github.com/traefik/paerser/cli.execute(0xc0018f3200, {0xc0001d2080, 0x2, 0x2}, 0x28?)
	github.com/traefik/paerser@v0.2.0/cli/commands.go:76 +0x6cf
github.com/traefik/paerser/cli.Execute(...)
	github.com/traefik/paerser@v0.2.0/cli/commands.go:51
main.main()
	github.com/traefik/traefik/v3/cmd/traefik/traefik.go:81 +0x554

traefik.yml has just this for the plugin loading:
experimental:
  plugins:
    GeoBlock:
      moduleName: "github.com/PascalMinder/geoblock"
      version: "v0.2.8"
    fail2ban:
      moduleName: "github.com/tomMoulard/fail2ban"
      version: "v0.8.2"

indeed, my bad, I've released https://github.com/tomMoulard/fail2ban/tree/v0.8.3 that should fix this particular panic issue.

indeed, my bad, I've released https://github.com/tomMoulard/fail2ban/tree/v0.8.3 that should fix this particular panic issue.

This new version loads fine, but doesn't log anything beyond the initial first message.
2024/09/07 10:02:33 Plugin: FailToBan is up and running

The middleware configuration I've got is:
http:
  middlewares:
    fail2ban:
      plugin:
        fail2ban:
          logLevel: DEBUG
#          allowlist:
#            ip: <IP_ADDRESS>/16
#         denylist:
#           ip: <IP_ADDRESS>/24
          rules:
            bantime: 5m
            enabled: true
            findtime: 30s
            maxretry: 5
            statuscode: "400,401,403-499"

Did you enable traefik DEBUG log level ? If so, have you the following log ?
DBG github.com/traefik/traefik/v3/pkg/plugins/plugins.go:30 > Loading of plugin: fail2ban<EMAIL_ADDRESS>

Good point. I failed to notice this bit from the documentation:
Please note that Fail2ban logs will only be visible when Traefik's log level is set to DEBUG
After setting this I'm... well, I'm getting a bit overly swarmed with logs now.
But I think I've managed to isolate a fragment of fail2ban, from startup to this middelware blocking me from accessing a login page (i.e. I've not yet provided any credentials, valid or invalid).
Note: I've removed all routing information from the logs, as well as stripped the module=github.com/tomMoulard/fail2ban plugin=plugin-fail2ban runtime= suffix from fail2ban logs. Finally I've had to remove fail2ban "Write: buf:" rows, as they are VERY long and break the limits of posting. If those are required I'll find some other ways to share them.
2024-09-07T15:59:52Z DBG github.com/traefik/traefik/v3/pkg/middlewares/observability/middleware.go:33 > Adding tracing to middleware entryPointName=websecure middlewareName=fail2ban@file routerName=haos@file

2024-09-07T15:59:54Z DBG github.com/traefik/traefik/v3/pkg/server/configurationwatcher.go:227 > Configuration received config={"http":{"middlewares":{"fail2ban":{"plugin":{"fail2ban":{"logLevel":"DEBUG","rules":{"bantime":"5m","enabled":"true","findtime":"30s","maxretry":"5","statuscode":"400,401,403-499"}}}}..."

2024/09/07 16:00:12 Plugin: FailToBan is up and running

2024/09/07 16:00:14 Plugin: FailToBan is up and running

2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is denied
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > url / not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > welcome "<IP_ADDRESS>"
2024-09-07T16:00:22Z DBG fmt/print.go:225 > status handler
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}

2024-09-07T16:00:22Z DBG fmt/print.go:225 > Write header: code: 200
2024-09-07T16:00:22Z DBG fmt/print.go:225 > catcher: {XheaderMap:map[Content-Encoding:[deflate] Content-Length:[2297] Content-Type:[text/html; charset=utf-8] Date:[Sat, 07 Sep 2024 16:00:29 GMT] Referrer-Policy:[no-referrer] Server:[] X-Content-Type-Options:[nosniff] X-Frame-Options:[SAMEORIGIN]] Xcode:200 XhttpCodeRanges:[[400 400] [401 401] [403 499]] XcaughtFilteredCode:false XresponseWriter:0xc00220eae0 XheadersSent:true Xbytes:[] XallowedRequest:false}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is denied
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > url /frontend_latest/core.ydYtuXnHVAs.js not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > welcome back "<IP_ADDRESS>" for the 2 time
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > status handler
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}

2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is denied
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > url /frontend_latest/app.okM55PX7yEE.js not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > welcome back "<IP_ADDRESS>" for the 3 time
2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is denied
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > status handler
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}

2024-09-07T16:00:22Z DBG fmt/print.go:225 > url /static/images/ohf-badge.svg not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > welcome back "<IP_ADDRESS>" for the 4 time
2024-09-07T16:00:22Z DBG fmt/print.go:225 > status handler
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}

2024-09-07T16:00:22Z DBG fmt/print.go:225 > Write header: code: 200
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is denied
2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is denied
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is denied
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > url /static/fonts/roboto/Roboto-Regular.woff2 not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > "<IP_ADDRESS>" is banned for 5>=5 request
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > url /static/fonts/roboto/Roboto-Medium.woff2 not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > url /hacsfiles/iconset.js not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > "<IP_ADDRESS>" is still banned since "2024-09-07T16:00:22Z", 6 request
2024-09-07T16:00:22Z DBG fmt/print.go:225 > "<IP_ADDRESS>" is still banned since "2024-09-07T16:00:22Z", 7 request
2024-09-07T16:00:22Z DBG fmt/print.go:225 > catcher: {XheaderMap:map[Accept-Ranges:[bytes] Cache-Control:[public, max-age=2678400] Content-Encoding:[br] Content-Length:[15482] Content-Type:[text/javascript] Date:[Sat, 07 Sep 2024 16:00:29 GMT] Etag:["17eefe1f5dc34c00-3c7a"] Last-Modified:[Sun, 25 Aug 2024 14:11:58 GMT] Referrer-Policy:[no-referrer] Server:[] Vary:[Accept-Encoding] X-Content-Type-Options:[nosniff] X-Frame-Options:[SAMEORIGIN]] Xcode:200 XhttpCodeRanges:[[400 400] [401 401] [403 499]] XcaughtFilteredCode:false XresponseWriter:0xc001d61900 XheadersSent:true Xbytes:[] XallowedRequest:false}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > Write header: code: 200
2024-09-07T16:00:22Z DBG fmt/print.go:225 > Write header: code: 200
2024-09-07T16:00:22Z DBG fmt/print.go:225 > catcher: {XheaderMap:map[Accept-Ranges:[bytes] Cache-Control:[public, max-age=2678400] Content-Encoding:[gzip] Content-Length:[3522] Content-Type:[image/svg+xml] Date:[Sat, 07 Sep 2024 16:00:29 GMT] Etag:["17eefe1f5dc34c00-dc2"] Last-Modified:[Sun, 25 Aug 2024 14:11:58 GMT] Referrer-Policy:[no-referrer] Server:[] Vary:[Accept-Encoding] X-Content-Type-Options:[nosniff] X-Frame-Options:[SAMEORIGIN]] Xcode:200 XhttpCodeRanges:[[400 400] [401 401] [403 499]] XcaughtFilteredCode:false XresponseWriter:0xc00220f4a0 XheadersSent:true Xbytes:[] XallowedRequest:false}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > catcher: {XheaderMap:map[Accept-Ranges:[bytes] Cache-Control:[public, max-age=2678400] Content-Encoding:[br] Content-Length:[74998] Content-Type:[text/javascript] Date:[Sat, 07 Sep 2024 16:00:29 GMT] Etag:["17eefe1f5dc34c00-124f6"] Last-Modified:[Sun, 25 Aug 2024 14:11:58 GMT] Referrer-Policy:[no-referrer] Server:[] Vary:[Accept-Encoding] X-Content-Type-Options:[nosniff] X-Frame-Options:[SAMEORIGIN]] Xcode:200 XhttpCodeRanges:[[400 400] [401 401] [403 499]] XcaughtFilteredCode:false XresponseWriter:0xc002130c40 XheadersSent:true Xbytes:[] XallowedRequest:false}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is denied
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > IP <IP_ADDRESS> not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > data: &{RemoteIP:<IP_ADDRESS>}
2024-09-07T16:00:22Z DBG fmt/print.go:225 > url /auth/token not is allowed
2024-09-07T16:00:22Z DBG fmt/print.go:225 > "<IP_ADDRESS>" is still banned since "2024-09-07T16:00:22Z", 8 request

Hi, I just stumbled upon the same problem and think that the issue is here: https://github.com/tomMoulard/fail2ban/blob/6b3824f01a31135e9f1e9fd1cdb56a4b62eb4c86/fail2ban.go#L143
The f2b-handler is called in the chain before the status-code-handler and thus fail2bans EVERY request (see also here: https://github.com/tomMoulard/fail2ban/blob/6b3824f01a31135e9f1e9fd1cdb56a4b62eb4c86/pkg/chain/chain.go#L84 )
I think that f2bHandler.New(f2b), should not be in the handler-chain at all for this to work...

Indeed I could try reversing the order in the chain but I doupt I will work as you intend.
 But indeed, it will count twice the request in the handler.

The status-code handler internally calls the f2b if a proper status-code is detected. Why call the f2b-handler "naked" (without any preconditions) in the chain at all?

I'd think that inside the chain one would need a handler that continues blocking, if an IP is already on the ban-list, but that does not blindly increase ip.count towards maxRetries. Increasing the counter for an IP may only happen if a precondition for a "failed"-request is met (like inside the URLRegexBan or the http-status-handler).
(I'm not able to write Go-code myself, otherwise I'd create a merge-request)

Experiencing the same problem requests get banned after maxretry attempts regardless of the status code (#153

Have the same issue here with Fail2Ban v0.8.3 and Traefik v3.1.6

same issue 0.8.3 and traefik 3.2.1

And here too, same issue. Seems every request is passed through the f2b handler regardless of status code


[utils] use select instead of poll to read passphrases on macOS

According to the man page on macOS poll currently doesn't support devices. This includes /dev/tty.
In this use case poll will returned immediately indicating that something can be read but the following read returned -1 (with errno set to EAGAIN).
Using select on macOS for passphrase reading prevents this problem.

@freerdp-bot test properly please


Type on the project name

The project is named quanstats_lumi, missing the ending t of quant. It should be named quantstat_lumi.

Wow good catch! Must have been rushing when I set this up. I will fix this
soon
Robert Grzesik<PHONE_NUMBER>
On Fri, Feb 2, 2024 at 8:31 AM alexcalligraphy @.***>
wrote:

The project is named quanstats_lumi, missing the ending t of quant. It
should be named quantstat_lumi.
—
Reply to this email directly, view it on GitHub
https://github.com/Lumiwealth/quanstats_lumi/issues/4, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAIYQK5AEQSZKTDSUVYYMCDYRTTCRAVCNFSM6AAAAABCWWEPC2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGEYTIOJUGIYDAMA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Prevent console errors from requestAnimationFrame invocation

While working on #365, I noticed a bunch of Uncaught TypeError: Illegal invocation.
requestAnimationFrame must be called with window as the context

:+1: Thank you , Levi.


retrieve uuid from endpoint address, use it with service url as device id

What this PR does / why we need it:
refs #250
This PR retrieve the Onvif device uuid and use it with service url to form the device id reported to Agent.
According to ONVIF core spec sec 7.3.1. The combination of an wsadis:Address
and wsadis:ReferenceProperties provide a stable and globally-unique identifier.
We can use "wsadis:Address + wsadis:ReferenceProperties.Address" as the identifier of Onvif devices. The DH needs to expose the uuid to brokers so brokers have the same information to uniquely identify a device.
7.3.1 Endpoint reference
A device or an endpoint that takes the client role should use a URN:UUID [RFC4122] as the address property
of its endpoint reference.
The device or an endpoint that takes the client role shall use a stable, globally unique identifier that is constant
across network interfaces as part of its endpoint reference property. The combination of an wsadis:Address
and wsadis:ReferenceProperties provide a stable and globally-unique identifier.
Special notes for your reviewer:
If applicable:

[ ] this PR has an associated PR with documentation in akri-docs
[x] this PR contains unit tests
[x] added code adheres to standard Rust formatting (cargo fmt)
[x] code builds properly (cargo build)
[x] code is free of common mistakes (cargo clippy)
[x] all Akri tests succeed (cargo test)
[ ] inline documentation builds (cargo doc)
[x] all commits pass the DCO bot check by being signed off -- see the failing DCO check for instructions on how to retroactively sign commits

Will need a note in the release notes about the fact it changes the id of ONVIF devices I think.

sure, there will be follow up change for onvif DH w.r.t. the device id, I'll update the doc in one shot


"Project-local" REPLs / dynamically detecting REPL settings?

Hi, thanks for the very useful plugin! I've found Iron to be a nice alternative to the (also excellent) Neoterm.
However, I don't see an obvious way to configure the REPL invocation dynamically.For example, I'd ideally like to have logic along these lines for a Python project (hypothetical code):
iron.core.add_repl_definitions({
  python = {
    dynamic = function(bufno)
      local venv_root = _py_find_venv_root()
      local pipenv_root = _py_find_pipenv_root()
      local pyproject_root = _py_find_pyproject_root()
      local poetry_root = _py_is_poetry(pyproject_root)

      local command
      if poetry_root then
        command = {"poetry", "run", "ipython", "--no-autoindent"}
      elseif pipenv_root then
        command = {"pipenv", "run", "ipython", "--no-autoindent"}
      elseif venv_root then
        command = {venv_root .. "/bin/ipython", "--no-autoindent"}
      end

      return {
        command = command
      }
    end
  }
})

I'd also want to do other things, like try to detect if ipython is available in the current env and use it only if present.
Is this kind of thing possible currently? It would be a really useful feature for working with GUI frontends to Neovim, which you don't necessarily want to have to start from within a shell session.

I definitely think we wan get something dynamic working, but I don't think it was prioritized so far... Shouldn't be too hard to add there though..
I surely want to improve and make it easier for users to tailor the best possible individual experience, so dynamic configuration would definitely make sense, as well as providing functions for dynamically detecting binaries.
The issue is that, due to work and personal life, I couldn't focus on iron as much as it deserves. In fact, I'm super glad it is at a somewhat stable state now, because it is being useful for many people without needing patching or intense overlook from me. Hopefully I can change that situation in the future, but for now I can try to squeeze in a few improvements here and there.
I'll check if/how I can add dynamic config support. Thanks for the issue!

I totally understand your situation!
I started looking into the Iron source code and found it fairly readable. But I'm myself trying to spend more time with family and less time coding.
I think one thing that might help other people contribute would be some informal documentation of how Iron fits together internally, and what changes you already have planned. That way people don't have to spend as long familiarizing themselves with the codebase, and can do things like internal refactoring that won't be "offensive" or obstructive towards your other planned improvements.

I've recently merged v3.0 which greatly simplifies how the repl is picked up. I can definitely foresee now adding repl providers instead of picking them up straight away. I'll bump this issue and try to fix this in the next iteration.


Notifications #54 done

@creativepsyco please review and merge

@creativepsyco I have cherry picked the the additional commit here to the other PR. So I am closing this.


Disable leveling system for staff members

Describe the suggestion
The leveling system intent is to recognize active members, but there is no need to include staff members in that role, as most of the time, they are active, and they may outshine campers.
Maybe we can add logic after the code below, to ignore use with role of staff. here is the code
    const user =
      (await LevelModel.findOne({ userId: author.id })) ||
      (await LevelModel.create({
        userId: author.id,
        userTag: author.tag,
        points: 0,
        level: 0,
        lastSeen: new Date(Date.now()),
        cooldown: 0,
      }));

Maybe with excluding the staff members, it will be easier to notice active members in the localization effort, which doesn't have language lead.

I'm on the fence with this one.
On one hand, it can be discouraging to see that all the active members are staff. But on the other hand, people love the idea of being able to overtake staff members on a leaderboard.

Good point, now I am on the fence as well 😅.

I propose we leave it as is - when we generate contributor lists, we can filter out staff accounts as needed.


MariaDB 5.5 is not supported by Flyway

We might have to downgrade the Flyway by a few minor versions.
We need to be careful because the checksum algorithm has changed.

This might be unnecessary as our partner is considering using MariaDB 10. I'll include it in our test suite.

MariaDB 5.5 is actually matching MySQL 5.5, which we won't provide support for. The earliest version that RPD is tested with is 5.6 and supported is 5.7.


Few others issues identified

Issue 1:
When remote upload:
/upload http://ipv4.download.thinkbroadband.com/5MB.zip

Bot Return Msg:

name 'requests' is not defined

Might need to define an "import requests"
Issue 2:
When remote upload:
/upload http://ipv4.download.thinkbroadband.com/5MB.zip

Bot Return Msg:
name 'name' is not defined
main.py - Line 90: "with open(name, "wb") as file"
Issue 3:
When Issue 1 & 2 is fixed,
Bot Return Msg:
API Error (Not Vaild JSON Data Received)
I think it have to do with gofile.py, might not have receive the correct response although logs indicate the download link/page.
Logs indicates:

[info] {"status":"ok","data":{"guestToken":"grUiVlrJ2Z44pPCmY3B4c5p4EmNEnY2u","downloadPage":"https://gofile.io/d/wkpU1F","code":"wkpU1F","parentFolder":"fd8caac3-1e6b-415b-958f-f7ec95158c28","fileId":"1e2893ff-5673-4ada-b189-37aa21e9efd9","fileName":"5MB.zip","md5":"b3215c06647bc550406a9c8ccc378756"}}

Issue 4:
Unable to upload normal file. Stuck at processing.
/upload -attached file-

Bot Return Msg:
Processing...
Logs indicates:

'NoneType' object has no attribute 'replace'
File "/workspace/main.py", line 58, in filter
[info] text = update.text.replace("\n", " ")
[info] ^^^^^^^^^^^^^^^^^^^
[info] AttributeError: 'NoneType' object has no attribute 'replace'

Fixed


Add link to Composer-Downloads-Plugin

This plugin is handy for package authors who need to include an external asset and who need to be compatible with a diverse range of root-projects.
Disclosure: I wrote the updated version of this plugin.

Hey Tim!
Thank you for contributing 👍


Could you share how to build node as webassembly target using emscripten or some other tools.

Is your feature request related to a problem? Please describe:

Hi, I am curious about how to build node as webassembly target. Maybe webcontainer already did.
Could you share the patches and instructions on how to do it.
I want to execute some demonstration node code in browser without a server locally. webcontainer, stackblitz are good choices except they could not run self-hosted locally or offline.
Describe the solution you'd like:

N.A.
Describe alternatives you've considered:

N.A.
Additional context:

N.A.

Hey there! :wave:
We don't compile nodejs to webassembly. The best way to start would probably be using the wasi-sdk or emscripten.
However, if you only want to run node inside the browser, then maybe you might be interested in trying out @webcontainer/api which allows you to run a webcontainer inside your page and from there you can run node. You can find more documentation at:
https://webcontainers.io
Hope this helps!


Minor bugfix Release

Backport two minor bugfix commits to stable/v0.2 branch and release new patch release v0.2.2

Looks like CI is not running for the stable/xx branches. I'll have a look and enable it.

FYI, CI is failing for Rust 1.44, due to an issue which was resolved in cargo 1.46.
On master this was [fixed]{https://github.com/corrosion-rs/corrosion/commit/ca21ae1cb9d0c0a3c31b2041a46dc11810f871b5) by increasing the MSRV, but I don't want to backport that to the 0.2 branch.
The issues fetching from crates.io did not occur for me locally, and I think this is in some way dependent on the speed of the network connection, so I would just propose ignoring the CI failure for Rust 1.44 and releasing this minor bugfix release anyway.


Set mtu to 20 to fix hash mismatch issue #44

I think the main issue with noble as a transport is using a wrong MTU, the mtu setting in the code does not take into account the dfu protocol op codes that are prepended. Setting it from 23 to 20 allowed me to send and apply an application update.

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


Browserifying

Besides linking all js files with browserify, the following gulp tasks were added:

gulp dev:docs - runs browser sync server from docs & watches for changes (even in dragular source), generates non-minified assets
build:docs - generates only minified docs assets
lint:docs - lints docs js files
deploy:docs - pushes everithyng from docs to the gh-pages branch

Also:

gulp-angular-templatecache handles template caching
Sourcemaps are generated only for build tasks. I suppose there is no sense to generate sourcemaps for non-minified scripts, right?

Issues found (haven't touched it yet):

Highlight.js doesn't work, I'll try to play around with angular-highlightjs tomorrow
In first example Example1model is undefined

Great, seems to be working flawlessly :)
I have also solved issues... highlight had problem with examples loading with ng-include, and I have filled missing controller for Example1model.
Thank you very much for your contribution.
PS: If you want you could put list of actual gulp tasks with little description into CONTRIBUTING.md for  other contributors to their easiest start.

:+1:
Thanks!

If you want you could put list of actual gulp tasks with little description into CONTRIBUTING.md for other contributors to their easiest start.

Sure, I'll also add comments to gulpfile.js

Great :clap:
I have merged this branch into dev branch, so PR changes to dev then ;)


docs: updating config import method (environment.ts)

Checklist

Issue number for this PR: n/a
Docs included?: yes, this is a doc change
Test units included?: no
e2e tests included?: no
In a clean directory, npm install, npm run build, and npm test run successfully? yes

Description
I'm adding this change to the initial setup of AngularFire2 whereby the environment.ts file is used for config instead of putting it in the app.module.ts file itself.
This change brings the setup docs into parity with Upgrade Guide where the environment.ts file is referenced but never actually explained.
Code sample
n/a

Thanks again, @markgoho! You're coming in clutch 💥


Support to https and pass username and password into encripty body

Pass username, password and database into URL is dangerous (because this information is not encrypted). Influxdb HTTP API supports usage body to pass username, password and database (see https://docs.influxdata.com/influxdb/v1.7/administration/authentication_and_authorization/).
Maybe change this lines and add https support can be resolve this issue
https://github.com/tobiasschuerg/ESP8266_Influx_DB/blob/5cd2dcf7bf60e1533dceb9d37b0a33f5c9f2fd01/InfluxDb.cpp#L42

That's true. However, I'm currently onyl using it in my local network and don't have much time to work on this library. @lets00 feel free to create a pull request.

The library got completely rewitten to also support InfluxDb 2 with tls etc., please check out version 3.
If your issue still remains, please open a new issue.


Scripting API part of compiler API layer?

As a part of the compiler layer, the team created hosting/scripting APIs

It is not really important, but are the scripting APIs really part of the compiler API layer?
In the folder structure everything else related to the compiler API layer seems to be in Compilers folder, but scripting is in a separate Scripting directory in contrast to diagnostics, which also belongs to the compiler API layer, but is in a subfolder of Compilers.

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

ID: 778268e6-e64f-9743-bce1-5142ef19425b
Version Independent ID: 40aefcd8-e806-bee3-4895-e7f038b58bc9
Content: .NET Compiler Platform SDK concepts and object model
Content Source: docs/csharp/roslyn-sdk/compiler-api-model.md
Product: dotnet-csharp
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

@kuhlenh @jinujoseph Do you have thoughts on this issue? If you have a different preferred description for the scripting APIs, can you link to it?

I wouldn't say scripting APIs are part of the compiler layer -- the types in Microsoft.CodeAnalysis.Scripting and Microsoft.CodeAnalysis.CSharp.Scripting namespaces are built on top of the compiler API. That said the compiler exposes some scripting-specific APIs to support scripting scenarios.


Add state = 4 in getChannelInfo (settled, but pending unlocks)

As discussed in:
https://github.com/raiden-network/raiden-contracts/pull/198#discussion_r206953616
and

I think it can be a good idea to also add the participant addresses and have the state for the unlock pending, additionally we should know which of the participants is pending unlock.
https://github.com/raiden-network/raiden-contracts/pull/198#pullrequestreview-142489240

If https://github.com/raiden-network/raiden-contracts/pull/198 and https://github.com/raiden-network/raiden-contracts/pull/203 are merged, we can add an additional channel state in getChannelInfo to have all the channel states through only one endpoint:
function getChannelInfo(uint256 channel_identifier, address participant1, address participant2)
The participant address are needed, so the smart contract can also retrieved the stored unlock data for both participants.

@hackaugusto , is the following enough:
also @LefterisJP
tl;dr
Get actual channel state with getChannelInfo. If you want to see what participant has unlock data on chain, use getChannelParticipantInfo and check  locksroot & locked_amount.
function getChannelInfo(uint256 channel_identifier, address participant1, address participant2)
        view
        external
        returns (uint256, uint8)
{
        // returns (settle_block_number, state)
        // where state can be:
        //  0 = non-existent
        //  1 = open
        //  2 = closed
        //  3 = settled
        //  4 = pending_unlock (at least 1 unlock)
}

function getChannelParticipantInfo(
            uint256 channel_identifier,
            address participant,
            address partner
)
        view
        external
        returns (uint256, uint256, bool, bytes32, uint256, bytes32, uint256)
{
        // returns (deposit, withdrawn_amount, is_the_closer, balance_hash, nonce, locksroot, locked_amount)
}

https://github.com/raiden-network/raiden-contracts/pull/203 already implements the above getChannelParticipantInfo


Added PROXY_ADDRESS_FORWARDING for Keycloak

Added PROXY_ADDRESS_FORWARDING for Keycloak

/azp run

@seriva I think it can be merged after the conflict is resolved as it has already been tested by @plirglo.


override an association's attributes with another association

assuming two factories that both associate with a single factory but also one to the other for example:
factory :merchant do
  store
  register
end

factory :register do
  store
end

I would like to for the merchant to override the store attribute in register with its own associated store when it creates the register, similar to how it can override an attribute with a string, so something like this:
association :register, store: store

but instead this raises an error Attribute already defined: store.
Currently as a workaround to this I'm using
after :create, :build do | merchant |
  shift.merchant ||= create(:register, store: merchant.store)
end

after :stub do | merchant |
  merchant.register ||= build_stubbed(:register)
end

I would like a fix for this too, have a issue very like your.

@levsero in these cases, I've done this:
factory :merchant do
  store { register.store }
  register
end

In general, having FG infer these sorts of relationships is incredibly difficult due to the various types of relationships and names, so it requires a tad more long-hand to get it to work.


“Update version URLs” to run only when an actual upload is expected

Now the “Update version URLs” CI fails because lamindb is no longer installed: https://github.com/laminlabs/bionty/actions/runs/5143134391/jobs/9257774303
But I don’t feel good about add “pip install lamindb” to the CI just for this because it takes long time, and this file uploading essentially occurs very infrequently upon push.
@Zethson Is there a way you can add a check so that lamindb is only installed when an actual upload is expected? Such as running a diff of the versions.yaml during after pushing to main?

Idea:
import sys
import os

def file_has_changed(filename):
    try:
        file_modified_time = os.path.getmtime(filename)
    except FileNotFoundError:
        return True

    commit_files = os.popen('git diff --name-only HEAD~1').read().splitlines()

    return filename in commit_files

if __name__ == '__main__':
    target_file = 'path/to/your/file.ext'

    if file_has_changed(target_file):
        print(f'The file {target_file} has changed. Running the script...')
    else:
        print(f'The file {target_file} has not changed. Skipping script execution.')

https://github.com/laminlabs/bionty/commit/eaa94e371ed89dbb8b705895447c5bb4cb95f097
Disabled it for now


Have ENV specific tye.yml files

What should we add or change to make your life better?
See Music Store Example tye.yaml
In this example, we would use a container for local dev, however it is feasible that in production that the SQL Server would be a service.
tye.production.yaml and tye.development.yaml would be a pattern that .NET developers would recognize/follow with a default of tye.yaml similar to appsettings.json patterns etc.

What you're describing here is already our assumption 😆
If you have a container in dev, it becomes an external service when deployed.
We will need to do some work to allow configuring differences between environments for sure, but I think we need to see and discuss more examples 👍

If we are assuming that there is a container in dev and a service in prod by default, this is a poor assumption in my opinion. Obviously, the thought is not that way and the permutations of services:containers:environments are to vast to make such an assumption.


Change the value of AuthnCacheContext?

Thanks for providing the container! I have a question about one httpd config:AuthnCacheContext.
It seems the official document recommends to change the default directory, which is conservative and not optimal. A better policy is to name the AuthnCacheContext for the password provider: for example a htpasswd file or database table.
Maybe it's better to set that to specify a context string for use in the cache keyin the comfig file? Thanks.

HCHCHH is a known troll (see e.g. https://github.com/epfl-idevelop/jahia2wp/issues/926), closing on-sight


create_mantis_dir assumes segmentation overlay extension is the same as the pixel/cell overlay extension

Please refer to our FAQ and look at our known issues before opening a bug report.
Describe the bug
In the create_mantis_dir function, it assumes that the segmentation extension is the same as the extension of the overlay mask:
https://github.com/angelolab/ark-analysis/blob/de39b62b1c310a3f63549b2238c8e72af9ece56f/ark/utils/plot_utils.py#L504
This causes errors when the segmentation mask suffix and overlay mask suffix are different. In my testing, I am using segmentation masks that end in ".tif", but in the pixel clustering notebook, the default is to generate the pixel masks using ".tiff."
Expected behavior
Be able to read ".tif" or ".tiff."
To Reproduce

@cliu72 we recently enforced a convention in our repo where we only use .tiff extensions, I'm guessing your data was generated before we implemented this change.
@ngreenwald is it worth making our codebase backwards compatible for .tif files (which essentially means undoing the changes we made for this PR)?

@ngreenwald @cliu72 actually, it's gonna be far easier to include a function in the ark pipeline (towards the beginning) to convert input data from .tif to .tiff format.

I agree, we made this change after candace generated the initial segmentation tifs, which is what lead to the error. If we find that many external users loading in segmentations from other software, we can add a conversion script, but until then I think it'll be simpler to assume people are using the pipeline to generate them.

The entire pipeline currently works for segmentation files with the ".tif" extension, except for this last step (seg_suffix is a parameter to many of the functions in the notebook). Regarding this specific issue I opened, I think logically it doesn't make sense for the mask_name to use the seg_suffix_ext since those are different files. I think it makes more sense to specify a mask_suffix_ext, since there is a seg_suffix_ext anyways.
In general, I think my paper is being marketed as "cross-platform" and doesn't require people to generate their segmentation masks using Mesmer. I'm worried we'll run into a reviewer having an issue again. Is there a reason why the support for .tiff was removed?

We previously had a mix of .tif and .tiff files, which meant we had to keep track of which files ended with which. The goal is to be able to do what you suggested with the mask overlay (assume everything ends with .tiff). If you think its worth it for this function to take in seg_suffix that's totally fine

Gotcha. For this specific issue, the only change I am requesting is that this line:
https://github.com/angelolab/ark-analysis/blob/de39b62b1c310a3f63549b2238c8e72af9ece56f/ark/utils/plot_utils.py#L504
be changed to:
mask_name: str = mn + mask_suffix + ".tiff"
The function currently already takes in a seg_suffix anyways, so there is no need to make changes there.
I'm going to open a new issue for the generalizability of .tif thing.


make 1.21.1 version

ITS USELESS without 1.21.1 port

this is an experimental project, forge versions are mostly a priori already with demo turned off, so this project is not necessary in principle.


Add new cmd to store code via a gov proposal.

Description

closes: #4202
Commit Message / Changelog Entry
type: commit message

see the guidelines for commit messages. (view raw markdown for examples)

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (see CONTRIBUTING.md).
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Code follows the module structure standards and Go style guide.
[ ] Wrote unit and integration tests.
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/).
[ ] Added relevant godoc comments.
[ ] Provide a commit message to be used for the changelog entry in the PR description for review.
[ ] Re-reviewed Files changed in the Github PR explorer.
[ ] Review Codecov Report in the comment section below once CI passes.

Tysm for testing locally for me @crodriguezvega, much appreciated 🙏


Sort features by default in counterfactual flyout

Description
The toggle button for sorting the features in the counterfactual fly-out is turned off by default. Setting this to be turned on by default.
Areas changed

npm packages changed:

[ ] responsibleai/causality
[ ] responsibleai/core-ui
[x] responsibleai/counterfactuals
[ ] responsibleai/dataset-explorer
[ ] responsibleai/fairness
[ ] responsibleai/interpret
[ ] responsibleai/localization
[ ] responsibleai/mlchartlib
[ ] responsibleai/model-assessment

Python packages changed:

[ ] erroranalysis
[ ] raiutils
[ ] raiwidgets
[ ] rai_core_flask
[ ] responsibleai

Tests

[ ] No new tests required.
[ ] New tests for the added feature are part of this PR.
[ ] I validated the changes manually.

Screenshots (if appropriate):

Documentation:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

Codecov Report

Merging #1312 (25e8b42) into main (dd92439) will increase coverage by 12.87%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main    #1312       +/-   ##
===========================================
+ Coverage   77.18%   90.05%   +12.87%
===========================================
  Files          38       79       +41
  Lines        1587     3350     +1763
===========================================
+ Hits         1225     3017     +1792
+ Misses        362      333       -29

Flag
Coverage Δ

unittests
90.05% <ø> (+12.87%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

raiwidgets/raiwidgets/utils.py

...iwidgets/raiwidgets/model_performance_dashboard.py

raiwidgets/raiwidgets/error_analysis_constants.py

raiwidgets/raiwidgets/error_analysis_dashboard.py

...iwidgets/raiwidgets/fairness_metric_calculation.py

raiwidgets/raiwidgets/explanation_dashboard.py

...idgets/raiwidgets/responsibleai_dashboard_input.py

raiwidgets/raiwidgets/__init__.py

...dgets/raiwidgets/error_analysis_dashboard_input.py

raiwidgets/raiwidgets/cohort.py

... and 71 more

Continue to review full report at Codecov.

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

@gaugup a test case would be nice. I suspect there was none to start with which is why you didn't need to adjust any, right?

@gaugup a test case would be nice. I suspect there was none to start with which is why you didn't need to adjust any, right?

Yes, there was none to start with but then a test which was already testing code around this change failed. So I fixed it.


Orders are placed even then when payment was not successfull

I installed Version 1.04 of your plugin. As soon as I proceed to checkout, choose a payment method, continue and cancel the payment, I'm sent back to the cart. But, everytime a order is generated in JTL Shop, ofcourse without payment, but the order is here and the products are reserved and the customer gets each time a order confirmation.
So I think it should be like that:

Customer proceeds to the payment
Payment is aborted or rejected
=> Customer comes back to his basket and no order is placed in JTL Shop.

Kind regards

Additional info: Customer gets also each time he tries to pay a order confirmation email, even when the order was not finalized or paid.

Dear PAO1908CH
Thank you for your explanations. We will check this on our side.
Best regards

With payment plugin 1.05 this problem has been fixed, thank you!

With payment plugin 1.05 this problem has been fixed, thank you!

No, with our installation the issue is still here. It isn't fixed with 1.05
JTL Shop 5.2.4
PHP 8.1
let me know if you need anything else to fix this asap please.

Which problem? The Mails or the order created even when the payment was not
successfull?
Alcpaone @.***> schrieb am Do., 14. Dez. 2023, 16:54:

With payment plugin 1.05 this problem has been fixed, thank you!
No, with our installation the issue is still here. It isn't fixed with 1.05
JTL Shop 5.2.4
PHP 8.1
let me know if you need anything else to fix this asap please.
—
Reply to this email directly, view it on GitHub
https://github.com/pfpayments/jtl-5/issues/2#issuecomment-1856103426,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDVLGBU4CC2VAT32MC3TVITYJMOKFAVCNFSM6AAAAAA64NO6J6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNJWGEYDGNBSGY
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

unpaid order is created even when the payment was not succesfull or goes back to change payment method. so we get a unpaid order in the Wawi.

hi @Alcpaone , we are working on wawi in a different ticket. We will inform you as soon as it is done.

Ensure that you have activated in all postfinance payment Methods, in jtl
shop backend, payment before order is Set to yes.
Alcpaone @.***> schrieb am Do., 14. Dez. 2023, 17:21:

unpaid order is created even when the payment was not succesfull or goes
back to change payment method. so we get a unpaid order in the Wawi.
—
Reply to this email directly, view it on GitHub
https://github.com/pfpayments/jtl-5/issues/2#issuecomment-1856149293,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDVLGBX2LQBQFXSRRFHLPTLYJMRPJAVCNFSM6AAAAAA64NO6J6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNJWGE2DSMRZGM
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Affirm, that's the one I mean.
Alcpaone @.***> schrieb am Do., 14. Dez. 2023, 19:20:

do you mean this option?
image.png (view on web)
https://github.com/pfpayments/jtl-5/assets/64169279/93478e2f-11ec-4e99-9ff9-d4bb78ddb77c
Will check if anything change with this setting set to yes (i hope so) but
why is this important setting by default set to no AND more important why
there is any hint in the documentation?
btw: The documentation says, this plugin is alpha version.
image.png (view on web)
https://github.com/pfpayments/jtl-5/assets/64169279/2f9f8bb9-73de-40f4-9f31-52c3844abd28
—
Reply to this email directly, view it on GitHub
https://github.com/pfpayments/jtl-5/issues/2#issuecomment-1856360911,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDVLGBU2FCPHQ7LX3IT3DH3YJM7NTAVCNFSM6AAAAAA64NO6J6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNJWGM3DAOJRGE
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

@PAO1908CH looks like this option is working so we don't get unpaid orders. Please add this information to the documentation.

Im not developer 🤣 only a User like you.
Alcpaone @.***> schrieb am Fr., 15. Dez. 2023, 13:26:

@PAO1908CH https://github.com/PAO1908CH looks like this option is
working so we don't get unpaid orders. Please add this information to the
documentation.
—
Reply to this email directly, view it on GitHub
https://github.com/pfpayments/jtl-5/issues/2#issuecomment-1857804117,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDVLGBW2XCZNIBGOROBDT4LYJQ6WFAVCNFSM6AAAAAA64NO6J6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNJXHAYDIMJRG4
.
   Alcpaone @.> schrieb am Fr., 15. Dez. 2023, 13:26:
…
@PAO1908CH https://github.com/PAO1908CH looks like this option is working so we don't get unpaid orders. Please add this information to the documentation. — Reply to this email directly, view it on GitHub <#2 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/BDVLGBW2XCZNIBGOROBDT4LYJQ6WFAVCNFSM6AAAAAA64NO6J6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNJXHAYDIMJRG4 . You are receiving this because you were mentioned.Message ID: @.>

hi @Alcpaone , sure, we will update the documentation accordingly


Update project tt_um_silice (sylefeb/tt08-compo-entry)

Update project tt_um_silice to commit sylefeb/tt08-compo-entry@c1187b0f7dc537ed51bdbb4230c7fa11bd08248d
Project title: Warp
Tiles: 1x2
Workflow: https://github.com/sylefeb/tt08-compo-entry/actions/runs/10728288737

Wow @sylefeb, 95% utilization! and the teaser video on discord, looks great!


Heavily reduce max science packs in factorio

While having a filler seed for Factorio in the most recent async I don't have any techs under 500 and I think that is extremely unreasonable for newer players and for even older players considering mine went up to around 5500 packs for one check. While you can leave it in the background that is not as doable with biters and not everyone has a strong enough system to keep it running and play another game.

@Berserker66 being the Factorio maintainer (and in general having better knowledge of the game than me): thoughts on this?

The higher range of this option exists specifically for async(s)

This is perhaps the single most reasonable and appropriate setting for the extreme option.  Players are not obligated to retain possession of these player slots (in our async anyway), and I'm pretty certain at least someone would rise to the challenge as they did before.

Having the chance at a high cost is fine for the big async.


upgrade node-pre-gyp to fix install problem

node-pre-gyp has been deprecated and only the scoped name @mapbox/node-pre-gyp will receive upgrades (as https://github.com/mapbox/node-pre-gyp#special-note-on-previous-package)
this change fix install problems caused by node-pre-gyp issues with node versions 12.x 14.x and higher
fix: #116 #165 #162 and so.........on
error /project/node_modules/nodejieba: Command failed.
Exit code: 6
Command: node-pre-gyp install --fallback-to-build
Arguments:
Directory: /project/node_modules/nodejieba
Output:
node-pre-gyp info it worked if it ends with ok
node-pre-gyp info using<EMAIL_ADDRESS>node-pre-gyp info using<EMAIL_ADDRESS>| darwin | x64
node-pre-gyp WARN Using needle for node-pre-gyp https download
node-pre-gyp info check checked for "/project/node_modules/nodejieba/build/Release/nodejieba.node" (not found)
node-pre-gyp http GET https://github.com/yanyiwu/nodejieba/releases/download/v2.5.1/nodejieba-v2.5.1-node-v72-darwin-x64.tar.gz
node-pre-gyp http 301 https://github.com/yanyiwu/nodejieba/releases/download/v2.5.1/nodejieba-v2.5.1-node-v72-darwin-x64.tar.gz
node-pre-gyp ERR! Completion callback never invoked!
node-pre-gyp ERR! System Darwin 19.6.0
node-pre-gyp ERR! command "/usr/local/Cellar/node/16.0.0/bin/node" "/project/node_modules/nodejieba/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /project/node_modules/nodejieba
node-pre-gyp ERR! node -v v12.21.0
node-pre-gyp ERR! node-pre-gyp -v v0.14.0
node-pre-gyp ERR! This is a bug in `node-pre-gyp`.
node-pre-gyp ERR! Try to update node-pre-gyp and file an issue if it does not help:
node-pre-gyp ERR!     <https://github.com/mapbox/node-pre-gyp/issues>
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

@yanyiwu review plz

thanks


Active class is not set on initial render

In order to use the scroll spy (with a sidebar menu for example). The element which is inside the viewport on initial render doesn't have a active class.
This problem also occurs on the example of this repo: http://fisshy.github.io/react-scroll-example/basic/index.html
I saw a pull request for this issue, but were rejected for a different reason. I would love to see this working.

Thanks @fisshy! Looking forward to it 👍

+1

Sorry but I haven't had the time yet, currently on vacation. I did try to fix it, but couldn't come up with something quick. Will try to solve it once I'm back home.

Hi fisshy, would love to see if you were able to find a solution yet!

Hi @mariotacke, I'm back today and I will fix it before I go to sleep today :)

I've now solved this, but you will have to call scrollSpy.update(); in your componentDidMount.
Because links/elements are dynamic so there's no way to detect when all the elements has been rendered and linked. So the best way is to call scrollSpy.update() in your component that wraps your links/elements.
It has been published in v1.1.0. I've also updated the README.

Excellent work. Thank you for this great lib!

Thanks @fisshy this is really helpful!

Glad you like it @markhaasjes  and @mariotacke !

this isn't working for me. I call it in the component which wraps the link function in the setState callback which renders the items. I've even tried an arbitrary but long enough timeout before calling update() and still do not get an initial active state. It only becomes active after a tiny scroll.

My activeClass on Link is not working. I followed this link:
https://scotch.io/tutorials/implementing-smooth-scrolling-in-react.
What should I do? I already Added the scrollSpy.update() in componentDidMount() but nothing worked.

My activeClass on Link is not working. I followed this link:
https://scotch.io/tutorials/implementing-smooth-scrolling-in-react.
What should I do? I already Added the scrollSpy.update() in componentDidMount() but nothing worked.
Hello,
Have you managed to solve this?

I also tried achieving this by adding scrollSpy.update() and did not work


Add support for loongarch64

Add support for loongarch64

@fbs @viktormalik  @ajor  @danobi @chenhengqi @BurntBrunch   please review and merge, thank you!

Support for loongarch is now merged (#2466).