netcdf-c and netcdf-fortran can be updated, with special measures to enable zstandard compression

netcdf-c-4.9.0 and netcdf-fortran-4.6.0 are out! ;-)
In order for zstandard compression to work, the zstandard library must be installed before netcdf-c is built.
Also the configure option --with-plugin-dir=/some/dir.
Then the environment variable HDF5_PLUGIN_PATH must be set to /some/dir, for netcdf-fortran and every application that wants to use zstandard.
That is, if some rando netCDF application calls nc_def_var_zstandard() (or its fortran wrappers), the must have the HDF5_PLUGIN_PATH environment variable set correctly. or when they run that code they will get a "filter not found" error.
So this may present a challenge for spack. @kgerheiser you are now much more familar with spack than I am - what do you think is the best way to do this?

This is all pretty easy with Spack.

zstd is already a package
Add --with-plugin-dir to netcdf-c (with a +plugins variant?)
HDF5 can set HDF5_PLUGIN_PATH with the setup_run_environment() method.

I'm a little hazy where zstd is actually used here. Would you add a depends_on(zstd) to the HDF5 or NetCDF package? And it presumably that would be behind a variant like +zstd?

zstd is used by HDF5.

Is there some sort of option to pass to configure to use zstd in NetCDF?

If it is found, and --with-plugin-dir is used, then zstandard will be enabled.
It's included in the list of features summarized at the end of configure, and in netcdf_meta.h, so you can check to ensure that zstandard is built, and plugins are installed.

How does NetCDF detect zstd? I guess there needs to be a -I<ZSTD_INC> -L${ZSTD_LIBDIR} -lzstd sort of thing added to the configure flags?

Yes the include and library paths need to be found. No need to set -lzstd, the configure does that.
If you install zstandard in the usual place on linux systems (sudo apt-get install zlib-dev) then everything is found without further effort.

One note, I might also suggest adding --with-hdf5-plugin-path to NCO's build as well. Per Charlie Zender on the mailing list it's not required but it might make things more robust. (Seems to be true in my testing.)
I suppose the question is if the setting/appending of the HDF5_PLUGIN_PATH environment variable in the netcdf-c package would be tripped by a spack load nco. Probably?

Also, and maybe @edwardhartnett would know the answer to this, is it necessary or good to set H5_DEFAULT_PLUGINDIR (or the equivalent --with-default-plugindir) when building HDF5 to match the value provided to netcdf-c in --with-plugin-dir?
I did that in my Baselibs testing only because, well, some Google search about HDF5 plugins talked about it most likely and my fear was based on the fact that HDF5 seems to default to /usr/local:
    H5_DEFAULT_PLUGINDIR    "/usr/local/hdf5/lib/plugin"

But I suppose if netCDF is the one installing to that path, then all netcdf based programs would be fine. It might only be HDF5 programs that would need to know...and even then the HDF5_PLUGIN_PATH might be enough!

I suppose the question is if the setting/appending of the HDF5_PLUGIN_PATH environment variable in the netcdf-c package would be tripped by a spack load nco. Probably?

This is a good point. If using modules with autload: direct, then having the netcdf-c module loaded is enough because NCO will load NetCDF, but I don't think it'll populate a spack load nco because the default depends_on() is (build, link) (not run). So, the variable should be set in setup_dependent_run_environment() so that it sets it for dependencies as well.

I can confirm that spack load nco correctly populates HDF5_PLUGIN_PATH from netcdf-c with just setup_run_environment

Also, and maybe @edwardhartnett would know the answer to this, is it necessary or good to set H5_DEFAULT_PLUGINDIR (or the equivalent --with-default-plugindir) when building HDF5 to match the value provided to netcdf-c in --with-plugin-dir?

Also a good question. I think it's a matter of taste. You could put all your plugins in the same location, or in separate places (and append to HDF5_PLUGIN_PATH). In Spack I think it's good to have the plugins that NetCDF installs in the NetCDF prefix, but in Baselibs it seems reasonable to point them to the same location. By setting H5_DEFAULT_PLUGINDIR you don't have to explictly set HDF5_PLUGIN_PATH as an environment variable, but Spack handles this automatically.

Note. The corresponding PR for the authoritative spack repo is https://github.com/spack/spack/pull/31953. After that PR gets merged, we should cherry-pick those changes and bring them over (or update to the head of develop).


[Question] Write pixel block to frame buffer

A clueless question.
How i know .NET Core 2.0 supports System.Drawing.
Is it possible to draw some primitives to a memory bitmap (e.g. with System.Drawing.Graphics.DrawEllipse)
and then put the pixel data directly to veldrid frame buffer (something like "glDrawPixels") ?

There's nothing exactly like glDrawPixels built in to Veldrid. To accomplish this, you will need to create a Texture out of the System.Drawing Bitmap and then render that onto a quad with some simple shaders.


Check duplicate matches with given fields

Clarification: This is on the migration data, not the input data. Needed because behaviour is not defined when two transformations exist for the same input data.


WIP: Introduce ResourceReferences in TaskSpec

Opening early for visibility - the code itself is not ready for a final review but I wanted to validate that I'm on the right path for new protos here.  I'm working on untangling how to best test this change in dispatcher_test.go
This PR introduces ResourceReferences in TaskSpec, and includes the code for the dispatcher to send the appropriate resources down to the task itself (and release them).
The goal is to eventually make resources like secrets non-ContainerSpec specific by allowing to reference the resource in TaskSpec.  This will first be used to deliver secrets to plugins.
cc @aaronlehmann @cyli @diogomonica @cpuguy83 @liron-l

This seems good.

thanks @aaronlehmann and @cpuguy83 for the quick review!  I'll update with the feedback and with tests after I finish with them.

@aaronlehmann: I updated the assignment tests to include secrets and configs from a ResourceReference for each task (one of each) - which adds to the math additions.

design LGTM

rebased on top of @cyli's new testing structure and I've added different task generator functions to cover @aaronlehmann's suggested cases.

@aaronlehmann: thanks for the review!  Pushed with updates.

LGTM

ping @diogomonica @cyli @aluzzardi

LGTM


Allow bundler 2

Describe the change
Allow bundler 2.0.
Why are we doing this?
After the latest release v0.9.1 was released, bundler 2.0 has been released.
Benefits
Users can choose bundler 1 or 2 which they want.
Drawbacks
With quick test, nothing. It works perfectly both bundler 1.17.3 and 2.0.1.
Requirements
Put an X between brackets on each line if you have done the item:
[] Tests written & passing locally?
[X] Code style checked?
[X] Rebased with master branch?
[] Documentaion updated?

Oops, duplicate of #51.


fails to build with ghc-9.6 stackage nightly

      Building library for bencoding-<IP_ADDRESS>..
       [4 of 4] Compiling Data.BEncode

       /var/stackage/work/unpack-dir/unpacked/bencoding-<IP_ADDRESS>-f895d5fb0ac15a532aa4e7301fd61d0c9d401f412b41b1f3f064f81040a72b97/src
/Data/BEncode.hs:671:35: error: [GHC-39999]
           • No instance for ‘MonadPlus (Either String)’
               arising from the 'deriving' clause of a data type declaration
             Possible fix:
               use a standalone 'deriving instance' declaration,
                 so you can specify the instance context yourself
           • When deriving the instance for (Alternative Get)
           |
       671 |   deriving (Functor, Applicative, Alternative)
           |                                   ^^^^^^^^^^^

Fix released as <IP_ADDRESS>.


TE-9.1: FIB failure due to hardware resource exhaust

Opened PR to address this issue: https://github.com/openconfig/featureprofiles/pull/2048


Derry swallows exit codes

Hi there! First of all, thank you so much for developing this tool.
I have a question/bug report - when derry runs a script and it fails, instead of returning the exit code of the script it returns 0. Is this intentional?
If it is intentional, would derry benefit from a config/option to enable passing exit codes from scripts?
Please let me know your thoughts. I am willing to create a PR once we settle on a solution.

thank you so much for developing this tool

Thanks! I appreciated.

when derry runs a script and it fails, instead of returning the exit code of the script it returns 0. Is this intentional?

No, it is not intentional. I just did not return anything from the rust execution side so the state of execution is not handled at all.

would derry benefit from a config/option to enable passing exit codes from scripts?

I do think it could be done, but I don't see any benefit though. Or am I missing something? Does it cause fatal errors or have use cases?

Thanks for responding so quickly!

I do think it could be done, but I don't see any benefit though. Or am I missing something? Does it cause fatal errors or have use cases?

So one thing is that when you execute multiple lines in a script (using the array/list syntax) and one of them fails, derry continues executing. This may be undesirable because steps can expect something to happen beforehand and the failure just cascades (and may break things even more).
Second benefit is from using derry in automated environments (PS. I know from previous issues that derry was supposed to be a developer tool, but I believe this change would add consistency with other tools and improve the overall usability). I would love to use derry to run scripts in the CI environment because it makes it so much more readable and sustainable, but derry swallowing exit codes makes it impossible to use for running tests or analysis as many CI environments rely on exit codes to signify failure.

Oh, yes I see. That is an excellent reason, and it could be a nice feature to have. I have used it in CI environments but I wasn't aware that it could be a potential problem.
PRs are welcome. But I'm not entirely sure if the rust executor I wrote could return exit codes or not. If it does, the implementation will be pretty much straightforward. If you don't write Rust, let me do that tomorrow morning :alarm_clock:.

I am not familiar with Rust enough to do this change, so let me know when you investigate this. If you introduce the necessary changes to Rust I can take it from there if you don't have time or resources and do the Dart part in a PR. Thank you so much for taking your time to do this!

Thank you for your help, but since there wasn't much to do and I also had things to fix myself, I just went ahead and add that feature. It will be in v1.1.0 at #37. Please let me know if you have any errors on the implementation or if it's not as intended.
Just a note that,

So one thing is that when you execute multiple lines in a script (using the array/list syntax) and one of them fails, derry continues executing

It is intentional. I wanted different steps to have separate execution contexts. What you want can be achieved by doing
failable:
  (execution): once
  (scripts):
    - echo test
    - "false"
    - echo "this won't be called"

It is kinda ugly but you probably don't have to use it. You can now have separate CI steps for that, derry commands will now return exit codes.


Alexa doesn't support colors for "Color Light"-devices

While trying to test the new HEX-formatted colors from #821 I encountered following problem:
After I added HTTP-calls for some devices in habridge and rediscovered devices in Alexa, the Alexa web frontend shows the type Color Light instead of Dimmable Light. Even though this looks correct, I still get a "device doesn't support this"-answer when prompting Alexa to turn a lamp red.
Is this an issue connected to the new release or am I doing something wrong? The HTTP-call for the Color item is:
http://usr:pwd@<IP_ADDRESS>:8723/fhem?cmd=set%20Ecklampe%20RGB%20${color.rgbx}

Alexa does not support color changes yet.

Okay, do you already know what's to do for this support?
Otherwise I could try do some Wireshark investigations.

IT is the Alexa software itself does not do it. Talk to Amazon.....

