feature/error-handling

When we create VRS IDs or query metakb, we need to have error handling that describes the problem (network error, translation error, no matches found, etc). In some cases like within annotate_all, there can be non-descript messages outputted in the command line.

is it good enough for an error? Do we just have to redirect them to the logs file everytime?

Still might need more work, as some logs can be misleading and we may want to suppress them: below the main problem is that the validation error is occurring but the traceback mentions a "timestamp_str" KeyError.


Update recommended license list to SPDX 3.0. Fixes #1192

Update to the SDPX 3.0 license list in the dropdown suggestions. See:

https://spdx.org/news/news/2018/01/license-list-30-released
https://spdx.org/licenses/

The key difference is that GPL-related licenses, like GPL version 2.0,
are now "GPL-2.0-only" or "GPL-2.0-or-later".  See the announcement
for more information.
Signed-off-by: David A. Wheeler<EMAIL_ADDRESS>

This is a trivial change, and I've heard no complaints, so I'll merge it in.


opencv: Work around build failure with enableContrib & Python

Motivation for this change
This is in regards to https://github.com/NixOS/nixpkgs/issues/26304. It may not be the best solution, but as I am unable to see how the OpenCV build could work on any platform with these options set, I am not sure of the "correct" course of action. The only possible consequence to this incorrectness that I'm aware of is that Python wrappers to OpenCV's support for TensorFlow and Caffe may not be generated properly... but the nixpkgs build of OpenCV isn't even equipped to build with these two optional packages.
Things done
Please check what applies. Note that these are not hard requirements but merely serve as information for reviewers.

[ ] Tested using sandboxing
(nix.useSandbox on NixOS,
or option build-use-sandbox in nix.conf
on non-NixOS)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] Linux

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[X] Fits CONTRIBUTING.md.

cc @alexozer @mdaiter

Looks good to me!


Issue rendering

I am seeing what appear to be missing scan lines.  Any suggestions?  This is not scanned, but it appears the same when zoomed.

vs a normal (non android) viewer

I am using:
pdfView.useBestQuality(true);
pdfView.fromFile(file)
.defaultPage(0)
.onPageChange(this)
.enableAnnotationRendering(true)
.onLoad(this)
.scrollHandle(new DefaultScrollHandle(this))
//.enableDoubletap(false)
.load();
pdfView.useBestQuality(true); // Not sure if it should be before or after so trying both

Enable antialiasing for rendering as I described in #191.

Try using Configurator.enableAntialiasing(true), which implements solution from #191


A new look to fossit main website

Added Barba JS, Changed font and Navigation style

A new look to fossit main website


Compression

Add compression to netcdf files (keeps them from exploding in size with null values), and update maintainers list.

Thanks for the updates, @pgbrodrick! Looks good to me as well. Merging!


request for md5

I found this command in text_cmds, but did get how to port common crypto part.

Yes, I can't get it to compile either.

Hi, @holzschu.
Here is working md5 https://gist.github.com/yury/a6dc9dcc85c211b384fdf996e3975a57

Hi @holzschu,
Quick question. Should flags be __thread instead of static in cat.c?

Hi @yury,
yes, they should. Actually, they should be both __thread and static. I just changed that, I'm going to commit and push the change. It's not a big deal unless two different terminals are starting cat at the same time.
You did a beautiful work of porting md5. It works straight out of the box. It even works through pipes (try cat history.txt | md5)
About md5 without args (and other commands without args): All these commands are listening to thread_stdin. And we set thread_stdin to _stream.in, so they're listening to _stream.in. But it seems that keyboard input is not forwarded to _stream.in and thus to thread_stdin. You did something specific for control-C and control-D. Could you extend that to other keys? And maybe print them on stdout as well, before sending them to thread_stdin?

Hi @holzschu,
I can see what I typed after cat without args (one line). In md5 without args I can't see anything.
And after that, cat without args stops working too.
So I messed up somewhere with thread, I think. (that is what I'm trying to say)

Hi @yury,
First, it's great that it works (in the sense that it wrote into file.txt).
The fact that you see nothing on the console needs to be addressed inside Blink.
Right now, you have a pipeline:
(letter typed on keyboard) -> stdin -> thread_stdin -> cat command -> file.txt
And you would like:
(letter typed on keyboard) -> stdin -> thread_stdin -> cat command -> file.txt
                           \-> stdout -> display on screen

That is, you need to duplicate the input stream, so that the things that the user writes on the keyboard go both to the command (through thread_stdin) and to the Blink output.

Got it, thank you.

Hi @yury,
I'd like to try that. On which fork of blink is it?
What do you mean by "control"?


App sends version on sync for version compatibility check

Build Number: 30
On sync mobile should send the app version to the server so that the server can check if the app version is compatible with the server version. Server sends back yes or no. If no response, mobile should assume incompatibility (old server version). Should warn mobile user.
Initialisation page can show compatibility error on fail. In normal use normal "sync error" at top should be shown.

Implementing as discussed here and mantis for mSupply side


Building the DMG failed. Error: Command failed: hdiutil detach /Volumes/

Hey, I've been trying to debug this all day and I'm getting no where it seems, hope someone can help shed some light on whats going wrong.
I'm randomly getting the following error on a macOS 13 GitHub Actions runner and locally on macOS 13.4, running v6.0.0 (which at first I thought had fixed it until another run later on revealed it hadn't):
Building the DMG failed. Error: Command failed: hdiutil detach /Volumes/AutoClicker

I'm not getting any more information out of it than that. Its part of a public project, in which the runs can be found here, buried within the fastlane run phase as part of a manual shell script call:
https://github.com/othyn/macos-auto-clicker/actions/workflows/cicd.yml
The really weird thing is there is no consistency or pattern that I can see as to whether it does it or not, it seems to be truly random from my current understanding, which is kind of evident from the mixture of succeeding and failing builds.
I've about ran out of steam on this today and I'll resume debugging with a fresh head tomorrow.
This wasn't an issue on macOS 12 using version 5.3.0, only after upgrading today to macOS 13 and v6.0.0 am I starting to have issues.

Appears this maybe an upstream issue:
https://github.com/LinusU/node-appdmg/issues/142
That should have been resolved in 0.6.5, with this app using "appdmg": "^0.6.6",, which means its not fixed :(
Will have to chase that maintainer as well, not sure why its suddenly being an issue.


feat: webworker ssr target

Description
Reworked https://github.com/vitejs/vite/pull/3121 as a feat.
https://github.com/vitejs/vite/pull/2996 and https://github.com/vitejs/vite/pull/3039 reworked the package resolution to ignore the browser field if the plugin is running in ssr mode.
See @frandiox comment, if the target is webworker (ie cloudflare workers) then the browser field should be respected even in ssr mode.
There is a new config option ssr.target:

The default target for the SSR build is a node environment, but you can also run the server in a Web Worker. Packages entry resolution is different for each platform. You can configure the target to be Web Worker using the ssr.target set to 'webworker'.

We already have a build.target but if we reuse it, the users will be forced to modify this option depending on building for the web or using build --ssr. I think it makes sense to be able to define both in the config file.
A targetWeb param to the resolve methods instead of the previous ssr one (I think that targetWeb is better here than targetNode to avoid the need to negate it when using it). In the resolve plugin:
const targetWeb = !ssr || ssrTarget === 'webworker'

#2996 #3039 didn't introduce a regression for Web Workers, because the target was implicitly Node until this point. So they are both fixes for the Node ssr server.
This PR allows ecosystem solutions like vitedge to resolve the browser field as before. There may be other differences that we need to take into account when ssr.target is webworker, but for @frandiox Vite was working without issues before these changes. I think there is the need for extra configuration that may now be included as default when targeting webworkers. For example the resolve.mainFields default. I think these could be added in future PRs. As the SSR feature is still labeled experimental, ssr.target should also be considered experimental.

What is the purpose of this pull request?

[ ] Bug fix
[x] New Feature
[ ] Documentation update
[ ] Other

@frandiox an update on this, we discussed it with Evan and he approves this feature. The ssr.target: 'webworker' will also be handy to define better defaults for things like the ssr.format (we are adding this option in another PR). When it is webworker, the default output format will be es instead of cjs. Once this lands, you could review your setup for vitedge and see if there are some other options defaults that could be pushed upstream.

@patak-js That's great news! Right now I'm setting the format: 'es' manually but it would be great if Vite takes care of it. Thanks for all!


Compare headers fix

Fixes #9
Handle missing headers as a special case before attempting diff calculations.
@shivamsouravjha could you please review the pr

Hi @shivamsouravjha , I hope you're doing well! Could you kindly let me know if there’s anything I can improve to help get it merged?

There are merge conflicts in the pr

@shivamsouravjha fixed the merge conflicts


Implement Medium and Small Katana and holder

-Insert medium katana slicer
-Insert small katana slicer
-Insert holder for all katanas
-Create and implement snap zones for katana holder

awesome


Add aria-label 'Search' to search input when dropdown opens.

This pull request includes a

[ ] Bug fix
[X] New feature
[X] Translation

The following changes were made:
I've added an aria-label to the search box when dropdown opens. I've added a translation function for the label so that it can be set as per the language.

I'm going to evaluate the need for this soon as we are making some accessibility changes in the upcoming 4.1.0 release which would be a solid time for this pull request. Unfortunately it looks like this pull request includes changes to the dist directory which need to be reverted. We regenerate the dist periodically and including changes to that directory in pull requests causes the directory to quickly become out of sync with any code changes.

Got it. Generally, other packages required the dist files to be included in the pull.
I'll make the changes.

Oh wait. This got closed somehow. I messed up my fork and did hard reset it to this branch. I've committed the changes.

I'm pretty sure we need this for the dropdown search, and for consistency it probably makes sense to have it for the selection search as well (when the dropdown is open). The main changes that need to happen are:

Set the attribute using setAttribute or jQuery.attr() (depending on context) instead of injecting it using string concatenation

This avoids potential XSS issues further down the line and is in line with how we do other translation injection

Unit tests that ensure the attribute is being set properly in the right cases

Hey @kevin-brown, I've made the changes as mentioned. I've also added the test cases.
Please review.


PlacePicker.IntentBuilder returns with resultCode 2

Starting the place picker ('Pick a Place') very briefly shows the place picker and then closes it before a place can be selected.
The returned resultCode is 2.
Running on Nexus 5, android 5.1.
Any ideas?

I was able to resolve this by removing all allowed android applications associated with the Places API key AND filling out the Consent screen in APIs & Auth of the console. Not sure which one fixed it, I'd guess the first.
(I used the SHA1 from ~/.android/debug.keystore and the example package name).

Sounds like you had a certificate/API key issue. Glad to hear you were able to resolve it.

I did everything that was guided, still, the issue isn't solved. Anyone who can help me out.


Cleaned up Ansible code...

Cleaned up code for readability...
Converted shell commands to Ansible
native modules to become better
idempotent
Signed-off-by: Larry Smith Jr<EMAIL_ADDRESS>

Also FYI, Kale has made some changes to the Ansible playbook as well in https://github.com/Mierdin/todd/pull/22, so once you've verified that the above passes a vagrant up I'll probably need you to rebase from master once https://github.com/Mierdin/todd/pull/22 is merged and resolve any conflicts.

Cool deal. I will do that as well once done...So I will stand down for now.
On Mon, May 9, 2016 at 10:06 PM, Matt Oswalt<EMAIL_ADDRESS>wrote:

Also FYI, Kale has made some changes to the Ansible playbook as well in
#22 https://github.com/Mierdin/todd/pull/22, so once you've verified
that the above passes a vagrant up I'll probably need you to rebase from
master once #22 https://github.com/Mierdin/todd/pull/22 is merged and
resolve any conflicts.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/Mierdin/todd/pull/23#issuecomment-218040952

--
Twitter @mrlesmithjr http://twitter.com/mrlesmithjr
Blog EverythingShouldBeVirtual.com
Interested in blog sponsorship? Go to http://bit.ly/10Aj7Sq

Awesome. Thanks for working on this bro!

You got it man. Hopefully I can provide some usefulness to it :) If not,
just tell me :)
On Mon, May 9, 2016 at 10:19 PM, Matt Oswalt<EMAIL_ADDRESS>wrote:

