[BUG] The low-level interface for batched deflate decompression can only work for the first block

I am trying to decode some deflate blocks which is put on a byte stream. In fact, I preprocess the data to divide it into some blocks. For alignment with the start point, some blocks shift some bits to left. At the end of the block, if the data cannot be aligned, some zeros will be filled.
Then I convert these blocks to nvCOMP, but I get the wrong result (only the first block show the correct result) when invoking:
nvcompStatus_t decomp_res = nvcompBatchedDeflateDecompressAsync(
    device_compressed_ptrs,
    device_compressed_bytes,
    device_uncompressed_bytes,
    device_actual_uncompressed_bytes,
    batch_size,
    device_decomp_temp,
    decomp_temp_bytes,
    device_uncompressed_ptrs,
    device_statuses,
    stream);

It seems that every parameter is correct because I got the correct result by:
for(int i = 0;i<batch_size;i++)
  {
    nvcompStatus_t decomp_res = nvcompBatchedDeflateDecompressAsync(
      device_compressed_ptrs + i ,
      device_compressed_bytes + i,
      device_uncompressed_bytes + i,
      device_actual_uncompressed_bytes + i,
      1,
      device_decomp_temp,
      decomp_temp_bytes,
      device_uncompressed_ptrs + i,
      device_statuses + i,
      stream);
  }

I type the value of "device_statuses" and this two methods show the same results:
 check the state of 0 => state:11
 check the state of 1 => state:11
 check the state of 2 => state:11
 check the state of 3 => state:11
 check the state of 4 => state:11
 check the state of 5 => state:11
...
 check the state of 256 => state:0

Only the last block's state is SUCCESS ?
All returned valued by functions are nvcompSuccess.
Thera are any possible reasons for this problem?
Thanks for you kindly attention.
by the way, nvcompBatchedDeflateDecompressGetTempSize(batch_size, max_chunk_size, &decomp_temp_bytes) always set 0 to "decomp_temp_bytes", it means deflate do not need buffer anymore?

Hi!  Is there any way that you could provide a full example that reproduces the issue?  From what you've provided, it's difficult to guess what the issue might be.  We do have tests that test the Deflate compressor with multiple blocks, both compression and decompression, to ensure that the data is the same as it was before.
A wild guess: How are you synchronizing before checking the results?  nvcompBatchedDeflateDecompressAsync, like the other nvCOMP functions that launch CUDA kernels, launch them asynchronously, so that other work can overlap with them and more kernels could be launched in the meantime.  If you don't synchronize the stream, you could end up reading stale data.  You can find an example of how to use nvcompBatchedDeflateDecompressAsync and cudaStreamSynchronize here:  https://github.com/NVIDIA/nvcomp/blob/main/examples/deflate_cpu_compression.cu

Also, are you splitting the data into chunks before compression?  If you take compressed data and arbitrarily split it into chunks afterward, that wouldn't work, because the chunks need to correspond with the chunks originally used for compression.

Thanks for your early reply.
The cudaStreamSynchronize(stream) is processed before test the result.
I have never used the compression functions, I just use the deflate decompression interface to decode some deflate blocks.
I get the uncompressed block length by
  nvcompBatchedDeflateGetDecompressSizeAsync(
    device_compressed_ptrs,
    device_compressed_bytes,
    device_uncompressed_bytes,
    batch_size,
    stream);

Therea are n(parameter "batch_size" in code) deflate blocks in total. The problem is that , when I handle all n blocks in nvcompBatchedDeflateDecompressAsync, I find only the first block return correct result.
As I showed in the code, I run the nvcompBatchedDeflateDecompressAsync  n times, I got the correct result for all blocks.
That is
// run all the N blocks at one go
nvcompBatchedDeflateDecompressAsync(
    ...
    batch_size,
    ...
)
=> only the first block get the correct result.

// loop for each block
for(int i = 0; i < batch_size; i++)
{
    // handle 1 block
    nvcompBatchedDeflateDecompressAsync(
        ...
        1,
        ...
    )
}
=> get the correct result for all result

@Autumn1998 That is the right behavior actually. With deflate blocks, only the entropy decoding is independent across blocks, but LZ match copies create dependencies between blocks. For example, a match copy code of the second block can reference the result of the first block’s decompressed stream. This is probably why running serially works but running them concurrently does not.
nvcomp’s deflate algorithm decompresses a whole deflate stream rather than just deflate blocks because of that LZ block dependency behavior. To use the batched decompression API, you would need to pass in multiple deflate streams and each stream may have one or more deflate blocks. But all that the nvcomp API cares about is how many streams there are.


Infrastructure CI/CD Technical Design Proposal

All Submissions:

[YES] Have you followed the guidelines in our Contributing document?
[YES] Have you added an explanation of what your changes do and why you'd like us to include them?
[YES] I have updated the documentation accordingly.
[NA] I have added tests to cover my changes.
[NA] All new and existing tests passed.
[NA] My code follows the code style of this project.
[NA] I ran lint checks locally prior to submission.
[YES] Have you checked to ensure there aren't other open Pull Requests for the same update/change?

Linked User Story
Resolves #176
What is the new behavior?

This proposal outlines the Azure DevOPS Pipeline for continuous integration and deploying terraform infrastructure changes to 4 environments: 1) Dev Int 2) QA 3) Staging 4) Production.
I've outlined what features are considered in-scope and out of scope.
This proposal includes a sequence diagram framing the build and release steps for validating and provisioning cloud resource objects in Azure.
Does this introduce a breaking change?

[NO]

Reading up more on the proposed github flow approach is pretty interesting and I'm starting to see a lot of the benefits to it. Thanks for talking though this with me. I think that the high level strategy proposed makes a lot of sense and is flexible for us moving forward. I added some minor comments in-line to the document.
In general I feel like I'm missing some context on two major points:

I know you've been thinking about this strategy as it relates to (1) a general use case pipeline and (2) being created in an automated way. I'm not getting that from this document but it may be helpful to briefly touch on how this could be automated in the future. Possibly out of scope, but it may future-proof this document a bit.
What is your recommendation for implementing the approach you are suggesting? For example, is the proposal to create YAML pipeline definitions whose behavior is driven from variables and stage-names that can be generalized from application to application? If so, what would these look like? How useful are they from template to template? If not, what is the proposal?

Thanks for the comments. On your first point, 1) is in scope but 2 is not. I'll add automating the creation of this pipeline to the out of scope list. I'll add some more context around how this pipeline is the general use-case pipeline that should be imported for cobalt technical operators.
On your second point, the implementation artifact will be a single YAML file that will encompass the build and stage definitions. Cobalt users would then import this yaml definition into azure devops as defined within the Add Azure Pipelines Build YAML section. I'll revise to help make that more clear.


After install could not start ember s again

After install ember-cli-imgix via ember install ember-cli-imgix  I run ember s and I get following errors:
$ ember s
version: 1.13.12
Livereload server on http://localhost:49152
Serving on http://localhost:4200/
ENOENT, no such file or directory 'ember-app/tmp/concat_with_maps-input_base_path-TJpQil0w.tmp/0/bower_components/md5/build/md5.min.js'
Error: ENOENT, no such file or directory 'ember-app/tmp/concat_with_maps-input_base_path-TJpQil0w.tmp/0/bower_components/md5/build/md5.min.js'
    at Error (native)
    at Object.fs.statSync (fs.js:797:18)
    at ConcatWithMaps.keyForFile (ember-app/node_modules/ember-cli/node_modules/broccoli-sourcemap-concat/node_modules/broccoli-caching-writer/index.js:90:20)
    at Array.map (native)
    at ConcatWithMaps.CachingWriter._conditionalBuild (ember-app/node_modules/ember-cli/node_modules/broccoli-sourcemap-concat/node_modules/broccoli-caching-writer/index.js:112:65)
    at ember-app/node_modules/ember-cli/node_modules/broccoli-sourcemap-concat/node_modules/broccoli-caching-writer/node_modules/broccoli-plugin/read_compat.js:61:34
    at lib$rsvp$$internal$$tryCatch (ember-app/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:493:16)
    at lib$rsvp$$internal$$invokeCallback (ember-app/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:505:17)
    at lib$rsvp$$internal$$publish (ember-app/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:476:11)
    at lib$rsvp$asap$$flush (ember-app/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:1198:9)

I think there is missing the md5 package in bower.json

Hi @sgasser, the md5 package is a subdependency. It should be pulled in by imgix-core-js: https://github.com/imgix/imgix-core-js. A bower install should fix the issue. Can you try running that and report back?

Hi @kellysutton,
no difference with bower install
In bower_components all bower components for ember-cli-imgix are missing...

Interesting. I know the last version of ember-cli that this was confirmed to work with was 1.13.8. There might be some transition work required in upgrading it to be compatible with 1.13.12.

I'm taking a peek at this. Interestingly, I was able to reproduce this issue with both ember-cli 1.13.8 and 1.13.13. Will keep digging.

Hey @sgasser, this should be fixed up in 0.1.2. Please give it a shot and let me know!

Fixed. Thx


Multidimensional/composite target encoding

I would like to do target encoding on the composite of multiple columns, but the current functionality only allows a single column to be encoded.
For example: I have a column names product and another named color and I'd like a unique target encoding value for each product+color combination. Currently, I can only have an encoding for each unique product and each unique color separately.
The workaround would be to concatenate the column values together and then target encode, but that is a bit clunky and leads to some unnecessary categorical features in my dataframe. Let me know if this is something worth raising a PR for.
The implementation I'm thinking is optionally allowing a new argument called something like composite_cols (open to better naming suggestions). This arg can be a list of lists, where each inner list indicates the column names to be concatenated together, and each element in the outer list makes up a composite column. If passed, convert the values to string and concatenate them together before passing into the encoder the same way as regular cols. The composite column can be named as the concatenation of all its component column names.

If we'd implement it for TargetEncoder we'd need it also for all other encoders where each column is encoded independently (which are all encoders except hashing).
I think the library should focus on just encoding and not do these kinds of feature engineering. My subjective opinion is that leaving  concatenation to the user is the way to go. Is it really that clunky? It's just a line of code is it? What exactly do you mean by leads to some unnecessary categorical features? Do you mean that if you concat product and color to productcolor it will also encode product and color (if you do not explicitely specify columns)? On this topic I agree it's annoying.
Maybe we could not change all the encoders but offer some preprocessing functions? There could be a module preprocessing with a function create_composite_columns(input_df: pd.DataFrame, composite_cols: List[List[str]]) -> pd.DataFrame that will  concatenate the columns and drop the individual cols for encoding.

Great! I like the preprocessing idea. I will scope it out and work on a PR for this in the next couple weeks.

@PaulWestenthanner
One point of clarification on what you wrote:

that will concatenate the columns and drop the individual cols for encoding.

