adapting plutovg to read/write RGB565 bitmaps

Hi there. I'm working on a fork of your neat little library for use on embedded systems.
One optimization I'm attempting to make is the ability to do direct writes to particular types of bitmaps, or otherwise it uses callbacks to write to arbitrary sources it can't "directly" bind to. I got the callbacks working, and the "direct binds" work for RGBA8888 bitmaps, but not RGB565. Some of my colors are off.
Firstly, I have a question. BYTE_MUL() in plutovg-blend.c: it appears to multiply each channel by 1/255 of the alpha value passed in.
So when you use it, you're basically doing half the blend, up front, and then completing the blend with the destination pixel for each pixel in the loop.
Is that an accurate description of what you're doing there?
Also I'm attempting to do it with RGB565 and it's infuriating me, in part because RGB565 is big endian in order to work with 90% of the actual true color display hardware out there on embedded platforms.
I've got composition_solid_source somewhat working but I don't understand the intent of composition_solid_source_over.
Is it one of these? https://en.wikipedia.org/wiki/Blend_modes
And if so which one? I'm a little lost here, so anything you can tell me about this functionality - particularly with the thought in mind that I don't have an alpha channel to work with - I'd be so grateful.
Thanks in advance.

Hi there!
Yes, your understanding of BYTE_MUL() is correct. It effectively multiplies each channel of the pixel by a factor derived from the alpha value. This operation allows for an initial blending step, applying the alpha value before the final blending occurs with the destination pixel.
Regarding composition_source_over, it implements the "source-over" blend mode. This means that the source pixel is drawn over the destination pixel, taking the alpha channel into account for transparency. The logic ensures that the source color is blended based on its alpha value while also considering the destination pixel's current color.
For your implementation with RGB565, since you don’t have an alpha channel, you'll need to adjust the blending approach. You can treat the source pixels as fully opaque (using const_alpha set to 255) when composing the colors. The key is to ensure you are handling the conversion between ARGB32 (premultiplied) and RGB565 correctly, especially considering the endianness.
When converting, remember to extract the RGB components from ARGB and then shift them into the appropriate positions for RGB565. If you need more help with specific parts of your implementation, feel free to ask!
Best of luck with your optimizations!

Thank you! That's very helpful. I do have some code I may need help with in this regard, but I'm going to try to bang on it in light of your explanation first and see how far I get. Thanks again for your help. Leaving this open for the moment, because I'll probably be back with questions, but if you close it, I won't complain. :)

Oh there is one thing I would like, if you're up for it. I don't understand the implementation of BYTE_MUL() enough to make a derivative function, but it would be nice to have a version of BYTE_MUL that works with RGBA instead of ARGB (i think in your code it's actually RGBA and BGRA from my perspective because my pixels are all big endian due to display hardware). Basically right now I'm converting to ARGB/BGRA from RGBA and back in order to use BYTE_MUL but if I had a BYTE_MUL() that could handle RGBA/ARGB directly that would be fantastic
This code should demonstrate the order of my pixels:
static uint32_t vector_to_rgba32(uint32_t vcol) {
    uint32_t alpha = plutovg_alpha(vcol);
    uint32_t red = plutovg_red(vcol);
    uint32_t green = plutovg_green(vcol);
    uint32_t blue = plutovg_blue(vcol);
    return (alpha<<24)|(red<<0)|(green<<8)|(blue<<16);
}

If you're not up for it, that's okay. If you are, wonderful!

i added you to my private repo
plutovg-blend.cpp
That's my current playground for blend. It's still sloppy because I'm in the middle of ripping it up, but hopefully it helps

I see that I’ve been added to your private repo. I’m looking forward to checking out your work in plutovg-blend.cpp—it looks like a great playground for blending magic!
If you ever want to discuss things more privately, feel free to reach out to me via email at<EMAIL_ADDRESS>

Sure thing. It gets a little weird because I've sort of shoehorned some of my graphics lib into your code. There's some of my pixels template structs in that code. Here's more info on them
Basically my lib allows you to define pixels of an arbitrary binary format. I also have helpers for common formats, so you can do like rgba_pixel<32> which is shorthand for a pixel with 4 channels, named R,G,B, and A each 8 bits. So if you see that stuff, that's what it is. I'm using your conversion functions rather than my pixels, because although my lib can convert (often transparently) between pixel formats (and does so in the callback code) it is necessarily a bit slower than your hard coded mechanism.

Greetings from The Lounge
your 565=>888 conversion appears a bit optimistic to me... https://github.com/codewitch-honey-crisis/plutovg_tvg/blob/a18a738662ae8bed7600dd00c474a8a79e459728/src/main.c#L144-L148
565 white 0xffff  would become 888 dark green 0x1f3f1f wouldn't it? I would expect 0xffffff
or is there a realigning multiplication in in rgb16_to_vector() ?

oh i think i copied that from the Zig reference implementation. could be wrong. i honestly don't remember but i usually & 15, & 31, & 15 when I write, so that's why I think I lifted that code. Thanks for pointing that out. I'll sort it out.

I would at least shift 'em 565 bits to the most significant range of the 888 => 0xf8fcf8
and vice versa when going back: if you accidentally use the lsb range, tiny nuances will have huge effect which could explain the extream saturation we saw in your camera pic!
So you did understand blending itself perfectly.

I finally got all my blends working optimized, except one half of my argb32/rgb16 conversion process uses my graphics lib's somewhat slower generalized conversion function because when I tried hardcoding it for some reason I can't get it to work.
If you're interested in it:
constexpr static const uint16_t rgb16_r_left = 0;
constexpr static const uint16_t rgb16_g_left = 5;
constexpr static const uint16_t rgb16_b_left = 11;

static uint32_t rgb16_to_argb32p(uint16_t pixel) {
    // ::gfx::rgb_pixel<16> px(bits::from_be(pixel),true);
    // ::gfx::vector_pixel px2;
    // ::gfx::convert(px,&px2);
    // return px2.native_value;
    pixel=bits::from_be(pixel);
    uint32_t b = (pixel >> rgb16_r_left) & 0x1F;
    uint32_t g = (pixel >> rgb16_g_left) & 0x3F;
    uint32_t r = (pixel >> rgb16_b_left) & 0x1F;
    r = (r * 8.225806451612903f);
    g = (g * 4);
    b = (b * 8.225806451612903f);
    // Return the ARGB Premultiplied pixel value
    return (((uint32_t)255) << 24) | (r << 16) | (g << 8) | b;
}

static uint16_t argb32p_to_rgb16(uint32_t pixel) {
    ::gfx::vector_pixel px(pixel,true);
    ::gfx::rgb_pixel<16> px2;
    ::gfx::convert(px,&px2);
    return bits::from_be(px2.native_value);
    // uint16_t a = (pixel >> 24) & 0xFF;
    // uint16_t r = (pixel >> 16) & 0xFF;
    // uint16_t g = (pixel >> 8) & 0xFF;
    // uint16_t b = (pixel >> 0) & 0xFF;
    // if (a != 255) {
    //     r = (r * a) / 255;
    //     g = (g * a) / 255;
    //     b = (b * a) / 255;
    // }
    // r=((uint8_t)r)>>3;
    // g=((uint8_t)g)>>2;
    // b=((uint8_t)b)>>3;
    // // Return the RGBA Plain pixel value
    // return bits::from_be((r<<rgb16_r_left)| (g << rgb16_g_left)|(b << rgb16_b_left));
}

The commented code represents an alternative. The first section commented code will work. The second section of commented code does not work, and I don't know why. The part above it that replaces it does, using my library's convert<>() template function.

I see the logic of multiplying with 8.225806451612903 I would prolly r * 255 * 15 integer mul might be faster on small CPUs, and at least... it looks nicer. Why didn't you add any fraction to the green channel ? 63 * 4 will not reach 255...

i was coding quickly. not really thinking, just trying to get it to work. that was a result of quick calc divide. I did plan on cleaning it up, but i forgot to in the last iteration. i'll do it once you're done.

once I am done?
I think you typed that, too, too quickly :)

Sorry, i posted in the wrong place. that was meant for sam not you.

@codewitch-honey-crisis This library

Oh there is one thing I would like, if you're up for it. I don't understand the implementation of BYTE_MUL() enough to make a derivative function, but it would be nice to have a version of BYTE_MUL that works with RGBA instead of ARGB (i think in your code it's actually RGBA and BGRA from my perspective because my pixels are all big endian due to display hardware). Basically right now I'm converting to ARGB/BGRA from RGBA and back in order to use BYTE_MUL but if I had a BYTE_MUL() that could handle RGBA/ARGB directly that would be fantastic
This code should demonstrate the order of my pixels:
static uint32_t vector_to_rgba32(uint32_t vcol) {
    uint32_t alpha = plutovg_alpha(vcol);
    uint32_t red = plutovg_red(vcol);
    uint32_t green = plutovg_green(vcol);
    uint32_t blue = plutovg_blue(vcol);
    return (alpha<<24)|(red<<0)|(green<<8)|(blue<<16);
}

If you're not up for it, that's okay. If you are, wonderful!

Hey @codewitch-honey-crisis! This library tackles each channel independently, so you can say goodbye to the endless ORs and ANDs. Check it out: agg_pixfmt_rgba.h. Happy coding!


Merge main into release/v2

this one is done with a merge commit?

Yes- it should be done with a merge commit


add oauth2 DSL

Nice! I am merging this and adding grape 10 to the build matrix.

Thanks!

@masarakki i am thinking to change the dsl from oauth2(*scopes) to authorize!(*scopes).
The naming suggest less of the implementation that is beneath the authentication of your DSL but more of the functionality.
What do you think of it?

I cared that authenticate may conflict with other libraries (ex grape himself),
so I named oauth2. (I think no one uses multiple oauth2 authenticate libraries at once.)
and authorize!(*scopes) is few information to understand how authorize because there are a lot of authorize methods like Basic, Digest. OAuth, OAuth2, ...

You are right. It might result in conflicts. oauth2 will do.


[functions] change instance id from string to int and expose number of instances in context

Motivation
When writing a connector reading from a list of sources, it is hard for the connector implementation to decide how
to distribute the list of sources across the function instances. because there is no way to tell how many function
instances is running.
Changes

change instance id from string to integer (since the implementation is already assuming instance id is an integer)
add getNumInstances in the context
expose both interfaces in source and sink connector context

@jerrypeng @merlimat @srkukarni @rdhabalia : please take a look at this change. the motivation is I need some context to distribute a list of tasks (e.g. tables, files or buckets) among source connector.

What about python changes?

okay will take a look at python

take this out of 2.2. will revisit this for 2.3

@srkukarni we need this for debezium integration. so I will go ahead with this change and leave python to a separate PR. is that okay?

run cpp tests


feat(layout): Add and framework

Add ant framework liband en language config
Resolves #27

Codecov Report

Merging #28 into develop will decrease coverage by 0.64%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           develop     #28      +/-   ##
==========================================
- Coverage     8.33%   7.69%   -0.65%
==========================================
  Files            3       3
  Lines           24      26       +2
  Branches         9       9
==========================================
  Hits             2       2
- Misses          14      16       +2
  Partials         8       8

Impacted Files
Coverage Δ

src/index.js
0% <0%> (ø)
:arrow_up:

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 5815703...4659597. Read the comment docs.


Feature request: Add sugar for | tail -n+2

I feel almost ashamed to ask for a feature that has such an easy workaround, but sometimes, I need to manipulate a CSV file, select rows and columns based on their headers, and output a table without headers.  The --no-headers option is of no help because I rely on the headers of the input file.  The workaround on Unix is | tail -n+2, but I believe that an option in xsv to implement this behaviour could make sense as well.
Is it worth considering adding this feature?

What about xsv select col1,col2 data.csv | xsv slice -ns 1 | xsv table?

That is even longer than | tail -n+2 ;)  I was more thinking of a flag for this in the "Common options" section but I would completely understand if you found that unnecessary.