Awesome. Thanks for working on this bro!
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/Mierdin/todd/pull/23#issuecomment-218042450

--
Twitter @mrlesmithjr http://twitter.com/mrlesmithjr
Blog EverythingShouldBeVirtual.com
Interested in blog sponsorship? Go to http://bit.ly/10Aj7Sq

Hey man just FYI I just merged https://github.com/Mierdin/todd/pull/22 - looks like you've been making some changes in the meantime, so whenever you get a chance could you pull the latest master and rebase the changes to resolve the above conflict? Then ready to review your changes whenever you are.

Also, leave me a comment here when you're ready :smile:

Sure thing. :)
All should be good now for testing.

Other than my two comments, LGTM! 👍  Great work - address those comments and I'll hit the merge. Thanks man!

Requested changes complete. Also changed the tarball extraction and etc to use the var {{ gotarball }}..This makes for a more consistent flow of tasks and easier change of go tar files if they need to be changed in the future.

Perfect - thanks for those. Merging.
THANKS SO MUCH CONTRIBUTOR NUMBER THREE!!! 😄

You got it bro..


Add tests

This PR covers three topics:
Add tests
Obviously, this is the main purpose of this PR. The Tests are mainly extracted from #344.
Improve Test Structure
I improved the Tests stylistically and prepared them for the upcoming performance optimisations. This means two things:

I made use of local variables as much as possible, instead of defining and unsetting variables all the time. This is more readable IMHO.
Define the variables first, then load the Theme (in preparation for #817 )

Test on many ZSH versions
The Tests are executed by Travis on ZSH 5.5.1, 5.5, 5.4.2, 5.4.1, 5.3.1, 5.3, 5.2, 5.1.1 both on Linux and MacOS.
Caveats
There are a few Changes in powerlevel9k.zsh-theme:

I changed some grep RegExes to runnable versions on Linux and MacOS (mainly changed grep -o "[0-9.]* to grep -o -E "[0-9.]+).
Custom Segments can now have a visual identifier
Fixed foreground color of vi_mode segment (changed from default to white)
Changed detect_virt segment to print nothing if nothing was detected.

This PR aims on master, but if there are too many changes in behaviour, we could change base to next..

Merged into master as part of #944, and will be part of the v0.6.6 release!


Add user photos to search results

It would be nice to show user photos in the search results instead of the icon. Makes it easier to identify users.

Refs #817

Yes @SiddharthaSarma, please go ahead :)

Thanks @tiltec  :)
Do you want me to show the default user icon if the user doesn't have any image?

I think users would expect to see the same thing in search as the ProfilePicture component shows. Makes it nice and uniform.
Therefore, I would add the user random art, the initials and not have the picture rounded.

Okay @tiltec
But when I went through the documentation of quasar autocomplete component.
I found there is no option to add the custom HTML.
As Random art gives the svg image, I found there is no way to link to autocomplete.
For reference please check the properties section of autocomplete
http://quasar-framework.org/components/autocomplete.html#Using-Static-Data
If you know any other ways of doing it, could you please tell me?

Ah, that could be the reason why we didn't add it yet. Would it be hard to replace the autocomplete component with a custom setup, e.g. a input box as search and a popover with list items as result?

I will try it

Hey tiltec
Do you want to have the user photo in a square shape, Can I work towards it?

Hi @varsha6319 yes please. I think this feature is much quicker to solve than #672.
It would be good it would use the existing ProfilePicture component, so that the look is unified.

Hi @tiltec  . Can i work on it

Sure @harsha4444 !

Hi @harsha4444  did you make any progress with this?

I really want to have this myself, I use the search quite a lot :)

Done as part of the Quasar v1 upgrade.


Refactor: Use map for rendering components dynamically

Reduced Repeated Code in Home Page Components
Changes Made

Replaced repetitive component rendering with a map function and a structured data array.

Benefits

Reduces redundancy: Streamlined rendering logic into a single function.
Improves maintainability: Easier to add, remove, or reorder components by modifying the data array.
Saves lines of code: Achieved cleaner and more concise code.

Testing

Verified correct component rendering order and props.
No regressions found during functional testing.

Thanks for contributing! The whole page will be refactored soon, so I won't merged your PR.


doing a json Post/Put rack-test converts string to integers

We found the problem here:
https://github.com/brynary/rack-test/blob/master/lib/rack/test/utils.rb#L23
So, for example if I try to send something like that
{id: 1}
It converts the 1 for "1" (using the escape function)
some reason for that?
can We open a pull request?
Regards,

I think we should not change the else case, for security reasons. But it might be useful to add a numeric case.

I think the standard for query params across any sort of web application is to treat all values as string. That is the same standard which defines how nested data is written as well. And it is quite frustrating sometimes. I do not remember if this is really a standard in the sense that it is official, but it is the way other programming languages and frameworks parse the query string.
This is why rack and rack-test does it this way. I have seen the subject discussed a few times and the conclusion is that you can define your own parser for the query string and plug this one instead.

This is why rack and rack-test does it this way. I have seen the subject discussed a few times and the conclusion is that you can define your own parser for the query string and plug this one instead.

I agree. This is unfortunately how query strings usually work with Rack, and perhaps most other web API frameworks as well.
I will close this for now, since think this is "by design", and a design that makes sense to keep your Rack applications compatible with data coming from HTTP also, not just when running via rack-test.


Test added

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@jakirkham : I have added some lines in the test section to check if .ts file compiles to .js file. It worked when I tried locally, but not on the circleci. Could you please look at it and suggest some changes.

Thanks @sannykr. It looks like the package has some broken symlinks. Maybe the destinations of these links are missing in the package?


Create Product Service Interface