The use case I have in mind is to get an encoding of the joint product & color fields, but not return a string column of those two (as it will internally handle the encoding and then throw away the concatenated field). I may or may not want to also encode product & color separately. Here is a pseudocode example for how I would do it now.
df['product_color'] = df.product + df.color encoder = ce.TargetEncoder(cols=['product_color', 'product', 'color']) encoder.fit(X, y) X_enc = encoder.transform(X) X_enc = X_enc.drop(columns=['product_color'])
So it is a minor nuisance (2 extra lines of code). The cleanest solution I can think of is to allow tuples to be passed into the cols arg which indicates those columns should be concatenated before encoding. So I may have spoken too soon about the preprocessing idea. Let me know if this seems like enough of a quality of life improvement to warrant a modification.
I'm also curious about this point:

Do you mean that if you concat product and color to productcolor it will also encode product and color (if you do not explicitly specify columns)? On this topic I agree it's annoying.

If I were in this position and didn't want to specify columns (maybe I have a long list of cat columns to encode), then I think it would be simple enough to drop product & color before encoding? Let me know if I'm missing something and if you'd like me to build a solution for it.

I like the idea that you can choose if you want to encode product and color also as separate columns or not.
I also like the tuple solution. This does not interfere with the current API and can be understood if documented well.
If you want to create this PR please go ahead. I think it's a useful feature and it's sufficiently clean and backwards compatible. The only thing I'd ask for is to implement it in all encoders not just target encoding in order to have a uniform API across all encoders


QUESTION menu for level == 1 is all acess than level == 2 only certain menu

how to create menu for user with level = 1 can access all menu, and user with level 2 only particular menu.
menu user with level ==1
user, product, category, customer, report
menu user with level ==2
report
how to do this using adminlte with jeroenotten packagist

solved by my self. here is the solutions
in authserviceprovider add this code on boot
Gate::after(function ($user, $ability, $result, $arguments) {
            if ($user->isAdmin()) {
                return true;
            }
        });

and in user model add this code
public function isAdmin()     {         if ($this->status == 'admin')         {             return true;         }         return false;     }


logging trace headers in apache 2.4