FWIW, tail -n+2 isn't correct, since header names can contain new lines. In general, one can't use standard unix utilities with CSV data because of that.
I think I'd rather not increase the number of common options. Too many options makes tools harder to use IMO. I think I'd rather encourage the user to define their own short-cuts. For example, to get your table output without headers:
alias xsv-noh-table="xsv slice --no-headers --start 1 | xsv table"
xsv select col1,col2 data.csv | xsv-noh-table

Or something like that.

Alright, thank you very much for your answers.


himalaya-vim: repo split & migrated

Previously the Vim plugin was a part of the main repository, but the author has elected to split out the project and move away from GitHub to an open source Git forge @ https://git.sr.ht/~soywod/himalaya-vim/
As such, the previous plugin is currently broken, but now it can be updated indepentently.
Description of changes

@yanganto
My config is currently broken because it's derived through home-manager, but the plugin errors in the exact same manner as the himalaya binary. I know it says not to edit the generated Vim Nix file, but I kept getting 404s (with and without the new repository added... and this sort of thing happens to me a lot for not living in the West) so I took the path of least resistance.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Fixed my Himalaya config and this built and works!

While this waits in review, if anyone needs the copy/paste version for Vim plugin overrides:
  himalaya-vim = vimUtils.buildVimPluginFrom2Nix {
    pname = "himalaya-vim";
    version = "2022-10-09";
    src = fetchFromSourcehut {
      owner = "soywod";
      repo = "himalaya-vim";
      rev = "747ff2a6055839cb5b403b540883515af37b7117";
      sha256 = "sha256-0WP9JoKN/A5bmnRjQJnquk3mRC7NEflUAdqki7+zqBU=";
    };
    dependencies = with pkgs; [ himalaya ];
  };

I don't want continue force pushing to try to keep the branch up to date.

fwiw, builds ok for me on {x86_64,aarch64}-{linux,darwin}

@SuperSandro2000 Should we address the Vim Python script indentation bug or not?

I opened #201714 to fix the update script

@SuperSandro2000 I have rebased with https://github.com/NixOS/nixpkgs/pull/201714 which covers the indentation bug in Nixpkgs.


Code security transaction report in PDF

Summary
This feature enables you to generate a report of security alerts occurring during a specified period and export the results in PDF format.
Intended Outcome
Enterprise users must comply with strict security regulations that require producing transactional reports of security alerts. The reports must meet specific requirements and, generally, must be generated by the security vendor directly. This feature streamlines the compliance reporting process, enabling users to generate reports that meet regulatory standards.
How will it work?
You will be able to specify a reporting period and generate a report of security alerts that occurred during that period. The report will be able to be generated in PDF format.

With our exciting roadmap ahead, we've made the tough decision to deprioritize this feature to focus on higher-impact projects. If you’re interested in this feature, please share your feedback in the GitHub community so we can track interest and consider it in the future.

We wanted to provide more details on why we removed this from the roadmap. We are currently focusing on other features. This has been removed from the roadmap for now, and we will revisit it once we can provide a more accurate delivery estimate.
If you’re interested in this feature, please share your feedback in the GitHub community so we can track interest and consider it in the future.


Can I translate your 'README' into Korean?

Hello, I am a Korean and a developer who loves 'chalk'. Developer experience has increased using 'chalk' now.
Thank you for your efforts.
I would like to introduce this awesome 'chalk' to Korea more and share the experience that more developers use it and the developer experience is further enhanced. If you allow me, I would like to proceed with the translation of readme into Korean.
I apologize if you find this question offensive. I hope you have a great day today!

I appreciate the kind offer, but we don't have any plans to provide localized docs. It's just too much work to keep it updated (I have tried it on other projects in the past).


[ChannelTabs] Request: sync bookmark name with channel name

Is your feature request related to a problem? Please describe.
When a bookmarked channel is renamed, the bookmark name remains unchanged.
Describe the solution you'd like
When a bookmarked channel is renamed, the bookmark would be renamed accordingly.
Describe alternatives you've considered
None
Additional context
Sync would be disabled if the bookmark was previously renamed by the user.
Sync could be reactivated if the bookmark rename input would be submitted empty.
The bookmark rename input placeholder would therefore contain the channel name.

Thanks

Optionally, the bookmark name would not strictly synced with the channel name, but with a customizable template (e.g. {channelName} by default, {serverName} - {channelName} as one of the possibilities), providing an alternative solution to #127.


Groupby rank top

Adds support for groupby to top, bottom, and rank.  Based on @andportnoy's work in https://github.com/quantopian/zipline/pull/1260, with a few small fixes for datetime dtypes and some more test coverage.

Coverage decreased (-0.05%) to 85.105% when pulling a93594368848384d82f0239c30f328e9e3c12f0d on groupby-rank-top into 161922897e1adb6c4ddb4e2d6fd09795b0211f8f on master.


Add multiple contact details of lead

May be this is not issue but i am very keen to how can we add multiple contact details like email id,phone  number etc by dynamically rendering form

This is interesting use case. We can achieve this with Json field if we want to add multiple emails of a contact or adding multiple contacts for a lead. Definitely plan in next releases.

i didn't get you as i am new to django, can you please show me any project or resource from where i can get reference regarding this question specifically using django forms or form set

@dvijparekh no problem. We will do that in next iterations.


Add conversion from Bytes to Vec

This takes the into_vec function from this PR and makes it work on master. It also extends it with an equivalent BytesMut version and a Into<Vec<u8>> impl for each.

Public into_vec is probably not needed when From is implemented for Vec.

I quite like the pattern of having a generic version and a monomorphic function that covers the most common case in order to make type inference nicer, but it's your call.

I think

into_vec can be added any time later, but it can't be removed because of backward compatibility
and into_vec may give users wrong idea that operation is cheap, but it is not always cheap

Anyway, it's not exactly my call, because I'm not the maintainer of the library.

Oh sorry, I got you confused with the maintainer. Yeah, I agree with that thinking. I think I'll keep the function but make it private, since I prefer unsafe code to be contained in inherent impls if possible

I'm fine w/ adding a conversion -> Vec, but yeah it can't be guaranteed to be cheap in all cases.

I guess you're right that it gives the wrong impression, I'll drop the pub

@carllerche Any update on this?

Thanks for the PR. I added some inline comments.

Relates to #86

What's progress of this PR? I think it's really useful for performance critical code.  @carllerche


Either hide or heavily discourage the use of reference and fromRef