Product service should be using a Connection layer (based on axios library).
Each method of the service will contain specific types of parameters and return typed data (corresponding to data models' interface - #41  )
It's assumed that the context token is provided on request layer.
The proposed list of methods:

searchIds():<SearchResult<Product[]> || findIds():<SearchResult<Product[]> - search only for category ids for specific query
find():<Product> || findOne():<Product> - fetch the chosen category details
findAll():<SearchResult<Product[]> || list():<SearchResult<Product[]> - get the list of all categories fit all parameters passed

All the parameters should be converted into query string (or payload) just before sending a request.
Params converter was described here: #58
SearchCriteria interface described in #55
Parameters:
Ad. 1.
interface searchIdsParams extends SearchCriteria {
}

Ad. 2.
interface findParams {
  id: string # or uuid interface if any
}

Ad. 3.
interface findAllParams extends SearchCriteria {
}

The list of fields that can be used in the filter and sorting queries within the product area:
id: string | uuid
parentVersionId: string | uuid
mediaId: string | uuid
autoIncrement: number
visible: number # 1 if true, 0 otherwise
active: number # 1 if true, 0 otherwise
stock: number
availableStock: number
displayGroup:  string | uuid
manufacturerId: string | uuid
unitId: string | uuid
taxId: string | uuid
coverId: string | uuid
price: number
manufacturerNumber: string
ean: string
productNumber: string | uuid
isCloseout: # 1 if true, 0 otherwise
purchaseSteps: number
maxPurchase: number
minPurchase: number
purchaseUnit: number
referenceUnit: number
shippingFree:  # 1 if true, 0 otherwise
purchasePrice: number
markAsTopseller:  # 1 if true, 0 otherwise
weight: number
width: number
height: number
length: number
releaseDate: date

Pretty related comment in https://github.com/DivanteLtd/shopware-pwa/issues/56#issuecomment-540924443

Ok, just follow the discussion from #56 and we are going to apply the rules from that discussion.

searchIds():<SearchResult<Product[]> || findIds():<SearchResult<Product[]> - search only for category ids for specific query

getProductIds() will be used

find(): || findOne(): - fetch the chosen category details

getProduct() will be used

findAll():<SearchResult<Product[]> || list():<SearchResult<Product[]> - get the list of all categories fit all parameters passed

getProducts() will be used


Use terminal cursor in text prompts

Is your feature request related to a problem? Please describe.
The cursor in text prompts is entirely artificial, we explicitly add a background and foreground colors on where the cursor should be. Meanwhile, the actual cursor is hidden at the end of the prompt.
Ideally, we should position the cursor where it should actually reside. I'm not sure if this helps with accessibility, it would be even more worth it if it does.
Describe the solution you'd like
The backend should mark where the cursor should be and move it to the correct place after rendering the entire prompt.

Yeah, apparently this won't work unless I give up supporting Emoji ZWJ Sequences.
i can move the terminal's cursor based on rows and columns. This usually works because it is quite easy to predict the length your text will take. If I'm not printing anything fancy I can be more or less confident that all characters (e.g. those in ASCII) will render in one column each.
This doesn't hold for ZWJ sequences. They can take an arbitrary number of columns depending on which terminal/platform inquire is running on. For example: 👨🏼🦰, which is combining 👨 Man, 🏼 Medium-Light Skin Tone,  Zero Width Joiner and 🦰 Red Hair. source.
unicode_segmentation correctly counts 1 grapheme. However, my terminal does not support this grapheme, rendering 3 things instead:

From the level of inquire, it is ~impossible~ not trivial to know how much columns a grapheme will take. Thus, when working with string lengths to position the cursor on the correct column, I probably know in which column the "man" emoji is being rendered, but I can't know if the c after the emoji is 1 or 3 columns to the right.
With the current approach, an "artificial" cursor where I manually color the background, this works because I'm always rendering an entire grapheme at the cursor (which means a light background). Resulting in this:

It's not the works-perfectly approach, as 3 visual chars are treated as 1, but positioning the cursor will consistently work across any platform.
For now, I'll just position the cursor at wherever I imagine the graphemes will be (always assuming 1 grapheme occupies 1 column). However, I'll keep hiding the native cursor and use the artificial one. The issue will stay open.

For the record, I also considered using the native cursor when the input is empty, where its behavior would be to always highlight the first rendered char.
This would also not work because EJW on prompt messages would mess with the columns anyway =/

The main trade-off when implementing this feature was to have the cursor in a non-expected place between frames. If the user canceled the operation or any error happened when the cursor was not at the end of the prompt, I would have to move it back to the end when dropping Backend, which is a fallible operation, possibly leaving users with a corrupted state (mis-positioned cursor).

After some consideration, I've decided to continue to use native cursors even if they do not work with these edge cases. I've checked the behavior of dialoguer in this scenario and it breaks as well, so we'll not be missing something other libs have

Correction: it's not only EJW that break, but any kind of emoji because they take 2 columns in the terminal, while we are only counting one.

Even better, we will be following rustc's approach to assume the width of characters via unicode params, with help from the unicode_width crate. It seems to work perfect on my terminal

Closed via https://github.com/mikaelmello/inquire/commit/cd7874a8f20517ad058af07402f78b6fffe21579

Doesn't work properly for 👨💼 emoji. The cursor is way ahead of entered text when filtering from keyboard


Decide on directory structure

Here is a possible directory structure:

client - for client-side OpAMP implementation, package importable by agents that want to adopt OpAMP.
server - for server-side OpAMP implementation, package important by vendors who want to implement OpAMP servers.
internal - shared internal code for client and server (e.g. protobufs).
examples - examples that use client and server packages.

Questions:

Do we put client and server under pkg or top-level is fine?
Does everything use one top-level go.mod or client and server use their own go.mod (typically you only use one in a particular executable, both are only necessary if you building a proxy of some sort).

@open-telemetry/opamp-go-approvers please comment.

@open-telemetry/opamp-go-approvers @open-telemetry/opamp-go-maintainers  please comment.

I think the proposed structure is a good starting point.

We can align with the collector repo by omitting the pkg directory.
Keep it simple until a clear need for multiple modules is articulated?
cmd/supervisor seems right to me.

Mostly agree with what Dan said.  I think we'll want to keep an eye on package sizes and whether including both client and server bloats one or the other excessively as a signal that splitting into multiple modules may be necessary.

I think we are good with this for now. Closing.


Exclude certain files from being copied

I've been using this plugin for a month now to simplify publishing static files into the resulting build and I'm pleased with it so far. Due to some quirks in the project I'm working on, I need to exclude certain files from being copied.
While I know I can override the filter function as an optional argument, it would require me to re-implement the entire logic of filter function which seems a bit excessive.
I can spin up a PR to add this functionality but I'm looking for guidance for the best way to implement this...
My thoughts are I could take one of the following approaches:

Add a new exclude argument to the options object and have the built-in filter function evaluate that when it's called (e.g. if source file name with leading directory stripped matches an element in the excluded array, then return false).

Export the filter function to allow it to be reused externally, then one doesn't have to choose between your filter logic and their filter logic.

The problem I see with option 1 is this would make the API and documentation a bit clunky since it requires a caveat in giant bold letters that exclude will be ignored if the filter function is overridden.
Whether option 2 is palatable is up to you and your preferences.
What are your thoughts?

What I'd prefer to do is something along the lines of...
import copyStaticFiles, { filter } from 'esbuild-copy-static-files'

const EXCLUDED_FILES = [...]

function excludeFilter(src, dst) {
  if (EXCLUDED_FILES.find(f => src === f) {
    return false;
  }

  return filter(src, dst)
}

...
  plugins: [
    copyStaticFiles({ filter: excludeFilter })
  ]
}

Otherwise, I'm duplicating all of your filter() code and the functions it depends on into my external function in order to be passed back in.

Yes - I think this would be an excellent addition - exporting the filter function to be able to re-use it is very useful.

Ha, I'm actually looking into re-using the filter function and I've just realised that 90% of this plugin is the filter function and its dependencies.

Yep! Feel free to open a PR if you want to arrive a solution that lets you:

Define a custom filter function (current behavior)
Augment / extend the existing filter function with a new function


I have a question

In the original terminal window, this appears when the server is started

Adding the HTTPS version of the ngrok forward URL and the store's URL to the following placeholder and loading it into the browser also presents a problem,

Can you help me out？

Have you started your NGROK server on port 3000?


TEST - Make sure CI is running correctly

inject failure and make sure CI fails

new flow works (fails) as intended


Add Vertex Colouring example

colour_vertices now ignored by local .gitignore file

renamed the paths to all-lowercase after merging.


Checkstyle versions

We got a weird error from checkstyle which led me to investigate a bit, and I noticed that checkstyle is actually retrieved from one of your packages and it's a fairly old version:
❯ java -jar<EMAIL_ADDRESS>--version
Checkstyle version: 9.3

This is mostly fine (I think our issue is not necessarily related), but this should be a bit more transparent.
A few ways I can think of to improve this:

Allow passing in a checkstyle version to use in options, which is then downloaded as required from maven

        "executor": "@jnxplus/nx-boot-maven:lint",
        "options": {
            "linter": "checkstyle",
            "version": "10.9.3"
        }
    }

Keep it as is, but make it clearer that it uses a bundled checkstyle.jar file. Personally I'm a bit concerned with this from a security perspective
Allow passing in a path to which checkstyle.jar file to use, so we can use a package we have downloaded and verified ourselves.

        "executor": "@jnxplus/nx-boot-maven:lint",
        "options": {
            "linter": "checkstyle",
            "jar": "tools/jar/checkstyle.jar" // example path, relative to project root
        }
    }

Hi @yusijs Thanks for this issue. I have the idea to remove this project for the security reasons you mentioned and also because it's hard to maintain this way.
I will make the change to use the maven plugin

Hi @yusijs, The maven plugin didn't work for me because there is no way to add a global checkstyle xml file without adding a new sub project. From the new version 5.4.0, checkstyle  jar is downalded from checkstyle  github repo. To specify a version you can add a property in the root xml file like this
  <properties>
    <checkstyle.version>10.9.3</checkstyle.version>
  </properties>

We're seeing the same issue still - I guess it's because we kick off multiple lint-jobs in parallel at the same time, and they start downloading checkstyle.jar more or less at the same time. Perhaps this should be ran during install as well, which would allow us to update the checkstyle-version by changing it in the pom.xml (and running lint)?

@yusijs I was thinking about the same idea but I didn't go far in analysis, maybe a post install script at the plugin level can save this issue
 "postinstall": "node installLinters.js"

@yusijs please try version 5.4.2

@khalilou88 that seems to have solved it, thanks!


Updates Break Desktop Profiles

This is
What are you experiencing an issue with?

[ ] Aurora
[ ] Aurora supported game, (Fill in the game)
[ ] Aurora Wrapper
[x] Aurora Profile
[ ] Aurora supported device, (Fill in problematic devices)
[ ] Aurora Scripts
[ ] Aurora Updater
[ ] Aurora Lighting issue
[ ] Other, (Fill in another issue here)

What kind of an issue is it?

[ ] Crash
[ ] Performance problems
[x] Visual bug
[ ] Localization issue
[ ] Enhancement suggestion
[ ] Device issue
[ ] Other, (Fill in another type of issue here)

Expected behavior:
This is concerning pre-made desktop profiles that are downloadable from the modworkshop.
Profile should display as intended.
Actual behavior:
Explain here what happened instead.
Colours of the profiles are off, inverted or randomised.
How often does this problem occur?

This problem occurs... (Fill in here)
Seems to happen everytime a new Aurora version is published.
Please describe the steps to reproduce this issue:
The issue can be reproduced by doing following steps:

Activate a Profile.
Update Aurora.
Colours are wrong, switching, reinstalling profiles does not help.

What is the version of Aurora you are experiencing this issue with?

My version is 0.61 -dev3
Does the previous version of Aurora have this issue?
The previous versions, did have this issue.
Please include any logs, screenshots, or files that are related to this issue:
Latest Log: https://pastebin.com/zt1b3qSP
I've noticed this behaviour over the last few versions now and was just wondering if this is something normal in regards to updating the software? Do the authors of the profiles have to update them from within the new version of Aurora? Basically, all profiles I have are broken now, some survive an update or two, others don't.

Can you give me an example of a profile that experiences this issue?

Yes I can. The most recent that I used was this one

This profile also no longer works for me with latest dev build (0.61 -dev3). I've reset all preferences and such and the profile no longer applies anything.

@stephenej That profile you linked was created before the Layer system was implemented and there is no system to carry over the old settings to the layer system