Describe your environment Describe any aspect of your environment relevant to the problem, including your platform, build system, version numbers of installed dependencies, etc. If you're reporting a problem with a specific version of a library in this repo, please check whether the problem has been fixed on main branch.
Running with apache httpd 2.4.51 (latest at the time of this writing), using mod_proxy to forward requests. Using the mod-otel 0.1.0 from here https://github.com/open-telemetry/opentelemetry-cpp-contrib/releases/download/httpd%2Fv0.1.0/ubuntu-18.04_mod-otel.so.zip
I tried logging the trace header with '%{traceparent}i' but got nothing (a dash/'-' which in apache-speak means "not found"). I assume this is because the header is added by mod-otel AFTER the logging tried to capture it.
Steps to reproduce
Using one of the example opentelemetry.conf configs (let's say using 'file' and letting traces go to stderr, i.e. error.log), make a request to my echoserver, which is behind a ProxyPass:
ProxyPass "/echoserver" "http://echoserver:8080" enablereuse=off

I see the headers coming back from the echo server:
traceparent=00-e2cb9baa8199a41e746be690a48d6da2-3e2a317ff7539e46-01
tracestate=

Adding to the LogFormat:
traceparent=%{traceparent}i

Gets me:
<IP_ADDRESS> [2021-12-06T11:22:09.329888Z] "GET /echoserver HTTP/1.1" 200 14009 22ms xff=- ua="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:94.0) Gecko/20100101 Firefox/94.0" traceparent=- gw=<IP_ADDRESS> inBytes=2163 OutBytes=14009

I assume this is likely just the way it works and not a bug. If anyone has suggestions how to get the traceID logged, that would be fantastic.
What is the expected behavior?
I was hoping to see the traceparent header in the logs.
What is the actual behavior?
A dash for the header (which in apache means it was not found).
Additional context
Nothing comes to mind.

Well your thinking is correct I was able to log traceparent with traceparent=%{traceparent}i with mod_otel options:
OpenTelemetryPropagators trace-context and OpenTelemetryIgnoreInbound Off . Essentially executing test number 7 - https://github.com/open-telemetry/opentelemetry-cpp-contrib/blob/f48500884b1b32efc456790bbcdc2e6cf7a8e630/instrumentation/httpd/tests/07-create-outbound-spans.sh#L14-L15
from terminal. Are you able to execute this test (please install  setup-tools.sh first )?

I assume this is because the header is added by mod-otel AFTER the logging tried to capture it.

There must be some other reason as logging is very last in processing pipeline by Apache.

I'll try to set up a test environment (or create a Dockerfile that can run the tests?), but if I read test 07 correctly, you're passing IN the traceparent header with curl, right? In my case, we have OpenTelemetryIgnoreInbound On (we are the border-gateway in this case) and apache is the originator of the trace. I should have included that in my original report. My apologies.

Did a quick test: I enabled OpenTelemetryIgnoreInbound Off, and sent in traceparent: 00-72261f4b29dea7d293e8fbfb6f2c1042-085e794a94f0c55e-01 and I do see that traceparent header logged as expected.
The problem is apparently only when OpenTelemetryIgnoreInbound On and we're the originator/creator or the trace: Then I get no header in the logs.

I've started working on this one: https://github.com/TomRoSystems/opentelemetry-cpp-contrib/pull/5
Just need to add test.

Fixed in PR https://github.com/open-telemetry/opentelemetry-cpp-contrib/pull/97


Deprecate vivo:F1000Link

What is the motivation for your change request?
The class "F1000 Link" (vivo:F1000Link) currently holds a special position in the VIVO ontology as it is the only subclass of vcard:URL. F1000 does not have this relevance and this is also not consistent with the rest of the ontology.
Describe the solution you'd like
Deprecation of vivo:F1000Link.
Describe alternatives you've considered
N/A
Additional context
The idea originates from the VIVO issue https://github.com/vivo-project/VIVO/issues/3992 by @markuskotte.

Decision by the Ontology Interest Group, documented in https://wiki.lyrasis.org/display/VIVO/2024-07-03+Ontology+Interest+Group+Call: vivo:F1000Link should be deprecated.


Fix flow 2016-07-04

Fix up current flow errors
Add flow to Jenkinsfile

Hrm. Mystery failure, but definitely to do with flow.

related to https://github.com/facebook/flow/issues/210 likely

yes adding that dep in helped.

Wait, didn't this work yesterday?

@sophistifunk yes, as you can see from status is all good.

:bee: even I  can understand the types, and Jenkinsfile change looks reasonable.

Suckers!
/me deploys to PROD and goes on safari for 6 months


plugins don't installing how can be fix it this probleme

hello
wen i try to install any plugins its show me error try again how can i fix this probleme please

copy and paste the error here.

[url=https://up.top4top.net/][img]https://1.top4top.net/p_1295q8uvl1.png[/img][/url]

Do you still have this issue ?

yes i still have this probleme

come to discord: https://discord.gg/8E69p2

check here https://github.com/kleeja-official/kleeja/issues/142


Print the dependencies in plaintext tree in commander.js

[x] All tests passed. If this feature is not already covered by the tests, I added new tests.
[x] I used npm run format for formatting the code before submitting the pull request.

nuget-deps-tree [path to sln file], it will print dependencies in json.
or
nuget-deps-tree --text [path to sln file], it will print dependencies in plain text as below:

I have read the CLA Document and I hereby sign the CLA

Anyone can help to review this please?

Thanks again @younthu !
Version 0.4.0 is now released with your new feature.


Adding quad-precision build support

This PR adds quad-precision support to the SLEEF conda-forge package. The changes enable the building and packaging of the quad-precision library (libsleefquad) alongside the existing SLEEF libraries.

PR regarding issue #8

@bluescarni any thoughts on why the windows and Travis CI are failing?

@SwayamInSync for the PPC64 build failure, I recall reading on the conda-forge gitter channel that there were issues with travis and that the solution was to switch to cross compilation from x86. Pinging the great @h-vetinari to see if they can assist as I my conda-forge-fu is not that strong.
For the Windows build I don't really know...

Pinging the great @h-vetinari to see if they can assist as I my conda-forge-fu is not that strong.

Thanks for the flattery, but "stubborn" might be more accurate than "great". 😅
In any case, PPC is going to run into https://github.com/conda-forge/status/issues/185. Since you're already cross-compiling osx-arm64, the hope would be that you could switch to cross-compilation also for linux-{aarch64,ppc64le}, or in the worst case, emulate them on azure (which is quite a bit slower, but since the build times here are not that big, that would also be an option).

Pinging the great @h-vetinari to see if they can assist as I my conda-forge-fu is not that strong.

Thanks for the flattery, but "stubborn" might be more accurate than "great". 😅
In any case, PPC is going to run into conda-forge/status#185. Since you're already cross-compiling osx-arm64, the hope would be that you could switch to cross-compilation also for linux-{aarch64,ppc64le}, or in the worst case, emulate them on azure (which is quite a bit slower, but since the build times here are not that big, that would also be an option).

Thanks @h-vetinari , switched to azure provider
provider: {linux_aarch64: azure, linux_ppc64le: azure}

Travis CI is still failing though, but is it now to a point where we can merge it?
cc: @bluescarni

Travis CI is still failing for ppc64le, but is it now to a point where we can merge it? cc: @bluescarni

I think you need to rerender the recipe.

Travis CI is still failing for ppc64le, but is it now to a point where we can merge it? cc: @bluescarni

I think you need to rerender the recipe.

Thanks @bluescarni
Pushed the re-rendered one, seems good now

Ahh I think by mistake I left this for windows 🥲
opening a new PR


Systemverilog: Add separate compilation flow

This PR adds support for separate compilation flow by reusing Yosys -defer flag.
Multiple files can be parsed one by one with Surelog by calling read_systemverilog -defer <file> and elaborating them later with read_systemverilog -link.

Integration PR: https://github.com/antmicro/yosys-uhdm-plugin-integration/pull/879


Fix apollo example

I accidentally removed Head.rewind() in the last with-apollo update because of a misunderstanding 🙈.
Sorry for introducing a bug! Many thanks @jaydenseric for clarifying 🙏!
This PR fixes this issue.
more info

Thanks @lfades that was quick!


Task: support active directory option in deploy bdc wizard

[x] Parse the profile json to identify whether AD is supported

[x] Collect the user input in the wizard

[x] update the notebooks

the changes has been merged to master


Add S3_BUCKET data to CI to test things properly

See e.g. https://travis-ci.org/Marri/glowfic/builds/274404683#L1153:

WARNING: An expectation of :delete_objects was set on nil. To allow expectations on nil and suppress this message, set RSpec::Mocks.configuration.allow_message_expectations_on_nil to true. To disallow expectations on nil, set RSpec::Mocks.configuration.allow_message_expectations_on_nil to false. Called from /home/travis/build/Marri/glowfic/spec/controllers/api/v1/icons_controller_spec.rb:6:in `block (3 levels) in <top (required)>'.

This probably doesn't mean we're skipping major things, since it's stubbing the bucket, but it would be a good idea to add some (staging?) bucket data to make sure there's no inconsistency at some later point.

Duplicate of / superseded by #550.


[Video] make hover state stick around if tapped

Currently, when you tap the video with a touch device on web, the controls disappear immediately because you've stopped hovering it.
This PR has two changes (for touchscreens only)

The initial tap should only bring up the controls, and not unmute/pause/do anything else
The controls should stay visible for 3 seconds after a tap, for you to press the buttons

Make sure there's no regressions for mouse users
Thanks @surfdude29 for the bug report!

Tried the preview branch and it's working really well for me, great work! :)
One small thing I noticed though: if you pause a video and then resume it, when you tap the screen after that the controls don't stay visible for 3 seconds, they disappear much more quickly.

Yeah not quite sure of the circumstances of that, it's odd


x/net/html: add StripTags example

Stripping HTML tags is absolutely required for every web related development task.
This was previously raised in: https://github.com/golang/go/issues/5884

Can you please expand on the requirements you have and the problem you're trying to solve that would require the use of stripTags?

@empijei  Please makes usre you read the first message carefully.
We are not talking about specific issue at hand.
Its about being able to use a function that should be part of the standard library, instead of relying on 3rd party implementation.

Why do you think it should be part of the standard library? I don't think it should and I think it might be even dangerous to expose.
If you ask me about implementing and exposing a sanitizer I might be on board with that, I am just not sure stripTags would be the best thing to have in our public API.
When you say "Please makes sure you read the first message carefully." I read all 18 words of the initial report very carefully and I see 0 reasons that support stripping tags as "absolutely required for every web related development task". Moreover the initial report you linked does not have that information.
I have been working on the web for quite a while and never needed such a function. I might have needed a textual representation of a page (which is not achievable by simply stripping tags) or I might have needed a sanitizer (which, again, cannot be done by just stripping tags) but not once I just needed to strip tags and not do anything else.
That said I might be missing the obvious use cases here, so if you want this in the standard library we would need to build a case and gather some info on why and when this would be useful, so can you please provide some use cases? I really need more information to propose a change the stdlib.

Stipping HTML tags is used regularly in web development, and I find myself using it in absolutely every web project.
Definitely there is a reason why its in the PHP standard library:
https://www.php.net/manual/en/function.strip-tags.php
The easiest case to make is to go to https://pkg.go.dev/search?page=1&q=strip+tags and check how many times people have implemented it, and will keep re-implementing it as its a must have function.
When all it takes is to make a function that already exists in the library public.

It's okay to disagree.
Please provide some use cases, though. The argument of having others implemented such a function is not enough, as we still don't know why they have implemented it. They might have had perfectly valid reasons that simply don't fit html/template. Could you help us with some examples of usage?

Stipping HTML tags is used regularly in web development, and I find myself using it in absolutely every web project.

If that is the case can you please provide one use case for it? Please, just one so that we know what we are talking about.
Even the standard library never uses that function directly: there are only two calls to it and both of them are used to pass the result to htmlReplacer. Both of the results are then used for the contextual autoescaper in the template package. I still think there is no good way to use this function other than in a precise context so I am asking you to please provide one valid use case for this. If you find yourself using it so much you might have vulnerabilities in your code, so you might want to have your code reviewed by a security expert.

Definitely there is a reason why its in the PHP standard library:

Thanks  for bringing PHP to a security discussion, let's take a look at what exposing this function caused in the PHP ecosystem:

People are asking if it is enough to protect their site (spoiler, it is not). The first answer correctly says that you should then take the output and pass it to an escaping funciton that needs to be correct for the context you are going to put the data in. This is what the html/template package does for you.
Let's look at the doc you linked, note section, which is quite telling on the dangers that come with this funciton:

So one might ask, has this ever caused real vulnerabilities in practice? Judging by all mentions from several sources [1][2][3][4][5] I would be inclined to say it did, and it even allows to bypass protections made exactly for that
PHP and ruby on rails had CVEs assigned because they were not considering non-printable or null bytes in the strip-tags and strip_tags helpers. Had they exposed actual escapers this wouldn't have been an issue since these characters would have been encoded, but that was not the case

The easiest case to make is to go to https://pkg.go.dev/search?page=1&q=strip+tags and check how many times people have implemented it, and will keep re-implementing it as its a must have function.

Let's now take a look at the Go ecosystem as you suggested. Searching for "go strip tags" on most search engines takes you to a stackoverflow thread that suggests to use an actual sanitizer, which is what I wrote initially we could decide to implement here.
The second result is a package that does exactly that and that has the same warning I mentioned in the description:

This package has 40 dependents according to pkg.go.dev, which doesn't seem like a lot considering how important you say this functionality is, but I decided to take a look anyways. All projects I could find on github that seem to be stripping tags are personal projects, CLI utils, crawlers or email services. The only use I could find of it in a web app or framework is in gobuffalo/docs and it uses it in conjunction with bluemonday.
Thanks for pointing out all this data, because it looks like it is building a good case against exporting this function. We might decide to provide a sanitizer in the future, but stripTags looks like a no-no to me. /cc @FiloSottile for one last security opinion here.
Before I close this bug I would like to ask you if you have any actual example we can look at to be sure we didn't overlook any potential good uses of tag stripping for web application development.

First, enough with the scare mongering @empijei. This is your third post where you just try to scare the community. Every function can be used in a wrong context depending on the programmers experience. This doesn't mean the function has a security flaw. Your presumption is you have untrusted input. If this is the case you will need extra validation and not only for XSS injections, but also SQL injections. But this is not the responsibility of the StripTags function. And most usages for StripTags are not for securing untrusted sources anyway. All StripTags does is remove <WORDS_SURROUNDED_WITH_ANGLE_BRACKETS> from a TEXT string. Period nothing more no less.
Second. Use cases (non-exhaustive list), as I said its an everyday occurrence in the live of a web developer.

Convert HTML to text for news articles, blog posts, books in HTML format, RSS feeds, etc.
Generating summaries for bulettins, news letters
Counting real text characters in an HTML block
Convert HTML emails to TEXT email content. Especially for mail clients not supporting HTML.
Cleanup HTML from rich text editors, where browsers add unwanted tags
Convert HTML output to text for text readers
Creating audio from subtitles in HTML format
Converting HTML formatted books to text for better readability
Converting HTML pages to text, for indexing for search engines (Solr, ElasticSearch, etc)

Third. Lets see what happens when this small and useful utility function is not a standard
A. Everyone re-invents it

see this thread here for C#: https://stackoverflow.com/questions/785715/how-can-i-strip-html-tags-from-a-string-in-asp-net
GoLang - https://stackoverflow.com/questions/55036156/how-to-replace-all-html-tag-with-empty-string-in-golang
GoLang - https://www.reddit.com/r/golang/comments/7l1vqj/strip_html_tags_from_strings/ (pay attention to the last post, where the author wrote one himself)
Java -  https://stackoverflow.com/questions/240546/remove-html-tags-from-a-string
GoLang - https://gowalker.org/github.com/kennygrant/sanitize
GoLang - https://www.php2golang.com/method/function.strip-tags.html
B. Everyone reinvents it poorly (99%). Here @empijei. How much of the above are secure?
C. Having to rely on external 3rd party package (bluemonday, redtuesday, greenwednesday, you name it) is a security issue by itself

This is your third post where you just try to scare the community

I am just trying to showcase why adding such a function would be dangerous. I care about the security of the ecosystem.

If this is the case you will need extra validation and not only for XSS injections, but also SQL injections

Let's leave SQL out of this please. It has nothing to do with tag stripping.

Convert HTML to text for news articles, blog posts, books in HTML format, RSS feeds, etc.
Converting HTML pages to text, for indexing for search engines (Solr, ElasticSearch, etc)
Generating summaries for bulettins, news letters
Convert HTML emails to TEXT email content. Especially for mail clients not supporting HTML.

For these you would then need to encode the result in HTML, so after calling stripTags you would have to call an html replacer, like html/template does. This is the exact concept of "putting untrusted input in your HTML page". If instead the output goes in something that is not rendering HTML (e.g. an RSS feed, an email client or a CLI application) this is exactly what I said: "CLI utils, crawlers or email services" (see my previous message).
That said email, CLI and non-web-related technologies are not strictly web development and we might want to add those functions where they belong, like an HTML manipulation library instead of a templating one. I am just arguing this function might not belong to this package.

Counting real text characters in an HTML block
Convert HTML output to text for text readers
Creating audio from subtitles in HTML format
Converting HTML formatted books to text for better readability

This doesn't work, stripTags would count characters in hidden blocks too and would ignore positioning: you might end up with a completely different text than the one in the page that would be displayed by rendering the HTML.

Cleanup HTML from rich text editors, where browsers add unwanted tags

Again, a sanitizer would do this job.
So, let's recap if I got this right, you are arguing this is a much needed feature because:

HTML-to-text for email, crawlling or RSS-like tools are a common enough use case
Providing an inherently unsafe function is okay as long as it doesn't get confused for something security related
Not providing this feature would make people write their own, which might even be worse
Using a publicly available sanitizer that most of the go ecosystem relies on is a security issue

Let's work on this together.
The stripTags function is not exactly related to generating HTML or producing web pages, as you said most use cases are RSS, crawling, ebooks, audio and such. Luckily we already have a library dedicated to HTML processing: /x/net/html. Would it be okay for you to provide either of the following:

an example of how to use this library to strip tags
a function that strips tags from the input
?

Hi @empijei, thank you for taking the time to think the code over:

Its similar but I would expect to pass a string as parameter instead of io.Reader, The most HTML one would receive would be a string (i.e. database text field), converting it to io.Reader may be a step over what one would like to do, but is not a deal breaker.

Initially I did not like the skip map, thinking its an overkill for such a simple function. But the more I thought about it the more I liked it, and now I think its really good. I would probably add the

About using html.Parse, I quite like how you approached it. I am sure it would be good for properly validated nested HTML. What aboy not properly nested tags "...........". Would html.Parse cope with it?

About actual implementation not sure I am the right person. I have seen this previously implemented here:
https://storage.googleapis.com/go-attachment/5884/7/strip.go
The two approaches are much different, not sure which is correct, and what are the pros and cons of both. I personally like yours as is more readable, while the other seems more convoluted.

Its similar but I would expect to pass a string as parameter instead of io.Reader, The most HTML one would receive would be a string (i.e. database text field), converting it to io.Reader may be a step over what one would like to do, but is not a deal breaker.

A very nice thing about Go is that any string can be used as an io.Reader, so if we wanted to build a wrapper function that takes a string it would be
StripTagsString(htmlin string)(string, error) {
  // This is the same StripTags that I wrote in the previous comment
  return StripTags(strings.NewReader(htmlin))
}

Initially I did not like the skip map, thinking its an overkill for such a simple function. But the more I thought about it the more I liked it, and now I think its really good. I would probably add the template tag in the map too.

The skip map is necessary and a similar thing is used in the stripTag in the template package that you were asking to have exported:
https://github.com/golang/go/blob/2cd2ff6f564dce5be0c4fb7f06338ff7af3fc9a9/src/html/template/context.go#L227-L239

About using html.Parse, I quite like how you approached it. I am sure it would be good for properly validated nested HTML. What about not properly nested tags "[b]....[u]....[/b]...[/u]". Would html.Parse cope with it?

It would work, but if you want to have the matching even more relaxed you could change the code of `f`` to be:
	f = func(n *html.Node) {
		if n.Type == html.TextNode {
			if n.Parent.Type == html.ElementNode && skip[strings.ToLower(n.Parent.Data)] {
				return
			}
			sb.WriteString(n.Data)
		}
		for c := n.FirstChild; c != nil; c = c.NextSibling {
			f(c)
		}
	}

About actual implementation not sure I am the right person. I have seen this previously implemented here:
https://storage.googleapis.com/go-attachment/5884/7/strip.go

This code is an overly complicated implementation that basically copy-pasted the entire source of the template package just to export stripTag. The issue is that the implementation of stripTag in this case is so complicated because it needs to be in the context of a templating package, which is not what you seem to be asking for here.
I would honestly think that the template package is not a good place to put the stripTags function in. The html package seems like a better place. Maybe we could add an example there that explains how to extract text from the given HTML? (which is what I did in my example above).
Would you find that useful?

Yes, an example of stripping tags would be useful. Also a warning that this is not a "safe sanitizing" function would be required.

I could add this to the "html" docs, since we now have an example to extract links from a page. @bradfitz what do you think about adding an example to extract text from html to the x/ html package?

How difficult would be to implement an allowable tags option similar to this one here:

It would not be difficult but since at that point whatever is produced will end up being rendered as HTML I would really prefer if people used a sanitizer instead (there would be no safe way to use a StripTag function that leaves some tags untouched, it would require an allowlist of per-tag attributes, and at that point you'd be rewriting a full sanitizer).

I agree with @empijei that html/template is a security focused package that should not provide tools for developers to shoot themselves in the foot. Sounds like this can live as an example in golang.org/x/net/html, so different requirements can be handled by modifying the code.

Too old, closing


Only errors will be highlighted with the Error face

Currently it's difficult to tell errors apart from warning without moving the cursor over the problematic section. This changes the face used to highlight diagnostics other than actual warnings to Information.

Nice improvement, thank you for contribution!


pyproject.toml support

Is your feature request related to a problem? Please describe.
Having options set in the pyproject.toml like other tools do would be a huge plus.
Describe the solution you'd like
[tool.len8]
Describe alternatives you've considered
A .len8ignore file was considered, but deemed too unnecessary, especially as mypy's .mypy.ini file, for example, is really annoying.

An ideal implementation would look like:
[tool.len8]
# If no include specified the argument would be necessary on the cli (and in `Checker.check(...)`), but if they do specify include, we could make the path argument optional maybe?
include = ["path1", "path2"]
exclude = ["path3", "path4"]
code_length = 99
docs_length = 72

Would excludes just be accumulated between the pyproject.toml and the .gitignore when #17 is completed?

Something like that's good, yeah. And I imagine it would go on top of the .gitignore, though black has ignore and extend-ignore, so not 100% sure.

Cool, i'm gonna write something out for this tonight.


Add lifecycle callbacks documentation, regenerate docs.

Remove context.next() from lifecycle callbacks' context.

This change is

Review status: 0 of 10 files reviewed, 1 unresolved discussion (waiting on @SomeoneToIgnore)

src/documentation/web-component-interface.js, line 52 at r1 (raw file):

   * This effectively means that the corresponding component should be resolved by the router before the method can be executed.
   * If the router navigates to the same path, the method is not called.
   * WebComponent that defines a callback is available inside the callback through the `this` reference.

nit: consider mentioning the fact that "the instance of the WebComponent on which the callback has been invoked"  is available through the this

Comments from Reviewable

src/documentation/web-component-interface.js, line 52 at r1 (raw file):
Previously, web-padawan (Sergey Kulikov) wrote…
nit: consider mentioning the fact that "the instance of the WebComponent on which the callback has been invoked"  is available through the this

Thanks, fixed.

Comments from Reviewable

Reviewed 6 of 10 files at r1, 2 of 5 files at r3, 3 of 3 files at r4.
Review status: :shipit: complete! all files reviewed, all discussions resolved

Comments from Reviewable


Fix list join argument in avante#build function

Changes:

Correct the join function arguments to be a list by adding square brackets around them
This ensures proper concatenation of strings from luaeval("require('avante_lib').load()") and luaeval("require('avante.api').build(_A)", l:source)

Note that even after this commit is merged, still #453 error exists.

#550 should fix this


Enable wai-middleware-throttle

I'm still a little confused on whether the token-bucket dep will work, but I do want to get this package re-enabled (even if there are a few more tasks).
CC @dfithian

We can probably disable its test suite and this should work


mounting a rbd image with csc, fails in LVroot getting mounted.

Maybe this could be added to docs for testing on the command line.
I can create a rbd image with this command:
export X_CSI_SECRETS="userID=app.mesos,userKey=xxxx=="

csc -e unix:///tmp/csiceph.sock controller create-volume --cap MULTI_NODE_MULTI_WRITER,block --lim-bytes 1000000 --req-bytes 1000000 --params 'clusterID=ceph,pool=app,volumeNamePrefix=app-' 'not-used'

But I have problems with mounting an rbd image from the command line. Currently using this command.
csc -e unix:///tmp/csiceph.sock node publish --cap SINGLE_NODE_WRITER,mount,xfs --target-path /mnt/test --staging-target-path /mnt/staging --vol-context 'ClusterID=ceph,pool=app' 'app-test'
Weird is that the plugin is mounting my LVroot to /mnt/test, maybe this is because of some lack of exception handling where the source is not available? Maybe such behaviour should not be allowed.
[@ceph]# mount | grep test
/dev/mapper/VGroot-LVroot on /mnt/test type xfs (rw,relatime,attr2,inode64,noquota,_netdev)

Could you please provide the logs of the csi-rbdplugin container from the node-plugin?

Not sure how the plugin will mount the LV root to the target path. the cephcsi will map the rbd image on the node and mount the device path to the staging path and at the last stage, the staging path will be bind-mounted to the target path.
and also it's expected to run cephcsi as a container and please when you are filing the issue make sure you will fix the issue templates and provide the required logs. am closing this one for now. if you see the issue please reopen/open an issue with the Issue template filled and logs attaching logs.

I think this should be reopened and fixed, this looks like some bad/no exception handling. The idea of running containers is to limit resources and not to 'hide bugs'. Who knows, maybe such a bug can be a future exploit.
[@mesos]# mount | grep test
[@mesos]# csc -e unix:///tmp/csiceph.sock node publish --cap SINGLE_NODE_WRITER,mount,xfs --target-path /mnt/test --staging-target-path /mnt/staging --vol-context 'ClusterID=ceph,pool=app' 'app-test'
app-test
[@mesos]# mount| grep  test
/dev/mapper/VGroot-LVroot on /mnt/test type xfs (rw,relatime,attr2,inode64,noquota,_netdev)

This is the log from this mount
Log file created at: 2020/12/20 19:54:38
Running on machine:
Binary: Built with gc go1.13.11 for linux/amd64
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
I1220 19:54:38.550091   31440 cephcsi.go:131] Driver version: canary and Git version: 90966597b493650165d77ba755267ff45db7f371
I1220 19:54:38.550522   31440 cephcsi.go:177] Starting driver type: rbd with name: ceph-csi-v3.2.0-rbd
I1220 19:54:38.550908   31440 driver.go:90] Enabling controller service capability: CREATE_DELETE_VOLUME
I1220 19:54:38.550919   31440 driver.go:90] Enabling controller service capability: CREATE_DELETE_SNAPSHOT
I1220 19:54:38.550924   31440 driver.go:90] Enabling controller service capability: CLONE_VOLUME
I1220 19:54:38.550928   31440 driver.go:90] Enabling controller service capability: EXPAND_VOLUME
I1220 19:54:38.550933   31440 driver.go:101] Enabling volume access mode: SINGLE_NODE_WRITER
I1220 19:54:38.550937   31440 driver.go:101] Enabling volume access mode: MULTI_NODE_MULTI_WRITER
I1220 19:54:38.559468   31440 mount_linux.go:202] Detected OS with systemd
I1220 19:54:38.560111   31440 server.go:118] Listening for connections on address: &net.UnixAddr{Name:"//tmp/csiceph.sock", Net:"unix"}
I1220 19:56:48.295421   31440 utils.go:132] ID: 1 Req-ID: app-test GRPC call: /csi.v1.Node/NodePublishVolume
I1220 19:56:48.299482   31440 utils.go:133] ID: 1 Req-ID: app-test GRPC request: {"secrets":"***stripped***","staging_target_path":"/mnt/staging","target_path":"/mnt/test","volume_capability":{"AccessType":{"Mount":{"fs_type":"xfs"}},"access_mode":{"mode":1}},"volume_context":{"ClusterID":"ceph","pool":"app"},"volume_id":"app-test"}
I1220 19:56:48.300158   31440 nodeserver.go:518] ID: 1 Req-ID: app-test target /mnt/test
isBlock false
fstype xfs
stagingPath /mnt/staging/app-test
readonly false
mountflags [bind _netdev]
I1220 19:56:48.309582   31440 mount_linux.go:178] Detected OS with systemd
I1220 19:56:48.309663   31440 mount_linux.go:146] Mounting cmd (systemd-run) with arguments (--description=Kubernetes transient mount for /mnt/test --scope -- mount -t xfs -o bind,_netdev /mnt/staging/app-test /mnt/test)
I1220 19:56:48.326109   31440 mount_linux.go:146] Mounting cmd (systemd-run) with arguments (--description=Kubernetes transient mount for /mnt/test --scope -- mount -t xfs -o bind,remount,_netdev /mnt/staging/app-test /mnt/test)
I1220 19:56:48.342080   31440 nodeserver.go:426] ID: 1 Req-ID: app-test rbd: successfully mounted stagingPath /mnt/staging/app-test to targetPath /mnt/test
I1220 19:56:48.342131   31440 utils.go:138] ID: 1 Req-ID: app-test GRPC response: {}