Great.. that means even if one is using the "original" setup (Amazon Echo + Philips Hue Bridge) he won't be able to change colors without installing the cloud based skill.
Thank you Amazon 🙈

That is correct. closing

hi all. is this still the case as of today? you need to install the alexa skill in order to change colors?


chore: bump dependencies

This PR updates dependencies. controller-runtime had some API removals, hence the many changes.

/approve


Govee 6148

I thought the Govee 6148 supported adaptive lighting potentially but not 100% sure. Is this a possibility?
Also,my 6148 seems to not respond to HomeKit automation. I had this set to turn off at a certain time and it didn't. It also appears to start flashing different colors randomly and I go into the Govee app to find it somehow was switched to "Scene" mode. Any thoughts on this?
Thanks for all your work on this plugin!! I appreciate it!

Hi @justinkerns1

I thought the Govee 6148 supported adaptive lighting potentially but not 100% sure. Is this a possibility?

The option for adaptive lighting should appear for all the models. Are you using the Homebridge beta? Make sure it's updated to the latest (beta) version.

Also,my 6148 seems to not respond to HomeKit automation. I had this set to turn off at a certain time and it didn't.

Please try this again. Are there any logs at the time the automation was meant to run? Please turn on debug logging too.

It also appears to start flashing different colors randomly and I go into the Govee app to find it somehow was switched to "Scene" mode. Any thoughts on this?

This is very strange as the Govee API doesn't support switching to scenes. Could there be another automation running somewhere to turn this on? Like via the Govee app (if this is possible?) or through Google Home/Alexa?

Thanks for all your work on this plugin!! I appreciate it!

😃

Hi @justinkerns1

I thought the Govee 6148 supported adaptive lighting potentially but not 100% sure. Is this a possibility?

The option for adaptive lighting should appear for all the models. Are you using the Homebridge beta? Make sure it's updated to the latest (beta) version.

Also,my 6148 seems to not respond to HomeKit automation. I had this set to turn off at a certain time and it didn't.

Please try this again. Are there any logs at the time the automation was meant to run? Please turn on debug logging too.

It also appears to start flashing different colors randomly and I go into the Govee app to find it somehow was switched to "Scene" mode. Any thoughts on this?

This is very strange as the Govee API doesn't support switching to scenes. Could there be another automation running somewhere to turn this on? Like via the Govee app (if this is possible?) or through Google Home/Alexa?

Thanks for all your work on this plugin!! I appreciate it!

😃

Thanks for the quick reply.
So I'm using HOOBS version 3.3.2 so maybe that's why adaptive lighting won't work? Is it supported in Homebridge only?
Also, here is what I could find when it last started flashing random colors and brightnesses. I'm not sure exactly when it did it but I think it was around this time. Some of these is probably me trying to get it to stop. I also just turned on the Debug Log.
1/12/2021, 8:57:18 PM [Govee] [H6148_EA6B] current colour [rgb 120 121 135].
1/12/2021, 8:57:48 PM [Govee] [H6148_EA6B] current colour [rgb 0 0 0].
1/12/2021, 8:58:23 PM [Govee] [H6148_EA6B] current brightness [1%].
1/12/2021, 8:58:48 PM [Govee] [H6148_EA6B] current colour [rgb 255 255 255].
1/12/2021, 8:59:12 PM [Govee] [H6148_EA6B] current brightness [100%].
1/12/2021, 8:59:20 PM [Govee] [H6148_EA6B] current brightness [1%].
1/12/2021, 9:00:11 PM [Govee] [H6148_EA6B] current colour [rgb 128 128 128].
1/12/2021, 9:00:12 PM [Govee] [H6148_EA6B] current colour [rgb 120 120 135].
1/12/2021, 9:00:18 PM [Govee] [H6148_EA6B] current brightness [4%].
1/12/2021, 9:01:09 PM [Govee] [H6148_EA6B] current brightness [50%].
1/12/2021, 9:03:18 PM [Govee] [H6148_EA6B] current brightness [4%].
As far as the automation I think what happened was I didn't have it clicked to turn off so at 11:30pm when the automation was to run nothing happened (It was set to be 4% which from what I can tell from the log it was already at 4%). Sorry to waste your time on that one I dug into it and it was for sure my fault.

Thanks for the quick reply.
So I'm using HOOBS version 3.3.2 so maybe that's why adaptive lighting won't work? Is it supported in Homebridge only?
Also, here is what I could find when it last started flashing random colors and brightnesses. I'm not sure exactly when it did it but I think it was around this time. Some of these is probably me trying to get it to stop. I also just turned on the Debug Log.
1/12/2021, 8:57:18 PM [Govee] [H6148_EA6B] current colour [rgb 120 121 135].
1/12/2021, 8:57:48 PM [Govee] [H6148_EA6B] current colour [rgb 0 0 0].
1/12/2021, 8:58:23 PM [Govee] [H6148_EA6B] current brightness [1%].
1/12/2021, 8:58:48 PM [Govee] [H6148_EA6B] current colour [rgb 255 255 255].
1/12/2021, 8:59:12 PM [Govee] [H6148_EA6B] current brightness [100%].
1/12/2021, 8:59:20 PM [Govee] [H6148_EA6B] current brightness [1%].
1/12/2021, 9:00:11 PM [Govee] [H6148_EA6B] current colour [rgb 128 128 128].
1/12/2021, 9:00:12 PM [Govee] [H6148_EA6B] current colour [rgb 120 120 135].
1/12/2021, 9:00:18 PM [Govee] [H6148_EA6B] current brightness [4%].
1/12/2021, 9:01:09 PM [Govee] [H6148_EA6B] current brightness [50%].
1/12/2021, 9:03:18 PM [Govee] [H6148_EA6B] current brightness [4%].
As far as the automation I think what happened was I didn't have it clicked to turn off so at 11:30pm when the automation was to run nothing happened (It was set to be 4% which from what I can tell from the log it was already at 4%). Sorry to waste your time on that one I dug into it and it was for sure my fault.

Ahh if you're using HOOBS their 'included' Homebridge version is v1.1.7. There is no way to change this. Adaptive lighting for your Govee model will be available when Homebridge 1.3 is released and HOOBS update their system to include Homebridge 1.3.
From your logs it looks like you were having a little disco 😛
If you have any further issues with the plugin please do get in touch!

Ahh if you're using HOOBS their 'included' Homebridge version is v1.1.7. There is no way to change this. Adaptive lighting for your Govee model will be available when Homebridge 1.3 is released and HOOBS update their system to include Homebridge 1.3.
From your logs it looks like you were having a little disco 😛
If you have any further issues with the plugin please do get in touch!


Lint/UselessAccessModifier doesn't respect active support's concerning since 0.40.0

Hello again after a while!
I'm upgrading a Rails app from RuboCop v0.39.0 to v0.40.0 and noticed some new Lint/UselessAccessModifier offenses appeared in code which looks like this:
# gem install active_support
require 'active_support/core_ext/module/concerning'

class Dog
  concerning :Barking do
    def woof
      puts woof_message
    end

    private

    def woof_message
      "woof!"
    end
  end

  concerning :BeingAGoodBoy do
    def good_boy?
      ate? && !peed_on_floor?
    end

    private

    def ate?
      [true, false].sample
    end

    def peed_on_floor?
      [true, false].sample
    end
  end
end

In this case, RuboCop thinks the second private isn't doing anything, but it actually does make the subsequent methods in the concerning block private.

We're having this same problem with a vanilla ActiveSupport::Concern.  e.g.:
module Foo
  extend ActiveSupport::Concern

  class_methods do
    private
    ...
  end

  private

  def bar
  ...
  end
end

It appears the new implementation is unable to see that the first `private` only applies inside the block.

I think this has already been fixed in master here.

@savef It seems that fix was only for blocks given to new. I still get a false positive from Lint/UselessAccessModifier when checking @maxjacobson's example code. The problem started with #3060.

Ah! Sorry. I only tested it on my own false positive (which was a Struct.new one).

I wasn't aware of this, and I'm not already looking so feel free to go ahead @maxjacobson!
I would guess that adding a new matcher for concerning and class_methods to (a suitable renaming of) instance_eval_or_new_call? would do the trick (since we want to treat the blocks passed to those methods as new scopes).
However, I'm not sure if we should care that this would be ActiveSupport-specific code in a non-Rails cop, hopefully not!

Fixed in https://github.com/bbatsov/rubocop/pull/3186


Chunks generated with require.ensure do not respect output path

Hello.
require.ensure(['../public/js/test-ensure.js'], function(require) {
  let test = require('../public/js/test-ensure.js');
  console.log(test);
});

The above code works fine in dev, yet in production (-p) results in loading the generared chunks from the current path and not the path set for output in the config.
Additionally, if I have a <base ..> set in my <head> then the script being loaded (chuck) points to the baseUri/chunk.js and that's (of course) not found.
How do I tell webpack where to look for the chunk, or how do I make it "respect" the webpack.config.output path and not use the current path?
Thank you.

As I noticed, __webpack_require__.p is, perhaps, the key to resolve this.

I issued with this problem.
Now I solved this issue by add trailing slash
output: {
path: path.resolve('./dist/public/js'),
publicPath: '/js/',
filename: '[name].js',
chunkFilename: '[name]-[chunkhash].js',
},

You can specify path inside filename and chunkFilename properties:
output: {
   filename: 'scripts/[name]-[chunkhash].js',
   chunkFilename: "scripts/[chunkhash].js"
}

I also encounter this problem ! The chunk files' paths are all relative to my website root url ~ But I can't set the path of chunkfile

I got the same issue with  webpack 2.4.1
You should define publicPath / is important
    output: {
       path: path.join( __dirname, 'dist' ),
       publicPath: path.join( __dirname, 'dist/' ),
       filename: '[name].js',
       chunkFilename: '[name].js'
    }


Provide better output on toltecctl uninstall

Provide output right at the end if a removal fails due to a preremove script. That way, the user can double-check the output to see if there is something bad. For example, kernelctl failed to revert to the stock kernel.

I created a test package that will fail during preremove.
Do you have any tips on restoring /opt after uninstalling?

Uninstall removes /opt, which is actually /home/root/.entware. you will have to install again with bootstrap. If you want to avoid doing so, you can copy the .entware folder before doing the uninstall, rename the copy to .entware after uninstalling and then re-enable.

I think this will need to be updated to remove toltec packages first, and then it might even be safe to just delete things without removing entware packages, as they never touch the root partition.

It also probably highlights that launcherctl needs to depend on whatever provides /opt/bin/find.

launcherctl is being removed after xochitl, which means it is failing to run its uninstall and enable xochitl.


VER-4075 Create new method on DB Service

also don't know whether you saw this comment
uk.gov.hmrc.crypto in project/AppDependencies.scala can be removed - its already provided by uk.gov.hmrc.crypto-json-play-28


Renaming fields arguments