@userforusing The reason the profile you linked has problems with colours carrying over is because it was created after the change that previously caused problems with gradients that was reversed in v0.6.1-dev3, as far as I can tell it was only the gradients that were affected. I'm fairly certain that the gradient breaking change only appears in dev builds in which case I'm going to leave it as is as the current state of it in dev3 is the same as v0.6.0b. If you want to get gradients to carry over you'll need to open the profile in a text editor and replace instances of "colorGradients" with "color_gradients". I'm going to close this unless there are different cases of stuff not carrying over.

Thank you for investigating this. I do have a follow-up question though.
Looking at the file in notepad there are only "color_gradients" entries. So shouldn't those be the correct values? When I do change them though, Aurora replaces them back again at startup.

You have to change them before you drop the profile into Aurora. Once a newer version of Aurora has been launched it will have removed the "colorGradients" and added a default "color_gradients". So you'll need to edit the file when you download it.


luci-theme-bootstrap: Change textarea font-family to monospace

Better readability for pages:

Startup -> Local Startup
Flash Firmware -> Configuration
Diagnostics

Signed-off-by: Kristian Skramstad<EMAIL_ADDRESS>

@skramstad thank you for your PR. Could you please resend it from non-main/non-master branch?
Also, the before and after screenshots would be appreciated.


Update +page.svelte

just removed a wild closing </span> tag

Thanks @JustMrMendez

@JustMrMendez I noticed this too late, but please avoid sending PRs targeting Master. We merge into our dev branch -> then master on release. Pease be mindful of this in the future. Thanks.

Sorry, the view page source in de docs sent me here, and i just clicked edit and posted the change without much thought

All good, just a heads up! I've resolved the merges so everything is good now.


C# convert special chars to enum

In Atlassian Open Api, there is an enum for queries and it contains some chars. C# generator converts lots of them correctly. However it does not convert 2 of them (~, ~=).
..."FieldValueClause":{
"required":["field","operand","operator"],
"type":"object",
"properties":{"field":{"$ref":"#/components/schemas/JqlQueryField"},
"operand":{"$ref":"#/components/schemas/JqlQueryClauseOperand"},
"operator":{"type":"string",
"description":"The operator between the field and operand.",
"enum":["=","!=",">","<",">=","<=","in","not in","~","~=","is","is not"]}},
"description":"A clause that asserts the current value of a field. For example, `summary ~ test`."}...

Generated client code is:
public enum FieldValueClause_operator {
        [EnumMember(Value = "=")]
        Equal,
        [EnumMember(Value = "!=")]
        ExclamationEqual,
        [EnumMember(Value = ">")]
        GreaterThan,
        [EnumMember(Value = "<")]
        LessThan,
        [EnumMember(Value = ">=")]
        GreaterThanEqual,
        [EnumMember(Value = "<=")]
        LessThanEqual,
        [EnumMember(Value = "in")]
        In,
        [EnumMember(Value = "not in")]
        NotIn,
        [EnumMember(Value = "~")]
        ~, //not valid
        [EnumMember(Value = "~=")]
        ~=, //not valid
        [EnumMember(Value = "is")]
        Is,
        [EnumMember(Value = "is not")]
        IsNot,
}

Hi @iozcelik
Thanks for using kiota and for reaching out.
Adding a Tilde ~ entry here should fix your issue.
Is this something you'd be willing to submit a pull request for?

Hi @baywet , of course I will do in morning as soon as possible. Thanks.


Include Rakefiles in the indexing target

Related documentation: https://shopify.github.io/ruby-lsp/#configuring-code-indexing

Need VSCode configurations for Ruby LSP like this.
{
    "rubyLsp.indexing": {
        "includedPatterns": ["**/Rakefile"]
    }
}

But the Rakefile in the project root directory is not included.


Add dataarray scatter

Splitting up #5622 as the scope of it has grown too large now.

Adds support for dataarray scatter plots and replaces the dataset version.
Scatter now has 3d support with the z argument.
Scatter now always returns a single pathcollection, earlier it could return a list of pathcollection when using categoricals
Better legend, handles now categoricals. Making continous/discrete options slightly redundant, still there though.
Facetgrid generalized slightly to handle 3d plots.

TODO:

sharex sharey test https://github.com/pydata/xarray/pull/7047: len(list(ax.get_shared_x_axes())) != 0

[x] Tests added
[x] User visible changes (including notable bug fixes) are documented in whats-new.rst
[ ] New functions/methods are listed in api.rst

I'm merging this soon. Will hopefully go smoothly.

I'm merging this soon. Will hopefully go smoothly.

I will wait with merging https://github.com/pydata/xarray/pull/7052
and then try to fix the merge conflicts :)

Thanks @Illviljan !

Nice work!


For RV32I_K generator.py report error

I am trying to generate RV32I_K tests using riscv-ctg but tests are not generated with this error:
File "/home/eman/riscof/riscv-ctg/riscv_ctg/generator.py", line 800, in eval_inst_coverage
var_dict[key] = int(instr[key])
ValueError: invalid literal for int() with base 10: ' 0x03020100'
Looking forward for a solution, Thanks!

@pawks can you please look at this issue, we are stuck at this error.


Pull request message about commit message format is incorrect

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04):

Ubuntu 20.04.1

Modin version (modin.__version__):

<IP_ADDRESS>+4.gbd8f73a
When PR is created, developer is asked a question whether message format confirms to format described in https://modin.readthedocs.io/en/latest/contributing.html. The problem is that this page doesn't exist. There is a page https://modin.readthedocs.io/en/latest/developer/contributing.html but it doesn't mention anything about special message format.

#2193 solves this problem.


Expected Start Word 0xfff

Hey guys ,
I am using this library but merge audio in video to this type of error are showing "Expected Start Word 0xfff"
s please any one to solved face this type of error and solved it. please tell me about where is my mistake.

@mihirsoni1312
Have you resolved this issue? I am also facing this issue.
If you resolved can you please post you code.
Thanks
Akhilesh


What is needed for a 1.0 release?

We've been adding features to ACA-Py and starting to think about what would be needed for a 1.0 release of the product. Per Hyperledger guidelines, that would mean the 0.8.0 would be API complete, and 0.6.0 would need to be functionally complete.
What functionality is needed in a release for us to declare it 0.6.0, the first predecessor to 1.0.0?
Questions and Comments

At minimum, we think we need to have what we have today, plus the 1.0 version of Credential Exchange operating.

Logically, you would have proof of interoperability via a run completed with the test suite, but at this point that would not show a lot.  Doable easily, but not particularly useful.

A non-Indy implementation of credential exchange would seem like a reasonable bar to set, but that is out of our hands.  Note that I think credential exchange is needed, not just DID resolution, because Credential Exchange is the only thing in the application that uses public DIDs. Does the community think this is necessary?

We could make the completion of functionality dependent on having the implementation of Aries core complete.  That makes sense, but is again out of our control, and seems to be some time away. Does the community think this is necessary?

What do others think about what functionality is needed to be on a path to 1.0?

aries-framework-go plans to also have present-proof and introduce for the initial release. Other things are required that still haven't made their way into RFCs yet.

@llorllale do you mean the initial release, or the 1.0 release (per the Hyperledger definition) or are those the same?  https://wiki.hyperledger.org/display/fabric/Release+Exit+Criteria
How do these impact (or not) aries-gramework-go:

multi-VC Model support; will you support Indy proofs?
I notice you didn't mention issue-credential. Will that be part of the initial release?
The split of Indy/Aries
Test suite status

Thanks

Last I understood, we needed to meet the requires in the proposal. I think @nage would be able to answer this question best.

Good thought.  The laundry list is pretty long, but this one is
particularly interesting:
Other functionality that would be in scope for a 1.0 project release would
be a Decentralized Key Management Solution (DKMS) which would add key
recovery, social recovery, and wallet backup and restore functionality.
Much of this work would be based on the DKMS documents outlined in the
Indy-HIPE
dkms design folder.
https://github.com/hyperledger/indy-hipe/blob/49fcd78883d38babe9c95a4e1d150969797cffa2/design/dkms/README.md
That wording puts the bar for Aries getting out of "incubating" state
extremely high.  Not sure what it means for getting a product within the
project to the 1.0 level.  If that is the bar, we really need to slow down
our consumption of minor version numbers :-).
On Mon, Sep 2, 2019 at 1:26 AM Kyle Den Hartog<EMAIL_ADDRESS>wrote:

Last I understood, we needed to meet the requires in the proposal
https://wiki.hyperledger.org/display/HYP/Hyperledger+Aries+Proposal. I
think @nage https://github.com/nage would be able to answer this
question best.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/hyperledger/aries-rfcs/issues/207?email_source=notifications&email_token=AAHYRQWBA36KMSEZWLPA4XDQHTE5DA5CNFSM4ISGJIKKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5VDIIA#issuecomment-527053856,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHYRQRWKXTFSLXDWRBYC3TQHTE5DANCNFSM4ISGJIKA
.

Closing this issue.


Fix Capitalization of Cosmos DB SQL Subresource

Fixes the capitilization of the Azure Cosmos DB SQL resource. "SQL" should be "Sql" according to the docs and the Azure console.
See Private Link Documentation here: https://docs.microsoft.com/en-us/azure/private-link/private-endpoint-overview#private-link-resource
Azure Console (Private Link):

@ktoliver : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Create ajibajibbds_Account Linking - Publish a Child Account_2023-12-…

…23.cdc

duplicated code
https://github.com/FlowFans/zealy-campaigns/blob/main/2023/q4-code-snippets/submissions/{misaka}_{Account Linking}_{2023-12-13}.cdc


Ensure macro is defined before its value is tested

Hi, there's probably a more extensive fix for this problem required, see https://github.com/AcademySoftwareFoundation/openexr/issues/1405 ~ shall we continue discussion of it there?

Thank you for taking a look.
Yes, #1405 is much more comprehensive.


Push service - looking for feedback

Hey there,
I would like to introduce an image I build, which is basically an addon to this image.
It's based on z-push and is providing push functionality for this mailserver.
So far I only tested it with my setup. And I would like to see others try it out as well, before I write a wiki entry about it.
So if you would like to give push a try, get the image from docker 17halbe/z-push and for any support ask here or even better at github 17Halbe/z-push .
Questions? Comments? Suggestions?

Just found a bug, don't use the TIMEZONE variable for now.. Sorry, but currently docker isn't building.