you need to do both staging and the node publish RPC call to map the rbd images to the target path
Let me explain what happens in each RPC call

Node stage:
When cephcsi receives an RPC call for NodeStageVolume, it maps the RBD images on the node and the device path of the mapped RBD images will be formatted with the required format (xfs,ext4, etc) and again device path will be mounted to the staging path

Node publish:
During Nodepublish the staging path will be bind-mounted to the target path.

But in your case you are not issuing any NodeStage request, you are sending only Nodepublish RPC call because of that cephcsi is just bind mounting the staging path to the target path.
It's CO's responsibility to call the NodeStage followed by Nodepublish. more details can be found at https://github.com/container-storage-interface/spec/blob/master/spec.md#nodestagevolume .
I don't think we need to reopen or fix this issue

You assume you have always correct client input, which is bad. You already told be before you need to stage and publish that is irrelevant.
I think your publish procedure is not verifying if there is something correctly staged, and just blindly issues some mount command sending an 'empty' source parameter this results in the source being /[1]. The OS of course accepts this, and you get this strange result.
IMHO this should be fixed because it is related to coding quality. I cannot imagine if you discuss this within a team of experienced sysadmin's / developers, they would conclude this should be left as it is now. It does not make sense for us to discuss this any further, because I do not have anything other to add. Ask some really good redhat people what they think if you are still in doubt.
[1]
 [@test2 ]# mount --bind  /mnt/test