The rename transform allows renaming Types and Field names; which is useful.
However, it would be great to rename also argument names for fields; because when they get automatically generated from OpenAPI-like schemas they can have very long and not-meaningful names.
I cannot entirely tell if wrap/renameobjectfields in graphql-tools already has this functionality as the API documentation is not much detailed.
Hopefully, this is available and it should be easy to expose the functionality also in Mesh.

It is not yet available... :(

It is not yet available... :(

This would be great.

Rename transform support argument renaming;
https://the-guild.dev/graphql/mesh/docs/transforms/rename#config-api-reference


Add Functionality to The Plant Filters Page

All functionality has been added: care guides, filtering options, taxonomic ranks.


is there a way set active item font color?

Is there a way set active item font color?

Try titleFontColorEnabled item property.


Fix bug in hex_to_color and remove unnecessary allocations

Adds some unit tests too.

Thanks for the PR!


using $this->customise() in an action on controller with defined $url_handlers uses incorrect default template

When $url_handlers is defined on a controller, and an action is hit and returns a customised ViewableData instance, it seems to use the controller's default template (e.g Page.ss), as opposed to the action's suffixed template (e.g Page_go.ss).
e.g Page.php:
class Page_Controller extends ContentController {

	private static $allowed_actions = array(
		'go'
	);

	private static $url_handlers = array(
		'go//$OtherID' => 'go'
	);

	public function go($request) {
		return $this->customise(array(
			'Foo' => true
		));
	}

}

Using $this->render() instead of customise, or re-adding the default $Action//$ID/$OtherID => 'handleAction' to the array behaves as expected.

If you don't add any logic to customise the view then the controller will use the getViewer method to determine the template.
If you customise the controller then it assumes you've done want you want and just passes it through.
An alternative to retain the behaviour you describe is just to return the customise array.
eg:
public function go($request) {
    return array(
        'Foo' => true,
    );
}


Semantically incorrect use of article elements

I have noticed a lot of use of the article element as a wrapper in FoundationPress. Here are some examples where I believe it used incorrectly:
https://github.com/olefredrik/FoundationPress/blob/master/archive.php#L21
https://github.com/olefredrik/FoundationPress/blob/master/woocommerce.php#L17
https://github.com/olefredrik/FoundationPress/blob/master/search.php#L15
The <main> element seems more semantically appropriate to me in these instances.

@colin-marshall  I would add the index.php to this as well possibly.


Implementing Rail Fence Cipher in Python

💥 Proposal
The rail fence cipher (also called a zigzag cipher) is a form of transposition cipher. The plaintext is written in zig-zag manner and the ciphertext is read line by line.
Have you read the Contributing Guidelines on Pull Requests?
Yes

/assign


Add AD functionality for nimbleFunction methods

This PR implements the framework of AD for nimbleFunction methods.  Currently, all AD features are marked as EXPERIMENTAL.  In order to use AD as provided by this PR, see the guide at the NIMBLE AD wiki page.  Note that the cppad/ folder must be placed within packages/nimble/inst/include/, and that nimbleOptions(enableDerivs = TRUE) must be called before using any AD features.
As of this PR, the limitations of AD in NIMBLE are as follows:

derivs(calculate(model, nodes)) does not currently work.
Users cannot specify which arguments they would like derivatives with respect to (by default, derivatives are taken with respect to all arguments).
Currently, the only distribution with AD support is the univariate normal (dnorm).
It is possible (likely) that other, non-distributional functions in NIMBLE's dsl are likewise not supported by AD yet.  More testing is needed to determine which functions are not yet supported.

Not sure but you might need to disable the test file or the travis script will run it automatically and it will fail.

:+1: I haven't reviewed the implementation thoroughly, but I like the idea of keeping closer to mainline and marking features EXPERIMENTAL and adding experimental tests to the blacklist.

Since we have another PR waiting on this one for clean merging, and this one is experimental, I'm giving this :thumbsup: once the comments have been addressed.  Thanks @NLMichaud !

Thanks for the feedback @fritzo and @perrydv !  It seems as though testing tried to run test-ADmodels.R (and failed), even though test-ADmodels.R was added to the blacklist in run_tests.R here.  Is it possible that the command used to run test-models.R somehow picked up test-ADmodels.R as well?  If so, I can change the name of AD model testing to something like test-ADmods.R.

@NLMichaud looks like you've found a bug in run_tests.R. Here's a fix #428.

Thanks for the patch @fritzo!


Need doc update for Disabled and Receive Disabled - Need more clarity on statements

[Enter feedback here]
Customer concern is that if Disabled and ReceiveDisabled works same way, then document should be updated accordingly.  ReceiveDisabled says it will throw exceptions but Disabled doesnt says though.
Also, if both works for same usage/purpose, then why we need both the Status? Disabled and ReceiveDisabled under Subscription Status.
Content Source: articles/service-bus-messaging/entity-suspend.md
Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 818c2219-3e80-9d94-5fc5-39d8a4b0f291
Version Independent ID: 5a2403b2-5c8a-27f5-b372-640156e02074
Content: Azure Service Bus - suspend messaging entities - Azure Service Bus
Content Source: articles/service-bus-messaging/entity-suspend.md
Service: service-bus-messaging
GitHub Login: @spelluru
Microsoft Alias: spelluru

@SudeshnaB1902
Thanks for your feedback! We will investigate and update as appropriate.

For a subscription, Disabled and ReceiveDisabled has the same effect.
For a topic, Disabled and SendDisabled has the same effect.
For a queue, Disabled = SendDisabled + ReceiveDisabled

The doc is updated and it should go live around 3 PM PST today.
#please-close


Use mapbox earcut version directly

Types are available at @types/earcut. You can pass a typed array into earcut directly instead of using the math.gl port: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/earcut/index.d.ts

I'd prefer this rather than using the @math.gl port, but alas deck depends directly on @math.gl/polygon, so if I depended on earcut directly, we'd just be adding bundle size 🤷♂


Unify 1.9 and 2.x support

The Ansible 2 porting guide's advice for version-hybrid lookup plugins worked well to make the same ansible-vault available for users of 1.9 and 2.x.

👍


[MINOR][DOC] Change Markdown class name from Markdown to MarkdownInterpreter

What is this PR for?
Markdown interpreter's class name have changed from Markdown to MarkdownInterpreter in #1384 so this PR change markdown class name accordingly.
What type of PR is it?
Documentation
Questions:

Does the licenses files need update? no
Is there breaking changes for older versions? no
Does this needs documentation? no

LGTM 👍

LGTM 👍 👍

In case users who already have conf/interpreter.json upgrades Zeppelin, the file includes old classname. for example
  "interpreterSettings": {
    "2BUVF72FJ": {
      "id": "2BUVF72FJ",
      "name": "md",
      "group": "md",
      "interpreterGroup": [
        {
          "name": "md",
          "class": "org.apache.zeppelin.markdown.Markdown",
          "defaultInterpreter": false
        }
      ],

Will there be any problem because of classname change in this case?
Should we change MarkdownInterpreter to Markdown? or Markdown to MarkdownInterpreter?
What do you think?

@Leemoonsoo Thank you for pointing it out. I think changing the class name to Markdown is more proper way to avoid compatibility issue.

Merging if there is no more discussion

I am facing issues in my local on running paragraph with md interpreter since the markdown class name is 'MarkdownInterpreter' in conf/interpreter.json What should I do to resolve this without deleting the interpreter.json file?
Thanks,
Kavin
MailTo<EMAIL_ADDRESS>

@kavinkumarks I think you can stop Zeppelin and replace all "org.apache.zeppelin.markdown.MarkdownInterpreter" to "org.apache.zeppelin.markdown.Markdown" in conf/interpreter.json, and then start Zeppelin.

@Leemoonsoo Yeah, it worked by changing it manually.I thought that it should have been taken care auto* when someone changes the relevant class name in the appropriate interpreter-setting.json What do you say?
Thanks,
Kavin
MailTo<EMAIL_ADDRESS>

@kavinkumarks Yep. class name shouldn't be changed. 'MarkdownInterpreter' to 'Markdown' name change didn't happened across different versions of release. Otherwise, yes, will be taken care automatically.

Thanks @Leemoonsoo !

Kavin


Add bert aot forward example.

Add option to attach custom inference function to aot_module.
Also, added an example of bert inference to run via aot.

@powderluv

@pashu123, I just tried running your example for Bert inference but I get the error:
Traceback (most recent call last):
  File "/home/ramiroleal/aot-torch-mlir/dSHARK/shark_runner/examples/bert_aot.py", line 73, in <module>
    shark_module = SharkInference(
  File "/home/ramiroleal/aot-torch-mlir/dSHARK/shark_runner/shark_runner.py", line 74, in __init__
    self.shark_runner = SharkRunner(
  File "/home/ramiroleal/aot-torch-mlir/dSHARK/shark_runner/shark_runner.py", line 41, in __init__
    ) = get_iree_compiled_module(self.torch_mlir_module, device)
  File "/home/ramiroleal/aot-torch-mlir/dSHARK/shark_runner/iree_utils.py", line 25, in get_iree_compiled_module
    flatbuffer_blob = ireec.compile_str(
  File "/home/ramiroleal/iree-build/compiler-api/python_package/iree/compiler/tools/core.py", line 292, in compile_str
    result = invoke_immediate(cl, immediate_input=input_bytes)
  File "/home/ramiroleal/iree-build/compiler-api/python_package/iree/compiler/tools/binaries.py", line 200, in invoke_immediate
    raise CompilerToolError(process)
iree.compiler.tools.binaries.CompilerToolError: Error invoking IREE compiler tool iree-compile
Diagnostics:
<stdin>:228:11: error: custom op 'torch_c.get_next_seed' is unknown
    %89 = torch_c.get_next_seed : () -> i64
          ^

Which is the same error I get with Bert training. I just want to check that this is the expected behavior for your script.


bug: ion-item item-icon-right shifts when slid open

Type: bug
Platform: all
Codepen example: http://codepen.io/RangerRick/full/VYyVeX/
I am trying to implement delete/edit/etc. for my list view.  Each list item has an "item-icon-right" icon, as well as a "item-note" span.  When you start to swipe the item to the left to expose the option button(s), the icon immediately jumps to the left, sitting on top of my item text and the item-note contents.  It is more obvious with long item text and the window shrunk to portrait phone size.

FYI, a workaround described here: http://forum.ionicframework.com/t/ion-item-item-icon-right-rendering-bug/17472/2?u=rangerrick
Looks like something to do with how the CSS applies padding to the content?

An additional possibly related issue.  In Safari (mobile and desktop) whether or not the workaround is applied, when re-closing an item, the icon pops up like so:
http://ionic-forum-uploads.s3.amazonaws.com/25102037748d18dddbc04ddbf6c2c2b890bdd79bb758f_272x500.PNG
You can reproduce it using my original codepen.

So that main issue seems to be this, severity-{{alarm.severity}}
http://codepen.io/mhartington/pen/ZYrKGV
Changing this to use ng-class fixes the issue.
ng-class="'severity-'+alarm.severity"

http://codepen.io/mhartington/pen/WbMjQz


[Bug]: require call appears in ESM output when there’s a dynamic import.

Version
  System:
    OS: macOS 15.1
    CPU: (12) arm64 Apple M2 Max
    Memory: 72.34 MB / 32.00 GB
    Shell: 3.7.1 - /opt/homebrew/bin/fish
  Browsers:
    Chrome: 129.0.6668.90
    Safari: 18.1
  npmPackages:
    @rslib/core: 0.0.8 => 0.0.8

Details
I'm using dynamic import in a Node.js package and bundling it into an esm output. The code looks like:
export async function reproduction(input: string) {
  const { default: fnv1a } = await import(
    /* webpackChunkName: "_sindresorhus_fnv1a" */ "@sindresorhus/fnv1a"
  );
  console.log(`

      fnv1a hash of "${input}" is "${fnv1a(input, { size: 32 }).toString(16)}"

`);
}

Note: @sindresorhus/fnv1a here is introduced as devDependencies as I'd like it bundled into my package.
rslib.config.ts is deadly simple
import { defineConfig } from "@rslib/core";

export default defineConfig({
  source: {
    entry: {
      index: "./src/index.ts",
    },
  },
  output: {
    target: "node",
    sourceMap: {
      js: "source-map",
    },
    minify: { js: false },
    distPath: {
      root: "./dist",
    },
  },
  lib: [
    {
      format: "esm",
      dts: false,
      autoExtension: false,
      output: {
        filename: {
          js: "[name].mjs",
        },
      },
    },
  ],
});

The usage is like
import { reproduction } from "cacheable-crawlee";

await reproduction("it works");

which raises
file:///Users/kfll/Developer/crawlee-cache/dist/index.mjs:97
                        installChunk(require("./" + __webpack_require__.u(chunkId)));
                        ^

ReferenceError: require is not defined in ES module scope, you can use import instead
    at __webpack_require__.f.require (file:///Users/kfll/Developer/crawlee-cache/dist/index.mjs:97:4)
    at file:///Users/kfll/Developer/crawlee-cache/dist/index.mjs:48:30
    at Array.reduce (<anonymous>)
    at __webpack_require__.e (file:///Users/kfll/Developer/crawlee-cache/dist/index.mjs:47:38)
    at reproduction (file:///Users/kfll/Developer/crawlee-cache/dist/index.mjs:108:58)
    at file:///Users/kfll/Developer/crawlee-cache/module-test.mjs:3:7
    at ModuleJob.run (node:internal/modules/esm/module_job:234:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:473:24)
    at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:123:5)

Node.js v20.17.0

Reproduce link
https://github.com/xc2/cacheable-crawlee/blob/repro-rslib-module/rslib.config.mts
Reproduce Steps
Prepare

Clone the repro and checkout repro-rslib-module branch: git clone -b repro-rslib-module https://github.com/xc2/cacheable-crawlee.git
Execute pnpm i

Rslib

Execute pnpm build && node module-test.mjs to see the error

Rspack which works as expected

Execute node rspack-build.mjs && node module-test.mjs

I checked webpack's source and found it doesn't consider "module": true for installing async modules. https://github.com/webpack/webpack/blob/main/lib/node/RequireChunkLoadingRuntimeModule.js#L156. We need to fix that alongside.
Currently, a workaround is disabling async chunks
      tools: {
        rspack: {
          output: {
            asyncChunks: false,
          },
        },
      },

I expect it emitting a separate chunk for the dynamic import, just as the rspack-build.mjs outputs.
any idea?

I checked it twice, you could add following code to your ESM lib config and it will work. This should be processed internally with Rslib, we're setting node's chunkLoading to require now https://github.com/web-infra-dev/rslib/blob/main/packages/core/src/config.ts#L778 which is not correct. Gonna fix this soon.
      tools: {
        rspack: {
          output: {
            chunkLoading: 'import',
          },
        },
      },

@fi3ework thank you very much, it works like a charm. ❤


Feature/cleanup

Coverage decreased (-62.002%) to 14.588% when pulling b57561f8f70203fc59f6685f80719f94301eff4d on feature/cleanup into 78cb90a0e3bd14aba6322b8527604e8a5cd6df02 on develop.


Remove the assaytype calls eventually

Once all the API consumers finish the switch and use equivalent UBKG ontology-api calls, we'll need to remove the following calls from search-api and search-adaptor as well as API Gateway:

POST /assayname
GET /assaytype
GET /assaytype/<name>

And all the underlying code:

https://github.com/hubmapconsortium/search-api/blob/main/src/libs/assay_type.py
https://github.com/hubmapconsortium/search-api/blob/main/src/libs/assay_type_schema.yml

This will happen after https://github.com/hubmapconsortium/commons/issues/114
Also related: https://github.com/hubmapconsortium/search-api/issues/687

@maxsibilla we haven't fully addressed this card. Did you close it by accident?

@yuanzhou yes must have been an accident


"path" must be a string

Bug description
Seems to be because I'm using multiple extends in TS5
{
  "extends": [
    "@tsconfig/node18/tsconfig",
    "@tsconfig/strictest/tsconfig",
    "@tsconfig/esm/tsconfig"
  ]
}

  TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received an instance of Array

  TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received an instance of Array
      at __node_internal_captureLargerStackTrace (node:internal/errors:490:5)
      at new NodeError (node:internal/errors:399:5)
      at validateString (node:internal/validators:163:11)
      at Object.isAbsolute (node:path:1161:5)
      at mn (file:///home/kyle/dev/backend/node_modules/get-tsconfig/dist/index.mjs:3:7866)
      at J (file:///home/kyle/dev/backend/node_modules/get-tsconfig/dist/index.mjs:3:8931)
      at an (file:///home/kyle/dev/backend/node_modules/get-tsconfig/dist/index.mjs:3:9946)
      at file:///home/kyle/dev/backend/node_modules/@esbuild-kit/esm-loader/dist/index.js:1:1087
      at ModuleJob.run (node:internal/modules/esm/module_job:193:25)

node:internal/process/promises:289
            triggerUncaughtException(err, true /* fromPromise */);
            ^
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received an instance of Array
    at __node_internal_captureLargerStackTrace (node:internal/errors:490:5)
    at new NodeError (node:internal/errors:399:5)
    at validateString (node:internal/validators:163:11)
    at Object.isAbsolute (node:path:1161:5)
    at mn (file:///home/kyle/dev/backend/node_modules/get-tsconfig/dist/index.mjs:3:7866)
    at J (file:///home/kyle/dev/backend/node_modules/get-tsconfig/dist/index.mjs:3:8931)
    at an (file:///home/kyle/dev/backend/node_modules/get-tsconfig/dist/index.mjs:3:9946)
    at file:///home/kyle/dev/backend/node_modules/@esbuild-kit/esm-loader/dist/index.js:1:1087
    at ModuleJob.run (node:internal/modules/esm/module_job:193:25) {
  code: 'ERR_INVALID_ARG_TYPE'
}

Reproduction
I'm not sure if this is right, getting a different error, but here is my best effort.
See: tsconfig.json's extends array
https://stackblitz.com/edit/node-ahpfuq
Environment
System:
    OS: Linux 5.15 Ubuntu 20.04.6 LTS (Focal Fossa)
    CPU: (16) x64 Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz
    Memory: 10.33 GB / 15.48 GB
    Container: Yes
    Shell: 5.0.17 - /bin/bash
  Binaries:
    Node: 19.8.1 - /home/linuxbrew/.linuxbrew/bin/node
    Yarn: 1.22.19 - /usr/bin/yarn
    npm: 9.5.1 - /home/linuxbrew/.linuxbrew/bin/npm
  npmPackages:
    tsx: ^3.12.6 => 3.12.6

Can you work on a fix?

[ ] I’m interested in opening a pull request to address this issue.

This should be a feature request because array extends is a feature that was recently released in TypeScript 5, and not something we could consider during implementation.
Anyway, your get-tsconfig dependency is outdated. So you can just run pnpm upgrade get-tsconfig  and it will work. The reproduction still fails on StackBlitz because it uses Node.js v1614.2, which doesn't have node:test.


Using  /rix/ instead of /7/ from signup page?

No season with id RIX

Reported on decksite by<PHONE_NUMBER>76763914
Request Method: GET
Path: /signup/?
Cookies: {'__cfduid': 'd9b5c1ad525bcf9623009061e7602f2bd1521252119', 'hide_intro': 'True', 'deck_id': '13302', '_ga': 'GA1.2.1430474469.1523917221', '_gid': 'GA1.2.1161515492.1523917221', 'session': '.eJxlUMtOwzAQ_Jc9R8iOnaTpjeaACio0lFSlCEVus3ECzkO2IzVU_XccJOiB487O7M7MGUTR1C3MS6EMelAXMAfucxL4PqNRFEYhiykHD1QnJRZ5j9p0bT7xaMioB42VXT4Y1K1o0Ik1JdrROzHYys-NFXZCE6OeWRisv5YvdsP3laxSdujlOpNsm91f-bb7ROfmDOJ4RGN-Z_hA3KtgkcSPpN002Tgs8TW9i3nKyG53cHo89bVGkwvrjDnzPg8Ynd1wSoKYzq77KWtI-IwQDzSWDqr-ntRPiyRLtdquVK1vVw8RjdVw4lk3lrRI3RNz7HqX5s3VhK2ty9FhcqhVYeDdg58zuR0nCixQaNRw8eBfY1Zoic5mOyh1-QYkjXsL.DbeyhA.5zQq3b9nd3a3Ub2wWp4DPaFk2KM'}
Endpoint: signup
View Args: {}
Person:<PHONE_NUMBER>76763914
Referrer: https://pennydreadfulmagic.com/signup/
Request Data: {}
Host: pennydreadfulmagic.com
Accept-Encoding: gzip
Cf-Ipcountry: US
X-Forwarded-For: <IP_ADDRESS>, <IP_ADDRESS>
Cf-Ray: 40d060b0fc2221bc-EWR
X-Forwarded-Proto: https
Cf-Visitor: {"scheme":"https"}
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8
Dnt: 1
Referer: https://pennydreadfulmagic.com/signup/
Accept-Language: en-US,en;q=0.9
Cookie: __cfduid=d9b5c1ad525bcf9623009061e7602f2bd1521252119; hide_intro=True; deck_id=13302; _ga=GA1.2.1430474469.1523917221; _gid=GA1.2.1161515492.1523917221; session=.eJxlUMtOwzAQ_Jc9R8iOnaTpjeaACio0lFSlCEVus3ECzkO2IzVU_XccJOiB487O7M7MGUTR1C3MS6EMelAXMAfucxL4PqNRFEYhiykHD1QnJRZ5j9p0bT7xaMioB42VXT4Y1K1o0Ik1JdrROzHYys-NFXZCE6OeWRisv5YvdsP3laxSdujlOpNsm91f-bb7ROfmDOJ4RGN-Z_hA3KtgkcSPpN002Tgs8TW9i3nKyG53cHo89bVGkwvrjDnzPg8Ynd1wSoKYzq77KWtI-IwQDzSWDqr-ntRPiyRLtdquVK1vVw8RjdVw4lk3lrRI3RNz7HqX5s3VhK2ty9FhcqhVYeDdg58zuR0nCixQaNRw8eBfY1Zoic5mOyh1-QYkjXsL.DbeyhA.5zQq3b9nd3a3Ub2wWp4DPaFk2KM
Cf-Connecting-Ip: <IP_ADDRESS>
X-Forwarded-Host: pennydreadfulmagic.com
X-Forwarded-Server: pennydreadfulmagic.com
Connection: Keep-Alive--------------------------------------------------------------------------------
InvalidArgumentException
Stack Trace:
File "/home/discord/.local/lib/python3.6/site-packages/flask/app.py", line 1997, in call
return self.wsgi_app(environ, start_response)
File "/home/discord/.local/lib/python3.6/site-packages/flask/app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "/home/discord/.local/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/home/discord/.local/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/discord/.local/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/discord/.local/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/home/discord/.local/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/home/discord/.local/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functionsrule.endpoint
File "./decksite/auth.py", line 118, in decorated_function
return f(*args, **kwargs)
File "./decksite/main.py", line 268, in signup
form = SignUpForm(request.form, auth.person_id(), auth.mtgo_username())
File "./decksite/league.py", line 34, in init
ps = person.load_person(person_id, season_id=rotation.current_season_code())
File "./decksite/data/person.py", line 20, in load_person
return guarantee.exactly_one(load_people('p.id = {person_id} OR p.mtgo_username = {username}'.format(person_id=person_id, username=username), season_id=season_id))
File "./decksite/data/person.py", line 47, in load_people
""".format(person_query=query.person_query(), all_select=deck.nwdl_all_select(), nwdl_join=deck.nwdl_join(), season_table=query.season_table(), where=where, season_query=query.season_query(season_id), order_by=order_by)
File "./decksite/data/query.py", line 52, in season_query
raise InvalidArgumentException('No season with id {season_id}'.format(season_id=season_id))

Can't repro, haven't seen any more cases. If another comes in I'll reopen.


JoErNanO: Watch cleanabzar.com

JoErNanO requests the watch of the watch_keyword cleanabzar\.com. See the MS search here and the Stack Exchange search here.

cleanabzar\.com has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Approved by ArtOfCode in Charcoal HQ

Approved by Shree in Charcoal HQ


Run "azd up" fails in Dev Containers

Describe the issue:
An error occurred when running azd up as follows：

Environment:

Readme - Dev Container
Learn Docs - Dev Container

Repro Steps:

Click button in README.md
Run azd auth login
Run azd up

Expected behavior
Run azd up  no error.
@charris-msft for notification.

I cannot reproduce this issue @NanaXiong00. Can you provide more information about your Docker setup? Please ensure your docker is setup as instructed here under installation: https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers

@NanaXiong00 can you please retest? It was probably fixed with #127

@anfibiacreativa We retested it based on the latest code, and the result was pass in Dev Container. We will close this issue.


Add Debian Logo

Description
Simple update to server.tsx to add the Debian-Logo to the Dashboard. I always thought it was a bit sad that Debian was missing since it is still one of the most widely used distros

Thanks for the contribution!


Update to senzingdata-2.0.0

See https://github.com/Senzing/docker-compose-demo/issues/172

Pull requests:

https://github.com/Senzing/configurator/pull/20


docs: [@farcaster/js] condense type annotations for function signatures

What is the feature you would like to implement?
Doc generation should either condense types to the highest level or eliminate them entirely.
Why is this feature important?
It's quite hard to parse docs because of the lengthy type annotations which are also not very useful.

Will the protocol spec need to be updated??
No
How should this feature be built?
The ideal type annotation in this case would be makeCastAdd(bodyJson, dataOptions, signer): HubAsyncResult<CastAddMessage>. If that isn't possible to configure, omit the type annotations entirely.

@vinliao could you take this one?

See: https://github.com/vinliao/hubble/blob/md-docs-hide-sig/packages/js/docs/modules.md#functions. Something like this? This means we have to manually document the params and return types?

ideally it would autogenerate makeCastAdd(bodyJson, dataOptions, signer): HubAsyncResult<CastAddMessage>, but i'm not sure if that's possible with typedoc

There doesn't seem to be native support for that. Current solution (the link above) requires writing a custom plugin just to remove the type signature. See more: https://github.com/TypeStrong/typedoc/issues/1831. Should I manually add the return types to all the functions?

Hmm, then I think we may need to manually clean it up to make it useful to developers. It's kind of annoying to do, so feel free to also add TODO's and we can tackle them piecemeal.
Also, right now the params and return values are specified twice, once as a one liner and one in a more broken down form in a table. I think we can be brief and just do the latter.

sorry, should have been more precise with my explanation. something like this:
makeCastAdd
Creates a CastAdd message that can be used to add a Cast to the Farcaster network.
Parameters

Name
Type
Description

bodyJson
CastAddBody
A valid CastAdd body

dataOptions
MessageDataOptions
Optional arguments to construct the Cast

signer
Ed25519Signer
A valid Signer that will sign the message

Return Value

Name
Type
Description

HubAsyncResult<CastAddMessage>
CastAddBody
A Result that contains the valid CastAddMessage

Example
import {
  Client,
  Ed25519Signer,
  makeCastAdd,
  makeCastRemove,
  types,
} from '@farcaster/js';
import * as ed from '@noble/ed25519';

const rpcUrl = '<rpc-url>';
const client = new Client(rpcUrl);

const privateKeyHex = '86be7f6f8dcf18...'; // EdDSA hex private key
const privateKey = ed.utils.hexToBytes(privateKeyHex);

// _unsafeUnwrap() is used here for simplicity, but should be avoided in production
const ed25519Signer = Ed25519Signer.fromPrivateKey(privateKey)._unsafeUnwrap();

const dataOptions = {
  fid: -9999, // must be changed to fid of the custody address, or else it will fail
  network: types.FarcasterNetwork.FARCASTER_NETWORK_DEVNET,
};

const cast = await makeCastAdd({ text: 'hello world' }, dataOptions, ed25519Signer);
await client.submitMessage(cast._unsafeUnwrap());

closing this issue since it has been resolved by our recent rewrite of the documentation


How to use the labelled apollo dataset for mos?

Hello dear author, recently I was planning to use the apollo dataset you released specifically for MOS, I downloaded the dataset directly, but I get an error when I use the dataset directly on the MotionSeg3D, how to use the dataset correctly?

Hi, I closed this issue because it is not related to MapMOS. Please contact the authors of MotionSeg3D for instructions on how to run their code. As mentioned in the acknowledgements, the MotionSeg3D results have been provided by the original authors.
Best
Benedikt


Agent throws ConnectionClosedException when fetching agent commands

In certain circumstances, the agent throws an exception when trying to fetch new agent commands.
org.apache.http.ConnectionClosedException: Premature end of chunk coded message body: closing chunk expected
        at org.apache.http.impl.io.ChunkedInputStream.getChunkSize(ChunkedInputStream.java:263)
        at org.apache.http.impl.io.ChunkedInputStream.nextChunk(ChunkedInputStream.java:222)
        at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:183)
        at org.apache.http.impl.io.ChunkedInputStream.read(ChunkedInputStream.java:210)
        at org.apache.http.impl.io.ChunkedInputStream.close(ChunkedInputStream.java:312)
        at org.apache.http.impl.execchain.ResponseEntityProxy.streamClosed(ResponseEntityProxy.java:142)
        at org.apache.http.conn.EofSensorInputStream.checkClose(EofSensorInputStream.java:228)
        at org.apache.http.conn.EofSensorInputStream.close(EofSensorInputStream.java:172)
        at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._closeInput(UTF8StreamJsonParser.java:228)
        at com.fasterxml.jackson.core.base.ParserBase.close(ParserBase.java:368)
        at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4021)
        at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3070)
        at rocks.inspectit.ocelot.core.command.CommandHandler.processHttpResponse(CommandHandler.java:124)
        at rocks.inspectit.ocelot.core.command.CommandHandler.nextCommand(CommandHandler.java:73)
        at rocks.inspectit.ocelot.core.command.CommandHandler.nextCommand(CommandHandler.java:57)
        at rocks.inspectit.ocelot.core.command.AgentCommandService.run(AgentCommandService.java:93)

It looks like that the connection is closed before the respones was fully received?

See the following ticket for a similar problem: https://github.com/eclipse-ee4j/jersey/issues/3629


error: Uncaught (in promise) NotFound: Failed to spawn 'start': program not found

I am having this problem
error: Uncaught (in promise) NotFound: Failed to spawn 'start': program not found
cmd I am running:
deployctl deploy --project=xxxxx --entrypoint=src/main.ts
If I run just deployctl deploy I get this other msg:
× Guessing project name 'test': Creating project...
error: ENOENT

My Deploy CLI Version: 1.10.3
And I see another person with the same problem on  StackOverflow

Follow up: Refreshing my token worked.

Hey, thanks for the report, and helping out in StackOverflow.
Could you tell us a bit about your environment, particularly what command-line shell are you using?

Hey, thanks for the report, and helping out in StackOverflow!
Could you tell us a bit about your environment, particularly what command-line shell are you using?

Windows 11 Pro (Version 10.0.22631 Build 22631)
deno 1.40.3
deployctl 1.10.3
Windows Terminal Version: 1.18.3181.0 (Running Powershell as default from  %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe )

Refresh Token cmd used: $env:DENO_DEPLOY_TOKEN = 'your_access_token_here'

TBH I'm not super familiar with the windows environment, but I was testing in a windows server machine with Powershell and the start command is aliased to Start-Process there. Can you confirm in your Powershell you can execute Start-Process https://deno.com?


http and https always top keyword list

I'm using a very basic bot configuration based off the example, and I noticed that when I do model.keywords, for most users the top keywords are 'http' or 'https' despite those being in the stopwords list.
Thanks!

I have the same problem. Where you able to fix it?

No, I'm moved on to other projects

I made Pull Request #150 to fix this- the maintainer probably won't merge it in, but it's just one line. You can make the change yourself easy enough.


feat: 🎸 Deprecate middleware in favour of middleware v2

Description

Marks middleware v1 as deprecated.
Adds checks to use middleware v2 queries if both v1 and v2 middleware are used to instantiate the SDK

Breaking Changes
NA
JIRA Link
DA-254
Checklist

[ ] Updated the Readme.md (if required) ?

:tada: This PR is included in version 19.0.0-alpha.6 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 19.0.0-beta.5 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


On Ubuntu 100% is always exceeded

This always happens ... I do not add/remove anything to the directory.
Proceed with the changes? [Y/n]:
76425767 / 52676894 [========================================================================================================================================================================] 145.08 % 3m56```

Hello @malteseunderdog! Thanks for reporting this and welcome to drive.
Could you give more context to this issue? What operations does this happen on? What version are you using? Any other information to help reproduce this?

Apologies.  This happens on Ubuntu 14.04 when I do "drive push mydir"
jp@jp-Galago-UltraPro:~$ drive version
drive version: 0.3.2
Commit Hash: <CURRENT_COMMIT>
Go Version: <GO_VERSION>
OS: <OS_INFO>
BuildTime:
What other info do you need?  I love this little utility.

Thanks for that information @malteseunderdog. So this issue was already reported in https://github.com/odeke-em/drive/issues/177.

@malteseunderdog closing this as it is a duplicate of https://github.com/odeke-em/drive/issues/177


Identifiers validation failed for dataset Apoyo a las colecciones biológicas de la Facultad de Ciencias de la UNAM: Fase 1 (MZFC_OD)

Identifier validation failed for the dataset Apoyo a las colecciones biológicas de la Facultad de Ciencias de la UNAM: Fase 1 (MZFC_OD):

Crawler attempt: 156
Publishing organization: Comisión nacional para el conocimiento y uso de la biodiversidad
Publishing country: MEXICO
Installation: IPTCONABIO
Number of occurrences indexed for this dataset at the time of the issue: 2579
Cause: GBIF IDs hit maximum allowed - 50%, duplicates - 100%, total records count 2579, absent records count 2579
Pipelines execution steps: http://api.gbif.org/v1/pipelines/history/execution/3073078/step

Publisher email
Hello,
I am contacting you from the GBIF Secretariat about a dataset published by the Apoyo a las colecciones biológicas de la Facultad de Ciencias de la UNAM: Fase 1 (MZFC_OD) : https://doi.org/10.15468/q576w3.
We noticed that the occurrenceIDs were changed. We have temporarily paused the ingestions of this dataset.
As you might already know, when an occurrence record has a new occurrenceID for a given dataset, our system considers it to be a new occurrence.
This means that it will be given a new gbifid and a new occurrence URL (like this one: https://www.gbif.org/occurrence/1252968762) and the old gbifid and URL will be deprecated.
In this case, this means that the occurrence URLs would be deprecated when ingesting the newest versions of these datasets.
We would like to check with you if those changes were intentional. Do you know if this is the case?
Please let us know, thanks! We are happy to resume the dataset ingestion.
Note that some users rely on those occurrence URLs and gbifids (like https://bionomia.net for example). In an attempt to improve
the stability of the occurrence URLs and gbifids, we have implemented a warning system to detect these type of changes in datasets (see this news item).
If the data publisher can provide us with a list of old and new occurrenceIDs per record, we can avoid the identifier and URL changes. Could that be an option?
Please let us know if you have any question. Thanks!
All the best,

You can skip/fix identifier validation using the registry UI.

Identifier validation still  failing for the dataset Apoyo a las colecciones biológicas de la Facultad de Ciencias de la UNAM: Fase 1 (MZFC_OD):

Crawler attempt: 159
Publishing organization: Comisión nacional para el conocimiento y uso de la biodiversidad
Publishing country: MEXICO
Installation: IPTCONABIO
Number of occurrences indexed for this dataset at the time of the issue: 2579
Cause: GBIF IDs hit maximum allowed - 50%, duplicates - 100%, total records count 2579, absent records count 2579
Pipelines execution steps: http://api.gbif.org/v1/pipelines/history/execution/3093950/step

Publisher email
Hello,
I am contacting you from the GBIF Secretariat about a dataset published by the Apoyo a las colecciones biológicas de la Facultad de Ciencias de la UNAM: Fase 1 (MZFC_OD) : https://doi.org/10.15468/q576w3.
We noticed that the occurrenceIDs were changed. We have temporarily paused the ingestions of this dataset.
As you might already know, when an occurrence record has a new occurrenceID for a given dataset, our system considers it to be a new occurrence.
This means that it will be given a new gbifid and a new occurrence URL (like this one: https://www.gbif.org/occurrence/1252968762) and the old gbifid and URL will be deprecated.
In this case, this means that the occurrence URLs would be deprecated when ingesting the newest versions of these datasets.
We would like to check with you if those changes were intentional. Do you know if this is the case?
Please let us know, thanks! We are happy to resume the dataset ingestion.
Note that some users rely on those occurrence URLs and gbifids (like https://bionomia.net for example). In an attempt to improve
the stability of the occurrence URLs and gbifids, we have implemented a warning system to detect these type of changes in datasets (see this news item).
If the data publisher can provide us with a list of old and new occurrenceIDs per record, we can avoid the identifier and URL changes. Could that be an option?
Please let us know if you have any question. Thanks!
All the best,

You can skip/fix identifier validation using the registry UI.


Removing CDN assets from theme.

Related to https://github.com/apache/incubator-pekko-sbt-paradox/issues/84:

Removed static assets from theme as will be moved to incubator-pekko-site
Keep relative URLs (i.e.: assets/stylesheets/pekko-theme.css) as they are automatically resolved as https://hostname/assets/stylesheets/pekko-theme.css

Required changes: https://github.com/apache/incubator-pekko-site/pull/49

One thing is that we'll make testing doc changes to repos like https://github.com/apache/incubator-pekko harder.
Today, if you run sbt paradoxBrowse, it will build the docs and into target/paradox/main/site and you can load up the index.html page there and the CSS etc will be found. In theory, users could copy the missing files into target/paradox/main/site themselves or we could script something.
In the end, it might be easier if we don't rely on relative paths and hardcode that we can get the static files from explicit URLs. We could make the hostname of these URLs configurable. Default to https://pekko.apache.org but users could set https://pekko.staged.apache.org.

One thing is that we'll make testing doc changes to repos like https://github.com/apache/incubator-pekko harder.
Today, if you run sbt paradoxBrowse, it will build the docs into target/paradox/main/site and you can load up the index.html page from there and the CSS, etc. will be found. In theory, users could copy the missing files into target/paradox/main/site themselves or we could script something.
In the end, it might be easier if we don't rely on relative paths and hardcode that we can get the static files from explicit URLs. We could make the hostname of these URLs configurable. Default to https://pekko.apache.org but users could set https://pekko.staged.apache.org.
@pjfanning
I have added the assets.hostname variable for handling the hostname. Default is configured to  https://pekko.apache.org


How to debug/view live/computed styles in Chrome dev tools?

Hello,
I'm fairly new to React and Radium.  I cloned this repo so I could work with the examples.  The problem I'm having is figuring out how to get Chrome dev tools let me work with the actual live/computed styles (screenshots will follow which explain specifics).
I'm wondering if this is a virtual DOM issue that Chrome is not setup to work with yet?  Is there something I can do to solve these issues?
Here's what I'm talking about.
Viewing and working with basic styles:

**Viewing and working with Media Queries** (3 screenshot series)

...but I can't get those media query styles to show up in the "Styles" or "Computed" tabs:

Thanks for you help!

UPDATE:
After a full system reboot Chrome dev tools seem to be working Ok with the styles.  Note that before rebooting, page refreshes did not solve the issue.
One further piece of debugging information:  I have the Chrome React tools installed, but when I run your examples the 'React' tab does not appear (React is not detected).  You can see this in my above screenshots.  However, if I open the example via http://localhost:8080/ instead of http://localhost:8080/webpack-dev-server/, then it properly detects React and provides the 'React' tab in the Chrome dev tools.  However, as expected, when I run it from http://localhost:8080/ I do not get hot-reloading (due to Webpack's config).
So in summary about the 'React' tab:

This appears to be a separate problem from my originally-reported styles debugging issue
I'm guessing this issue is a Webpack setup problem

Again, the original styles-debugging issue appears to be working now after a full system reboot.  Anyone else ever had this problem?  Does it come-and-go?

I haven't seen this myself, but thank you for the detailed report, love the screenshots. So is the only remaining issue that the React tab does not show up in the examples? This is probably just an artifact of our setup, but we should definitely fix it anyway.

@ianobermiller Yeah, the 'React' tab issue appears to be the only remaining issue.  (But I was curious to hear from others to see if they experience this issue from time to time.).

I haven't experienced the original issue with Radium in particular, but I see it semi-regularly with normal CSS and with inline styles.

@alexlande Thanks, good to hear your feedback.

Regarding this subject I wondering if there's a way to display the properties like JS objects instead of CSS... does any one know if it's possible?


WAF middleware

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

Context
A Pull Request integrating a WAF middleware into Traefik has been opened.
Traefik has never embedded such a feature, and we’d like to discuss this before reviewing the PR itself: a broader design review, at the project level.
Goal
The goal of this proposal is to gather the community’s opinion (users, contributors, maintainers), to consider a WAF integration in Traefik.
How are you solving the WAF problem today with Traefik?
Should Traefik provide WAF capabilities? How to do it? What are the use cases?
For the sake of efficiency, we want to time box the discussion to one month.
Thanks in advance for feedback and ideas!

Most important ingress controllers have waf integrations

https://kubernetes.github.io/ingress-nginx/user-guide/third-party-addons/modsecurity/
https://www.getambassador.io/docs/edge-stack/latest/howtos/web-application-firewalls/
Envoy: https://github.com/corazawaf/coraza-proxy-wasm

https://www.cncf.io/blog/2022/09/22/how-to-think-about-securing-kubernetes-with-waf-and-dos-protection/

Perhaps worth of thinking could wasm middleware be implemented to Traefik?

The generic WASM middleware could potentially make possible to extend Traefik without making the codebase growing bigger, so it would stay lightweight.

the plugin technology will not change the syntax, it's not a good answer to the syntax problem.

@ldez partially I do agree with you with the syntax thing. It is quite complex and perhaps worth of visiting the format. However, I have not seen better format as opensource. Actually I have not seen anything else than for instance ready rulesets in case of AWS / cloudflare. The biggest problem with ready rulesets are that all applications will not work with those and sometimes rules needs to be modified. So what I am saying: there can be like few predefined rulesets. However, who will maintain these? Plus then there needs to be way to customise these. Unfortanetly I do not see that could be done in any other way than specifying raw modsecurity config.
In my opinion defining new templating language for WAF should be out of context of Traefik. That is something that traefik cannot fix, or if traefik starts new WAF project then its possible.

the plugin technology will not change the syntax, it's not a good answer to the syntax problem.

Sure! The syntax problem maybe could be addressed by introducing a new format that would be translated into old?

I agree that it is increasingly vital to include WAF functionality in Traefik.
Like @ldez, I wonder whether ModSecurity is the optimal solution. Although it offers the possibility of configuring various rules, I think Traefik's approach is inherently simpler.
Like you mention @zetaab, could we envision predefined "rules" that can be easily toggled on and off?
I agree it may not be a perfect fit for everyone, but we can adapt and improve based on the feedback received.
Furthermore, I believe that the discussion surrounding plugins constitutes a separate topic. I am in alignment with the notion that we must thoroughly evaluate the necessity and potential implementation of plugins, whether involving WASM or not. However, it is my suggestion that this discourse be conducted in a separate issue to maintain clarity and focus.

so basically the interface could look like
// CorazaWAF holds the coraza web application firewall middleware configuration.
type CorazaWAF struct {
	// Directives parses the directives from the given string and adds them to the WAF.
	Directives string `json:"directives,omitempty" toml:"directives,omitempty" yaml:"directives,omitempty"`
	// EnabledRules contains enabled WAF rules.
	EnabledRules []string `json:"enabledRules,omitempty" toml:"enabledRules,omitempty" yaml:"enabledRules,omitempty"`
}

CRSEnabled is not included anymore, because as I see it. It can be always included.
I would still keep Directives in config. Why? Otherwise it is going to be really difficult to develop the rules, this is really useful for developing new rules and verifying those against real services.

Example config could look like:
http:
  middlewares:
    waf:
      corazaWAF:
        enabledRules:
        - rule1
        - rule2
        - ...

We are talking about hundreds of rules and many required options.
Also, we would like to keep consistency across connectors.
CRS requires tens of directives to setup coraza, default actions to setup blocking mode, tens of options to setup crs and options to prevent false positives.
A default configuration is unreliable and it won't work for most of the cases. That's why directives are required.

I think we miss the most important element here: what exactly is WAF? What are those rules and their goal?
(those questions are deliberately naive and rhetorical)
From the point of view of Traefik, WAF rules can be seen as simple router rules.

If using coraza directives will be a problem, coraza or modsecurity are not the right approach

I agree, that to fit with Traefik, the WAF requirements should be thought of differently.

First of all, thank you for submiting this PR 🙏 This opens up the WAF discussion, and I'm happy we shake things up on this :)
I will try to sumarize the different questions raised by this issue:

The ModSecurity Rule Language is complex, but at the same time, it's a de-facto standard, and there is no known (simpler & OSS) alternative
Predifined rules set (like CRS) could be a great option to integrate with Traefik, this would hide the complexity of ModSecurity rules. But @jptosso is saying that

A default configuration is unreliable and it won't work for most of the cases. That's why directives are required.
It would be great to give us more technical details on your concerns @jptosso. How would this be unreliable? Isn't it possible to propose predefined rules?

The integration implementation raises questions: using yaegi plugins (does not work)? Wasm (not even bootstraped in Traefik)? Included in a middleware? The later option would be the fastest but comes at the cost of including Coraza source code in Traefik, and such tightly coupled components raise a few concerns (versioning, maintenance, etc).

Any other issues? Any comments?

Sorry for being late to the party. First of all, thanks @nmengin for opening up this for discussion. WAF is certainly a must when it comes to security in cloud. As for this being supported in Traefik or not I think the question would be: does traefik consider L7 protection as a first class concern? If the answer is yes then we talk about the existing options.
A WAF is aimed to be the first line of defence in a distributed deployment. That said, CRS is the defacto standard for such purpose with a long experience fighting a varied set of attacks and is the real feature we want to deliver to traefik. Coraza is a robust library writen in golang which has cloud native proxies/gateways as first class concern, hence performance is a key value.
As for the practical concerns in the integration. Yes, seclang is somehow verbose and not super intuitive, however most of the users will do
directives:
  - Include my-config.conf
  - Include @owasp_crs/**

or
directives:
  - SecRuleEngine ON
  - SecDebugLogLevel 5
  - Include @owasp_crs/**

When people ask about own ruleset it is very rare that they a. don't use CRS and b. rewrite large sets of rules so I wouldn't worry too much about the verbosity of the config.
In any case, Coraza is not constrained to seclang and we used to support an API for rules (which we closed because it was too early) so a next iteration could implement another way of declaring ruleset, however as @jptosso points out, Coraza (or any other CRS based WAF) depends on several variables which require a fine tuning and CRS does exactly that job so in a way I would say the default configuration for Coraza is Include @owasp_crs/**.
With all that said I would agree on not to reinvent the wheel and if sticking to a specific implementation is a concern I am happy to continue the discussion about extensibility in https://github.com/traefik/traefik/issues/9552#issuecomment-1761507509

Full disclosure: I’m one of the founders of Wafris (an open-source Web Application Firewall), and we’re currently building a Traefik plugin.
I'm going to try and answer some questions from further up the thread:
What's a WAF?
The spectrum of what people call a WAF goes from "paste these commands into a .htaccess" file up to Cloudflare/Imperva style "point your DNS to us and we'll reject anything bad and only pass you the traffic that passes"
What general functionality are people looking for?
Most of the time WAFs do a mix of:

Threat blocking of things like SQLi, XSS, etc. (the Owasp CRS mentioned is excellent for this, and Coraza looks like a nice way to add that)

GeoBlocking (hey, maybe we shouldn't do business with North Korea)

Reputational Blocking (hey, maybe this IP address from a known Eastern European  malware host isn't innocently buying Steam Gift cards off our site)

RateLimiting/Throttling (hey, maybe we should limit requests to the API by token)

Dynamically blocking based on request properties (IP, CIDR, User Agent, Paths, etc.)

Alerting around behavioral changes/anomalies (hey, is it weird that one IP is making 1000x the number of requests than average)

Virtual Patching (hey, this Log4j thing seems real bad; can we block all attempts to submit text to the site that contains the string 'jndi')

What about FineTuning and False Positives?
There were a couple of questions about what was meant by fine-tuning / false positives.
The issues is that there is a considerable gray area between things most WAFs or rulesets like CRS would block and what most web servers and applications would allow.
We had a client pay a RIDICULOUS amount of money to have a celebrity influencer post a link about their product.  But the PR person who fed them the link to the site copied it from a Word document (because of marketing people), and it contained a trailing encoded CR/LF.
CR/LFs in URLs are accepted with no issue by web frameworks, etc., but the WAF blocked it as they’re also used in certain header injection attacks.
Money burning. Fans angry. Client's C-Suite was furious.
The resolution was to write an exception rule on the fly that allowed this (obviously safe) path to work.
Issues like the above are pretty routine when using a WAF, as you're constantly riding the line of too many false positives vs too lax of rules, letting potential attacks through.
Rule Change Velocity and Philosophy
I'm not a Traefik expert, but my sense of the configuration management cadence is that you set things up, and once you're up and going, you're not modifying setups daily.
I think this is somewhat at odds with a security ops cadence that may have you making dozens of changes daily. A few clients make dozens of modifications daily, mostly banning individually abusive IPs.
Are we doing the right thing making a plugin?
This is my question. We have a very different architecture than Coraza or some other solutions. But also, I see that there was an effort at one point for a Coraza plugin, as well as one for Snapt WAF (that seems defunct).

Interesting discussion. OWASP CRS co-lead here, I'm one of the friends of @jptosso and @jcchavezs.
I think @mbuckbee is spot on what false positives can mean in operation. You can not allow this by default.
I see the problem of base configuration a bit less dark than @jptosso, CRS is a "generic deny-rules" project after all. The rules are supposed to work everywhere. But they come with a false positive problem. There are various ways to handle this, teaching the the necessary skills is my business case, I have developed commercial software to support enterprise users and bla bla.
But the bottom line is, you can not enable a hard blocking by default on your software. At least not with a strong rule set like CRS. If you are looking for checkbox security, look over to AWS WAF that never produces a false positive and never blocks a skilled attacker.
Within the open source space, you are pretty much limited to engines reading ModSecurity's "SecLang" like the original ModSecurity engine or alternative, more modern implementations like Coraza. As for rules, there is CRS and then very few smaller, more limited alternatives. I'm obviously biased, so you may want to evaluate this yourself.
So what options are viable if you want to bring Coraza / CRS this to traefik:

Water down the rule set - this is what existing commercial integrators do
Preconfigure, but don't enable
Enable, but non-blocking, stick to monitoring
Enable, but soft-blocking

The soft-blocking is a specialty that CRS allows. CRS is a scoring rule set, requests are only blocked once they hit a certain threshold. You can thus put the WAF in blocking mode and set the threshold very, very high, so it effectively never blocks. Integration would then mean to handle false positives and lower the threshold over multiple iterations. This is the methodology that I teach in my courses.
Beyond SecLang, @mbuckbee points out additional WAF functionality. I do not want to debate what a WAF is and what not. But I think you must be clear, that you are not getting all of this via a single tool. You need to set priorities and develop a plan which features you want to bring to your users. Coraza can probably provide half of the items on @mbuckbee's list. Others will demand other tools or additional development. My advice is to take this step by step and the ability to detect SQLi + XSS + friends should probably be the baseline.

Outstanding contributions, everyone. Thank you @dune73.
I have experience as an enterprise integrator, and one of the biggest struggles is false positive management, even for P1.
I have never seen an application work by default using Coraza and CRS. I also recognize the problem it represents, as patching false positives for applications requires specific knowledge of seclang.
Patching false positives is not disabling rules. It involves ignoring parameters for specific requests and rules, skipping rules categories for certain paths, and more.
I also agree with the Traefik team that we should take a cloud-native approach and make coraza configurations more yaml friendly and less seclang.
Right now, there are informal efforts to move away from seclang. Still, we are far from seeing it, so maybe instead of focusing on how we block, we could take the default approach of CRS and devise a standardized and serializable mechanism to patch false positives.

The first informal attempt to move away from SecLang I saw was a paper by Ivan Ristić around 2008. So yes, this makes sense, but don't hold your breath.
Patching false positives: I think it worthwhile to get the terminology right from the start (also in this discussion). False positives are alerts for otherwise benign payloads. You want to tune them away by reconfiguring the WAF, so the WAF no longer triggers alerts for these payloads. The practical process boils down to create so-called Rule Exclusions. A rule exclusion instructs the WAF to not apply a specific rule in a specific situation. Dr. Folini from Switzerland (-> that's me) claims there are 4 canonical types of rule exclusions. Disabling a rule completely is one of the four (-> correcting @jptosso's statement above: patching false positives can be the disabling of rules). A more granular approach can mean to disable a rule for a certain argument on a certain URI. All documented at https://coreruleset.org/docs
Other than that @jptosso is absolutely correct: False positives spoil all the fun. You need skills to tune them away. Free or commercial tuning can easy the pain a very big deal.  See above.

Hey everyone,
it's been one month now that this proposal has been opened and has had a call for comments.
We discussed it during triage today, and decided to not embed native WAF support for now.
Our reasoning is that with the upcoming support for WASM plugins (especially thx to @zetaab efforts) we'll be able to probe usage of different WAFs technologies within traefik before we need to make a stronger call and chose the technology we'd like to embed (if any).
We'll keep the issue opened to keep gathering opinions, but we'll close the Coraza PR in favor of embedding it as a WASM plugin very soon.

Hopefully my thinking isn't too far out in left field.
I would consider including a next generation / AI based WAF middleware, something that behaves more like an SPI firewall and can use reinforcement learning to identify a pattern in flagged false positives, false negatives rather than relying on an endless list of rules and heuristics to configure it to allow required traffic.
I can't remember the name of the project, but I think there is an open source SPI firewall firmware (for open source routers) that uses voluntary crowd sourcing for the data used to train the AI component to identify malicious and impersonated traffic. From what I heard it is quite effective.
Some content from their repo may be a good starting point for designing the core engine of a middleware like this.

I've heard the term "next generation / AI based" WAF for the first time in 2007. There will come the day when this idea really works, but until then, AI based WAFs are a rather shallow promise. Mostly for conceptual reasons.
If traefik wants to set itself apart from the market and place a bet on its ability to deliver on that promise, then good luck. If traefik thinks it's better to differentiate in other areas, then I suggest traefik goes with the simple and proven heuristic approach. The concept may be boring and even stupid when examined from the outside, but there are 20+ years of experience with this and the open source CRS rule set is the dominant player in this field. Almost all the big cloud providers have a CRS offering and that's for a reason.

There is a plugin, I close this proposal.


實作推文 usecase

👏 解決掉的 issue / Resolved Issues

close #147

📝 相關的 issue / Related Issues

#147
#68

⛏ 變更內容 / Details of Changes
填充 usecase function CheckPermission, AppendComment 內容

Codecov Report

:exclamation: No coverage uploaded for pull request base (feature/append_comment@48864a4). Click here to learn what that means.
The diff coverage is n/a.

@@                    Coverage Diff                    @@
##             feature/append_comment     #149   +/-   ##
=========================================================
  Coverage                          ?   37.93%
=========================================================
  Files                             ?       22
  Lines                             ?      883
  Branches                          ?        0
=========================================================
  Hits                              ?      335
  Misses                            ?      498
  Partials                          ?       50

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 48864a4...8e41b6b. Read the comment docs.

LGTM

LGTM
@PichuChen

LGTM


add sudo support

This allows the agent to run under a non-root account

@ThomasADavis I've rebased the branch on master
Are you still up to make the modification mentionned in your last comment ?
Thanks!


cannot run squad script

(g-torch) [bipkg@SVR16173HP380 examples]$ python run_squad.py --bert_model bert-base-uncased  --train_file squad/train-v1.1.json --do_train  --output_dir exps2
04/12/2019 11:32:03 - INFO - main -   device: cuda n_gpu: 1, distributed training: False, 16-bits training: False
04/12/2019 11:32:03 - WARNING - pytorch_pretrained_bert.tokenization -   The pre-trained model you are loading is an uncased model but you have set do_lower_case to False. We are setting do_lower_case=True for you but you may want to check this behavior.
04/12/2019 11:32:05 - INFO - pytorch_pretrained_bert.tokenization -   loading vocabulary file https://s3.amazonaws.com/models.huggingface.co/bert/bert-base-uncased-vocab.txt from cache at /home/bipkg/data/jgeng/Bert/pytorch_pretrained_bert/26bc1ad6c0ac742e9b52263248f6d0f00068293b33709fae12320c0e35ccfbbb.542ce4285a40d23a559526243235df47c5f75c197f04f37d1a0c124c32c9a084
04/12/2019 11:32:16 - INFO - pytorch_pretrained_bert.modeling -   loading archive file https://s3.amazonaws.com/models.huggingface.co/bert/bert-base-uncased.tar.gz from cache at /home/bipkg/data/jgeng/Bert/pytorch_pretrained_bert/distributed_-1/9c41111e2de84547a463fd39217199738d1e3deb72d4fec4399e6e241983c6f0.ae3cef932725ca7a30cdcb93fc6e09150a55e2a130ec7af63975a16c153ae2ba
04/12/2019 11:32:16 - INFO - pytorch_pretrained_bert.modeling -   extracting archive file /home/bipkg/.pytorch_pretrained_bert/distributed_-1/9c41111e2de84547a463fd39217199738d1e3deb72d4fec4399e6e241983c6f0.ae3cef932725ca7a30cdcb93fc6e09150a55e2a130ec7af63975a16c153ae2ba to temp dir /tmp/tmpj0z3ai2_
04/12/2019 11:32:20 - INFO - pytorch_pretrained_bert.modeling -   Model config {
"attention_probs_dropout_prob": 0.1,
"hidden_act": "gelu",
"hidden_dropout_prob": 0.1,
"hidden_size": 768,
"initializer_range": 0.02,
"intermediate_size": 3072,
"max_position_embeddings": 512,
"num_attention_heads": 12,
"num_hidden_layers": 12,
"type_vocab_size": 2,
"vocab_size": 30522
}
04/12/2019 11:32:25 - INFO - pytorch_pretrained_bert.modeling -   Weights of BertForQuestionAnswering not initialized from pretrained model: ['qa_outputs.weight', 'qa_outputs.bias']
04/12/2019 11:32:25 - INFO - pytorch_pretrained_bert.modeling -   Weights from pretrained model not used in BertForQuestionAnswering: ['cls.predictions.bias', 'cls.predictions.transform.dense.weight', 'cls.predictions.transform.dense.bias', 'cls.predictions.decoder.weight', 'cls.seq_relationship.weight', 'cls.seq_relationship.bias', 'cls.predictions.transform.LayerNorm.weight', 'cls.predictions.transform.LayerNorm.bias']
04/12/2019 11:32:42 - INFO - main -   ***** Running training *****
04/12/2019 11:32:42 - INFO - main -     Num orig examples = 87599
04/12/2019 11:32:42 - INFO - main -     Num split examples = 88641
04/12/2019 11:32:42 - INFO - main -     Batch size = 32
04/12/2019 11:32:42 - INFO - main -     Num steps = 8211
Epoch:   0%|                                                                                | 0/3 [00:00<?, ?it/s]Segmentation fault (core dumped)                                                                                | 0/2771 [00:00<?, ?it/s]

What hardware are you using?
What is your software configuration (versions of python, pytorch, pytorh-pretrained-bert, etc...)?

I'm not so sure that this is the same problem that I experienced.
If you installed apex, the problem may be related to BertLayerNorm, because BertLayerNorm will use FusedLayerNorm of apex library. Thus, if you disable to use FusedLayerNorm of apex library, then the segmentation fault will disappear.
The other solution is that you should reinstall apex. Please refer to https://github.com/NVIDIA/apex/issues/156#issuecomment-465301976.

@cartopy  reinstall apex works well thx


Deprecation/Continuity between BFO 1.1 and BFO 2

From<EMAIL_ADDRESS>on May 22, 2012 00:22:34
There are a number of types that are no longer present. Missing: 'scattered' temporal|spatiotemporal  regions, object boundary, processual context , process_aggregate, fiat_process_part, processual_entity (renamed/merged with process).
Shall we call these out as officially obsolete?
Pictures of the two hierarchies are attached to this issue.
Attachment: BFO 1.1.PNG BFO 2.PNG
Original issue: http://code.google.com/p/bfo/issues/detail?id=37

From<EMAIL_ADDRESS>on May 22, 2012 09:49:33
I am in two minds on this; some of them will be needed, and will be used, by some of BFO users. The proposal had been that we create a wiki page allowing BFO users to create obvious child terms and post them for use by others. We could start this page by listing those terms which still have an obvious potential use but are no longer included in BFO.

From<EMAIL_ADDRESS>on May 22, 2012 09:56:01
Could we create an obsolete.owl file (such as it has been done with OBI, IAO...) which would contain those (with annotation as to why they have been deprecated, what is their replacement etc) and leave the choice to users to import or not that file?

From<EMAIL_ADDRESS>on May 23, 2012 08:50:39
Status: Accepted

From<EMAIL_ADDRESS>on May 24, 2012 19:20:11
Beginnings at https://code.google.com/p/bfo/wiki/BFO_11_to_2_changes Please review/contribute
Status: Started


Move controllers to internal/controller

Make the controller implementations private.
closes fluxcd/flux2#3719 .

In all other projects we kept the naming controllers, are we going for controller even if we have multiple reconcilers in almost all our controllers?


Improve language toggle

Hi @beatrizmartinmartins We've been receiving feedback saying that the language toggle is not visible or easy enough to use. A few things I think we could improve:

I think we're missing an downward arrow after the language name. At the moment it's not clear that you can find more language options when clicking on the language
Do you think we can increase the font size of the language label or just make it bold? The same change would need to be applied to the link next to the language label (Main ILO website).
Since we're making these changes, I think we should also remove the arrow that shows before 'Main ILO website'. It's misleading as this is just a hyperlink, it does not actually take users back anywhere.

https://www.figma.com/design/RRxsfLNxjoypKrfJg1EwJf/ILO-Components-Library?node-id=1433-3563&t=f7Y3EMocyjiNUGro-0

@inesdgomes

Honestly, I think the Link that says (Main ILO Website) doesn't look like a link because there's no separation between the language and that hyperlink. Maybe we should include a line between the Main ILO Website and the language so the user knows that they are two different things?
On the live website, I'm seeing we don't actually have the Main ILO Website hyperlink anywhere. Is it something we are going to add?

Made the changes you asked for here

Thanks @beatrizmartinmartins The changes you made look good.

Agreed on adding a line or some other way of making a clearer distinction between the two items. Could you please try that?
The 'Main ILO website' link doesn't show on the live website because you're already on the main ILO website. That links is meant to be shown only on sub-sites that are separate from the main ILO website. It will eventually be implemented on sites like voices.ilo.org/ or ilo.org/infostories.

@inesdgomes Made that change on the designs. You can check it on the component. On the templates is not shown.

@justintemps Basically we added a line of 16px between the menu items so it looked different and users understood the difference between one and another. This line basically separates the language from the link. CC @inesdgomes

@justintemps This can move to development. Repeating this comment so it's clear what are the changes that were done to 'languagelabel' and 'mainlink' in the desktop navigation:

Added a downward arrow to indicate there are more languages
Font size / weight changed
Removed arrow that showed before 'mainlink'
Added a vertical line separating 'mainlink' and 'languagelabel0

Changes can be seen in the component library: https://www.figma.com/design/RRxsfLNxjoypKrfJg1EwJf/ILO-Components-Library?m=auto&node-id=6198-11143&t=BcrzzTsjGNg4AHmh-1

@Shashika6 Here's a link to the component. See @inesdgomes's instructions above. When you make the PR, please ask her to review it.
https://www.figma.com/design/RRxsfLNxjoypKrfJg1EwJf/ILO-Components-Library?m=auto&node-id=6198-11143&t=I4GVpdv2cirpfs3x-1


[android] '-std=c99' is valid for C/ObjC but not for C++

Describe the bug A clear and concise description of what the bug is.
#1335 is causing a ton of warnings when building for android.
See example: https://github.com/openthread/ot-br-posix/actions/runs/3243645349/jobs/5318661298#step:3:3082
To Reproduce Information to reproduce the behavior, including:

Git commit id
IEEE 802.15.4 hardware platform
Build steps
Network topology

Expected behavior A clear and concise description of what you expected to happen.
Console/log output If applicable, add console/log output to help explain your problem.
Additional context Add any other context about the problem here.

@jwhui can you take a look please?

@lmnotran , thanks for raising this issue. I'm not sure I have a good answer here. It appears that Android build may automatically apply LOCAL_CFLAGS to both C and C++.
@bukepo , thoughts?

If the flag is added only for the new version of mbedtls? Perhaps we can add a flag only for mbedtls souroces.

@lmnotran , can you help review https://github.com/openthread/openthread/pull/8310 and indicate whether it resolves this issue?