Could you please made IMAP_OPTIONS editable via ENV ? Thx !

This issue was closed due to one or more of the following reasons:

Age
Contributor inactivity
The issue seems to be resolved

If you think this happened by accident, or feel like this issue was not actually resolved, please feel free to re-open it. If there is an issue you could resolve in the meantime, please open a PR based on the current master branch so we can review it.


Update Clear-Site-Data to use the current spec format.

Per request from @mikewest via twitter, this PR updates the format used in the Clear-Site-Data header to the current format.
/cc @oreoshake for review

I threw this on the 3.x branch since technically master is prepping for 4.x and there have been commits dropping support for ruby versions which would require a major version bump. We still have some TODOs so we'll ship another 3.x and I'll merge these changes in to master as well.

Released in 3.6.5: https://rubygems.org/gems/secure_headers/versions/3.6.5


Fix exec command parameter expansion

Simplify command parameter expansion of websocket_call that will also fix a bug with it (https://github.com/kubernetes-incubator/client-python/pull/346 originally tried to fix this before we move websocket code to the base repo). cc @eyeofthefrog

Codecov Report

Merging #35 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #35   +/-   ##
=======================================
  Coverage   93.36%   93.36%
=======================================
  Files          11       11
  Lines         829      829
=======================================
  Hits          774      774
  Misses         55       55

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 a41c447...67a69d4. Read the comment docs.

LGTM 👍 we could add a test case when possible

Thanks @dims. I spend a little time on writing a test but I needed to mock WebSocket class and I didn't find an easy way to do it. I will merge this without a test for now.


Unwrap variables in a way Xcode 13 can be compiled

Bug/issue: #30
Summary
Allows Documentation to be generated against Xcode 13
Dependencies
N/A
Testing
No new tests added, all current tests run and pass, no new functionality added
Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[x] Added tests
[x] Ran the ./bin/test script and it succeeded
[x] Updated documentation if necessary

@swift-ci please test


Sticky Scroll shows decorator name in Python

Type: Bug
Feedback for the experimental Sticky Scroll feature. In Python, it shows the decorator name but not the actual function name. This makes the (otherwise great) feature not that useful in Python.
VS Code version: Code 1.70.2 (e4503b30fc78200f846c62cf8091b76ff5547662, 2022-08-16T05:36:37.829Z)
OS version: Darwin x64 21.6.0
Modes:
Remote OS version: Linux x64 5.15.0-41-generic
Remote OS version: Linux x64 5.15.0-41-generic
Remote OS version: Linux x64 5.15.0-41-generic

/duplicate

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


V0.4: snark verifier

Description
[PR description]
Issue Link
[link issue here]
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Contents

[item]

Rationale
[design decisions and extended information]
How Has This Been Tested?
[explanation]

How to fill a PR description
Please give a concise description of your PR.
The target readers could be future developers, reviewers, and auditors. By reading your description, they should easily understand the changes proposed in this pull request.
MUST: Reference the issue to resolve
Single responsability
Is RECOMMENDED to create single responsibility commits, but not mandatory.
Anyway, you MUST enumerate the changes in a unitary way, e.g.
This PR contains:
- Cleanup of xxxx, yyyy
- Changed xxxx to yyyy in order to bla bla
- Added xxxx function to ...
- Refactored ....

Design choices
RECOMMENDED to:

What types of design choices did you face?
What decisions you have made?
Any valuable information that could help reviewers to think critically

failed
bytecode_circuit::circuit::tests::bytecode_full
    bytecode_circuit::circuit::tests::bytecode_invalid_byte_data
    bytecode_circuit::circuit::tests::bytecode_invalid_hash_data
    bytecode_circuit::circuit::tests::bytecode_invalid_is_code
    bytecode_circuit::circuit::tests::bytecode_push
    bytecode_circuit::circuit::tests::bytecode_simple
    bytecode_circuit::circuit::tests::bytecode_unrolling
    evm_circuit::execution::begin_tx::test::begin_tx_precompile
    evm_circuit::execution::begin_tx::test::begin_tx_precompile_with_value
    evm_circuit::execution::blockhash::test::blockhash_gadget_large
    evm_circuit::execution::blockhash::test::blockhash_gadget_simple
    super_circuit::super_circuit_tests::serial_test_super_circuit_1tx_1max_tx
    super_circuit::super_circuit_tests::serial_test_super_circuit_1tx_2max_tx
    super_circuit::super_circuit_tests::serial_test_super_circuit_1tx_deploy_2max_tx
    super_circuit::super_circuit_tests::serial_test_super_circuit_2tx_2max_tx
    super_circuit::super_circuit_tests::serial_test_super_circuit_2tx_4max_tx

TODO: use "poseidon-codehash" feature to filter contraints like "keccak256_table_lookup(cur.value_rlc, cur.length, cur.hash)"

failed cases:

bytecode_invalid_hash_data.  fix or ignore? @noel2004
create related. how to fix them? @roynalnaruto

Currently the codehash lookup is disabled when poseidon-codehash is actived (for the rlc encoding issue). This test is supposed to be fine after the issue is resolved. So we can just leave it there or ignore it temporarily

I am working on making CREATE/CREATE2 opcode gadget compatible with the dual code hash changes here: https://github.com/scroll-tech/zkevm-circuits/pull/443

@noel2004 can have a look at the comment above by rohit.  I think the 2nd problem will soon be fixed with new changes related to poseidon lookups?

@noel2004 can have a look at the comment above by rohit. I think the 2nd problem will soon be fixed with new changes related to poseidon lookups?

ok. I will look at it. From Rohit's comment it need some change in copycircuit and I would try to understand how it works then fix it

oh no.. let me debug..

Wake up self hosted server takes hangs.. @silathdiir

Wake up self hosted server hangs.. @silathdiir

Fixed to wake up self-host servers concurrently, and add some debug logs in commit https://github.com/scroll-tech/zkevm-circuits/pull/438/commits/6fa1be505a89f0d8ff71bc0412fe1487c5d77fc5.


Xch/cx assert

Description
Provide _assert wrappers for functions using WARN_UNUSED_RESULT cx_err_t type.
Changes include

[ ] Bugfix (non-breaking change that solves an issue)
[x] New feature (non-breaking change that adds functionality)
[ ] Breaking change (change that is not backwards-compatible and/or changes current functionality)
[ ] Tests
[ ] Documentation
[ ] Other (for changes that might not fit in any category)

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

Comparison is base (bb1971c) 60.42% compared to head (6cae869) 60.42%.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #504   +/-   ##
=======================================
  Coverage   60.42%   60.42%
=======================================
  Files          12       12
  Lines        1660     1660
=======================================
  Hits         1003     1003
  Misses        657      657

Flag
Coverage Δ

unittests
60.42% <ø> (ø)

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

For future, here is the script used to generate most of the PR (except includes and formatting):
for file in files:
    print("Working on:", file)

    with open(file, "r") as f:
        iterator = iter(f.readlines())

    with open(file, "w") as fout:
        line = next(iterator)
        while line:
            content = None

            if line.startswith("WARN_UNUSED_RESULT cx_err_t"):
                content = line
                while ";" not in content:
                    content += next(iterator)

            if content:
                fout.write(content)
                fout.write("\n")

                starters, params = content.split("(")

                # Extract params names and create a string with the list without the types
                assert params.endswith(");\n")
                params = params.replace(");\n", "")
                params_list = params.replace("\n", " ").replace("*", "").split(",")
                params_value = ", ".join([x.strip().split(" ")[-1] for x in params_list])

                # Extract func_name and create new_func_name
                func_name = starters.replace("\n", " ").split(" ")[-1]
                if func_name.endswith("_no_throw"):
                    new_func_name = func_name.replace("_no_throw", "_assert")
                else:
                    new_func_name = func_name + "_assert"

                fout.write(f"/**\n * @brief {func_name} version which doesn't return in case of failure.\n *\n * See #{func_name}\n */")
                fout.write("\n")

                fout.write("static inline void " + new_func_name + "(")
                fout.write(params)
                fout.write(")\n")

                fout.write("{\n")
                fout.write(f"    LEDGER_ASSERT({func_name}({params_value}) == CX_OK,\n")
                fout.write(f"                  \"{func_name}\");\n")
                fout.write("}\n")
            else:
                fout.write(line)

            try:
                line = next(iterator)
            except StopIteration:
                print("End of file")
                line = None


Revise "terms of service" copy

We need the final draft of this copy from Laura by Febuary 1st so that we have time to update it.

Terms of Service LWS.docx

Template is here: https://github.com/codefordurham/adopt-a-drain/blob/production/app/views/sidebar/_tos.html.haml

The content has been updated.  I'm working on a few corrections to fix some minor spacing issues.

This is ready to be reviewed for closeout.  Thanks!

Looks good!


fix (boilerplate): web layout tab bar alignment

Please verify the following:

[x] yarn test jest tests pass with new tests, if relevant
[x] README.md has been updated with your changes, if relevant

Describe your PR
Tabbar layout aligned, issue mentioned in #2552

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


fix(rate) 修复组件Rate半选加禁选后，2.5与3星实际不匹配的问题

PR
PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our Commit Message Guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?

Issue Number: N/A
What is the new behavior?
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

@all-contributors please add @wwttff for code


Update supported version

tt-rss has bumped it's version to 17.1. Did at least some basic testing at the theme still seems fully functional. Bumped the supports-version string to 17.1

Whoops, didn't notice there was already a PR handling this. Disregard me.


bug opening the picture in Mypaint

I was doing a painting in my computer and my computes accidentally shut down. When I try to open  the picture, it's saying that there's a bug and a programming error.
This is what it's saying:
Traceback (most recent call last):
File "C:\Program Files\MyPaint\library.zip\gui\filehandling.py", line 333, update_preview_cb(self=<gui.filehandling.FileHandler object>, file_chooser=<gtk.FileChooserDialog object at 0x3b3aee8 (GtkFileChooserDialog at 0x6b83160)>, preview=<gtk.Image object at 0x3b3ae10 (GtkImage at 0x6c05420)>)
filename = filename.decode('utf-8')
pixbuf = helpers.freedesktop_thumbnail(filename)
if pixbuf:
File "C:\Program Files\MyPaint\library.zip\lib\helpers.py", line 168, freedesktop_thumbnail(filename=u'C:\Users\Sara\Documents\pocahontas.ora', pixbuf=None)
# use the largest stored thumbnail that isn't obsolete
pixbuf = gdk.pixbuf_new_from_file(fn)
if file_mtime == pixbuf.get_option("tEXt::Thumb::MTime"):
GError: Failed to load image 'C:\Users\Sara\AppData\Local\mypaint\thumbnails\large\c6fa29742e0d4285ddc18825cbd3a4d8.png': Image has zero width
How do I fix this??

Hi @sarailemon, I believe you've come to the wrong page, since this project has nothing to do with Mypaint.
I suggest you to file this issue at https://github.com/mypaint/mypaint/issues, which is Mypaint's official page instead.


<Link /> doesn't work with hashes

This is the same as #2098, except for me it is backwards.
#2098 says

it will only work when that link is pressed from another page.
When this link is pressed on the / page, Next will not scroll into that view

But what I experience is that it doesn't work from another page, and only works when on the page.
For example if I have <Link href="/#who-we-are" /> and I am on /about, clicking it takes me to /#who-we-are but will not scroll me to the section. Once I am at /#who-we-are I can click the link a second time to make it take me to the section.

I was able to fix it with a simple workaround. I've added the following to my code which seems to work, making it scroll to the section on has changes:
    Router.onRouteChangeComplete = () => {
      setTimeout(() => {
        if (location.hash) location = location
      }, 0)
    };

Also another problem: when clicking different <Link />s that vary only by hash, it is not trigger a route change event.
This is unexpected because it means it will not cause some components to re-render if they are observing route changes.
Any change to the browser history should be handled by Next.js router, so code can listen to it using Next.js Router API.

window.addEventListener('hashchange', console.log) doesn't work while using Next.js Router, all the more reason for Next.js to trigger onRouteChangeComplete for hash changes.
 I can only trigger it by doing location.hash = 'someValue', which means I would have to step outside Next.js Router and implement something else.

Looks like the answer is https://github.com/zeit/next.js/issues/1609, "not supported".
So what do we do?

I see https://github.com/zeit/next.js/pull/4676. I see some work has gone into hashes.
What exactly should we expect (at the moment) from Next.js regarding hashes?

For now, I'm doing the following, which works:
import * as React from 'react'
import Router from 'next/router'

class MyComponent extends React.Component {
  constructor(props) {
    super(props)
    this.state = { path: '' }
  }

  render() {
    const {path} = this.state
    return (
              <Link href="/contact">
                <a
                  onClick={this.hashChangeTo('#someHash')}
                  className={classNames({
                    foo: path.includes('#someHash'),
                  })}
                >
                  Go to Somewhere
                </a>
              </Link>
    )
  }

  hashChangeTo = (targetHash: string) => {
      return () => {

          // if we clicked a link that takes us to the same hash, nothing to do.
          if (targetHash === location.hash) return

          const detectHash = () => {
              if (location.hash === targetHash) {
                  // the hash changed to the expected target
                  this.updatePath()
              }
              else {
                  requestAnimationFrame(detectHash)
              }
          }

          requestAnimationFrame(detectHash)
      }
  }

  updatePath() {
    this.setState({ path: Router.pathname + location.hash }); // Router doesn't have a .hash property

    // this small hack causes the page to scroll to a section when the route
    // contains a hash. Otherwise it doesn't work. See:
    // https://github.com/zeit/next.js/issues/5161
    setTimeout(() => {
        if (location.hash) location = location
    }, 0)
  }

}

All of this would not be needed if Next could have https://github.com/zeit/next.js/issues/5163.

Other libs (f.e. Vue router) trigger a route change event when the hash changes, making this all simpler.
The following is the exact same in Vue:
<template>
            <router-link
              to='/#someHash'
              :class="path.includes(#someHash) ? 'foo' : ''"
             >
               Go to Somewhere
             </router-link>
</template>
<script>
    export default Vue.extend( {
        watch: {
            $route() { this.goToHash() },
        },
        data: () => ({ path: '' })
        methods: {
            goToHash() {
                this.path = this.$router.history.current.fullPath
                if ( this.path.includes( '#' ) ) (location = location) // scroll
            },
        },
    } )
</script>

Both Vue and Next need the location = location trick, though it'd be nice if they didn't. Next needs the more awkward polling for location.hash.

I was also thinking of trying this trick, but I haven't yet: https://stackoverflow.com/questions/4570093/how-to-get-notified-about-changes-of-the-history-via-history-pushstate
It'd be the best for Router to fully encompass hashes.

Before reading all of this issue I'd like to point out the issue template is pretty clear right 🤔 Please use it when creating issues. It saves us a lot of time: https://github.com/zeit/next.js/issues/new/choose

Just faced this problem. Digging a bit into the Next.js codebase, I noticed it was supposed to be handled by Next.js itself here: https://github.com/zeit/next.js/blob/9547e77820305ac90a60d652f09ab29af53e11d3/packages/next/pages/_app.js#L49.
It can happen that scroll to hash does not work if you have a custom _app.js.
The (undocumented) solution now:
// app.js

// Container will scroll to hash on update
import App, { Container } from 'next/app';

...
class MyApp extends App {
  render() {
    const { Component } = this.props;
    // your you other stuff here

    return (
      <Container>
        <Component />
      </Container>
    );
  }
}

export default MyApp;

@martpie I wonder if we should deprecate/remove Container and move it up the tree outside of userland 🤔

I understand the separation of concern, but in the end, without documentation, developers will never understand what happens there.
Would you accept a PR for that?

@martpie we can make _app.js a lot simpler by rewriting a few bits, basically refactoring out all the logic around React context / the Container that implement scrolling, then what's left is "just" a React component. This would also be future-proof since React is moving to nearly fully functional style with Hooks and _app.js currently depends on class inheritance.

Created this issue wrt React context: https://github.com/zeit/next.js/issues/5716

This appears to be resolved and we have a test for this behavior, so I am going to close this issue. If you are still experiencing this feel free to reply with more info.


Allow Not generating Canary Service && Fixed a bug caused by NOT considering case-insensitivity.

Ⅰ. Describe what this PR does

Allow Not generating Canary Service when using trafficRoutings.customNetworkRefs
Fixed a bug caused by NOT considering case-insensitivity.

Ⅱ. Does this pull request fix one issue?
NO

Ⅲ.  Special notes for reviews
For 1:
when working with trafficRoutings.customNetworkRefs (such as VirtualService and DestinationRule for Istio), rollout will always generate canary Service based on the provided Service, which may be undesirable in the scenario of using DestinationRule subsets.
For 2:
In the code within api/v1alpha1/conversion.go, when converting objects from v1alpha1 to v1beta1 (aka. the HUB version), a direct string comparison is made. This leads to an issue where v1alpha1 objects (Rollout and batchRelease) are only converted correctly to the v1beta1 object  if the RolloutStyleAnnotation annotation is exactly "Partition" (with an uppercase initial letter). In other cases, where RolloutStyleAnnotation is "partition", "canary", or "Canary", the conversion defaults to the canary.

/approve


Pre-assign tasks

Hey there,
I just started playing around with Playbooks in our Mattermost instance. Looks like this could make onboarding for new coworkers simpler and more structured. As we have certain tasks that are performed, could I pre-assign specific tasks to specific people?
Thanks a lot! Lucas

Hey Lucas!
We're brainstorming this feature actually! Could you clarify if your use case is to pre-assign to the same specific individual every time the playbook runs (eg. Angela or Steve), or to a pre-assign role so whoever fills that roles becomes the assignee (eg. The New Hire or Team Lead)

Both cases would actually be extremely helpful. In our case it would be something like:

Give out keys @angela
Create Mattermost Account @lucas

Ah gotcha. And in the case where you have multiple people on a task, is there one clear owner? For example, is the intention to @ mention people or is it to assign ownership? (ie. either person can check off? require both to check off?)

Either can check it off. At least for our use case.

Just to share more on this front: we're hoping to tackle exactly this feature in Q1 2022. Stay tuned!

We are planning to migrate some of our workflows to Mattermost. This feature would be extremely helpful to us. Looking forward to updates!

Yeah, curious. Any updates on this?

Sounds like this is just what I wanted. Any way to test this out?

We're hoping to merge it next week, after which there will be a build available here, and also include it in v7.7 (January) unless other issues are found.

@luc-ass, thanks to @m-ripper's efforts, this has shipped:

Users with pre-assigned tasks are also invited automatically:

Let us know if you have more ideas :)