Although safe methods like castTo are provided, users might still use fromRef and .reference to manually cast objects (see #970), keep references without properly managing their lifecycle, etc. Therefore, JniGen generated code should heavily discourage the use of these inner workings and eventually hide them. Right now, we need references to send these finalizable JObjects between multiple isolates, but https://github.com/dart-lang/sdk/issues/55062 will make these objects sendable.
cc/ @dcharkes

Hello, @HosseinYousefi
I found here you mentioned that we can send JObject between isolates, but when I send the reference to another isolate and call formRef constructor, the first time it's ok to do this, but when I send this reference again, the fromRef method will throw error like this:
signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
Abort message: 'JNI DETECTED ERROR IN APPLICATION: JNI ERROR (app bug): jobject is an invalid global reference: 0x357a (deleted reference at index 427)

Is it possible for us to send JObject to another isolate?

I have explained one way to send them here: https://github.com/dart-lang/native/issues/970#issuecomment-1980477374

@HosseinYousefi
Thank you for your answer, that's works like a charm~

@HosseinYousefi Thank you for your answer, that's works like a charm~

With the newly released 0.8.0, you can skip the manual way (in Dart's main branch – not yet in stable) and just pass JObjects around as you would with any other object.

With the newly released 0.8.0, you can skip the manual way (in Dart's main branch – not yet in stable) and just pass JObjects around as you would with any other object.

@HosseinYousefi , I have update to 0.8.0, when I pass the JObject to an isolate, the error throws, I use the flutter stable channel now.
E/flutter (13009): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Invalid argument(s): Illegal argument in isolate message: (object is a Pointer)
E/flutter (13009):  <- Instance of 'JGlobalReference' (from package:jni/src/jreference.dart)
E/flutter (13009):  <- $type in Instance of 'BarcodeScanner' (from package:hybrid_vision_android/src/jni.g.dart)
E/flutter (13009):  <- scanner in Instance of '_DetectCommand' (from package:hybrid_vision_android/src/barcode_detection.dart)
E/flutter (13009):
E/flutter (13009): #0      _SendPort._sendInternal (dart:isolate-patch/isolate_patch.dart:250:43)
E/flutter (13009): #1      _SendPort.send (dart:isolate-patch/isolate_patch.dart:231:5)
E/flutter (13009): #2      AndroidBarcodeDetector.detect (package:hybrid_vision_android/src/barcode_detection.dart:51:14)
E/flutter (13009): <asynchronous suspension>
E/flutter (13009): #3      _BarcodeDetectionViewState.buildDetectView.<anonymous closure>.<anonymous closure> (package:hybrid_vision_android_example/views/barcode_detection_view.dart:173:38)
E/flutter (13009): <asynchronous suspension>
E/flutter (13009):

With the newly released 0.8.0, you can skip the manual way (in Dart's main branch – not yet in stable) and just pass JObjects around as you would with any other object.

@HosseinYousefi , I have updated to 0.8.0, when I pass the JObject to an isolate, the error throws, I use the flutter stable channel now.
E/flutter (13009): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Invalid argument(s): Illegal argument in isolate message: (object is a Pointer)
E/flutter (13009):  <- Instance of 'JGlobalReference' (from package:jni/src/jreference.dart)
E/flutter (13009):  <- $type in Instance of 'BarcodeScanner' (from package:hybrid_vision_android/src/jni.g.dart)
E/flutter (13009):  <- scanner in Instance of '_DetectCommand' (from package:hybrid_vision_android/src/barcode_detection.dart)
E/flutter (13009):
E/flutter (13009): #0      _SendPort._sendInternal (dart:isolate-patch/isolate_patch.dart:250:43)
E/flutter (13009): #1      _SendPort.send (dart:isolate-patch/isolate_patch.dart:231:5)
E/flutter (13009): #2      AndroidBarcodeDetector.detect (package:hybrid_vision_android/src/barcode_detection.dart:51:14)
E/flutter (13009): <asynchronous suspension>
E/flutter (13009): #3      _BarcodeDetectionViewState.buildDetectView.<anonymous closure>.<anonymous closure> (package:hybrid_vision_android_example/views/barcode_detection_view.dart:173:38)
E/flutter (13009): <asynchronous suspension>
E/flutter (13009):

As I said, it's not available on stable channel yet. Use the main channel.

As I said, it's not available on stable channel yet. Use the main channel.

Is there a exact Dart version that I can do this on stable channel?

Is there a exact Dart version that I can do this on stable channel?

@dcharkes In which version will @pragma('vm:deeply-immutable') land?

Thanks, I'll wait for this feature, Can I use the JGlobalReference to do the manual steps like before?

Thanks, I'll wait for this feature, Can I use the JGlobalReference to do the manual steps like before?

Yes, you can.

Not currently planned as we still need reference for certain Jni.env functionalities that don't exist in a nicer way.


Gan

changed Paddle API to support GAN (generative adversarial network) training.
Added demo/gan to generate images for cifar-10, mnist and synthetic 2d-uniform data.
Fixed a small bug in BatchNormBaseLayer.cpp so that it would not change the frameHeight and frameWeight between input and output layer.

Coverage decreased (-0.06%) to 62.858% when pulling 36fed2c3a2627ae43e2c7f28c7d2c10e124043da on wangyang59:gan into 5a67a04e63cd771524b90fdbcfaf7fe237f34147 on baidu:develop.

Coverage decreased (-0.06%) to 62.858% when pulling 702b9b26c52e00dd6a88a3780e5fd87bfaf8dcdc on wangyang59:gan into 5a67a04e63cd771524b90fdbcfaf7fe237f34147 on baidu:develop.

Coverage decreased (-0.04%) to 62.875% when pulling 913d1c09d659adb948722a68ee2d1d8ee980c10c on wangyang59:gan into 5a67a04e63cd771524b90fdbcfaf7fe237f34147 on baidu:develop.


Webapp large list window fix

fix bug with large list windows not being set, Issue 511

[X] Change details added to Unreleased section of changelog.md?
[X] Added/updated documentation and descriptions in .schema.mof files where appropriate?
[X] Examples updated for both the single server and small farm templates in the examples folder?
[X] New/changed code adheres to Style Guidelines?
[X] Unit and Integration tests created/updated where possible?

This change is

Codecov Report

Merging #526 into dev will increase coverage by <1%.
The diff coverage is 100%.

@@         Coverage Diff          @@
##            dev   #526    +/-   ##
====================================
+ Coverage    88%    88%   +<1%
====================================
  Files        80     80
  Lines      7589   7590     +1
  Branches      3      3
====================================
+ Hits       6716   6717     +1
  Misses      870    870
  Partials      3      3

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 a6aea22...e08ee52. Read the comment docs.

the test functions in SPDSC.util didn't seem to work with ciminsance properties.. so I create a hash table with the values just for the test methods... not the most elegant solution, but I could not get anything else to work, and I didn't want to mess with the helper functions. Open to suggestions if you want it addressed differently.

Reviewed 3 of 3 files at r1.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.Throttling.psm1, line 140 at r1 (raw file):

    if ($testReturn -eq $true)
    {
        #if ((Test-SPDSCObjectHasProperty $DesiredSettings "HappyHour") -eq $true)

Happy with the approach, we can ditch the commented out line here.

Comments from Reviewable

Review status: 2 of 3 files reviewed at latest revision, 1 unresolved discussion.

Modules/SharePointDsc/Modules/SharePointDsc.WebApplication/SPWebApplication.Throttling.psm1, line 140 at r1 (raw file):
Previously, BrianFarnhill (Brian Farnhill) wrote…
Happy with the approach, we can ditch the commented out line here.

Done.

Comments from Reviewable

Reviewed 1 of 1 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


fix(react-router): fix matchPathname with basepath

In micro-frontend applications, host app will inject basepath to micro app. When the host app is navigating to its own route, the mounted micro apps will monitor and trigger redirect as well without respecting the basepath.

@SeanCassiere could you please take a look at this? We're encountering a bug in our product.

@SeanCassiere we actually also encountered this problem. we have app1 and app2 running in the same pager and both of them use tanstank router.
app1 does not have basepath while app2 has /app2 as basepath and a redirect on root router
when i navigated to href / (which is app1's route), it triggers the app2's redirect on / (which it shouldn't and it should only care about the href staring with /app2)

@czizzy I'm away till mid October, as such I've asked @schiller-manuel to review this PR.


build: semantic-release

Changes
This PR finalizes the requirements for semantic-release functionality

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Scorecards returning empty findings

A fix for https://github.com/ossf/allstar/issues/422
With this commit https://github.com/ossf/scorecard/commit/2ea140a3ee9279904f29ed335b2bbef0923f242e, it seems the msg.X values aren't populated any more for token permissions. Instead we can get the information from l.Msg.Finding.
Tested it locally.

@jeffmendoza Please take a look

Sorry, missed this earlier.

This was not intentional from the Scorecard side. While we're working on a new results format, we've been trying to avoid changing the current one. This slipped through. @laurentsimon FYI.

Good catch. That's why I'd like more e2e tests for SARIF https://github.com/ossf/scorecard/issues/2665. /cc @naveensrinivasan


feat: add live preview

What will change?

Add live preview to blog template
Add tagging & live updates
Remove xray

Please see comment about the documentation in the README on the main branch And should we hide the button to open the CtfToolbox inside the live preview like in the marketing template?

Good point, should that just be removed completely?

Good point, should that just be removed completely?

I would say only hide inside an iframe, thats the solution we've done in the marketing one.
As far as I can remember, the toolbox is still something we have to keep on the deployed demo


Can't bind the keyboard input for voice input

should work according to the document
https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Input/Speech.html

@Ailegen see PR referenced above. The dropdown selector UI should still work if you click on it. It's not a functional bug, it's just a visual bug. The PR referenced though fixes the visual issue

Closing this one out as fixed by #4661


Extensions we use and maintain

Hi,
I finally had a little time and i get back to you with some free extension we use and maintain:
https://github.com/EaDesgin/magento2-pdf-generator2
https://community.magento.com/t5/Magento-2-Feature-Requests-and/Invoice-shipment-credit-memo-PDFs-Remove-Zend-Pdf-replace-with/idi-p/45879
Free extension using mPDF library to generate pdf from html.
https://github.com/EaDesgin/magento2-warehouses
Free extension to solve the issue (at least partially ) https://community.magento.com/t5/Magento-2-Feature-Requests-and/Multinode-Inventory/idi-p/46810
https://github.com/EaDesgin/magento2-mobiledetect
The extension we use to separate mobile and desktop themes.
The last 2 ware created after creating some custom development.
We wold rely use some community feedback. Let me know what you think.

Hi @eadesignro,
thanks for your recommendation, I will have a look on these (hopefully tonight) and come back with feedback.

Hi @eadesignro, I finally came to a small review. As you can see in the contribution Guide, I would like to see some minor changes. Most things are common and not a big deal to "fix" or "improve". It just makes sure, that everybody knows the purpose of the extension and knows how to install it.
Due to that, I created a small PR (https://github.com/EaDesgin/magento2-pdf-generator2/pull/3) where I added three new sections to the Readme.
A battle proofed and standard way to make things more clear is to use badges. You might want to checkout http://shields.io/ to generate some for your Repositories.
The contribution guide also points to a point, where code should be tested. I do not force contributors to add tests, but I would love to see the major parts of the extension tested.
Please check out the Contribution Guide.
This is, what I would say, a best practice extension for the M2 Awesome List. You might want to check it out:

https://github.com/yireo/Yireo_Whoops
https://github.com/ebizmarts/magento2-magemonkey

In Summary:

Readme Improvements (Badges can help)
Add some Unit or Integration Tests to make sure, the core of the Functionality works well. If this would be done later, it's ok. I will do my best to also add a few PR's to your Extensions!

Thanks for your recommendations.
PS: I love your Videos! This is what makes Magento 2 Awesome!

Hi,
Thanks for the effort and time spent. We can close the issue now.
P.S. During the spring we are swamped with work but unit testing is must!


Prometheus module - NodePort not working correctly

I believe the prometheus chart has been updated and the module is no longer working as expected.
Chris H suggested the following:
kubectl create namespace prometheus
helm install stable/prometheus \
             --name prometheus \
             --namespace prometheus \
             --set alertmanager.persistentVolume.storageClass="gp2",server.persistentVolume.storageClass="gp2"

Instead of having to modify the security groups and lookup a single ip, you can access via port-forward:
kubectl port-forward -n prometheus deploy/prometheus-server 9090

This would allow us to remove the manual editing of prometheus-values.yaml and the creation of the custom storage class.
The URL then changes to: http://localhost:9090/targets

Only edit to this is the http://localhost:9090 from Cloud9 we need to change the port-forward to:
kubectl port-forward -n prometheus deploy/prometheus-server 8080:9090

And then instruct the user to Preview Application


MCPE 1.1 not connecting

What the title says. With PE 1.1 neither onClientConnect, onClientDisconnect or handleMessage are being called, and the client doesn't show the server in the server list.

This is not a bug, you are simply using the server wrong. Could I see all your server implementation code?

i'm using 19133

https://github.com/Team-Pepsi/PepsiProxy/blob/master/pepsiproxy_main/src/main/java/net/daporkchop/pepsiproxy/PepsiProxy.java#L31


Sqlite FTS virtual tables cause all subsequent migrations to fail

The following issue presented itself when trying to implement full text search on my Sqlite db.
A manual Atlas migration with CREATE VIRTUAL TABLE CustomerFts USING FTS5(col1, col2, ..); fails with error: no such module fts5.
That statement can be run without issue in the database. Maybe the Atlas dev db doesn't have it?
I created the virtual tables without using Atlas migrations. And I created a number of triggers to update the virtual tables.
This is all running great.
However, now every new migration using Atlas fails with an error: "error in trigger insertCustomerFts: no such module: FTS5"
This migration is for a different table that doesn't even have a search index and trigger.
How could that happen?
Thanks for any feedback!

Hey! This happens since the SQLite driver compiled with Atlas does not have the FTS5 extension enabled. I will have a look if and how we can add support for this and will come back to you shortly.

would I be correct in assuming that the addition would need to be somewhere here?

Is this issue still active? Is there a workaround to compile atlas with a sqlite driver that supports fts5?
This issue is blocking me from using atlas or recommending it to others. FTS is quite common in sqlite.


Dangling images

Do you think it would be a good idea to add a docker image prune into the update script somewhere?

There already is a docker system prune in ./ethd update. Going further than that is likely not worth it. I just tried it on a machine that was recently updated, and it freed: Total reclaimed space: 21.19MB
I'll call that good enough :)


create repo in ansible galaxy

pleasee update to use ansible galaxy. for easy to use.
thanks

@smilelikeshit It is already in galaxy it looks like.
ansible-galaxy install mrlesmithjr.motd


make sure that a new tag 'AppServer' is used to deploy

Changes to make sure that a new tag 'AppServer' is used to deploy in

can you update the create-indexer-instance script too?

done


[FR1 MASTER] Checkout components refactor

Main ticket #1410
The first step for making checkout extendable is to refactor currently used components in multi-step checkout. This will also include refactoring checkout store to move some refresh logic there.
Extensible checkout won't have one single parent component (currently there is multi-step-checkout.component). This component after refactors should only manage progress bar and keep track of the current step.
Checkout components shouldn't have logic for fetching data, reloading cart. Components should only observe needed data (user addresses) and invoke generic checkout methods like (select address).
Checkout store/service should take care of fetching data after changes in checkout. Eg. user selects address and delivery modes are requested once again. Logic that currently happens in components should be handled in effects or in service.
Subtickets:

#1729
#1731
#1732
#1736
#1734

Extensible checkout FR1 merged into develop


optimizing around unchecked-get

The unchecked-get use case consists of safe code that contains one or two small unsafe calls which check application-level constraints -- for example, eliding a bounds check, or asserting that a string is utf-8:
fn foo() {
    let vec: Vec<i32> = vec![...];
    ...
    unsafe { vec.get_unchecked(i) }
    ...
}

Ideally, code like this would be optimized just as well as the original safe code (and of course would not have a bounds check). However, the introduction of an unsafe block and a call to an unsafe function can be a barrier to optimization, such as in the Tootsie Pop model (#21).

The traditional example is:
fn example_optimizable(b: &mut Context, bigs: &mut [Big]) {
    let index: usize = calculate_index(b);
    b.big = unsafe { bigs.unchecked_get(index) };
}

Which is α-equivalent to
fn example_optimizable(b: &mut Context, bigs: &mut [Big]) {
    let index: usize = get_pointer_to_big(b);
    b.big = unsafe { bigs.mutate_through_pointer(index) };
}

This is a problem in Tootsie Pop style models, but not in most others (such as Stacked Borrows) where unsafe blocks do not have any operational effect.


[Community Modules] Prepare handover documentation for the modulectl

Description
We want to create a documentation that is collecting all things that need to be communicated explicitly when handing over the new modulectl (migrate from CLI). Things to cover:

deprecate module-configl.yaml manifest to use a local file (fetch from git instead)

manifest will automatically write an entry named rawManifest to .spec.resources

do not use annotation operator.kyma-project.io/doc-url anymore, use .spec.info.documentation instead
do not use label operator.kyma-project.io/module-version anymore, use .spec.version instead
flag --module-config-file / --module-config has been renamed to --config-file and has shortcut -c (both, scaffold and create command)
flag --git-remote needs to be provided with the value of the url of the GitHub repository to provide the security scanners config
verify what moduleRepo is in https://github.tools.sap/kyma/module-manifests/blob/main/modules/api-gateway/fast/module-config.yaml#L11 and check if it can be replaced with .spec.info.repository
new naming schema: .metadata.name is concatenated from <module-name>-<version> (instead of <module-name>-<channel> (See #62)
mention that we want to support both approaches at the same time; for testing, they can already provide ModuleTemplates in the new format accompanied by ModuleReleaseMeta. KLM will try to use the new approach and fall back to the old approach if not found. To not sync new ModuleTemplate to the SKR while testing, the internal label can be used.
manifest and defaultCR in the specified module config file MUST be links to the released asset of the module, not links to local files
modulectl must not be used for the creation of manadatory ModuleTemplates https://github.com/kyma-project/lifecycle-manager/issues/1979

Acceptance Criteria

[ ] Handover documented in this issue

Migration Guide: Kyma Module Submission Pipeline
Introduction
This guide provides detailed instructions for migrating from the current Kyma CLI tool to the new modulectl tool. It covers all necessary changes and deprecations to ensure a smooth transition.
Deprecations and Changes

Release Channel Configuration

Deprecated: The channel field is no longer required in the config file.
New Approach: Release Channel is configured separately in ModuleReleaseMeta.

Manifest and Default CR Resource

Deprecated: The manifest used to offer a local file as input.
New Approach: Fetch the manifest directly from the GitHub release. See an example here.

Annotations and Labels

Deprecated: The documentation link will not be added as an annotation operator.kyma-project.io/doc-url in ModuleTemplate.
New: The documentation link will be presented in .spec.info.documentation instead. The input is configured in the config file as below:info:
  documentation: <link>

Deprecated: The module version is not a label operator.kyma-project.io/module-version anymore.
New: Instead, it's being persisted as .spec.version.

Command Flags

Deprecated: Flag --module-config-file.
New: Use --config-file with shortcut -c (applicable for both scaffold and create commands).
For the rest of the newly introduced flags, use modulectl create module -h to check for the definitions.

ModuleTemplate Naming Pattern

Deprecated: .metadata.name as <module-name>-<channel>.
New: .metadata.name is concatenated as <module-name>-<version>.

Mandatory ModuleTemplates

Restriction: At the moment, modulectl is not used for the creation of mandatory ModuleTemplates. Please use Kyma CLI instead until the next release.

Migration Period
KLM supports consuming ModuleTemplate both in the old and new naming patterns. For each Kyma Module, a dedicated ModuleReleaseMeta must be provisioned into the KCP cluster accordingly. The general submission process should be as follows:

Module Team releases a new version in the GitHub release.
Module Team configures the version to be released in the module config (in the new format) in the internal module-manifest repo.
Module Team updates the version in the related channel in ModuleReleaseMeta.
The submission pipeline gets triggered.
After certain quality gates are passed, the new version of ModuleTemplate gets provisioned into KCP first.
The updated ModuleReleaseMeta gets provisioned into KCP.
Outdated ModuleTemplate (the version not mentioned in ModuleReleaseMeta) should be removed. This step allows both outdated and new versions to coexist temporary. KLM only handle the version defined in ModuleReleaseMeta.

Additional Notes

Support for Both Approaches: Both old and new approaches will be supported simultaneously. For testing, provide ModuleTemplates in the new format accompanied by ModuleReleaseMeta. KLM will try to use the new approach and fall back to the old approach if not found. To avoid syncing new ModuleTemplate to the SKR while testing, use the internal label.

Bug that needs to be fixed: https://github.com/kyma-project/modulectl/issues/113


Inference widgets - local app

Hi guys - Thank you for open sourcing these amazing inference widgets ! I managed to test a token classifier using Flair in my local computer. Very practical for demo testing !
I have some questions :

When running a widget app locally, does it run on our cpu or on HF server ?
Is the model cached somewhere in the local computer ? (It takes some time to load it for the first time)
Can we use our own local model instead of using a deployed version in HF ?

Hi @amtam0 it runs on the API, explaining the first load time.
The code to actually run the inference is available and you can try doing:
cd huggingface_hub/api-inference-community
./manage.py docker --model-id=flair/ner-german

That should run the exact equivalent that runs on the API (if it's not a transformers model) on localhost:8000.
Editing this line here: https://github.com/huggingface/huggingface_hub/blob/2c0f4648e89770f1728bb8b46402c74e286a1a24/widgets/src/lib/InferenceWidget/InferenceWidget.svelte#L24 should allow you to use your own local server instead of the API (all requests will run against the same model, so not all widgets will work, just the one that is the same "task" as your model.
Does that help ?
Cheers.

Thank you @Narsil for these tips,
I will try this and come back to you !
I am using Transformer based model with Flair (camembert-base)
The goal is to run both model and Widget app on the local server.


implemented in_app_persistent_mode

Hey, I've just added a new switch to winafl: -fuzz_mode in_app_persistent
it will take the normal target_module and target_function/target_offset and hook it into a pre_loop_start_handler instead the pre_fuzz_handler and post_fuzz_handler as we discussed.
If you disagree with something or has any suggestions to make it even better, let me know

I've added a readme section.
I'm thinking about instead of adding a new test.cpp file I could just change your test.cpp file to contain a while loop option.
what do you think?

Thanks!
Regarding testing, If it can be done with minimal changes to test.cpp (you'll probably need a command line option to enable the loop and something to serve as target function) I guess that could work.
pipe_overlapped is an interesting idea. Have you checked if it affects performance in any way?

Hey, I've added a clause for looping in test.cpp, I've just moved the functionality into a separated target function and from main I'm supporting an option to run the target in a loop or just once and return.
Regarding performance, I've tested both old winafl(with busy sync ReadFile) and this forked version(with overlappedio ReadFile) and didn't see any noticeable difference.
But I was quite happy to see that in_app persistent mode added about 20% performance gain.
The performance results on test.exe:
new_afl -loop: ~1000-1100/sec
new_afl no loop: ~900/sec
old_afl:                ~900/sec

Cool! What is the command line you used for testing?  Might make sense to include it in the readme as well. And what did you use as the target function? fopen?

I've used the test_target function as target. I'll add an example cmd to the readme for the test.exe.
fopen for example could actually work as a target function with the in_app persistent approach.

Cool! I tested this today and everything seems to be working normally, so I'm going to merge now. Thank you for contributing!
FYI I won't release a new binary version today because I'm going on vacation for 2 weeks after today and don't want to accidentally break something. Also, there are several other PRs in the queue so I'll probably bundle all of them.

Hey @guyio would you mind elaborating a bit on how to instrument specifically the fopen function? The command you have on the readme works perfectly (-target_offset 0x1000) however I'd like to see that behavior as well. Also, am getting "ASSERT FAILURE: c:\projects\winafl\winafl.c:925: (0) (invalid option) when issuing the -persistence_mode in_app parameters, there's something in my command line that winafl doesn't like - however it doesn't make sense cause the parameters look correct, did you ever encounter that?
Thanks!

Indeed, however on my target unfortunately this doesn't happen, hence I'm trying to figure out what's happening. Here's the command:
afl-fuzz.exe -i in -o out -D C:\DRIO7\bin32 -t 20000 -- -coverage_module something.dll -fuzz_iterations 5000 -target_module binary.exe -target_method wmain -nargs 2 -persistence_mode in_app -- binary.exe @@
I have exported the wmain function (can also confirm with dumpbin) and tried with the offset parameter, still no luck!

With that said, to reproduce it, run the following command with an incorrect offset .e.g:
afl-fuzz.exe -i in -o out -D C:\DRIO7\bin32 -t 20000 -- -coverage_module test.exe -fuzz_iterations 5000 -target_module test.exe -target_offest 0x1023 -nargs 2 -persistence_mode in_app -- test.exe @@ loop
here for example I'm hitting the fopen function directly which will never work!

Did you compile winafl yourself? This mode is only on master and still not on a release.

Yes I did this morning, but you can also try grabbing the binary from here: https://ci.appveyor.com/project/yoava333/winafl/build/job/7n486f2akspdyqck/artifacts

And again: There's nothing wrong with your test binary, that works perfectly (the 0x1000 offest) - am referring to my own harnesses and tests!

I'm confused, are you getting an error on an argument? or the setup simply doesnt hit the target function?
If you omit the '-persistence_mode in_app' does it run?

Yeah ironically I'm having both issues!
a) I am getting an error regarding an argument and you can reproduce it by instead of passing 0x1000 offset to your test binary, try to use a different one (.e.g 0x1023) - you will get that error which shouldn't happen. Am attaching screenshot to make things easier.

Also b) indeed I never hit the target function

I've just compiled master and ran the test with the following:
afl-fuzz.exe -i in -o out -D ...bin32... -t 100+ -- -coverage_module test.exe -fuzz_iterations 5000 -target_module test.exe -target_offset 0x1010 -nargs 2 -persistence_mode in_app -- test.exe @@ loop
and it is working.
also tried with 0x1023 and it times out gracefully.

@guyio your pull request added a new command pipe message 'P' sent in pre_fuzz_handler.
Both afl-showmap.c and afl-tmin.c were relying on the first message sent to detect the end of fuzzing (see ReadFile in run_target), so it prevents tmin and showmap to work properly (they retrieve the coverage information before the fuzzing starts).

Oh you are right. I didn't ever use these 2.
The right thing to do will be to refactor the 'winafl' run_target into a single place as of now it's a complete code duplication in all executrices.
I'll issue a simple PR that will address the extra 'P' pipe command for both (should be really easy).
But for future work I think this whole winafl pipe should be a single API used from all different apps


Update PyPI metadata files: add setup.cfg etc

Update to the newer PyPI / python packaging metadata file structure.
A lot of this was cribbed from how Flask itself
exposes its metadata.

I'm not 100% sure of all of these flags, so if anyone sees something amiss, please holler.

@nickjj can you take a look at this PR?
I'd like to land it before tagging a new release that incorporates #157 as this will be smoother pushing it up to PyPI.

Oh yeah, I know what you mean about not being 100% sure on the flags. This file has always been a thing for me where I get it working in 1 project after lots of experimenting and then copy / paste in every other project I use.
With that said, I haven't used this style of setting it up but I put your PR side by side with Flask's set up and it looks good based on I don't see anything syntactically different and all of the major properties are present.
One suggestion I'd make is to bump up the python_requires version. Version 2.7 has been end of life since January 2020 and using it nowadays will be a constant battle of compatibility issues.
Flask 1.1.X requires Python 3.5+ and Flask 2.X requires Python 3.7+. Flask 2.X is less than a year old and I know plenty of folks are still using 1.X but I do know a lot of people / companies are using Python 3.7+ since anything before that has been end of life'd too. For example Python 3.5 was released in 2015 and EOL'd in 2020.
With that said, despite Python's support since this is a Flask extension what do you think about sticking with Flask's Python support? That would mean selecting Python 3.5 in this case. Folks can still use the latest and newest versions on their own, this is just the minimum version enforcement from a code compatibility point of view.
The one downside to picking 3.5 over 3.7 is it would limit this code base to using features that only exist in 3.5 or lower. For example f-strings are wildly useful but they're only available in Python 3.6+. It's not the end of the world not to have access to them but it's something to think about.

Yeah, it's definitely time to drop python 2 and bump the minimum version of python 3. However, that's out of scope for this PR, so I filed https://github.com/flask-debugtoolbar/flask-debugtoolbar/issues/165.
I was confused that you mentioned Flask 2.x requiring 3.7, when the blog post says it only requires 3.6+... https://palletsprojects.com/blog/flask-2-0-released/
But let's not chat about that here, do it over in #165


Compiling SU(4) Quantum Circuits to IBM QX Architectures

What is the expected behavior?
I am investigating this compilation technique that won the IBMQ developer challenge award and was playing around with the code  provided to try and implement it on Qiskit.
However, I note that the technique, even though it is open-source, was not taken up by the IBM team and implemented in Qiskit.
I am wondering why this may be? Maybe the Qiskit transpiler is better than the technique as it may be outdated since it was released in 2018?
I want to ensure that I am not wasting my time with this transpilation technique if the Qiskit transpiler now outperforms the said algorithm.
Please let me know.

Would I call SABREs' functionality by choosing optimisation_level=3 for example? I am working through the quantum volume  demo and want to ensure that the code is optimised to its fullest degree. Would appreciate pointers on things I can play around with such as transpiler passes and pass manager.

You can specify the routing_method='sabre' and layout_method='sabre' as arguments to the transpile function to enable SABRE (independent of setting the optimization_level).


[docs] Improve release guide

[ ] I have followed (at least) the PR section of the contributing guide.

Add a couple of instructions that were missing from the release guide.

@mui/core maybe you have other improvements for the release guide, please share if so 😃

@DiegoAndai Here's more that I felt should be part of the README
--- a/scripts/README.md
+++ b/scripts/README.md
@@ -16,18 +16,21 @@ A typical release goes like this:
    ```sh
    git remote add material-ui-docs https://github.com/mui/material-ui-docs.git
    ```
+4. Generate a Github Token at https://github.com/settings/personal-access-tokens/new and add it to your shell rc script (either `.bashrc` or `.zshrc`) as `GITHUB_TOKEN`.

 ### Prepare

 The following steps must be proposed as a pull request.

-1. Generate the changelog with `yarn release:changelog`
-   The output must be prepended to the top level `CHANGELOG.md`
-   `yarn release:changelog --help` for more information.
-
+1. Generate the changelog with `yarn release:changelog`. The output must be prepended to the top level `CHANGELOG.md`. Run `yarn release:changelog --help` for more information. If your Github token is not in your env, pass it as `--githubToken my-token` to the above command.
 2. Clean the generated changelog, to match the format of https://github.com/mui/material-ui/releases.
 3. Update the root `/package.json`'s version
-4. `yarn release:version` (🔔 manually remove `^` from packages with prerelease version, eg. `-alpha`)
+4. `yarn release:version`. Points to note:
+
+   1. 🔔 manually remove `^` from packages with prerelease version, eg. `-alpha`
+   2. Keep the package versions of stable public packages same as the root `package.json` version.
+   3. No need to update versions of any internal/private packages like `docs`, `typescript-to-proptypes`, etc.
+
 5. Open PR with changes and wait for review and green CI
 6. Merge PR once CI is green and it has been approved

@brijeshb42 thanks! I added the suggestions 😊🚀


Ccp 642 release items on favorite list changes

This branch depends on an updated version of the PWA. Right now it is on a forked branch here https://github.com/aaron-martin/pwa/tree/CCP-642-release-items-on-favorite-list-changes

Pull Request Test Coverage Report for Build 1398

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 34.509%

Totals

Change from base Build 1397:
0.0%

Covered Lines:
1234

Relevant Lines:
3516

💛  - Coveralls


'eslint.runtime' binary executed with wrong cwd

Use case: to enable ESLint configs written in TypeScript, we should pass '--loader TS_LOADER_PACKAGE_OR_PATH' to Node runtime. Also, it would be nice to use host Node binary (not bundled with VSCode).
Theoretically, we can use "eslint.runtime": "node" & "eslint.execArgv": ["--experimental-loader", "TS_LOADER_PACKAGE_OR_PATH"] settings combination. But problem is that 'runtime' binary executed with cwd: process.cwd() in client/src/client.ts:
const result: ServerOptions = {
	run: { module: serverModule, transport: TransportKind.ipc, runtime, options: { execArgv, cwd: process.cwd(), env } },
	debug: { module: serverModule, transport: TransportKind.ipc, runtime, options: { execArgv: execArgv !== undefined ? execArgv.concat(debugArgv) : debugArgv, cwd: process.cwd(), env } }
};

In my case, process.cwd() is '/', so Node just can't find TS loader installed in my project directory. Sure, absolute path can be used... but it machine dependent. And there is no ability to use something like "${WORKSPACE_DIR}/node-modules/ts-loader-path" in VSCode settings.
As a workaround, I use special script passed to extension via "eslint.runtime": ".vscode/spawn-node.js", then call 'process.chdir(dirname(fileURLToPath(import.meta.url)))' before spawn real Node process (which is required a bit magic with IPC, but it's out of scope).
So, my proposal is to provide ability to use project directory as cwd on runtime execution. As additional parameter like 'eslint.executeRuntimeInWorkspaceDir', or by default - it doesn't matter.

The underlying problem here is that ESLint (the npm module) is very sensitive to the working directory when it comes top config file resolving.
The working directories used can be control by the eslint.workingDirectory. Have to tried to use one setting that awlays uses the root of the workspace?

Problem appears before Node loads something (ESLint, configs, etc.) - I'm talking about Node startup flags, and module resolution at this stage: '--experimental-loader' CLI flag requires absolute path / file URL / global package name (which is not suitable), or relative path / package name which is resolved in current directory (== Node process cwd).
You can easily reproduce this issue: just create 'loader.mjs' in project directory, add  "eslint.runtime": "node"
& "eslint.execArgv": ["--experimental-loader", "./loader.mjs"]" to the VSCode settings and open project in VSCode. Node failed to start because can't find './loader.mjs' file.

Understood: the problem is that for security reasons the working directory the node executable is started on is not the workspace folder. This is why it will not find the file right now. As a workaround you might want to try an absolute path.
Need to think about if I could change this in trusted workspaces.

In order for ESLint to load eslint.config.js for ESM (type: modules) projects, we have to include --loader ./.pnp.loader.mjs in execArgs, otherwise modules are resolve through pnp as commonjs.
Unfortunately, I had to create a note on the workaround in the devs readme for configuring the execArgs in user settings. https://github.com/psychobolt/react-rollup-boilerplate/commit/c376122156bf2f2b2a4813f3ed837ac8bd0742ce#diff-fc2a310fcfedfefb0046def697f932def80cbb1e78c689bc0af3c8eab3e33eceR65.
Supposedly shell script is doable, yarn node but not supported on Windows with WSL. e.g. "eslint.runtime": "./yarn-node.sh"

@psychobolt my yarn-node.js (I prefer to store it inside .vscode dir), works fine with PnP:
#!/usr/bin/env node

import { execSync, spawn } from "node:child_process";
import { dirname } from "node:path";
import { fileURLToPath } from "node:url";

process.chdir(dirname(fileURLToPath(import.meta.url)));

const nodeOptions = execSync("yarn node -p process.env.NODE_OPTIONS")
  .toString()
  .slice(0, -1);

const child = spawn("node", [...process.argv.slice(2)], {
  env: {
    ...process.env,
    NODE_OPTIONS: nodeOptions,
  },
  stdio: ["inherit", "inherit", "inherit", "ipc"],
}).on("message", (data) => {
  if (process.send !== undefined) {
    process.send(data);
  }
});

process.on("message", (data) => {
  // @ts-expect-error
  child.send(data);
});

Above solution works thanks. I had to update my folder permissions to give spawn access. https://edwardbeazer.com/how-to-fix-this-error-spawn-eacces/

Back at it trying to troubleshoot Windows.
Seems like for Windows, passing the script file as the spawn command will create UKNOWN error. Reference: https://stackoverflow.com/questions/43419893/how-do-i-fix-error-spawn-unknown-with-node-js-v7-8-0-on-windows-10
I'm not sure if it was the intention of the language server API, to allow a script command. So I tried the following:
{
  "eslint.runtime": "node",
  "eslint.execArgv": ["./bin/eslint-runtime.js"],
}

This time I got around the previous error however, the entry point is resolved to working directory of VSCode.
Error: Cannot find module 'C:\Users\psychobolt\AppData\Local\Programs\Microsoft VS Code\bin\eslint-runtime.js'
    at Module._resolveFilename (node:internal/modules/cjs/loader:1144:15)
    at Module._load (node:internal/modules/cjs/loader:985:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:135:12)
    at node:internal/main/run_main_module:28:49 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

So for Windows you'll have to end up pointing to the same issues as OP, having to use absolute path in the settings. The following works, if you need to pass additional NODE_OPTIONS.
{
  "eslint.runtime": "node",
  "eslint.execArgv": ["D://User/my-project/bin/eslint-runtime.js"],
}

@psychobolt IMO the right approach is to fix https://github.com/microsoft/vscode/issues/2809 in VS Code instead of every exension coming up with their own story.


Touch GUI ignoring touches

Now that the GUI  and keypad is partially implemented it's obvious that we have a problem with events being ignored.  To reproduce:

Start the system fresh
Touch the 'Standby' button repeatedly - it toggles every touch as expected
Touch the 'Menu' button repeatedly - it actions only every second touch

The same "ignore every second touch" problem appears when dismissing the keypad.

Cleaned up the interrupt handling, removed the PenDown variable and method of handling the pen state.  This seems to have fixed the problem of ignored interrupts.


Can't generate commit's message in intellij

When i use AI commit, system throw error like this:

In spite of, I used my GPT token.

Duplicated https://github.com/Blarc/ai-commits-intellij-plugin/issues/31.


basic unit tests for the core app

add some basic unit tests for switching to diffrent tables

close as as its a too hard basket right now and is pretty easy to test manually


Re-add postpack script

Description
Something seems to have gone wrong with a merge in a recent PR (#12963  I think) that removed a new npm script added to packages/dds/tree when merging main to next. Restoring it so the Performance benchmarks pipeline doesn't fail when it runs for the next branch.

@sonalivdeshpande running it by you just in case. Could you approve?

This commit had merge conflicts but in tree dds package.json coming from https://github.com/microsoft/FluidFramework/pull/12952. Curious why this script did merge 🤔
thanks @alexvy86 for fixing this.


Can postfix loops collect values?

I'd like to do
stuff := n*2 for n of [0..9]

(or with a newline after the const assignment if need be) but I can't seem to get anything like this to work. Am I missing anything?

You need one more set of brackets:
stuff := [n * 2 for n of [0..9]]

Ah, I see, thanks. (The square brackets do embed the result in an extra layer of array, as expected.) I sort of get why the parentheses are desirable in the one-liner I wrote, as otherwise it looks like maybe I am trying to declare stuff ten times, but I don't really see why they should be necessary with a newline, e.g.
stuff :=
   n*2 for n of [0..9]

I think we could/should allow postfix loops/conditions in the right-hand side of a declaration (but not assignment), as we don't expect multiple declarations.


Improve Ansible tests

This change adds more tests to check for different variable uses.

Thanks for the addition @rndmh3ro Could you change the name of the tests to reflect the content? Currently both tests have the same name.

Sure thing @chris-rock, I changed the names!

Thanks @rndmh3ro


Upgrade Z3 to 4.13.3

This is just an issue to discuss upgrading to Z3 4.13.3.
Is this a good idea? I'm not sure.
Pros:

no more emulation for Apple Silicon (4.8.5 does not work on aarch64)
consistency with F* -- HACL* is not left behind using an older version of Z3
elimination of long-standing z3 bugs ("vector overflow, internal error", etc.)

Cons:

more work to update proofs, fix things up
possible performance regressions
users would have to fix their setups to have the proper symlinks.

Status is as follows:

I have had a build running for a while, so far, no file has failed outright -- some had to have their rlimits bumped (via z3rlimit_factor, on the command-line), but no dealbreaker at this stage
however, the build is not finished because some vale files are taking an outrageous amount of time:

[VERIFY] Vale.Curve25519.X64.FastSqr.fst, 49:22.94

What would be needed?

Update nix flake, CI, build, etc.
Proper checks in the build to make sure users have a proper setup
Strengthen proofs and debug why Vale is taking so very long

CC @gebner @mtzguido @R1kM

These are the four files that the build is stuck on:
Hacl.Spec.BignumQ.Mul
Vale.Curve25519.X64.FastMul
Hacl.Spec.Poly1305.Equiv
Vale.Curve25519.FastSqr_helpers

those are currently at 1h+ of Z3 time

We plan to switch the default Z3 version to 4.13.3 in the near future.  I would expect that we'll want to drop 4.8.5 from the distribution at some point as well.  That version is over five years old now.

users would have to fix their setups to have the proper symlinks.

Unless you exclusively work on HACL*, you'll need to do that anyhow.  F* requires 4.13.3, Pulse requires 4.13.3, the number of projects requiring 4.13.3 is only going to increase.

Update nix flake, CI, build, etc.

The F* nix flake already comes with both z3-4.8.5 and z3-4.13.3.

Proper checks in the build to make sure users have a proper setup

F* already checks the Z3 version and you get a somewhat reasonable error message if the setup is not configured correctly:
* Error 357 at Scratch.fst(8,0-9,22):
  - Unexpected Z3 version for 'z3': expected '4.8.5', got '4.13.3'.
  - Please download version 4.8.5 of Z3 from
        https://github.com/Z3Prover/z3/releases
    and install it into your $PATH as 'z3-4.8.5'.

1 error was reported (see above)

Yeah that sounds reasonable, my only qualm is that I don't know how to go about debugging proof obligations that suddenly start taking 40+ minutes -- does the new z3 come with any way to know what's taking so much time? (I can dream: it's Christmas)

But realistically, it would be nice to understand if there's new (non-intuitive) behavior that we need to be aware of for HACL*. As in: "these kinds of things used to work great but now not so much anymore".

Going to write down the failures here:

after four hours:

Failed after: 4:25:13
Full log is in obj/Hacl.Spec.Poly1305.Equiv.fst.checked.{out,err}, see excerpt below:
* Error 19 at /Users/jonathan/Code/everest/hacl-star/code/poly1305/Hacl.Spec.Poly1305.Equiv.fst(183,9-183,56):
  - Assertion failed
  - See also Prims.fst(441,83-441,96)

@gebner I looked at code/poly1305/Hacl.Spec.Poly1305.Equiv.fst in HACL* and the file has an rlimit of 50 -- why are we seeing failures after 4 hours? do you have any sense of what's happening? this seems like irregular behavior that goes beyond of what one might expect from switching to a different version of z3

I think @mtzguido has a lot more experience with the changes in Z3, and with HACL*.

I'm generally favorable about switching to a more recent Z3 for HACL*. However, I believe we first need to reach the point where there is little to no proof performance regression. In particular, I see files now taking 45 minutes to verify as problematic.
If @mtzguido has insights about changes in Z3 that might cause this, and how to debug these proofs, I can dedicate some time in January to work on this.
Regarding fixing local configurations, hopefully Z3 4.13.3 will be easier to install, but it might be useful to include corresponding binaries in the z3-binaries repo to simplify fixing installs.

We found a few proofs in the F* repo showing similar behaviors. It seemed that there's no clear reason (e.g. changing the random seed makes the problem go away), and that between 4.8.5 and 4.13.3 there was some innocuous change that just changed a default, and affected this behavior. I think it would probably be best if we look at these proofs at the Z3 before trying to work with them in F*. I can also try them locally and see if I can minimize them, and if the random seed also affects these.
I think you could consider using 4.8.5 only for these files until the problem is sorted or at least better understood, and 4.13.3 on the rest. Maybe we can later upgrade to 4.14.4 throughout.

Regarding fixing local configurations, hopefully Z3 4.13.3 will be easier to install, but it might be useful to include corresponding binaries in the z3-binaries repo to simplify fixing installs.

There is now a script shipped with F* for this purpose, and installs both versions: ./bin/get_fstar_z3.sh. Running ./everest z3 calls this script too.

My question is: the rlimit puts an upper bound on the "time budget" that z3 has. 50 is a very low rlimit that historically has corresponded to maybe a few minutes, max. I am now seeing files that have an rlimit of 50 fail after six hours, like Hacl.Spec.Poly1305.Equiv.Checked. Why did the meaning of rlimit change?
To me, that is what prevents progress on the migration: if suddenly the rlimit doesn't mean anything anymore, it's going to be very hard to upgrade HACL* to Z3, and it's going to be even harder to maintain those proofs.
Ideally, I would like to understand why rlimit doesn't mean anything anymore in those cases, because I have no recollection of such extreme cases ever happening with the old Z3.
Thanks!

However, I believe we first need to reach the point where there is little to no proof performance regression. In particular, I see files now taking 45 minutes to verify as problematic.

@R1kM I think gathering data would help us make a case. Like, run a build with 4.8.5, another one with 4.13.3, and see how much the Z3 times have changed -- maybe a histogram of the diff (-1 to 1%, +2% to +5%, etc.)

My question is: the rlimit puts an upper bound on the "time budget" that z3 has. 50 is a very low rlimit that historically has corresponded to maybe a few minutes, max. I am now seeing files that have an rlimit of 50 fail after six hours, like Hacl.Spec.Poly1305.Equiv.Checked. Why did the meaning of rlimit change?

Ah yes, good point sorry. This is probably an "rlimit leak": Z3 doing a bunch of work without increasing the rlimit counter. We've found a few of these before and they were fixed. I can try to minimize this one.


Support options for CNVkit segmentation

Use case: using other segmentation methods which may perform better on smaller targeted panels, for example.
I think the usual approach like done for other tools would fit, that is having to add the relevant bits to the YAML configuration.

Luca;
Thanks so much for the suggestion, the latest development version of bcbio now supports:
resources:
  options:
    cnvkit_segment: [--method, haar]

This is undocumented as I'd rather not have this used in people's production environments but agree it can be useful for exploring and tweaking. If you find options that work better for different input types, I'd love to incorporate test cases and make these different segmentation approaches happen automatically within bcbio logic. Thanks again for exploring this.


Introduce short lived tokens

This introduces the ability to generate short lived tokens from your
long lived credentials. Under the covers, it uses the same flow
(cf-vault add ...) but instead of populating the environment with
those credentials, it uses those credentials to call the Cloudflare API
and generate an API token scoped and with a TTL you define.
Here is an example without the short lived tokens
[profiles.long-lived-api-token]
auth_type = "api_token"
email =<EMAIL_ADDRESS>
To use this, you can call cf-vault exec long-lived-api-token and the
environment will be populated like so:
CLOUDFLARE_VAULT_SESSION=long-lived-api-token
CLOUDFLARE_API_TOKEN=xxxxx

Similarly for an API key but with the addition of the
CLOUDFLARE_EMAIL.
Now, providing your API token (or global API key) has permissions to
create new API tokens, you can update your configuration to generate the
short lived credentials using the following configuration.
[profiles.my-api-key]
auth_type = "api_key"
email =<EMAIL_ADDRESS>session_duration = 10
permission_group_ids = [
  "c8fed203ed3043cba015a93ad1616f1f",
  "82e64a83756745bbbb1c9c2701bf816b"
]

  [[profiles.my-api-key.resources]]
  "com.cloudflare.api.account.zone.*" = "*"

Breaking down the new bits.

session_duration is an integer of minutes you want to have the token
alive. Generally this should be low enough to only last a session
(15-60m) but does not have a maximum value.

permission_group_ids an array of permission group IDs that map to
the IDs from the API. Only the IDs are needed here and the names
are not required.

resources is a map of objects (TOML calls them inline tables?) that
have a key/value combination. This represents the scopes of which the
new token will receive upon creation. For ease of creation, I
recommend building the configuration you want in the UI and then as
you hit send, watch the network calls and pull in the scopes to avoid
fiddling with it manually.

Example of the single use token flow

cf-vault add my-long-lived-token and follow the steps to add the new
token (or API key).
modify your session_duration to be greater than 0 but within an
acceptable timeframe.
cf-vault exec my-long-lived-token -- <cmd here> which will use the
short lived credentials. You're able to confirm it is working by
running cf-vault exec ... -- env | grep -i cloudflare and looking
for the new CLOUDFLARE_SESSION_* variables.

The recommended way to use this is to generate a single API token that
has permissions to generate new tokens and store that in cf-vault.
While the global API key will work, it isn't scoped and can create
gun-foot scenarios due to having all the permissions.
Closes #1

  [[profiles.my-api-key.resources]]
  "com.cloudflare.api.account.zone.*" = "*"

can also be written as
resources = [{ "com.cloudflare.api.account.zone.*" = "*" }]

however the library decides to output it like that. I'll have a look if the output can be changed to make that more readbable.

Looks like 1.0.0-rc's solidified arrays of tables and the former is the preferred approach.


File access issues

It appears  I didn't had the latest version after all.   I decided to go ahead with the PR anyways. Our solutions are quite similar  just  slightly different. Mine might be  a small refactoring of yours.
We should also share some style guides. I had to undo some files due to spacing   issues.

I think it's better to squash a few commits in cases like this to keep history a bit cleaner.
As for style I pointed out in readme that for now I'm going to use tabs and C style brackets. Other than that I will try to keep things standard and it's ok to refactor things to be closer to guidelines (like starting private fields from underscore). I'm aware that I often produce low quality code but it allows me to develop faster.


Version 2.4 and Version 2.5 results in a glob failed message

Issue Type

Bug report

Molecule and Ansible details
ansible <IP_ADDRESS>
molecule, version 2.4.0

Installed molecule from source via pip
Installed ansible via homebrew
Desired Behaviour
Previous version when running molecule converge system would converge.
Actual Behaviour (Bug report only)
With new version of molecule  I'm being returned the error message:
[:~/work/home_servers/home-servers/roles/ethereum] master(+0/-0) ± molecule --debug converge
ERROR: 'molecule/*/molecule.yml' glob failed.  Exiting.

This means a config file cannot be found.  No changes have been made to this code in some time.

Well I've run molecule on this role before in the past...
[:~/work … ervers/roles/platform] master(+0/-0) 1 ± ls
README.md     handlers/     molecule.yml  tasks/        vars/
defaults/     meta/         playbook.yml  tests/
[:~/work … ervers/roles/platform] master(+0/-0) ± molecule converge
ERROR: 'molecule/*/molecule.yml' glob failed.  Exiting.

here is the molecule file:
[:~/work … ervers/roles/platform] master(+0/-0) 1 ± cat molecule.yml
---
ansible:
  ansiblecfg_defaults:
    retry_files_enabled: False
dependency:
  name: galaxy
driver:
  name: vagrant
vagrant:
  platforms:
    - name: zesty
      box: ubuntu/zesty64
  providers:
    - name: virtualbox
      type: virtualbox
      options:
        memory: 512
        cpus: 2
  instances:
    - name: platform
      host_vars:
        NET_IFACE_NAME: eno1
      ansible_groups:
        - group1
verifier:
  name: testinfra
[:~/work … ervers/roles/platform] master(+0/-0) ±

Your role is using Molecule v1.  If you wish to continue to use Molecule v1 you will want to pip install molecule==1.25.1.
Molecule v2 is a different beast and is not backward compatible, hence the major version bump to 2.

I see that you are correct and in my attempt to port to version 2.xx I'm obviously not doing things correctly.
I used ansible-galaxy to create a new role called "platform" then I initialized a new scenario and tried to do a converge and it fails:
ansible-galaxy init platform
[:~/work/tempM] 1 $ cd platform/
[:~/work/tempM/platform] $ molecule init scenario -r platform -s default -d vagrant
--> Initializing new scenario default...
Initialized scenario in /Users/snoby/work/tempM/platform/molecule/default successfully.
[:~/work/tempM/platform] $ ls
README.md  defaults/  files/     handlers/  meta/      molecule/  tasks/     templates/ tests/     vars/

--> Scenario: 'default'
--> Action: 'create'

    PLAY [Create] ******************************************************************

    TASK [Create molecule instance(s)] *********************************************
    An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ImportError: No module named molecule
    fatal: [localhost]: FAILED! => {"failed": true, "msg": "Unexpected failure during module execution.", "stdout": ""}

    PLAY RECAP *********************************************************************
    localhost                 : ok=0    changed=0    unreachable=0    failed=1

        self._module_cache[path] = self._load_module_source(name, path)
      File "/usr/local/Cellar/ansible/<IP_ADDRESS>/libexec/lib/python2.7/site-packages/ansible/plugins/loader.py", line 339, in _load_module_source
        module = imp.load_source(full_name, path, module_file)
      File "/Users/snoby/work/molecule/molecule/provisioner/ansible/plugins/filters/molecule_core.py", line 23, in <module>
        from molecule import interpolation
    ImportError: No module named molecule

    fatal: [localhost]: FAILED! => {
        "failed": true,
        "msg": "Unexpected failure during module execution.",
        "stdout": ""
    }

Really strange how out of the box this is failing.

Looks like an issue with your installation.  I suggest creating a new virtual env and installing things fresh.

Yes indeed using virtualenv solved the issue.  Thanks for your support!

@snoby no problem 👍


Daily p0/p1/flaky reports for issues

This creates an analagous version of the P0/P1/flaky test reports that are currently created for Jira. Example - https://lists.apache.org/thread/dd58ogflz2sdhk6124g0hfycqcdox8c9
Before this is merged, secrets need to be added to enable this flow. Specifically, the following secrets should be added:

ISSUE_REPORT_SENDER_EMAIL_ADDRESS: The email of the current (or new) bot
ISSUE_REPORT_SENDER_EMAIL_PASSWORD: The password of the bot. This needs to be an app password if Gmail (if not Gmail then we need to update the config)

Once this is merged and working, we should disable the Jira version.
Part of #21684

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Add a link to the appropriate issue in your description, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

R: @kennknowles


Unknown identifier with static vars

Compiling /vg/station produces the following error:
Error at code\modules\client\preferences\subsections\limbs.dm:28:29: Unknown identifier "peg_limb_data"
at the following location in limbs.dm:
22 var/static/list/peg_limb_data = list(
23	"internal_name" = "peg",
24 	"mode" = LIMB_MODE_SPECIAL_SNOWFLAKE,
25 )
26
27 var/static/list/leg_configurable_states = list(
28 	"Peg leg" = peg_limb_data,
29 )

Dupe of https://github.com/wixoaGit/OpenDream/issues/693

Dupe of #693 ?

They are static vars, nothing here is required to be constant.

I didn't get a compiler error. I think this is fixed?

Yep, it seems like it.


refactor!: convert Dropdown to use react hooks

Notes:

enzyme doesn't play nice with the useEffect hook right now so removed the outside click test. Later we can prob use an e2e test framework to better verify it

BREAKING CHANGE: Component will no longer work with react versions that do not support hooks. Supports react >= 16.8.
Next release should be major semver release

@lwhiteley I'm interested in trying to re-add that test. If I can do it, I'll add it in a different branch.

@lwhiteley I give up on trying to make this test work.  Enzyme doesn't seem up to this.

Yea either see if react testing lib can work or use a tool like cypress
On Sun, Feb 23, 2020, 2:53 AM iambumblehead<EMAIL_ADDRESS>wrote:

@lwhiteley https://github.com/lwhiteley I give up on trying to make
this test work. Enzyme doesn't seem up to this.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/iambumblehead/react-dropdown-now/pull/27?email_source=notifications&email_token=ABOTM6NMO54YQOXKKKIGV2LREHJJFA5CNFSM4KZUZCKKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEMVPIKQ#issuecomment-590017578,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABOTM6JRJC226RZSDXEM4T3REHJJFANCNFSM4KZUZCKA
.


Swap "visible" for "active" in respect to Lifecycle Flags

This PR replaces whatever "visible" mentions of lifecycle flags were left (after LifecycleFlags replaced Visibility) for "active" and updates the documentation of Record Storage specifying how the lifecycle flags should be treated when querying.
Also, the creation of a complete EntityQuery, which includes lifecycle flags, was moved to in-memory record storage implementation to match the behaviour specified by documentation.

@armiol, PTAL.


sql/expression/function: implement char_length and length functions

Fixes #715

All fixed

LGTM, needs rebase.

Rebased


How to add dynamic CSS based on configuration

Is there any way we can apply CSS to stacks based on JSON configuration ?

Hi @pavan6014,
This repository exists to demonstrate how to use Golden Layout in Angular.  It is not generally monitored for Golden Layout questions.  Best to ask Golden Layout questions at:
https://github.com/golden-layout/golden-layout/issues


Saireddy1369

The Readme file is currently lengthy and complex, making it challenging for newcomers to comprehend how to contribute effectively to the project.
To enhance accessibility and clarity, I propose relocating the Contributing section to the beginning of the Readme file and streamlining its content where feasible.
I kindly request assistance from anyone willing to dedicate time to address this issue and improve the project's accessibility for all contributors. Thank you!

Hello every one, this is Chinnam Satya Sai Rama Reddy, am very happy to be in this project. Hi everyone, I am full-stack developer and i am great fan of open source contributions and i look forward to contributing with all of you.
Regarding this special problem, I am only changing the README to be more readers-friendly and straightforward. It will help the new users in particular to avoid being overwhelmed by the structure of the project as well as its objectives by just giving them directions to follow every time they want to locate the information that they are looking for.
@caiton1, I am looking forward to be contributing to OSS and will be more than glad to contact you, if needed.

@caiton1, I am looking forward to be contributing to OSS and will be more than glad to contact you, if needed.

Raised PR - https://github.com/NAU-OSS/jabref/pull/98


Set logging level as CLI flag

Summary
When starting the program from the CLI flags to set the logging output should be supported to help during development and debugging.
Examples
python lib/cli/cli.py -d DEBUG
python lib/cli/cli.py -v #verbose output INFO?
Context
When logging in the application there should be an easy way to set the debug level. Could be done with plac.

As of #87 there is only a debug flag. Should consider if we need a verbose flag that enables INFO level output.

It would be nice if you were able to specify the lowest level you want to see logged i.e. -d INFO will show everything while -d WARNING will only display warnings and errors.

It would be nice if you were able to specify the lowest level you want to see logged i.e. -d INFO will show everything while -d WARNING will only display warnings and errors.

Fix is available in #108


Latency increases by message size

Hi,
We have been seeing latency issues when writing or doing GET/DEL calls to dynomite/redis. The interesting thing we observed was that the latency increases proportionate to the size of the message. Can you please tell me other than network check is there any config we are using wrong? There are not much doc about mbuf_size config for dynomite. does increasing mbuf_size helps here?

what is teh message size that you are sending? Typically in this case, we increase the mbuf size but that wont help significantly. We also try to use dyno compression feature if the payload is compressable.

@balajivenki let me know if you tried dyno compression or app side compression, what is your typical payload size?

@balajivenki is there anything on our side that needs to be done, if not can you please close the issue?

@shailesh33  This issue was due to that RetryNTime infinite loop issue. Marking it as closed as commenting out the retry policy worked for us. Thanks for your help


an error  of emmet

The similar commands of "ul>li.item$@-*5" can't be interpreted correctly by emmet.

.

VSCode Version: Code 1.16.1 (27492b6bf3acb0775d82d2f87b25a93490673c6d, 2017-09-14T16:38:23.027Z)
OS Version: Windows_NT x64 6.1.7601
Extensions:

Extension
Author (truncated)
Version

vscode-eslint
dba
1.3.2

vscode-html-css
ecm
0.1.8

tslint
eg2
1.0.9

vscode-great-icons
emm
2.1.16

Angular2
joh
2.7.0

Angular-BeastCode
Mik
4.4.2

atom-keybindings
ms-
3.0.2

cpptools
ms-
0.13.0

debugger-for-chrome
msj
3.3.1

(1 theme extensions excluded)

Steps to Reproduce:

Reproduces without extensions: Yes/No

Upstream issue: https://github.com/emmetio/html-transform/issues/2


Update aws-core, http-client-spi, ... to 2.17.260

Updates

software.amazon.awssdk:aws-core
software.amazon.awssdk:http-client-spi
software.amazon.awssdk:netty-nio-client

from 2.17.257 to 2.17.260.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "software.amazon.awssdk" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "software.amazon.awssdk" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #943.


Hash number should not be put back in the url if it was set via attribute

Sorry, I noticed, start-slide attribute can be used without hash-navigation attribute


Activity feed improvement

Relates to https://github.com/opendatadiscovery/odd-platform/pull/789
Change request

Change an event type name:
Current event type name -- Tags Association Updated
New event type name --  Tag Assignment Updated

Reason: consistency. Tag Assignment Updated correlates with similar even types like Term Assigned and Term Assignment Deleted.

Change an event status name:
Current status name -- Term [term name]  in [namespace name] was added
New status name -- Term [term name] was assigned to [data entity name]

! I also suggest to omit a namespace name or may be move it into a show details section.
Reason: it is too sophisticated when we use added as a special status name for Term Assignment event only.

@damirabdul @nstkvl

@germanosin @DementevNikita


I select day19 but the log is day18

It log the past day......

Since this is a very vague problem I am not very sure what you mean, but if you are just printing out the NSDate provided by the calendarDidDateSelected function of the JTCalendarDataSource delegate you have to watch out your time zone. By default NSDate's description variable of the Printable protocol converts the date to CET, which means if you are in a timezone like Berlin (GMT +1) it will print out 2014-11-29 23:00:00 +0000 even though you selected the 30th of November.
Concluding this is not a bug but a general problem of date handling that you need to solve by your application. If I got your problem wrong feel free to specify it more accurate.

If you log the date using [NSDateFormatter localizedStringFromDate:date dateStyle:NSDateFormatterMediumStyle timeStyle:NSDateFormatterShortStyle] you'll see that @steilerDev is OK ;-)

Don't rely on [date description] which NSLog uses, it takes into account your local timezone, use NSDateFormatter.


subprocess.CalledProcessError: Command '['sh', '/app/prestart.sh']' returned non-zero exit status 1.

Hi Guys!!
I need help please!
my backend container don't work!
` ensure this value has at least 8 characters (type=value_error.any_str.min_length; limit_value=8)
Traceback (most recent call last):
File "/usr/local/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/app/inboard/start.py", line 125, in
run_pre_start_script(logger=logger)
File "/app/inboard/start.py", line 26, in run_pre_start_script
subprocess.run([process, pre_start_path], check=True)
File "/usr/local/lib/python3.9/subprocess.py", line 528, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['sh', '/app/prestart.sh']' returned non-zero exit status 1.

Terminal will be reused by tasks, press any key to close it`

@HericsonRamos Is that related to minimum password length?

Closing for lack of response.


Dependabot unable to fetch transitive dependencies from private repo

Is there an existing issue for this?

[X] I have searched the existing issues

Package ecosystem
pnpm
Package manager version
No response
Language version
node 21.6.2
Manifest location and content before the Dependabot update
No response
dependabot.yml content
version: 2
registries:
github-npm:
type: npm-registry
url: https://npm.pkg.github.com
token: ${{secrets.TOKEN}}
updates:

package-ecosystem: npm
directory: "/"
registries:

github-npm
schedule:
interval: weekly
day: monday
time: "10:00"
timezone: Asia/Tokyo
target-branch: dependabot-updates
allow:
dependency-type: direct
open-pull-requests-limit: 50

Updated dependency
No response
What you expected to see, versus what you actually saw
We have one dependency being pulled from a private repository.
Dependabot tries to fetch transitive dependencies for this dependency from the private repository:
https://npm.pkg.github.com
Instead of the expected:
https://registry.npmjs.org
This causes a 404 error on all transitive dependencies introduced by this package. The same dependency can be fetched as a transitive dependency of a public dependency but not of a private one:
proxy | 2024/07/12 05:52:43 [921] 200 https://registry.npmjs.org:443/semver

...

proxy | 2024/07/12 05:54:35 [113] 404 https://npm.pkg.github.com:443/semver

Our .npmrc looks like so:
ignore-workspace-root-check=true

registry=https://registry.npmjs.org
@orgname:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN:-emptyToken}

A related set of issues were reported here:
https://github.com/dependabot/dependabot-core/issues/6507
https://github.com/dependabot/dependabot-core/issues/5288
The recommended solution seems to be downgrading your lockfile to version '2.0' but we are currently on version '6.0', I'm not sure if downgrading so far is a good idea.
Is there a newer workaround of update on a solution?
Native package manager behavior
No response
Images of the diff or a link to the PR, issue, or logs
No response
Smallest manifest that reproduces the issue
No response

Is there any plan to fix this bug or known workarounds? The workarounds in the linked issues don't fix anything in our case.


Upgrade deps and switch from commonjs -> module

Upgrades deps to latest. node-fetch no longer supports commonjs giving us some impetous to switch to module syntax. A few notes from the upgrade:

to import the package version from package.json we have to use new import assert syntax. Whilst nodejs supports this eslint requires a babel parser. Hence the inclusion of @babel/eslint-parser and @babel/plugin-syntax-import-assertions
node-fetch no longer supports form-data. Switched to formdata-node
base-x now returns a Uint8Array so we need to do some additional wrapping in a Buffer
mocharc.js moved to mocharc.cjs as mocha does not support import syntax for this
there's a weird behavious with the import of mock-jwks. createJWKSMock is declared in the module (I've looked at the source) as the default export but mocha isn't importing it as such. Not sure why but it just makes the import a little odd

Just noticed this repo is missing depcheck in its workflows. MIght be one for another PR


Pin version of audiowaveform image in API Dockerfile

Problem

The current API Dockerfile uses the latest tag of the audiowaveform image.
https://github.com/WordPress/openverse/blob/e98f7e90f260dfe2e7d2c13d4bf07731130df5c0/api/Dockerfile#L10
Description
As @realies has pointed out in #2412, now the workflow tags the images with a version, when a new version of bbc/audiowaveform is published with a Git tag.
That line can now be updated as follows.
- FROM docker.io/realies/audiowaveform:latest AS awf
+ FROM docker.io/realies/audiowaveform:1.10.1 AS awf

Hello, I'm interested in addressing this issue. Could you please assign it to me? I believe I can handle it effectively.
Thank you!