mount: mount(2) failed: No such file or directory
[@test2 ]# mount --bind / /mnt/test
[@test2 ]# mount | grep test
/dev/mapper/VGroot-LVroot on /mnt/test type xfs (rw,relatime,attr2,inode64,noquota)

PS. Just guessing here, but is there not a required stage target path that can be validated??


Kinesis particle

Attempt at creation of Kinesis Particle(https://github.com/capitalone/Particle-Cloud-Framework/issues/131)
Example and tests are included

I think you are missing DescribeStreamSummary json file for placebo

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 2 committers have signed the CLA.:x: BEZ529:x: Aaron-GillBEZ529 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


AVX Instruction set

Greetings,
During usage of your library for object detection I have wrongly compiled the example fhog_object_detector_ex.cpp with DLIB_USE_SSE2.
With 4 input images of 1920x1200 and detection windows of 210 x 190 (updated to more or less fit the objects in the images) the training took about 4 days.
After reading and re-making the compilation using CMAKE I checked the box to use AVX and checked the options it sets up (also the hidden ones like static linking with libpng for example).
Now, I have a project for which I cannot use CMAKE to build my Visual Studio solution (simply because I am not competent enough with CMAKE) so I set up the DLIB_USE_AVX preprocessor definition in preprocessor options in Visual Studio and set the correct /arch:AVX option for compilation.
During execution, the debugger shows that it is running SSE2 SIMD4F instructions.
For example:
    inline simd4f_bool operator< (const simd4f& lhs, const simd4f& rhs)
    {
    #ifdef DLIB_HAVE_SSE2
        return _mm_cmplt_ps(lhs, rhs);
    #else
        return simd4f_bool(lhs[0]<rhs[0],
                           lhs[1]<rhs[1],
                           lhs[2]<rhs[2],
                           lhs[3]<rhs[3]);
    #endif
    }

It will run _mm_cmplt_ps(lhs, rhs).
This surprised me and I checked your simd_check.h to see which headers and macros you define.
I was surprised to see that if AVX is defined (which it is when setting up /arch:AVX), you define them all and add all headers.
Is this normal?
After reading about it a bit I saw that the transition between the two sets of instructions is quite costly (70 cycles).
Am asking this because I have re-started a training, but this time with ~150 images for training, and am currently concerned that it will take "ages".
Any input about this?
If you need more info, just tell me.

PS. The faces example also too much longer than 10 seconds on my machine (2 cores, 2.6 GHZ i7-6600U), even with AVX turned on and only the CMAKE generated solution used.

http://dlib.net/faq.html#Whyisdlibslow

Thank you.
Done that.
Was using dlib as a static library which was compiled in release though.
Added the following lines in the faces example:
#ifdef __AVX__
		cout << "AVX on" << endl;
#ifdef DLIB_HAVE_SSE2
		cout << "DLIB_HAVE_SSE2 on" << endl;
#endif
#ifdef DLIB_HAVE_SSE3
		cout << "DLIB_HAVE_SSE3 on" << endl;
#endif
#ifdef DLIB_HAVE_SSE41
		cout << "DLIB_HAVE_SSE41 on" << endl;
#endif
#ifdef DLIB_HAVE_AVX
		cout << "DLIB_HAVE_AVX on" << endl;
#endif
#endif

Result:
AVX on
DLIB_HAVE_SSE2 on
DLIB_HAVE_SSE3 on
DLIB_HAVE_SSE41 on
DLIB_HAVE_AVX on
[rest of the program...]

Is this normal?
I restarted the training with the program in release.

That's all normal.  The problem is not compiling your program in release mode.


Fix plugin name reference in schema version check

We were unable to deploy a site because post deployment it would always run the m220604_000000_verbb_migration migration, which fails because we don't allow admin changes on staging and prod. The migration does check whether it's been run before, but it mistakenly looks up the schema version for plugins.tablemaker.schemaVersion, which doesn't exist in our site, so it will always attempt to run (and fail the deployment). This just fixes the name.

Whoops, totally my dodgy copy-paste job, thanks!


Formulating the problem

Here I want to derive the problem that Ribasim solves (for my own understanding and for the docs). Please check it for correctness and completeness.
The problem is of the form
$$
\frac{\text{d}\mathbf{u}}{\text{d}t} = f(\mathbf{u},p(t)),\quad t \in [t_0,t_\text{end}],
$$
i.e. a system of coupled first order ordinary differential equations, with initial condition $\mathbf{u}(t_0)= \mathbf{u}_0$.
The model is given by a directed graph, consisting of a set of nodes (or vertices) $V$ and edges $E$. Let $V$ be the set of node id's and let $E$ be the set of ordered tuples $(i,j)$ meaning that node $i$ is connected to node $j$.
We can split the set of nodes into two subsets $V = B \cup N$, where $B$ is the set of basins and $N$ is the set of non-basins. The basins have an associated storage state and the non-basins dictate how water flows to or from basins. Although (I think) it is currently not checked in the code, basins and non-basins should alternate in the graph (with some exceptions), since only then the flow-behavior is defined.
$\mathbf{u}(t)$ is given by all the states of the model, which are (currently) only the storage of the basins. Given a single basin with node id $i \in  B$, the equation that dictates the change of its storage over time is given by
$$
\frac{\text{d}S_i}{\text{d}t} =
\sum_{(i',j') \in E | j' = i} Q_{i',j'} - \sum_{(i',j') \in E | i' = i} Q_{i',j'} + F_i(t).
$$
Here $Q_{i,j}$ is the flow along an edge, where the graph direction dictates positive flow. So the first term denotes flow towards the basin, the second one denotes flow away from the basin, and the third term denotes external forcing. $F_i(t)$ is given by input data, and $Q_{i' ,j'}$ is determined by the type of nodes that connect to that edge.
The non-basin non-boundary nodes conserve water, which for a non-basin node with node id $i$ can be formulated as
$$
\sum_{(i',j') \in E | j' = i} Q_{i',j'} = \sum_{(i',j') \in E | i' = i} Q_{i',j'},
$$
e.g. the total inflow is equal to the total outflow. We can also look at the global water balance, where change of the volume of water in the entire system is given by forcing and boundary nodes (denoted $\partial V$):
$$
\sum_{i\in B} \frac{\text{d}S_i}{\text{d}t} = \sum_{i \in B} F_i(t) + \sum_{(i',j')\in V | i' \in \partial V} Q_{i',j'} - \sum_{(i',j')\in V | j' \in \partial V} Q_{i',j'}
$$
where the first term is the sum of the forcing terms and the other terms are the inflow and outflow boundaries respectively.

That means that forcing is not unique to basins, and not all non-basins conserve water. Those that just regulate flow between basins do, but in the future we will add more consumer node types, that can take out or introduce water into the system. Perhaps it would be good to classify the node types in the code as well at some point.

That sounds like a good idea to me


Drop filename and tmp filename from state file

see #126

but microraiden/microraiden/channel_manager.py:299 will raise
KeyError: 'tmp_filename' and KeyError: 'filename'

@freehere107 , is the issue solved if you remove the cached state files and restart microraiden?
You will see something like INFO:filelock:Lock<PHONE_NUMBER> acquired on /Users/loredana/Library/Application Support/microraiden/0xffa52825_0x5601ea84.json when starting microraiden. Cached state files are those json files under the microraiden folder. Depending on your OS, the files might be in another location.


generate alphanumeric api keys

closes #231
Please note that the key format is not validated in ApiKey db or rest model in order to not break existing tests and old keys.

Codecov Report

Merging #232 (fb53f2e) into master (37de8e4) will decrease coverage by 0.13%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #232      +/-   ##
==========================================
- Coverage   83.34%   83.21%   -0.14%
==========================================
  Files          30       30
  Lines        2300     2305       +5
==========================================
+ Hits         1917     1918       +1
- Misses        383      387       +4

Impacted Files
Coverage Δ

quetz/utils.py
95.12% <100.00%> (+0.67%)
:arrow_up:

...ons/a3ffa287d074_case_insensitive_channel_names.py
68.75% <0.00%> (-6.25%)
:arrow_down:

quetz/testing/fixtures.py
96.80% <0.00%> (-2.41%)
:arrow_down:

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 37de8e4...fb53f2e. Read the comment docs.


Bottleneck in the _do_paste_mask function?

I am running into some OOM errors when running Mask RCNN with MMDetection while I don't have any problems when using Detectron2:
With Image 1 which is about 2000x2000:
line 4011, in grid_sample     return torch.grid_sampler(input, grid, mode_enum, padding_mode_enum, align_corners) RuntimeError: CUDA out of memory. Tried to allocate 986.00 MiB
With Image 2 which is about 8000x4000:
line 404, in _do_paste_mask     grid = torch.stack([gx, gy], dim=3) RuntimeError: CUDA out of memory. Tried to allocate 1.91 GiB
Both errors stem from the _do_paste_mask function, which seems to be some postprocessing function. Internally the images get resized to (1333, 800) in Mask-RCNN. It seems that Detectron2 doesn't run in such problems although the _do_paste_mask function seems to be more or less the same as in MMDetection.
Could anyone explain me what this function does and what the possible bottleneck could be?

When rescale=True _do_paste_mask resizes the instance masks to the original image shape on the same device the masks reside on when input to the function.
MaskRCNN outputs masks as ROIs, _do_paste_mask places the masks on the image at the corresponding ROI's location.
You could try moving the masks to cpu before calling _do_paste_mask

@justlike-prog Probably because of retry_if_cuda_oom


Is it possible to put aliases file the same directory of gruntfile.js?

The goal is to have multiple projects share the same "grunt/" folder, and register different task 'build', so:
For project A
build:
  - 'lint'
  - 'mocha'
  - 'notify'

For project B
build:
  - 'lint'
  - 'copy'
  - 'notify'

It's neat if the aliases can be placed in the same folder of gruntfile (the project root), or I don't know if there is a way to pass tasks list like
grunt.registertask('build', tasks_list) // here tasks_list is defined in gruntfile.js

Well, just register task in gruntfile.js will do. Cool new weapon but the old weapon still works, my silly question :)