Thanks, we have already tested one run with the new task assignment. It works and looks great.
We noticed, that tasks can only be assigned to one person at a time. Could this be changed to allow for more assignees?
Our use-case would be, that some tasks are performed by two people and there is also a backup for if someone is sick.

Got it, @luc-ass! We've had another request for this too -- https://github.com/mattermost/mattermost-plugin-playbooks/issues/1247. cc @itao


docs: improve sentence

typo in the param name

uhmmm, the original sentence is correct: when currentColor is detected, the icon will be always rendered as masked image, otherwise will be rendered as a bg icon, check the logic here: https://github.com/unocss/unocss/blob/main/packages/preset-icons/src/core.ts#L93
The problem is that  vscode-icons:file-type-light-db has no colors, but it do not contain currentColor, so it will be always rendered as a bg icon and not as a masked icon.

maybe we can choose another icon and also update the sentence to include "doesn't contain currentColor":
For example, `vscode-icons:file-type-light-db`, an icon with colors (the `svg` doesn't contain  `currentColor`) that will be rendered as a background image. Use `vscode-icons:file-type-light-db?bg` to render it as a mask image and bypass it's colors.

anyway, both sentences are wrong, the sentence should be:
For example, `vscode-icons:file-type-light-db`, an icon with colors (the `svg` doesn't contain `currentColor`) that will be rendered as a background image. Use `vscode-icons:file-type-light-db?mask` to render it as a mask image and bypass it's colors.


Change "init" feature to be less obstructive in split screen scenarios

The "init" feature overwrites any state set by the user before it runs. This is annoying in contexts where the "init" feature can't be disabled (like a collection of examples where some depend on it). It should detect when the user has already set a value and not run.

Should now be fixed. Now checks if the value is None before overriding.


Master Bookkeeper is getting overloaded with connection refused errors

We see lot of connection refused errors
In large clusters, the spark performance is getting degraded when the driver gets launched in worker nodes.

@kvankayala can you also share stack traces to point out the endpoints that usually see this

I see a lot of following errors:

App > 20/02/05 22:44:52 pool-34-thread-5 ERROR CachingFileSystem: Error while getting Node HostName. Fallingback on RemoteFileSystem. org.apache.thrift.shaded.transport.TTransportException: java.net.ConnectException: Cannot assign requested address (connect failed)

App > 20/02/05 22:56:42 pool-35-thread-3 ERROR CachingFileSystem: Error while getting Node HostName. Fallingback on RemoteFileSystem. org.apache.thrift.shaded.transport.TTransportException: java.net.SocketTimeoutException: Read timed out
App > 20/02/05 23:08:37 pool-38-thread-2 ERROR CachingFileSystem: Error while getting Node HostName. Falling back on RemoteFileSystem. org.apache.thrift.shaded.transport.TTransportException: java.net.SocketTimeoutException: connect timed out
We don't have the stack trace. Because we tackle the exception by reading the file information directly from s3. (in getFileBlockLocations method in CachingFileSystem class)
In Spark, we wants the list of the files and their size to compute RDD partitions.
App > 20/02/05 22:55:11 main INFO SparkFileStatusCache: prepared cache with 1824 dirs and 364800 files
App > 20/02/05 22:55:26 main INFO InputPathProcessor: Using 8 threads for listLocatedStatus
This is happening before the tasks are allocated to the executors i.e., before DAGScheduler.
Using sparklens, I could observe that the driver is consuming lot of time than expected.

The part of code that caused this regression was reverted


[Advise]Implement Ethical Moderation Feature for Open WebUI

Is your feature request related to a problem? Please describe.
Many administrators share Open WebUI with their communities for public benefit, but issues arise when some users, either intentionally or unintentionally, trigger OpenAI's ethical moderation, which can lead to account suspensions. This is a major concern for administrators who want to ensure their community stays within ethical boundaries, while also preventing users from inadvertently violating terms.
Describe the solution you'd like
I suggest adding an ethical moderation feature to Open WebUI. This feature would automatically detect and block potentially dangerous or inappropriate content. If such content is detected, the system could filter out the request and return a response pre-configured by the administrator using specific keywords.
One option for implementing this would be to integrate groq's llama guard model into the system. This model could be configured in the admin backend, significantly reducing the risk of OpenAI account bans due to ethical violations. Additionally, allowing administrators the flexibility to connect other models and customize prompt responses would ensure a more adaptable and secure moderation process.
Describe alternatives you've considered
Another option could be providing a system where administrators can select between multiple moderation models, such as llama guard, OpenAI's built-in moderation system, or other local models. For sensitive topics like politics, it might be helpful to allow the admin to configure local and OpenAI models separately.
Additional context
It would be ideal if this ethical moderation system could be as flexible as the keyword-based search and retrieval-augmented generation (RAG) options, letting admins choose the model and prompts for effective moderation. For political or sensitive topics, there could be an option to use separate moderation models for local and cloud-based (OpenAI) interactions.

https://openwebui.com/f/justinrahb/moderation_filter


Failed with FQDN verification of domain name including numbers other than 9

The title is as follows.
Success: www9.example.com
Failed : www1.exaple.com
I think there is a problem with the following code.
Validators.swift(L320)
if (!self.regex("[a-z\u{00a1}-\u{ffff0}-9-]+")(_part)){
Thank you.

I have pushed a new version 5.1.2 that addresses the issue.
Thanks for pointing it out


Trim all whitespace from tests

Just a small request. Vows in the terminal is an absolute pain to troubleshoot when there's a ton of whitespace/newline characters in the output. Would it be too much trouble in the future to strip all all whitespace from these elements?

Which output is this? Are you referring to assertion errors for html comparisons?

Mhmm

Mhmm

Mhmm

I see your point, definitely. To play devil's advocate, though: those whitespace and newline characters matter for the purposes of string equality assertions. That is, if the results have 3 newlines but the expectation only has 2, and we strip those out before printing to the user, then you'd really be feeling the troubleshooting pain.

@nhunzaker There are there more for checking if the tests pass even with spaces and newlines :)
And also they serve as examples. :D

That's fair. Certainly a difficulty for my fringe use case, but I'll manage :).

@nhunzaker You can change the whitespace in tests but at maximum limited to remove a single space/newline or something like that.


TOC set with Ordered List property set to true reverts on save

When attempting to set the Table of Contents to use an ordered list, it updates, but then reverts on save. This behavior is also noticed if you set the value in User Settings too.

Can't reproduce in latest version.


Ch2 vcf file download

Dear Tiago Antao!
Thank you for your book, I'm always enjoying with it.
I ran the following codes to download vcf files at chapter.2 (Working_with_VCF.ipynb)
!rm -f genotypes.vcf.gz 2>/dev/null
!tabix -fh ftp://ftp-trace.ncbi.nih.gov/1000genomes/ftp/release/20130502/supporting/vcf_with_sample_level_annotation/ALL.chr22.phase3_shapeit2_mvncall_integrated_v5_extra_anno.20130502.genotypes.vcf.gz 22:1-17000000|bgzip -c > genotypes.vcf.gz
!tabix -p vcf genotypes.vcf.gz

, and I got error
[E::idx_test_and_fetch] Error reading "ftp://ftp-trace.ncbi.nih.gov/1000genomes/ftp/release/20130502/supporting/vcf_with_sample_level_annotation/ALL.chr22.phase3_shapeit2_mvncall_integrated_v5_extra_anno.20130502.genotypes.vcf.gz.tbi"
Segmentation fault

I added a line of code and It worked
!rm -f genotypes.vcf.gz 2>/dev/null
!wget ftp://ftp-trace.ncbi.nih.gov/1000genomes/ftp/release/20130502/supporting/vcf_with_sample_level_annotation/ALL.chr22.phase3_shapeit2_mvncall_integrated_v5_extra_anno.20130502.genotypes.vcf.gz.tbi
!tabix -fh ftp://ftp-trace.ncbi.nih.gov/1000genomes/ftp/release/20130502/supporting/vcf_with_sample_level_annotation/ALL.chr22.phase3_shapeit2_mvncall_integrated_v5_extra_anno.20130502.genotypes.vcf.gz 22:1-17000000|bgzip -c > genotypes.vcf.gz
!tabix -p vcf genotypes.vcf.gz

Environment
!samtools --version
samtools 1.10
Using htslib 1.10.2
Copyright (C) 2019 Genome Research Ltd.

Thanks a lot. Unfortunately I think this might be a bug on the specific version of samtools.
I actually regret not having fixed the versions of the tools wells for the book.


update eslint's comma-dangle rule to always-multiline.

Summary
update eslint's comma-dangle rule to always-multiline.
This includes the output of invoking yarn fix to fix everything. No
other changes are included.
Checklist

[x] Ran make check-style to check for style errors (required for all pull requests)
[x] Ran make test to ensure unit and component tests passed

As part of this, I'm investigating the best way to streamline rebases for feature branches. Once I have a plan for that, I'll post here and unblock the review/merge.

To avoid merge conflicts, and assuming this commit goes in as COMMIT it should suffice to:
# Rebase as normal from the commit prior, resolving any necessary merge conflicts
git rebase COMMIT^
# Now rebase against the eslint changes, using a strategy that ignores
# upstream changes when merge conflicts occur. Given the previous,
# successful rebase, this should only be the newly added trailing commas.
git rebase --strategy-option=theirs COMMIT^
# If any files were deleted in the local branch, the rebase may be interrupted
# and the files will need to be marked for deletion again.
git status --porcelain | awk '{if ($1=="UD") print $2}' | xargs git rm
git rebase --continue
# Once the rebase has finished, run another linting pass and commit
yarn fix
git add --all
git commit -m 'adopt updated eslint changes'


CONFIG_THREAD_LOCAL_STORAGE (selected by PICOLIBC) sends sparse into an infinite loop

Describe the bug
This is admittedly a bug in the sparse tool itself but it's triggered by very specific Zephyr conditions.
To Reproduce
Steps to reproduce the behavior:
west build  samples/hello_world -p -b rpi_4b -- -DZEPHYR_SCA_VARIANT=sparse
 => hangs forever, infinite loop in sparse tls.c

Crl-C
ninja -C build -j1
 Building C object zephyr/arch/arch/arm64/core/CMakeFiles/arch__arm64__core.dir/tls.c.obj
 => hangs forever

west build  samples/hello_world -p -b hifive1 -- -DZEPHYR_SCA_VARIANT=sparse
 => same infinite loop

Same infinite loop with intel_ish_5_4_1, arduino_due and others. No infinite loop with intel_adsp_cavs25 (which does not have THREAD_LOCAL_STORAGE)
Workaround 1
EDIT: a bit more complicated now, see below.
--- a/lib/libc/Kconfig
+++ b/lib/libc/Kconfig
@@ -72,7 +72,7 @@ config MINIMAL_LIBC
 config PICOLIBC
        bool "Picolibc library"
        select COMMON_LIBC_ABORT
-       select THREAD_LOCAL_STORAGE if ARCH_HAS_THREAD_LOCAL_STORAGE && TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE
+#      select THREAD_LOCAL_STORAGE if ARCH_HAS_THREAD_LOCAL_STORAGE && TOOLCHAIN_SUPPORTS_THREAD_LOCAL_STORAGE
        select LIBC_ERRNO if THREAD_LOCAL_STORAGE
        imply COMMON_LIBC_MALLOC
        depends on !NATIVE_APPLICATION

Disabling tls.c still avoids the issue but it requires using the separate picolibc module as added to zephyr/west.yml by d0c75f3b96a8. Then the following command avoids the infinite loop:
west build  samples/hello_world  -b rpi_4b -- \
  -DCONFIG_PICOLIBC_USE_MODULE=y  -DZEPHYR_SCA_VARIANT=sparse -DCONFIG_THREAD_LOCAL_STORAGE=n

Workaround 2
west build  samples/hello_world -p -b rpi_4b -- -DZEPHYR_SCA_VARIANT=sparse -DCONFIG_MINIMAL_LIBC=y

CONFIG_MINIMAL_LIBC=y seems to also turn off THREAD_LOCAL_STORAGE
Expected behavior
No infinite loop.
Impact
Impossible to use sparse static analyzer on these platforms.
Harder to debug other sparse issues like #63003
Logs and console output
See above
Environment (please complete the following information):
Linux
Zephyr SDK 0.16.1
Zephyr commit ea4a463cc00d
https://github.com/marc-hb/sparse/commit/3848a76ba49f
Additional context

#63003

This is a bug in the sparse tool.

Reproduced again with most recent sparse commit adceff0ab6e3
and zephyr commit<PHONE_NUMBER>d1
The infinite loop is located in delete_pseudo_user_list_entry() which tries to remove an entry never found in an extremely large (millions) and probably cyclic "pseudo_user" list:
==69099==    at 0x13F6AA: delete_pseudo_user_list_entry (simplify.c:258)
==69099==    by 0x13F7D4: rem_usage (simplify.c:276)
==69099==    by 0x13F832: remove_usage (simplify.c:284)
==69099==    by 0x1431CD: switch_pseudo (simplify.c:1704)
==69099==    by 0x14367D: simplify_associative_binop (simplify.c:1826)
==69099==    by 0x1468D7: simplify_instruction (simplify.c:2752)
==69099==    by 0x12999B: clean_up_insns (optimize.c:42)
==69099==    by 0x129B82: optimize (optimize.c:98)
==69099==    by 0x12938C: linearize_fn (linearize.c:2577)
==69099==    by 0x1293FF: linearize_symbol (linearize.c:2593)
==69099==    by 0x119F96: check_symbols (sparse.c:306)
==69099==    by 0x11A0EB: main (sparse.c:332)

valgrind does not find anything suspicious.

    So, optimize them away at simplification time.

    Note: casts between pointers (OP_PTRCAST) should also be
          optimized away but the original type is used for a
          number a things (for example in check_access()) and
          can't be optimized away so simply (yet).

    Signed-off-by: Luc Van Oostenryck<EMAIL_ADDRESS>
 simplify.c                    |  5 +++--
 sparse-llvm.c                 |  4 ++++
 validation/optim/cast-kinds.c | 24 ++++++++----------------
 validation/optim/cast-nop.c   | 18 ++++++++++++++++++
 4 files changed, 33 insertions(+), 18 deletions(-)
 create mode 100644 validation/optim/cast-nop.c

Interestingly, BUILD_ASSERT(sizeof(intptr_t) == sizeof(long)); fails in kernel.h just before the infinite loop.
That would stop a regular compiler but it does not stop sparse.
The trigger is in the very short zephyr/arch/arm64/core/tls.c file. Commenting out the calls to z_tls_data_size() and z_tls_copy(stack_ptr) in that file makes the infinite loop go away.
@keithpackard is there still a way to disable tls.c while still using the Zephyr SDK, picolibc and generally keeping everything else the same? My one-line Kconfig hack above has no effect anymore and short of disabling picolibc entirely, everything else I tried in kconfig kept tls.c active.
--- a/cgcc
+++ b/cgcc
@@ -106,6 +106,8 @@ if ($do_check) {
     chomp($multiarch_dir);  # possibly remove '\n' from compiler
     $check .= " -multiarch-dir " . $multiarch_dir if $multiarch_dir;

+    $check = "valgrind  $check";
+
     print "$check\n" if $verbose;
     if ($do_compile) {
        system ($check) == 0 or exit 1;

@keith-packard is there a way to disable tls.c while still using the Zephyr SDK, picolibc and generally keeping everything else the same? My one-line Kconfig hack above has no effect anymore and short of disabling picolibc entirely, everything else I tried in kconfig kept tls.c active.

Picolibc (as built in the SDK) uses thread local storage internally for a few variables, including 'errno'. If you don't use any of those variables, you can disable TLS. I'm not sure that's entirely satisfactory here though; presumably you want to use sparse with lots of different configurations.
If you build picolibc as a module, then you can disable thread local storage. The only limitation here is that you cannot use the C++ standard library as that uses the C library ABI, including TLS variables exposed by libc like errno.

The Picolibc module can be enabled by selecting CONFIG_PICOLIBC_USE_MODULE in the application configuration file.

https://docs.zephyrproject.org/latest/develop/languages/c/picolibc.html
Thank you! I'm typically not using zephyr/west.yml and of course it didn't have the picolibc module :-( I switched back to zephyr/west.yml for the purpose of this issue.
After a few other, time-consuming detours to #67035 and #67036, the following workaround runs fine and avoids this infinite loop! I'll edit the description at the top and add it.
west build  samples/hello_world  -b rpi_4b -- \
  -DCONFIG_PICOLIBC_USE_MODULE=y  -DZEPHYR_SCA_VARIANT=sparse -DCONFIG_THREAD_LOCAL_STORAGE=n

-DCONFIG_THREAD_LOCAL_STORAGE=y (the default) reproduces the infinite loop again.

I'm not sure that's entirely satisfactory here though; presumably you want to use sparse with lots of different configurations.

I'm trying to keep the workaround(s) for this issue as small and as least intrusive as possible for two reasons:

keeping the difference as small as possible between infinite loop versus not keeps narrowing this issue and pointing precisely at what exactly triggers the infinite loop.
from a more "selfish" perspective, keeping that same difference small should hopefully give us more accurate sparse coverage (assuming we add the picolibc module in the future)

Interestingly, BUILD_ASSERT(sizeof(intptr_t) == sizeof(long)); fails in kernel.h just before the infinite loop.
That would stop a regular compiler but it does not stop sparse.

Actually, isn't that size inconsistency  a serious problem in the Zephyr build system? A sparse-specific issue for sure but a Zephyr problem nevertheless. Re-opening!

Easy reproduction with the attached tls.i file:
sparse sparse-infinite-loop-tls.i

.txt
  => infinite loop

sparse-infinite-loop.i.txt

Easy reproduction with the attached tls.i file:

Thanks.
It should be fixed on mainline Sparse now.

sparse fix confirmed! Thanks @lucvoo. @keith-packard now the same command fails differently:
west build  samples/hello_world -o=-k0 -b rpi_4b  --  -DZEPHYR_SCA_VARIANT=sparse
zephyr/lib/libc/picolibc/libc-hooks.c: note: in included file:
zephyr/include/zephyr/posix/sys/stat.h:40:11: error: unable to open 'sys/_timespec.h'

Interestingly, -DCONFIG_PICOLIBC_USE_MODULE=y prints a lot of warnings including many instances of Trying to use reserved word '_Complex' as identifier but it succeeds:
west build  samples/hello_world  -b rpi_4b -- \
  -DCONFIG_PICOLIBC_USE_MODULE=y  -DZEPHYR_SCA_VARIANT=sparse -DCONFIG_THREAD_LOCAL_STORAGE=y

< wall of warnings >

echo $?
0

I will open new bugs if needed, this one has become too long.

Thank you! I'm typically not using zephyr/west.yml and of course it didn't have the picolibc module :-( I switched back to zephyr/west.yml for the purpose of this issue.

I just got bit by that again... -DCONFIG_PICOLIBC_USE_MODULE=y is SILENTLY ignored when the picolibc module/git repo is not there. @keith-packard would there be a way to catch and report this instead of silently falling back on the SDK? This is not user friendly :-)

My bad:
warning: PICOLIBC_USE_MODULE (defined at lib/libc/picolibc/Kconfig:6) was assigned the value 'y' but
got the value 'n'. Check these unsatisfied dependencies: ZEPHYR_PICOLIBC_MODULE (=n). See
http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_PICOLIBC_USE_MODULE and/or look up
PICOLIBC_USE_MODULE in the menuconfig/guiconfig interface. The Application Development Primer,
Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be
helpful too.

Of course this is not visible when buried under 400 lines of sparse warnings....
So maybe what's needed is some sort of -Wconfig-error option...

Thank you! I'm typically not using zephyr/west.yml and of course it didn't have the picolibc module :-( I switched back to zephyr/west.yml for the purpose of this issue.

I just got bit by that again... -DCONFIG_PICOLIBC_USE_MODULE=y is SILENTLY ignored when the picolibc module/git repo is not there. @keith-packard would there be a way to catch and report this instead of silently falling back on the SDK? This is not user friendly :-)

I haven't any idea how to do this; presumably some Kconfig magic?


Disable batching without using AuditTo

Is there any way to disable batching for the Seq sink? I have a use case where I need to run some code in partial trust. The regular .WriteTo.Seq extension method creates a sink that relies on the PeriodicBatchingSink. This sink uses the SynchronizationContext.SetSynchronizationContext method under the hood, which is marked with the [SecurityCritical] attribute - meaning that it won't run under partial trust.
The current workaround is to use .AuditTo.Seq instead. However, this also allows exceptions in the logging pipeline to propagate, which I don't want. Basically, I want some middle ground: I want to disable the batching as with the .AuditTo method, but I also want to swallow exceptions as with the .WriteTo.
Is there any existing way to achieve this?

Hi Martin,
One trick you might try, and that might get around the exception propagation, is:
.WriteTo.Async(wt => wt.Logger(lc => lc.AuditTo.Seq("..."))

It's a bit convoluted, but essentially:

Async gets the network request off of the main thread, which should keep the latency impact down, and
Logger sets up a regular exception-swallowing sink to collect and log any exceptions thrown by the inner auditing sink

Does this helps?

Great, thanks for the follow-up! :-)


feat: integrate better-n

I think that the better-n plugin aligns well with this plugin, hence I've added cross-integration. What do you think?

Thank you! :heart:


read_filtering_khmer_count_unique_kmers_workflow naming is inconsistent

Expected behavior
Consistent use of read_filtering_khmer_count_unique_kmers_workflow naming as opposed to read_filtering_khmer_count_unique_reads_workflow
Actual behavior
read_filtering_khmer_count_unique_reads_workflow is used as a key to the parameters dict in read_filtering_khmer_count_unique_kmers_workflow

Yes, good point. We will get that fixed in the next release!
This rule is running the unique-kmers.py script from khmer, so its name should be "read_filtering_khmer_count_unique_kmers_workflow".

This has been fixed in v1.2.