Added email notification to manual intervention

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

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

TTYL, MSBOT;

Merging on behalf of Vikranth


[Bug]: when sharing a file I get a Workflow does not have 'workflow_dispatch' trigger error

Issue validation

[X] My issue is not a question relative to Material Mkdocs nor Mkdocs (You can open a discussion to get more help!)
[X] I checked the issue to prevent duplicate
[X] I checked my configurations files and the documentation

Workflow
Obsidian plugin 💠
Describe the bug
plugin:obsidian-mkdocs-publisher:2236 HttpError: Workflow does not have 'workflow_dispatch' trigger
    at eval (plugin:obsidian-mkdocs-publisher:1037:21)
    at Generator.next (<anonymous>)
    at fulfilled (plugin:obsidian-mkdocs-publisher:47:24)

How to reproduce ?
Do a Share active file
Configuration
{
  "githubRepo": "pxl-projectmanagement-d",
  "githubName": "janc-pxl",
  "GhToken": "******",
  "shareKey": "share",
  "ExcludedFolder": "",
  "fileMenu": false,
  "editorMenu": false,
  "downloadedFolder": "fixed",
  "folderDefaultName": "docs",
  "yamlFolderKey": "",
  "rootFolder": "",
  "workflowName": "ci.yml",
  "transferEmbedded": true,
  "defaultImageFolder": "",
  "autoCleanUp": false,
  "autoCleanUpExcluded": "",
  "folderNote": false,
  "convertWikiLinks": false,
  "convertForGithub": false,
  "subFolder": ""
}

Relevant log output
plugin:obsidian-mkdocs-publisher:2236 HttpError: Workflow does not have 'workflow_dispatch' trigger
    at eval (plugin:obsidian-mkdocs-publisher:1037:21)
    at Generator.next (<anonymous>)
    at fulfilled (plugin:obsidian-mkdocs-publisher:47:24)

### OS

MacOS

### Anything else?

_No response_

You have a workflow named ci.yml that don't have a workflow dispatch event. The plugin can't activate it either !
Did you check your workflow file ? If it's a push event you can safely remove it from the configuration and activation.
Note : if you use the plugin with the last version of the template you don't need the conversion and the workflow. You can safely delete the ci.yml file.

You have a workflow named ci.yml that don't have a workflow dispatch event. The plugin can't activate it either !
Did you check your workflow file ? If it's a push event you can safely remove it from the configuration and activation.
Note : if you use the plugin with the last version of the template you don't need the conversion and the workflow. You can safely delete the ci.yml file.

Deleted the ci workflow did the trick


Master

This modified version does has a face tracking and a pedestrian tracking example. Both examples only run at very low frame rates at this point.

thanks! i just tried these out, look very good. i would maybe just want to clean up the code a bit.
the face-tracking example though does run kind of slow, have you compared it to ofxFaceTracker? wondering if it's more accurate so more suitable for non-real-time detection...

i certainly know and have worked with ofxFaceTracker before, which works well.
since ofxccv runs so slow i have not compared it a lot to ofxFaceTracker. my sense is that it can detect smaller faces, but is not a lot better for rotated faces.
let me know what part of the code you think needs cleaning and if you want me to take some of this on or give it your own twist.

i think just getting rid of the commented/unused code to keep things clean, also i think we'll want to add the necessary data files (face.sqlite and the pedestrian file) to the download script.
also, about facetracking more generally, there's a thread on ofxFaceTracker about using the latest dlib which seems to have super fast and robust facetracking. ofxLearn is built on top of dlib (older version) so i've been meaning to try, just haven't made the time yet. check out the links cited in the first thread -- really impressive stuff.

my new commit to my github has the files included. not sure if i have to post a new pull request?
i can go over the code again and remove all unnecessary commands and old code, in the next couple of days.
also, we have ofxDLib working with face tracking example:
https://github.com/roymacdonald/ofxDLib

oh i see yeah. they are small enough to package with the library.
wow, i didn't see ofxDLib.  looks great! but i don't think it's using the same implementation as the one referenced above, and to my eyes doesn't track as well as ofxFaceTracker.
let's let kyle comment, and we can get to merging.

this generally looks good, but it will need some cleaning. if either of you want to go for it, @genekogan you should feel free to merge it after:

the comments are cleaned up
readme is cleaned up
commits are squashed to one commit (optional, but helpful)
remove #ifdef USE_VIDEO parts, this is usually left as exercise for user
screenshots are either converted to jpg (to avoid unnecessary repo bloat) or removed completely (better). adding a screenshot to the PR is better than adding it to the repo.

-cleaned the comments out
-cleaned the read me
-don't know how to squash things
-removed #ifdef
-converted screenshots to jpg

thanks! i'll take care of the rest.

i just merged it, but unfortunately the easiest way was with a single commit that does not include you in the history. i added antimodular to the readme and in the commit message, let me know if there's anything else i can do. thanks for the PR!


this.fn is not a function

Hi,
im currently trying to develop a langgraph app for our nestJS backend but face one major difficulty.
I have a langgraph service, which purpose it is to compile the graph. It's major function is basically something similar to this
compileGraph() {
        const workflow = new StateGraph<GraphState>({
          channels: this.graphStateChannels,
        })
          .addNode(AgentName.GENERALIST, this.generalistNode)
          .addNode(AgentName.RETRIEVAL, this.retrievelAgentNode);

        workflow.addEdge(AgentName.RETRIEVAL, AgentName.GENERALIST);

        workflow.addConditionalEdges(AgentName.GENERALIST, this.router);

        workflow.addEdge(START, AgentName.GENERALIST);

        return workflow.compile();
}

when i invoke my compiled Graph in my ChatService i get errors that part of the nodes logic is not available. For Instance:
The simplest case from the langgraph documentation i define a node as:
private async retrievelAgentNode(state: GraphState, config?: RunnableConfig) {
    return this.runAgentNode({
      state,
      name: AgentName.RETRIEVAL,
      config,
    });
  }

private async runAgentNode(props: {
    state: GraphState;
    name: AgentName;
    config?: RunnableConfig;
  }) {
    const { state, name, config } = props;

    const agent = this.buildAgent(name, config.configurable.llm);

    const result = await agent.invoke(state, config);

    console.log('Node result', result);

    return {
      messages: [result],
    };
  }

i get the error that "runAgentNode" is not a function. I also tried it many other ways but don't seem to get it to work. Is LangGraph not compatible in a class based service environment or am i making a mistake ?

Same here!!

yeah, i did just that !!
On Thu, Nov 28, 2024 at 9:39 AM John @.***> wrote:

@josefernandezatceiba https://github.com/josefernandezatceiba you need
to bind "this" to your nodes
const workflow = new StateGraph({
channels: this.graphStateChannels,
})
.addNode("agent123", this.agent123Node.bind(this))
—
Reply to this email directly, view it on GitHub
https://github.com/langchain-ai/langgraphjs/issues/277#issuecomment-2506273336,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANNLEA4DYF2HWTWJEMFC2SL2C4TLLAVCNFSM6AAAAABLIY53MWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMBWGI3TGMZTGY
.
You are receiving this because you were mentioned.Message ID:
@.***>

--

Jose Alfredo Fernandez Mendoza Coach Técnico Ceiba Software * Tel:
Medellín (+57)604-444-5111 || Cel: (+57)3177403580
CNCF Certified Kubernetes Administrator - Google Professional Cloud
Architect - Microsoft MCSD App Builder - Microsoft MCSA Web Applications

--
Cl 8 B 65 - 191 Of 409
@.***,-75.5873189,355m/data=!3m1!1e3!4m2!3m1!1s0x0000000000000000:0x95885d68890e7b2c>,
Centro Empresarial Puertoseco - Medellín, Colombia
Visite nuestro

sitio www.ceiba.co http://www.ceiba.co
Facebook
https://www.facebook.com/CeibaSoftware| Twitter
https://twitter.com/CeibaSoftware| Youtube
http://www.youtube.com/user/ceibasw| Linkedin
http://www.linkedin.com/company/ceiba-software-house
--
Este mensaje, incluido su adjunto, es confidencial y puede ser
privilegiado. Si usted no es su destinatario, por favor notifique al
emisor, luego destruya la comunicación y todas las copias. Usted no debe
copiar, distribuir y/o revelar esta comunicación parcial o totalmente sin
autorización del emisor.
This message, including attachments, is
confidential and may be privileged. If you are not an intended recipient,
please notify the sender then delete and destroy the original message and
all copies. You should not copy, forward and/or disclose this message, in
whole or in part, without permission of the sender.


Enable search by fragment of contact name

Altered FindCommand to enable searching by part of contact's name (i.e. names do not have to match search terms word-for-word to be displayed by FindCommand)

@Eola-Z nope! there's two other instances that call  NameContainsKeywordsPredicate that i don't want to alter yet to be safe (one is in ModelManagerTest to pull contacts by indexes, another i forgot).


What's the status of this project?

Just found this gem :) Is it ready for use now?

Hi houqp,
I've been using it for almost an year now. There are a few rough edges:

there's no UI for mounting the device over USB for synchronisation (the kernel driver works though)
there's no UI for configuring the WiFi network and enabling / disabling from koreader are broken (the kernel driver and wpa_supplicant work)
there's no way to cleanly shut down the ereader (actually I have an ugly patch for koreader that I haven't commited yet)

I now have a few free days. I'm trying to update the packages, check that everything still works and commit my private patches, plus document everything. Keep an eye on the repository. Also, please let me know if you're interested in implementing some of the missing features in koreader or if you want to test okreader. I'll publish installation instructions soon.

I've been using it for almost an year now. There are a few rough edges:

Awesome, good to know :)

there's no UI for mounting the device over USB for synchronisation (the kernel driver works though)

I can help with the UI part if you can provide the script or list of system calls needed to perform the task.

there's no UI for configuring the WiFi network and enabling / disabling from koreader are broken (the kernel driver and wpa_supplicant work)

Yeah, I was about to ask you about this :) I acutually started a wpa_supplicant client a long time ago: https://github.com/koreader/lj-wpaclient. But never got time to actually finish it. I was able to talk to wpa_supplicant and get the a list of networks.  What do you mean by cleanly shutdown the reader? Do you mean killing the reader from a script instead of the UI home button?

if you want to test okreader. I'll publish installation instructions soon.

Sure, I would love to help test the build.

Hi, I've been making some progress over the past few days in terms of automating some of the modifications I'm using and replacing some hacks with nicer implementations. The generated rootfs (using the git head) is now actually usable without requiring any configuration or modifications. I expect to move my attention towards the bootloader, the kernel and the installation procedure over the next few days.

I can help with the UI part if you can provide the script or list of system calls needed to perform the task.

Thanks. I've looked a bit more into this, and it actually seems possible to always have the data partition exposed as a USB mass storage device with g_file_storage.ko. It needs more testing and I need to disable & enable it in the koreader suspend.sh script, but if it continues to work well I'm tempted to just leave it always on for now.

Yeah, I was about to ask you about this :) I acutually started a wpa_supplicant client a long time ago: https://github.com/koreader/lj-wpaclient. But never got time to actually finish it. I was able to talk to wpa_supplicant and get the a list of networks. Once I tested the connect command, we can pull it into koreader-base and throw a UI on it.

A WiFi configuration UI would be nice to have. At this point it's a pretty low priority for me, but definitely let me know if you start working on it, and I'll help test it.

Looks like you already got this part? What do you mean by cleanly shutdown the reader?

I meant powering off the device. Basically asking something like "Power off?" if the power button is held for longer than 2-3 seconds and then waiting for confirmation. I have a patch for that.

Sure, I would love to help test the build.

It's getting there. Do you have an ARM system to build okreader? If not, I'll look into setting up an automated build server soonish. Out of curiosity, what device(s) do you intend to run it on?

Thanks. I've looked a bit more into this, and it actually seems possible to always have the data partition exposed as a USB mass storage device with g_file_storage.ko. It needs more testing and I need to disable & enable it in the koreader suspend.sh script, but if it continues to work well I'm tempted to just leave it always on for now.

Sounds reasonable, assuming it won't consume extra energy when enabled.

A WiFi configuration UI would be nice to have. At this point it's a pretty low priority for me, but definitely let me know if you start working on it, and I'll help test it.

I am working on some minor fixes for the new restructured koreader-base right now. Wifi configuration will be the fast follow up after that. Will let you know when I get a working demo.

I meant powering off the device. Basically asking something like "Power off?" if the power button is held for longer than 2-3 seconds and then waiting for confirmation. I have a patch for that.

Awesome, looking forward to your patch :)

It's getting there. Do you have an ARM system to build okreader? If not, I'll look into setting up an automated build server soonish. Out of curiosity, what device(s) do you intend to run it on?

I don't have a ARM build system. I am only using my laptop for cross compile right now. A build server would really nice. I have a kobo aura hd.

BTW, you can remove this patch now since it's fixed in a recent build system overhal upstream:
https://github.com/lgeek/okreader/blob/master/src/koreader_base_arm.patch#L8

Alright, this past weekend I've finished up and committed all patches I have been using on my own ereader. Apologies about taking so long.
I was wondering how you'd envisioned the WiFi manager working. Would it generate wpa_supplicant config files directly? How would it scan for networks? On Debian we could just use its /etc/network/interfaces infrastructure, NetworkManager or wicd as the backend, but I guess that would be quite difficult to set up on Kobo's system.
To be honest, I don't really have a use for WiFi at all on my regular ereader, I just use it to SSH to the ereader I use for development.

It will store the config outside of wap_supplicant and use its own config to tell wpa_supplicant how to connect to a network through its socket interface. Think of lj-wpaclient as a programable interface for wpa_cli. The core part is done, I just need to wire it up with the KOReader.
I personally need this wireless manager because i am tired of updating KOReader through USB ;P

Hi @lgeek ,
Just to sync up on the progress. Now that we have network manager and power off support in KOReader, the last item is UI for mounting the device over USB for synchronisation? Do we really need a UI for this? Is it possible to get the usb plugin event from the kernel and automatically drop into USB mode?

Hi @houqp. I've been keeping the module loaded all the time (see [my rc.local. I'm pretty sure it's not theoretically safe because the filesystem on the data partition gets mounted both by the device and the host computer. On the other hand, I haven't managed to break it, so... I guess it works for me. IIRC, on Debian/okreader the USB plugged in event shows up in udevadm (as a different event compared to plugging  into a charger), so I'm sure a proper solution could be implemented that way.

Thanks @lgeek , this is very helpful! I will take a look at how to feed udev event into KOReader :)

Forgot to update here. KOReader reads USB hot-plug events now via uevent from netlink sockets. So all we have to do is to hook these event up with an action ;P

Just tested on Kobo Mini (with the swapping internal microSD card to a prepared one method), happy to report the pre-release 1e7825eb3111_auto_build files working there too.

This is awesome, we should update the model matrix in the readme ;)

@dtamas Oops, I've somehow missed the notification for the previous message.
That's great, thanks for letting me know. I'll try to update to an up-to-date koreader soonish.

OK, I've updated koreader. @houqp: have there been any upstream changes regarding the WiFi manager or USB detection for mounting?

wifi manager has been changed to support wpa_supplicant compiled without plaintext psk passphrase support. USB detection code has been added 1. But we haven't hooked up any UI to the hotplug event yet.

@houqp Regarding the WiFi manager, is there an UI to actually set it up or is it just an on/off toggle setting? When running on Debian/okreader, I've only found the latter. I don't have a reader with Nickel installed at the moment.

@lgeek you should see a UI for managing wifi from gear icon tab -> network -> wi-fi connection. It will prompt you for turning on Wifi, then show you a list of network that you can configure. This feature doesn't require nickel, it will work as long as wpa_supplicant is installed in the system.

@houqp Thanks, I got it working with custom network scripts in b8fcc5871. My Kobo Touch works as expected, but the open source WiFi driver fails to connect when wpa_supplicant is controlled by Koreader on my Kobo Aura. It's definitely a driver issue and I'll try to investigate it.
@dtamas I've built a new prerelease if you're interested in upgrading your devices. I would appreciate it if you could test whether you can connect to WiFi networks.

So the last remaining item is UI for entering usb storage mode?

I would also like to have an UI for setting the timezone (I first need to check how Nickel is handling it) and manually setting the time and date.

@lgeek I've tested latest build on glo, could connect to wifi, no issues. The green status led on glo keeps blinking while not in sleep mode, despite not on charger.

@dtamas Thanks for testing. The LED is just a software controlled indicator, it doesn't mean anything. Could you try adding echo 0 > /sys/class/leds/pmic_ledsg/brightness to the start of /opt/koreader/okreader.sh and see it if gets turned off on your device at boot time, before koreader is launched? That works for me on a Kobo Touch.

how about we split that ticket up in different parts so people can track what they're interested in?
from what I could tell, the current limitations are explained in the README, and that doesn't seem to include Wifi, which has been factored into koreader. i opened #4 for the USB stuff and #5 for time sync...
anything else someone should keep in mind?
if so, we should open different issues and close this ticket.
if not, we should close this ticket anyways. :)
thanks for this great project, it's amazing to see debian running on the kobo readers!

i think this ticket should be closed. there are two tickets for the missing features and the rest is clearly explained in the README.

@dtamas Have you tried the latest commit (at the time of writing this, 2c253e5becbf22fd16960edca4f37eba2c03556a) on your Kobo Glo?

@dtamas Have you tried the latest commit (at the time of writing this, 2c253e5) on your Kobo Glo?

unfortunately my Glo is no longer usable, so can't test it, sorry.

No worries. Thank you for your reply :-)


Footer styling

Footer should be:

Fixed to the bottom of the page
visited link color should be white, not #666 text (which doesn't have enough contrast with the background).

Completed - closing issue


DEP PHP Support in CMS5

Parent issue

https://github.com/silverstripe/silverstripe-framework/issues/10402

Requires

https://github.com/silverstripe/silverstripe-mfa/pull/476

That class has decodeNoPadding() and decode() (the latter of which does tolerate padding).
It seems like it's common to use str_pad() or similar to add padding to encoded strings... if you can include the full stack trace there I might be able to see where that padding's being added and whether we can either not include the padding, or use the other decode method.


'from langchain.document_loaders import TextLoader' cannot find 'RecursiveCharacterTextSplitter'

Running langchain-0.0.85 (looks like just released, thanks!) in a Jupyter notebook. Following the notebook instructions:
from langchain.document_loaders import TextLoader

And I get:
ImportError                               Traceback (most recent call last)
Cell In[30], line 5
      3 from langchain.text_splitter import CharacterTextSplitter
      4 from langchain import OpenAI, VectorDBQA
----> 5 from langchain.document_loaders import TextLoader

File /usr/local/lib/python3.10/dist-packages/langchain/document_loaders/__init__.py:3
      1 """All different types of document loaders."""
----> 3 from langchain.document_loaders.airbyte_json import AirbyteJSONLoader
      4 from langchain.document_loaders.azlyrics import AZLyricsLoader
      5 from langchain.document_loaders.college_confidential import CollegeConfidentialLoader

File /usr/local/lib/python3.10/dist-packages/langchain/document_loaders/airbyte_json.py:6
      3 from typing import Any, List
      5 from langchain.docstore.document import Document
----> 6 from langchain.document_loaders.base import BaseLoader
      9 def _stringify_value(val: Any) -> str:
     10     if isinstance(val, str):

File /usr/local/lib/python3.10/dist-packages/langchain/document_loaders/base.py:7
      4 from typing import List, Optional
      6 from langchain.docstore.document import Document
----> 7 from langchain.text_splitter import RecursiveCharacterTextSplitter, TextSplitter
     10 class BaseLoader(ABC):
     11     """Base loader class."""

ImportError: cannot import name 'RecursiveCharacterTextSplitter' from 'langchain.text_splitter' (/usr/local/lib/python3.10/dist-packages/langchain/text_splitter.py)

hmmm this works for me. would you be able to set up a google collab notebook with this error for maximal reproduciblity?

Huh, not sure what I did but I just reinstalled from scratch and it works.
The import errors referenced in #1020 and #1042 also seem to be fixed (I can import Chroma).
I'll close this ticket, sorry for the false alarm!

I was missing this line:
from langchain.text_splitter import RecursiveCharacterTextSplitter


chore: merge changes to release branch

Issue #, if available:
Description of changes:
Merging changes for upcoming release to release_2.1.x branch

#61
Would also like to get #62 in here to since it's subscription-related

Why is this change necessary:
How was this change tested:
Any additional information or context required to review the change:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Please don't create PRs to merge into the release branch. We usually will simply rebase or cherrypick commits directly into the release branch as needed.


Workflow to detect Forked Actions in Runbook

Description
Adding workflow to detect forked Action in Runbook.
Checklist:

[x] My changes generate no new warnings.
[] I have added tests that prove my fix is effective or that my feature works.
[x] Any dependent changes have been merged and published.

@jayasimha-raghavan-unskript please provide some description of what has been done in this contribution? Its not really reviewable without that.

Dont know if we need this, please reopen it if needed


Option for subset or superset equality.

Provide an option to check if objects have a deep subset/superset relationship, checking equality at each level of the object hierarchy only on the values of those keys that are shared, or only the keys in first object in the subset case, or only the keys in the second object in the superset case.

Since node's assert.deepEqual doesn't have this option, the best path forward is to PR it into node itself - at which point we'd happily accept it here.


docs: fix nerdfont icons

Doc-related changes to go along with the changes in #155.
Fixes #152.

Thanks!


image for 22.03

Hi there, this project is pretty cool - I'm using to run tests for my ansible playbooks for openwrt hosts. thanks for maintaining this (and thanks for building in libvirt/qemu support) !
I can build my own box for 22.03 since there's a version variable in the makefile, but I was wondering if you were willing to publish an image on app.vagrantup.com with that version since it's now the most current openwrt release?
cheers!

Glad you find it useful! I've build and published 22.03 image @ Vagrant Cloud.
Is any of your OpenWrt Ansible Playbooks available publicly by any chance? Planning to do a bit of home automation during Chirstmas hols 😀

wow nice thanks for the new box version! that was quick :)
I haven't really started implementing things in detail yet. I'm also automating my home setup so it'll be super simple -- I'm mostly interested in removing the need for backups of those devices and also to make it easier to reinstall the packages after a major upgrade.
but I can make a sign when I have something. I was planning to use https://github.com/gekmihesg/ansible-openwrt as a base for the provisioning. I can see that's also what you used in your example repository.
Cheers!

Sounds great. Was happy to help.


[BUG] crc setup Always reboot after adding current user to Hyper-V administrator group

General information

OS: Windows
Hypervisor: Hyper-V
Did you run crc setup before starting it (Yes/No)? Yes
Running CRC on: Laptop

CRC version
CodeReady Containers version: 1.32.1+4d40571f
OpenShift version: 4.8.5 (bundle installed at C:\Program Files\CodeReady Containers\crc_hyperv_4.8.5.crcbundle)

CRC status
DEBU CodeReady Containers version: 1.32.1+4d40571f
DEBU OpenShift version: 4.8.5 (bundle installed at C:\Program Files\CodeReady Containers\crc_hyperv_4.8.5.crcbundle)
DEBU Running 'crc status'
DEBU Checking file: C:\Users\PePoDev\.crc\machines\crc\.crc-exist
Machine does not exist. Use 'crc start' to create it

CRC config
- consent-telemetry                     : no

Host Operating System
Host Name:                 PEPODEV
OS Name:                   Microsoft Windows 10 Education
OS Version:                10.0.19043 N/A Build 19043
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Standalone Workstation
OS Build Type:             Multiprocessor Free
Registered Owner:          PePoDev
Registered Organization:
Product ID:                00328-00268-52142-AA721
Original Install Date:     7/28/2021, 7:22:59 AM
System Boot Time:          9/11/2021, 1:02:47 AM
System Manufacturer:       ASUSTeK COMPUTER INC.
System Model:              ROG Zephyrus G14 GA401IV_GA401IV
System Type:               x64-based PC
Processor(s):              1 Processor(s) Installed.
                           [01]: AMD64 Family 23 Model 96 Stepping 1 AuthenticAMD ~3000 Mhz
BIOS Version:              American Megatrends Inc. GA401IV.219, 12/30/2020
Windows Directory:         C:\Windows
System Directory:          C:\Windows\system32
Boot Device:               \Device\HarddiskVolume1
System Locale:             en-us;English (United States)
Input Locale:              en-us;English (United States)
Time Zone:                 (UTC+07:00) Bangkok, Hanoi, Jakarta
Total Physical Memory:     32,174 MB
Available Physical Memory: 20,581 MB
Virtual Memory: Max Size:  45,486 MB
Virtual Memory: Available: 31,153 MB
Virtual Memory: In Use:    14,333 MB
Page File Location(s):     C:\pagefile.sys
Domain:                    WORKGROUP
Logon Server:              \\PEPODEV
Hotfix(s):                 4 Hotfix(s) Installed.
                           [01]: KB5004331
                           [02]: KB5000736
                           [03]: KB5005101
                           [04]: KB5005260
Network Card(s):           14 NIC(s) Installed.
                           [01]: Intel(R) Wi-Fi 6 AX200 160MHz
                                 Connection Name: Wi-Fi
                                 DHCP Enabled:    Yes
                                 DHCP Server:     <IP_ADDRESS>
                                 IP address(es)
                                 [01]: <IP_ADDRESS>
                                 [02]: fe80::24c0:483f:ad2a:9cf5
                           [02]: Bluetooth Device (Personal Area Network)
                                 Connection Name: Bluetooth Network Connection
                                 Status:          Media disconnected
                           [03]: Hyper-V Virtual Ethernet Adapter
                                 Connection Name: vEthernet (Default Switch)
                                 DHCP Enabled:    No
                                 IP address(es)
                                 [01]: <IP_ADDRESS>
                                 [02]: fe80::95d3:7b19:2210:f388
                           [04]: TAP-Windows Adapter V9
                                 Connection Name: Ethernet
                                 Status:          Media disconnected
                           [05]: TAP-Windows Adapter V9
                                 Connection Name: Ethernet 2
                                 Status:          Media disconnected
                           [06]: TAP-Windows Adapter V9
                                 Connection Name: Ethernet 3
                                 Status:          Media disconnected
                           [07]: TAP-Windows Adapter V9
                                 Connection Name: Ethernet 4
                                 Status:          Media disconnected
                           [08]: TAP-Windows Adapter V9
                                 Connection Name: Ethernet 5
                                 Status:          Media disconnected
                           [09]: TAP-Windows Adapter V9
                                 Connection Name: Ethernet 6
                                 Status:          Media disconnected
                           [10]: TAP-Windows Adapter V9
                                 Connection Name: Ethernet 7
                                 Status:          Media disconnected
                           [11]: Fortinet Virtual Ethernet Adapter (NDIS 6.30)
                                 Connection Name: Ethernet 8
                                 Status:          Media disconnected
                           [12]: Fortinet SSL VPN Virtual Ethernet Adapter
                                 Connection Name: Ethernet 9
                                 Status:          Media disconnected
                           [13]: VirtualBox Host-Only Ethernet Adapter
                                 Connection Name: VirtualBox Host-Only Network
                                 DHCP Enabled:    No
                                 IP address(es)
                                 [01]: <IP_ADDRESS>
                                 [02]: fe80::1d16:3d6f:7530:6d2f
                           [14]: Hyper-V Virtual Ethernet Adapter
                                 Connection Name: vEthernet (WSL)
                                 DHCP Enabled:    No
                                 IP address(es)
                                 [01]: <IP_ADDRESS>
                                 [02]: fe80::c9a4:9a0f:ab48:7fef
Hyper-V Requirements:      A hypervisor has been detected. Features required for Hyper-V will not be displayed.

Logs
PS C:\Users\PePoDev> crc.exe setup
INFO Checking if current user is in Hyper-V Admins group
INFO Adding current user to Hyper-V Admins group
Please reboot your system and run 'crc setup' to complete the setup process
DEBU CodeReady Containers version: 1.32.1+4d40571f
DEBU OpenShift version: 4.8.5 (bundle installed at C:\Program Files\CodeReady Containers\crc_hyperv_4.8.5.crcbundle)
DEBU Running 'crc setup'
INFO Checking if current user is in Hyper-V Admins group
DEBU Running '$sid = New-Object System.Security.Principal.SecurityIdentifier("S-1-5-32-578")
        @([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole($sid)'
DEBU User is not a member of the Hyper-V administrators group
INFO Adding current user to Hyper-V Admins group
DEBU Running '(New-Object System.Security.Principal.SecurityIdentifier("S-1-5-32-578")).Translate([System.Security.Principal.NTAccount]).Value'
INFO Will run as admin: adding current user to Hyper-V administrator group
DEBU Running 'C:\Users\PePoDev\AppData\Local\Temp\crcScripts706860679\runAsAdmin.ps1'
Please reboot your system and run 'crc setup' to complete the setup process

crc.exe setup --check-only
INFO Checking if current user is in Hyper-V Admins group
User is not a member of the Hyper-V administrators group

following this script (generated by this) It's look like command Add-LocalGroupMember will never call if $myWindowsPrincipal.IsInRole($adminRole)) still false. And it still is because this script can't assign members to the group after Exit; in if.
$myWindowsID = [System.Security.Principal.WindowsIdentity]::GetCurrent();
$myWindowsPrincipal = New-Object System.Security.Principal.WindowsPrincipal($myWindowsID);
$adminRole = [System.Security.Principal.WindowsBuiltInRole]::Administrator;
if (-Not ($myWindowsPrincipal.IsInRole($adminRole))) {
  $procInfo = New-Object System.Diagnostics.ProcessStartInfo;
  $procInfo.FileName = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
  $procInfo.WindowStyle = [Diagnostics.ProcessWindowStyle]::Hidden
  $procInfo.Arguments = "-ExecutionPolicy RemoteSigned & '" + $script:MyInvocation.MyCommand.Path + "'"
  $procInfo.Verb = "runas";
  $p = New-Object System.Diagnostics.Process
  $p.StartInfo = $procInfo
  $p.Start() | Out-Null
  $p.WaitForExit()
  if ($p.ExitCode -ne 0) {
    throw "Unexpected failure";
  }
  Exit;
}
Add-LocalGroupMember -Group 'Hyper-V Administrators' -Member 'PePoDev'

After trying to add a PePoDev member to the Hyper-V Administrators Group. It solved.

@PePoDev Is it possible to have hyper-v feature enabled in windows 10 education edition?

Host Name:                 PEPODEV
OS Name:                   Microsoft Windows 10 Education
OS Version:                10.0.19043 N/A Build 19043

@anjannath Yes, The education edition is the same as the enterprise edition. But just for education purposes 🤣

FYI, Someone found the trick to enable Hyper-V in home edition too.


Celo App Update

Checklist

[x] App update process has been followed
[x] Target branch is develop
[x] Application version has been bumped

cant wait for this one

@Z4karia looks like there are merge conflicts :(


Allow use on server side/nuxt

Is there any plans to allow this plugin to work serverside or with nuxt?

Hi!
Currently not, but out of the simple reason, that I don't have any nuxt apps currently where I work with this plugin. So I'm not even sure what's necessary to support SSR.
I'm very open for Pull Requests and if you could outline what requirements SSR has for this plugin, you would bring us a step further to SSR support :)
Thank you very much!

@phortx how to use in development mode using hot reloading?

@NightFury2 Nothing special to consider here :)

https://github.com/vuex-orm/plugin-graphql/releases/tag/v1.0.0-rc.21 brings experimental SSR support.

I close this due to the fact that SSR support is implemented. Bugs are new issues.