Parser and Translate Limitations

Problem Statement
With the release of KIC v2.0.0 we changed a lot about the architecture of the KIC with a specific emphasis on controller implementations, APIs, and testing. We did however specifically avoid messing with internal/parser and the relevant logic which converts Kubernetes objects to Kong objects and pushes those to the data-plane.
For review, the present workflow is effectively thus:

a cache of Kubernetes objects is converted in a synchronous loop into Kong objects
the Kong objects are organized into a single large configuration object
Deck is used to convert these types to a /config object POST
Deck pushes the configuration over the wire and reports on errors

There are some historical issues that stem from this workflow and the relevant areas of the code:

it is difficult to report on the source of errors, as the error we receive from the data-plane is terse and we don't have a clean system to reference those errors back to their causal Kubernetes objects
non-transient errors have historically locked up the data-plane as we don't have any way to identify and automatically work around the problem configurations (we often work around this with webhook validation, which isn't perfect either)
status updates for objects have been difficult, and so often missed for our APIs (though with 2.0.x we made some progress in this regard and bound status updates more closely to successful configuration updates)
the code in this area is an effective monolith and closed circuit loop, making the code more difficult to maintain and "scary" to change

In the development of 2.0.x we attributed a lot of these problems to the /config style updating that was necessary (for DBLESS) and the lack of RESTful mechanism to configure the data-plane (note that there is such an API for DB mode, but we don't currently utilize that and DBLESS mode is furthermore more aligned with ideal Kubernetes operations in the general case). We should look for opportunities to deal with some of these problems and create a more robust K8s to Kong conversion and push layer.
Acceptance Criteria
As an end-user of the KIC:

[ ] all Kong Kubernetes objects should have robust status updates which clearly describe the state of those objects as it refers to the underlying data-plane configurations which we parse for them
[ ] errors in the data-plane should not lock up configuration
[ ] errors in the data-plane should be able to reference and report on the relevant Kubernetes objects that are causing the problem
[ ] when errors occur which are bound to a Kubernetes object, update the statuses of that object where applicable for better visibility
[ ] Kubernetes events should be emitted for hard failures on the reference object

As a developer of KIC:

[ ] there should be a clear and deliberate design and documentation for the parsing/translating/wire code to make it easier to jump in and contribute

This issue has effectively become outmoded as there are multiple sub-issues that effectively track some of it. Closing for now so we can focus on the related:
https://github.com/Kong/kubernetes-ingress-controller/issues/2007
https://github.com/Kong/kubernetes-ingress-controller/issues/2209


Output stream of unselected row

Continuous transform has output stream and output function for data that is selected . But there is no output stream or function for unselected data.
Use case :
I want to split a stream of coordinate into one that fall within certain cirle, and another one for outside the circle, say using ST_DWithin().
Alternative method:
Create two continous transform to consume from stream. One transform select coordinate that is inside a cirle, the other select coordinate outside a circle.
Con (that I can think of):
Computation done twice for one data point.
Mutual exclusion is not guaranted.

@nuhamind2 what about including the result of ST_DWithin in the transforms target list? e.g.,
CREATE VIEW xform WITH (action=transform) AS
  SELECT ST_DWithin(...) AS within, ... FROM stream;

Then you can split its output downstream by just filtering with WHERE within
Would that work for you?

Oh I see, that's interesting method. I seem it will work for me.
Thanks

@nuhamind2 great! Let us know if you have any further questions on this, we're always happy to help. Feel free to close the issue when/if you feel that the question has been resolved.


Add "deselect all / select all" buttons, to Download >> Custom Package

It will be really helpful to have a button to select all or none, in https://highlightjs.org/download/
as if i only one i need to untick the checkboxes one by one.

The "Select All" button is absent for a reason, I'd like to specifically discourage the idea of downloading the entire language archive for using in a browser. The resulting file is huge (300K as of now and is only going to grow more) and having those on the Web will create the impression that highlight.js is slow and buggy due to mis-detection errors with little used languages. If one really wants to have a package with MEL, G-Code, Stata and Smali and what-not, then I could recommend simply building one manually.
@Sannis  as for opening the sites code, there's little value in that because I will still be the bottleneck since I have to review code, manually apply those updates and maintain the dependencies, etc. Also, I will have to give up the luxury of keeping the code in bzr and switch to this git thing that I never liked :-)


RCM validation messages in purchase modules

[x] RCM mandatory applicable for services with 'GCC vat registered', 'GCC non vat registered' and 'Non GCC'. (RCM Only applicable for all items are services in same voucher)

issue fixed !


Multiqc report

is it possible to include extra columns in the general statistics table -
There is now
QualiMap | ≥ 50X | Fraction of genome with at least 50X coverage
but also
QualiMap | ≥ 500X | Fraction of genome with at least 500X coverage
QualiMap | ≥ 1000X | Fraction of genome with at least 1000X coverage
QualiMap | ≥ 2000X | Fraction of genome with at least 2000X coverage

Sally -- thanks for bringing this up. @vladsaveliev I know you'd previously implemented this coverage for higher depths as part of post-processing the bcbio MultiQC report. I'd like to move this into bcbio, ideally picking a useful range based on the sample depth. Do you have pointers to how this was done previously? Was it all within QualiMap or done externally? In MultiQC we can specify the QualiMap thresholds (https://github.com/ewels/MultiQC/blob/2ccda53608771d73a3392841d5a44114daed772a/multiqc/modules/qualimap/QM_BamQC.py#L56) but I wasn't sure if this was the correct path to go down.

Hi Sally, Brad,
Bcbio can do that already. See: https://github.com/bcbio/bcbio-nextgen/pull/2048
The idea is to pass the MultiQC parameters for the Qualimap module (qualimap_config) via the bcbio yaml in the resources section:
resources:
  multiqc:
    options: ["--cl_config", "'qualimap_config: { general_stats_coverage: [20,40,200] }'"]

Vlad;
Thanks for this. I'm cool with tweaking it and my general idea is to set this directly within bcbio depending on the existing depth, to avoid users needing to explicitly determine the right setting and then set in resources. I primarily wanted to confirm that this was the approach you took in post-proc so I could replicate your previous behavior inside of bcbio. Did you have any existing logic to pick a setting for this, or just always do the deeper coverage as well? Thanks again.

Ah, sorry, not enough coffee, missed the part in your question about automatically picking the range based on depth. Of course, that sounds like a good idea to move into bcbio. Here is the logic:
https://github.com/AstraZeneca-NGS/NGS_Reporting/blob/master/ngs_reporting/bcbio/multiqc.py#L77-L89
Basically we start with the range of thresholds of [1, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000], and evaluate all thresholds up to current sample depth, plus one more. For example, if you have a sample of depth 570x, we will evaluate [1, 5, 10, 20, 50, 100, 200, 500, 1000].
Then, since MultiQC has a logic of "hidden" columns, by default in the report we show only the thresholds up to 20, plus those that are closest to sample depths, and set the rest as hidden. So for the sample of depth 570x, we will show 1, 5, 10, 20, plus 500 and 1000. And if you have multiple samples in a run with different depths, we will account for all of them, so for example for two samples of 570x and 250x, we will show 1-20, 200, 500, and 1000.
MultiQC provides two parameters in qualimap_config section in its configuration yaml: general_stats_coverage and general_stats_coverage_hidden. So in the example above, we would populate MultiQC config as:
qualimap_config:
   general_stats_coverage: 1, 5, 10, 20, 50, 100, 200, 500, 1000
   general_stats_coverage_hidden: 50, 100

Let me know if that doesn't make sense. I help to implement it in bcbio (can try to implement the logic more simply and put comments that make sense).
Vlad

Vlad;
Awesome, that's exactly what I was thinking of. This is perfect. It would be brilliant if you have time/willingness to implement in bcbio. If not, I can pick it up from all this. Thanks again.

Brad, create a PR with this: https://github.com/bcbio/bcbio-nextgen/pull/2483

Sally, Vlad ported over the previous logic to bcbio so we'll now have it in the latest development and next release. Thanks Vlad for doing this, and thanks Sally for identifying we're missing this.


(maint) Always stub state machine

Commit b375c9792e added a new describe block in puppet#5.5.x, and that
version doesn't contain the SSL state machine. When the commit was merged
up to 6.4.x, it causes the state machine to run, causing the test to hang
indefinitely.
This commit moves the state machine stub to the top level before block so that it applies to all tests (now and in the future).

CLA signed by all contributors.


Broken links - Metadata section

Hi,
I'm not sure this is the right repo for this ticket, please feel free to move it!
I've found a couple of broken links and it would be nice to get them fixed.

metadata structure - improve the documentation
metadata design - improve the documentation and HCA Metadata Schema Style and Formatting Guide. I think the last one could be linked to this document in the metadata repo

Obsolete Thx!


Show correct date of finance balance

Currently, the "last updated" resp. "Stand" date is the date the last bank import happened.  This might be confusing b/c only transactions until the day before (or even two or three days before if the import happens at a Sun- or Monday) are considered.  IMO the German wording is even worse as "Stand" would translate to something like "as of" which sounds like the specified date is included.
I suggest the following:

show the date a transaction must have arrived at our bank account to be displayed
adjust wording to be correct and easier understandable (maybe not be necessary but helpful if 1. is done)

Suggestion for a long but IMO explicit and understandable wording:
DE: enthält bis zum {{ date }} auf unserem Konto eingegangene Überweisungen
EN: contains transactions arrived at our bank account up to and including {{ date }}

I see it as an information which should be shown when ever you hover over the amount or do you think this is still to confusing for some people?

I think most people won't hover over the relevant part, or won't entirely (e.g. mobile devices).  The best idea would probably be to show some subtle text (e.g. gray, smaller font size) below "Current MAC address" in the left column of the "Status information" table.  This could also be reused for https://github.com/agdsn/sipa/issues/480 .


Lesson development status

In "Lesson dev" there are stable, beta and alpha lessons, but it is not specified which lesson has which status.

See also #15 about lesson descriptions.

Does this page respond to this issue https://librarycarpentry.org/lessons/ ?

Think so, thanks!


Load a external Markdown File.

Well, I think the title is self explanatory ^^\
I have a Markdown File named "article.md", and want use this file inside of my html.
# Hello World!
Lorem Ipsum
- Lorem Ipsum

Hello World!

Lorem Ipsum

Lorem Ipsum

Load an external markdown file where? Can you elaborate?

I would assume @MaxWhite20062003 refers to a kind of include mechanism. But if I'm not mistaken, the markdown spec doesn't define that.
This seems like the kind of job for an extension.

Load an external markdown file where? Can you elaborate?

I have a markdown file in the folder pages.
Listagem de caminhos de pasta
O número de série do volume é E674-DFBF
C:.
│   index.html
│
├───css
│       main.css
│
├───pages
│       home.md
│       honeypot.md
│       index.html
│       phishing.md
│       virus.md
│
└───site
        content.js
        navbar.js
        sidebar.js

See the index.html file? Inside there is a sidebar.

When the user clicks on an item in there, the main page (white part) will load a markdown file and display it on the main page.

I want to know how to use Javascript to load the markdown files into the "page" folder and use the showdown to parse it.

You could just load the markdown via an ajax request via jquery something like this:
url = "/path/to/file.md?nonce=" + Date.now().toString(); // added nonce to prevent caching, you can remove it if you want the files to cache
$.ajax({
  url: url,
  type: "GET",
  dataType: "text",
  success: function (results) {
    var html = self.converter.makeHtml(results);
    // do something with the html here
});


Edited Documentation

What does this PR do?
Fixed readme and contributions file, added a bugreport.md file, cleared out the front readme page

thanks a lot


please consider keep all files in /usr/share/zoneinfo

I tried to change the default timezone to CST, but  either modify /etc/timezone  or  set TZ env failed.
finally, mount and override  /etc/localtime file (default to be Etc/UTC) works.
but there is only  one "Etc/UTC" file  under  /usr/share/zoneinfo, maybe this folder to be kept as is?
/usr/share/zoneinfo  is 3.5M in total, and 1.5M zipped.
or, is there a more gentle way to set different timezone?

Generally it's considered a bad practice to use anything else on server
other than UTC. The reason is that daylight changes can trigger double cron
jobs or skip one, or possibly cause other bugs.
In Ubuntu 16.04 you should be using these commands to set the timezone:
apt-get install dbus
timedatectl set-local-rtc 0
timedatectl set-ntp 1
timedatectl set-timezone UTC
I'm not sure about setting timezones in containers, I never touch time in
docker.
On 2 June 2017 at 12:07, cooka<EMAIL_ADDRESS>wrote:

I tried to change the default timezone to CST, but either modify
/etc/timezone or set TZ env failed.
finally, mount and override /etc/localtime file (default to be Etc/UTC)
works.
but there is only one "Etc/UTC" file under /usr/share/zoneinfo, maybe this
folder to be kept as is?
/usr/share/zoneinfo is 3.5M in total, and 1.5M zipped.
or, is there a more gentle way to set different timezone?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/phusion/baseimage-docker/issues/415, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAeKj4Y8TVckGdYdVSY3rTewlpj_iPqbks5r_97HgaJpZM4NuFW5
.

You can set time zones in containers, but that's about all you can do...
https://blog.jessfraz.com/post/two-objects-not-namespaced-linux-kernel/
Time is one of the (at least?) two things that are still currently not namespaced by the Linux Kernel.  So, if you want your container to have a particular time zone, you can either set it at runtime without any privileges by using the "TZ" environment variable, the most gentle way that can work at runtime or anytime on a per-process basis...
Or you can set it system-wide which it looks like you were trying to do (inside of the container) by setting up /etc/localtime with a copy or a link to your correct time-zone from /usr/share/zoneinfo/ -- this is the preferred way to make this change permanent on a system, although it can still be overriden by the TZ variable.
If /usr/share/zoneinfo is empty in the baseimage, it might be a problem!  If you're building something from baseimage for yourself and you know what timezone you want it to be in, you can just copy the correct zoneinfo from your host system and make sure it gets included in the container in your Dockerfile during your (downstream) docker build.
@hyperknot is correct about the things that can go wrong when you set a global timezone, you might not care about this at all, I personally prefer to set the time zone on my servers and I don't care if a job gets skipped or repeating -- they are all running several times per day anyway.
You do not need to change the hardware clock or use timedatectl.  I do not know what will happen if you do inside of a container, but the article I linked suggests at least that if it does work, it will also affect the host system, and that's bad.

@cooka I didn't read carefully, it looks like you said you did try setting the TZ environment variable but it failed.  Is that right?
In my containers I am doing:
RUN  cp /usr/share/zoneinfo/America/New_York /etc/localtime \
    && echo "America/New_York" > /etc/timezone

and that works for me, but they are not Baseimage, this is actually a Jenkins server built FROM jenkins:2.46.2

@cooka You might just need to apt-get install tzdata -- I was searching for where zoneinfo is supposed to come from, and I found reports that it was not installed by default anymore in Ubuntu 16.04.  I don't see that it's a part of baseimage at all, so it's probably missing from your container.

@hyperknot without tzdata installed or related files presented in /usr/share/zoneinfo , timedatectl  would not work.
@kingdonb set TZ environment doesn't always work, in container.
and without tzdata installed(in baseimage), we can't cp or ln -s other timezone file to /etc/localtime (like in jenkins image) .
so, add tzdata package or add  /usr/share/zoneinfo files would be an easier way to set different timezone.

So feel free to add them in your own child image.
On 2017. Jun 3., Sat at 11:12, cooka<EMAIL_ADDRESS>wrote:

@hyperknot https://github.com/hyperknot without tzdata installed or
related files presented in /usr/share/zoneinfo , timedatectl would not
work.
@kingdonb https://github.com/kingdonb set TZ environment doesn't always
work, in container.
and without tzdata installed(in baseimage), we can't cp or ln -s other
timezone file to /etc/localtime (like in jenkins image) .
so, add tzdata package or add /usr/share/zoneinfo files would be an
easier way to set different timezone.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/phusion/baseimage-docker/issues/415#issuecomment-305962877,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAeKj_87rhrupuUgdB6A2FS6ZGSd-SdNks5sASOJgaJpZM4NuFW5
.

Thank you for your research about timezone. Since what you are saying is a simple solution, and highly specific to your environment, I recommend you to simple implement it in a child image.

@cooka - This dockerfile worked great for me
Dockerfile
FROM phusion/baseimage

# Use baseimage-docker's init system.
CMD ["/sbin/my_init"]

RUN apt update && apt install -y tzdata && \
  apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

ENV TZ America/New_York

For posterity, this Dockerfile, copying /usr/share/zoneinfo by hand out of a MacOS (or probably also Ubuntu) build host, into the working directory as shown below, also works.  You do not need to install tzdata or set environment variables to get consistent local time.
FROM phusion/baseimage

# Use baseimage-docker's init system.
CMD ["/sbin/my_init"]

# cp /usr/share/zoneinfo/America/New_York ./New_York
COPY New_York /etc/localtime
RUN echo "America/New_York" > /etc/timezone


:sparkles: Add openstack plugin for csctl

What this PR does / why we need it:
Add OpenStack plugin for csctl
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Related to https://github.com/SovereignCloudStack/issues/issues/541
TODOs:

[ ] squash commits
[ ] include documentation
[ ] add unit tests

@jschoone do you want this plugin in the same repo or another one?

@michal-gubricky The other PR on csctl-plugin-openstack repo is merged. Pinging you if you wanted to migrate this to csctl-plugin-openstack repository.

@michal-gubricky The other PR on csctl-plugin-openstack repo is merged. Pinging you if you wanted to migrate this to csctl-plugin-openstack repository.

Thanks for the ping @kranurag7. I'll transfer it this afternoon or tomorrow.

Moved to the separate repository, see SovereignCloudStack/csctl-plugin-openstack#4


[0.2] Require rust >= 1.19 and drop libc_union conditional

Mostly taken from https://github.com/rust-lang/libc/pull/2845, I just updated to remove all new libc_union uses.

:umbrella: The latest upstream changes (presumably #4053) made this pull request unmergeable. Please resolve the merge conflicts.


What auth type to use for simple API <> Session Token exchange?

The API I am trying to access has a rather simple authorization flow. I have a static API key that I need to exchange for a session token in order to access the API functionality.
Exchanging the API token for a bearer token is a matter of a POST request with the API token as customer header and an empty body. The response body only contains the session token.
The session token would need to be refreshed every so often (documentation doesn't state the exact expiration time).
The OAuth flow seems not suitable for this purpose since the documentation states StartLogin and FinishLogin are required for this flow to work.
I tried the Key authentication but that seems to simply save the static API token as a credential.
Needless to say I am a bit lost here. I require the token refresh capabilities of the OAuth flow but without the extra login fluff. My guess would be to strip down the OAuth authentication version of the connector to 'mock' the login process somehow.

I seemed to have solved this albeit not in the most elegant way. Using key authentication, let the user submit their key (static API key) once, then write a function that retrieves a session token with that key (Extension.CurrentCredential()[Key]). This function only returns a string containing 'Bearer ' and the session token.
Then reference this function each time a function is called that requires the session token in the header like so:
GetReportData =              Web.Contents(baseURL,                  [                     Headers = [                         #"Authorization" = Connector.GetSessionToken(Extension.CurrentCredential()[Key]) // function that returns 'Bearer <token>' string                     ],                      Content = Text.ToBinary("")                 ]             ),


change default width of lightbox

Is there a way to "programmatically" change the width of lightbox? I know that lightbox takes up 100% of the width of the page. But I'm not talking about that, but the width of the black box that can't be seen through, which seems to take up about 60% of the screen.
Please see the red arrows in the attachment.

I'm not sure what you mean exactly and the screenshot doesn't make it more clear, sorry Could you provide a little bit more information? Ideally with a reproducible test case.

Hi jsor
Thanks for the reply.
Here is exactly what I'm doing:

call an anchor tag with reference to a php file and your data-lity:
Add New User

The lightbox comes up correctly with a form I create in the user-profile-form.php file.

Even though the lightbox comes up, the width of the opaque area is much wider then
the form I create. You can see this here (the red arrows mark the width of the area Lity
provides me, the blue arrows are the width of my form (which I myself set).

I would like the Lity provided area to be the same width as my form. I have gotten it to
work perfectly (the Lity area shrinks to my form width)  with an inline reference by equating
the href to the form div id:

Add New User
However, I need to pass parameters to the php file, so this solution does not work for me.
Thanks

It seems your commenting system is turning my anchor tags above into actually links. That is why you see "Add New User" above. So #1 example above should be:
href="user-profile-form.php?userId=new" class="btn-green" data-lity>Add New User
and #4 example above should be:
href="#userFormDivID" class="btn-green" data-lity>Add New User

The problem is, that you're loading the content vai an iframe. Iframes have a fixed width because Lity cannot know the exact width of the loaded content.

Hi Jsor
Thanks for the reply. But there are absolute no iframes involved. Here is the
exact code, but the only difference is that in the first the href is calling the div ID directly in the
file "user-profile-form.php" (which resizes correctly) and the other the href is calling the "user-profile-form.php" directly (which does not resize correctly). But in both
cases the code called is identical, the same div:

this resizes correctly:

href="#userFormDivID" class="btn-green" data-lity>Add New User

userFormDivID is the top line of "user-profile-form.php":

 .....

This does NOT resize correctly:

href="user-profile-form.php?userId=new" class="btn-green" data-lity>Add New User
Again this is the same code in "user-profile-form.php" from #1 above

Again, I can not use method 1 because I need to pass parameters to the php file.
Thanks

Yes, because with method 2 you load the URL user-profile-form.php into an iframe. It is not possible to adjust the size with this method.


klipper-firmware not working due to missing board-link directory

Describe the bug
I am attempting to flash my SKR Mini E3 V3 from my raspberry pi using the klipper-flash-mcu command, but it's not working correctly. It seems that some files are missing from the nix store.
Steps To Reproduce
Steps to reproduce the behavior:
I've setup Klipper with the following config:
services.klipper = {
    enable = true;
    firmwares = {
      mcu = {
        enable = true;
        configFile = ./firmware.cfg;
        serial = "/dev/ttyACM0";
      };
    };
    configFile = ./klipper.cfg;
  };

Then on my pi, when I run klipper-flash-mcu:
[root@voron-v0:~]# klipper-flash-mcu
make: Entering directory '/nix/store/xc0cg69yq7r6kj2azwpnnqkqg0g3i0i9-source'
sh: line 1: /nix/store/vlw3mh75hqam27l78rdg3p46m4fmvjdj-klipper-firmware-mcu-unstable-2023-04-24/board-link: Read-only file system
Makefile:103: /nix/store/vlw3mh75hqam27l78rdg3p46m4fmvjdj-klipper-firmware-mcu-unstable-2023-04-24/board-link: No such file or directory
make: *** [Makefile:101: /nix/store/vlw3mh75hqam27l78rdg3p46m4fmvjdj-klipper-firmware-mcu-unstable-2023-04-24/board-link] Error 1
make: Leaving directory '/nix/store/xc0cg69yq7r6kj2azwpnnqkqg0g3i0i9-source'

Expected behavior
klipper-flash-mcu flashes the mcu.
Additional context
I'm using colmena to apply the changes, and I have deployment.buildOnTarget = true set since the other machine is x86.
Contents of the kipper firmware directory
[root@voron-v0:~]# ls /nix/store/vlw3mh75hqam27l78rdg3p46m4fmvjdj-klipper-firmware-mcu-unstable-2023-04-24
config  klipper.bin  klipper.elf

Notify maintainers
@vtuan10
Metadata
[root@voron-v0:~]# nix-shell -p nix-info --run "nix-info -m"
 - system: `"aarch64-linux"`
 - host os: `Linux 6.1.36, NixOS, 23.05 (Stoat), 23.05pre-git`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.13.3`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Thanks for bringing this up, but unfortunately, I don't have that specific board to test it myself.
As far as I can see, there are some issues here:

board-link missing: Since https://github.com/NixOS/nixpkgs/pull/230252 we only install klipper.{bin,elf}. Could you try building the firmware prior to the change, or provide me the firmware.cfg, so that I could try as well to see whether the missing files are indeed created.
I'm unsure whether flashing it from klipper is actually supported. According to the generic configfile from klipper using make flash is not supported (which is all the klipper-flash-mcu command actually does). Can you try building and flashing the firmware manually using make and make flash?

As a workaround, you could for now copy the built klipper-firmware manually.

Thanks for the help.

I reverted #230252, and the klipper-flash-mcu command now works... as intended.
Yep, I can confirm that flashing a SKR Mini E3 V3 doesn't work using this method.

I tried just adding the board-link file by adding cp out/board-link $out/ || true, but then it fails to find autoconf.h.
[root@voron-v0:~]# klipper-flash-mcu
make: Entering directory '/nix/store/xc0cg69yq7r6kj2azwpnnqkqg0g3i0i9-source'
  Building /nix/store/iw9axna5z7bclzwrgm3nx5b4gac8zmzl-klipper-firmware-mcu-unstable-2023-04-24/autoconf.h
Traceback (most recent call last):
  File "/nix/store/xc0cg69yq7r6kj2azwpnnqkqg0g3i0i9-source/lib/kconfiglib/genconfig.py", line 154, in <module>
    main()
  File "/nix/store/xc0cg69yq7r6kj2azwpnnqkqg0g3i0i9-source/lib/kconfiglib/genconfig.py", line 117, in main
    kconf.write_autoconf()
  File "/nix/store/xc0cg69yq7r6kj2azwpnnqkqg0g3i0i9-source/lib/kconfiglib/kconfiglib.py", line 1456, in write_autoconf
    if self._write_if_changed(filename, self._autoconf_contents(header)):
  File "/nix/store/xc0cg69yq7r6kj2azwpnnqkqg0g3i0i9-source/lib/kconfiglib/kconfiglib.py", line 2280, in _write_if_changed
    with self._open(filename, "w") as f:
  File "/nix/store/xc0cg69yq7r6kj2azwpnnqkqg0g3i0i9-source/lib/kconfiglib/kconfiglib.py", line 3927, in _open
    open(filename, mode, encoding=self._encoding)
OSError: [Errno 30] Read-only file system: '/nix/store/iw9axna5z7bclzwrgm3nx5b4gac8zmzl-klipper-firmware-mcu-unstable-2023-04-24/autoconf.h'
make: *** [Makefile:110: /nix/store/iw9axna5z7bclzwrgm3nx5b4gac8zmzl-klipper-firmware-mcu-unstable-2023-04-24/autoconf.h] Error 1
make: Leaving directory '/nix/store/xc0cg69yq7r6kj2azwpnnqkqg0g3i0i9-source'

Then with, the cp -r out/* $out, it just fails to flash:
[root@voron-v0:~]# klipper-flash-mcu
make: Entering directory '/nix/store/xc0cg69yq7r6kj2azwpnnqkqg0g3i0i9-source'
  Flashing /nix/store/d80bn2hdnpk2z9a4xvb4cmxwqcg6fs5w-klipper-firmware-mcu-unstable-2023-04-24/klipper.bin to /dev/serial/by-id/usb-Klipper_stm32g0b1xx_06002E001950425938323120-if00 via stm32flash
stm32flash 0.7

http://stm32flash.sourceforge.net/

Using Parser : Raw BINARY
Size         : 29920
Interface serial_posix: 57600 8E1
Failed to init device.

make: *** [src/stm32/Makefile:110: serialflash] Error 1
make: Leaving directory '/nix/store/xc0cg69yq7r6kj2azwpnnqkqg0g3i0i9-source'

Thanks for quickly trying it out.
I'm unsure whether the flashing issue will ever be fixed in klipper, but I don't think it makes much sense to create any elaborate workarounds for this particular board in klipper-flash.
Regarding the missing files:
@lovesegfault Should we revert this change? I don't have much knowledge about the various flashing tools which require more than the binaries and if those would fail anyway at a later stage like in this case.

Would it make sense to have an option like services.klipper.firmwares.<mcu>.enableKlipperFlash to enable/disable the klipper-flash-<mcu> command? In the description, you could tell the user to go check if their board supports flashing. That might help people like me from thinking the package was bugged.

Sorry, completely forgot about this. I created a PR: https://github.com/NixOS/nixpkgs/pull/243475

This issue persists with an ender3v2 neo
[root@nixos-3dprint-raspi:~]# klipper-flash-ender3
make: Entering directory '/nix/store/8wzv1hfgxxpc9lnw2k3dry9mnknmwfga-source'
sh: line 1: /nix/store/3lg1pd1977ada1jknsa0jai5lijlimwi-klipper-firmware-ender3-unstable-2023-11-16/board-link: Read-only file system
Makefile:103: /nix/store/3lg1pd1977ada1jknsa0jai5lijlimwi-klipper-firmware-ender3-unstable-2023-11-16/board-link: No such file or directory
make: *** [Makefile:101: /nix/store/3lg1pd1977ada1jknsa0jai5lijlimwi-klipper-firmware-ender3-unstable-2023-11-16/board-link] Error 1
make: Leaving directory '/nix/store/8wzv1hfgxxpc9lnw2k3dry9mnknmwfga-source'

If I understand this post correctly the board should support flashing, they do it there the manual way.

Sorry, I don't have the printer myself and cannot confirm this.
But according to the klipper sample config of your printer it states that you should copy the file manually to the sd card.
Please try to flash it similar to https://github.com/NixOS/nixpkgs/issues/241413#issuecomment-1620331923, if it is only the board-link issue, we surely can revert the change.

Manual flash via SD card worked. I guess it's printer-specific then and not an issue here.


Ingress L7 forever locked in initializing status

What kind of request is this:
BUG
Rancher versions:
rancher/rancher: 2.1.3
Infrastructure Stack versions:
1.11.5
Docker version:
Server Version: 17.06.2-ce
Storage Driver: overlay2
Default Runtime: runc
Init Binary: docker-init
containerd version: 6e23458c129b551d5c9871e5174f6b1b7f6d1170
runc version: 810190ceaa507aa2727d7ae6f4790c76ec150bd2
init version: 949e6fa
Operating system and kernel:
Kernel Version: 4.14.77-81.59.amzn2.x86_64
Operating System: Amazon Linux 2
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 3.796GiB
Type/provider of hosts:
AWS / EKS
Setup details:
HA rancher
Environment Template:
Cattle
Steps to Reproduce:
After deploy new rancher on kubernetes cluster (AWS EKS).

I had the same issue after upgrading to rancher 2.1.7 and upgrading my cluster kubernetes to 1.13.4 . Enabling and Disabling nginx in the cluster config would not work, only deleting both pod ( careful not to delete the deployment like I did )to force it to create new ones made new ingress and updating existing ingress working again


Loki logging improvements

This PR applies several improvements to the Loki logging (see the commit messages for details):

Change the log format to simplify parsing.
Adapt the Loki query for better performance.
Fix the Loki configuration in Compose and add a log dashboard.

I still need to fix the LokiLogFileProviderTest but please review already.


Unexpected recording from device microphone instead of Bluetooth when connected

Hi community!
As per the title of the issue, when I connect the device to a Bluetooth input/output, my app correctly transmits the audio to the Bluetooth device but when I'm recording it's the device microphone instead of the Bluetooth one.
Does anyone know how to force the Bluetooth microphone to be the source?
Thanks!

I have the same issue. If I move to another screen while recording is working, I can't listen to every sound using Bluetooth.

Solved on my own! In AudioRecorder.m, I've added the Bluetooth in line 80, which now appears like this:
[audioSession setCategory:AVAudioSessionCategoryRecord withOptions:AVAudioSessionCategoryOptionAllowBluetooth error:&error];

I am facing the same issue but only on iPhone device and recording via AirPods.
Running the app in the simulator on my Mac, recoding via AirPods works
I tried to run the app on device and debug it remotely.
No error in the console, but recoding via AirPods is not working
What could I try to solve the issue?
I am running:

"react-native": "0.60.3",
"@react-native-community/audio-toolkit": "^2.0.2",
iOS 12.3.1

I was able to fix the issue by
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionAllowBluetooth error:&error];
solution found here: https://stackoverflow.com/a/46695136
created pullrequest #169


signalbackup-tools: 20230307-1 -> 20230316

Description of changes
Update to latest version. No changes that effect build (diff: https://github.com/bepaald/signalbackup-tools/compare/20230307-1...20230316).
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[x] x86_64-darwin
[x] 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/)
23.05 Release Notes (or backporting 22.11 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

[x] Fits CONTRIBUTING.md.


Update secure-azure-computing-architecture.md

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

@stevevi - Can you review this old PR and determine whether it needs to be closed or merged?
IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.

#please-close


Don't modify commits on rebase

Is your feature request related to a problem? Please describe.
I've noticed that if I'm working in a branch and I rebase from main, all the commits in the branch end up with the current set of configured co-authors on them. So the original co-author info in the branch is lost.
Describe the solution you'd like
When doing a rebase, don't modify the co-author trailer on the rebased commits.
Describe alternatives you've considered
Live with it? :)

ooh that's a tricky one, seems annoying though. I will have a look (also open to PRs if you feel comfortable with that)

What would you expect, the rebaser to be represented in the trailers, but added to the existing ones, to appear as "the committer" or just make no change?

Perfect! 🙌🏻

This should be out now, not defaulted yet.
git mit-config mit set-non-clean-behaviour no-change

to turn it on


need to add some built-in resilience

Open question right now:

what happens if atom tries to update and never succeeds?

gotta add option for max number of retries before giving up entirely

what happens if connection to redis is lost? timed out?

need to handle those cases gracefully so user has clean api and no surprises

what happens if something goes wrong in mid transaction? what are the options for rolling back?

redis has no ability to roll back multi/exec transactions -- something like this is beyond the scope of this project and probably belongs in refs territory.

Behaviour will be controlled by an additional :option parameter that may be passed to the constructor. By default will exactly like clojure atom, for better and for worse.

take a look at https://github.com/resilience4clj for inspiration

TODO:

[ ] cas max retries
[ ] cas timeout

[ ] type of timeout evolution? const, linear, exponential

[ ] swap timeout


vitest/max-nested-describe false positive

For the following code it highlights the last 2 describe blocks:
import { CurrencyType } from "./constants.js";
import { Currency } from "./Currency.js";

describe("currency", () => {
  describe("constructor", () => {});

  describe("normalise currency name", () => {});

  describe("get canonical name and multiplier", () => {});

  describe("to string", () => {});
});

with this configuration:
"vitest/max-nested-describe": [
          "error",
          {
            "max": 3
          }
        ],

If I increase max to 4 - it will only highlight the last block.
I think that nesting isn't counted correctly.

@Maxim-Mazurok thank you for reporting this. Nested block here means that describe blocks are inside other describe block like the following
describe('another suite', () => {
 describe('another suite', () => {
    describe('another suite', () => {
       describe('another suite', () => {
          describe('another suite', () => {
          describe('another suite', () => {

          })
       })
      })
    })
  })
})

would you like me to write another rule that covers your use case?

@veritem no, this is not a feature request, it's a bug report :)
I understand that the rule is supposed to prevent nested describe blocks:
describe("bla", () => {
  describe("bla", () => {
      describe("bla", () => {
	      describe("bla", () => {
	      })
      })
  })
})

The problem is that the rule is being triggered and reports the following code as an error when it shouldn't:
describe("bla", () => {
  describe("bla", () => {})
  describe("bla", () => {})
  describe("bla", () => {})
  describe("bla", () => {})
})

Hopefully, this clears it up :)

Issue seems to be resolved now


Embed integration into dartpad page

Export URLs added into dartpad.

@devoncarew

Newly updated with suggested modifications.
@devoncarew

lgtm, nice

Merging.


Hint at thread replies when messages are unthreaded

Lighter touch approach to https://github.com/42wim/matterbridge/issues/343
Is your feature request related to a problem? Please describe.
Unthreaded messages confuse the flow. It's a very different experience on different ends of bridge, depending on if messages are threaded or not.
Describe the solution you'd like
Let's offer a small hint when things become unthreaded. For example, just prefix unthreaded messages with thread reply: . If that formatting is contentious, happy to use another. We could also template this, so that folks could override the default template of thread reply: {MESSAGE}.
Describe alternatives you've considered

preserving threading when possible #529
quoting parent message #343

Additional context
None.

Could maybe add something like a SupportsThreading() function to Bridger interface or somewhere comparable, so that we're not hardcoding slack-specific stuff, but just asking the bridge itself if it supports threads. Not sure what's best, but the ParentID processing seems like it could be a bit more clear :)

Would like to have the logic completely in slack for modifying the message.
Maybe setting ParentID to a specific value (eg 0 ) means that you didn't find the real ParentID and the slack bridge can handle this itself instead of the gateway

Sounds good. Since we're not confined to numeric, which about something a little more self-explanatory, like unavailable or unknown?

Wait. How did you mean when you said you wanted this in slack? If we moved this into the bridge, then non-threaded platforms wouldn't get the hint. Don't we want it to happen in the gateway, so that everyone understands that the context is different on the originating end?
Also, for example, if someone responds to an old message in a slack thread, they will be brief and noncontextual, since it is obvious what they mean on their end. But in gitter, it will just be a quick message, that others might assume is about current, main-channel convo. This would be wrong. Prefixing it with "thread reply:" will let people know that the context is missing. (Later, we can even resolve this reply to the parent message, and hyperlink replies to the parent message in gitter.)
tl;dr - this hint is useful for all protocols, and can be made even more useful once persistent cache lands :)

Regardless, I moved it into slack bridge before thinking through on the above. Happy to rework if the above appeals to you :)
Otherwise ready for review!

To test this branch:

enable threading on a gw between two channels on same slack team
post a message
reply to that message. (threading will work)
reply to an old message from before restart. (will see prefix)
edit the origin message of that last one. (will see msg update, with prefix maintained)
reply to unthreaded msg with prefix. (will see reply appear in original thread)
turn off bridge, disable threading, restart.
create threads and see all message unthread with prefix.

Some initial remarks:

don't like the use of "canonical_parent_mid" in msg.Extra especially as this isn't used to get extra info to the bridges
would like it to be simpler and more comments, especially documenting the function according to https://golang.org/doc/effective_go.html#commentary

(haven't tested it yet)

don't like the use of "canonical_parent_mid" in msg.Extra especially as this isn't used to get extra info to the bridges

Hm. Ok, I'm struggling with imagining rolling back this bit. It's the product of a nontrivial resolution, and it feels odd to not have a place to hold it in the message object. When I get to working on reactions, this feels like it will also be helpful so that the message can be passed around more easily and processed. What else would you consider for holding the resolved parent ID on the message object, if anything? Thanks!

Could you take a look at https://github.com/42wim/matterbridge/commit/3d6c8e448196b7656e3807c37d38f58cb8c476f4 ?
This behaves exactly the same as your patch (tested with the steps above) but is much simpeler

Thanks Wim. Yes, it's shorter, which is great! but for a new reader, the parentID logic is really not clear. The goal of IsThreadable was to abstract away that very particular logic (which might change). I think I need to try to better understand our shared legibility goals of the codebase. I have been leaning (in what I consider my more thoughtful moments) toward adding small human-readable functions for these, but it seems I keep bumping up against some other set of criteria (not as simple as line count) that I don't quite grasp yet.
But regardless, thank you! I'll test later

I might wonder, why exactly does having those criteria mean that it's untheaded?

That's why I left a comment above the line :)

I think I need to try to better understand our shared legibility goals of the codebase.

My goal is trying to "keep it as simple as possible but not simpler".
Don't do too many abstractions if they're not really necessary.
We can always refactor later if it's really needed.
But this is of course very subjective.

Thanks for helping me sync up :)

@patcon so should I make a PR of https://github.com/42wim/matterbridge/commit/3d6c8e448196b7656e3807c37d38f58cb8c476f4 did you test it?


App crash when tapping thumbnail in list item

Android 7.1.1 on a Moto E4
Shopping List 1.0.9 installed from f-droid
When adding a photo to an item, the photo is taken, and a thumbnail appears in the expanded item view.
But, tapping the thumbnail results in an app crash (see attached image).  I expected that tapping the thumbnail would provide a larger/full screen type view of the photo.

5 years ago... but this bug never fixed...


Incorrect memory allocation flag in bloom.cpp

https://github.com/SaschaWillems/Vulkan/blob/master/bloom/bloom.cpp#L350
Should be using memory property flags, not memory heap flags

You're right on this. The heap flag is wrong but it works as it it's the same value as the property flag for device local memory.


reword "All Conformant Kubernetes" to "All distributions of Kubernetes"

This PR rewords "All Conformant Kubernetes" to "All distributions of Kubernetes".
This is a subtle but important change for inclusivity, as I have seen many users not understanding what "Conformant" means (especially people for whom English is not their first language).

@jbottum @zijianjoy As this only affects "Charmed Kubeflow" and my distributions (deployKF, Argoflow), I think we only need approval from Canonical.
@DomFleischmann can you confirm from the Canonical side?

For Canonical, I would differ to @DnPlas and @kimwnasptd.    I think this change is for the distributions to make individually.   Who is the contact for ArgoFlow and are they engaged ?   Shouldn't Arrikto be removed from the table?...I thought that was already done.

@jbottum that was a lot of questions in one sentence:

Sounds good, if the current Canonical reps are  @DnPlas and @kimwnasptd, they can confirm they prefer this wording
Argoflow was created by @DavidSpek and me, but it is now archived, and I think we might as well use the new wording to reduce confusion and keep everything aligned
If the "Arrikto Enterprise Kubeflow" is no longer a thing, I will raise a separate PR for that:

NOTE: we removed the "Arrikto Kubeflow as a Service" in https://github.com/kubeflow/website/pull/3549, which was a separate entry

ACK, I need to confirm that stating "all distributions of kubernetes" actually reflects what Charmed Kubeflow supports before we can approve this PR.

There was a missing HTML tag, so I have fixed that in https://github.com/kubeflow/website/pull/3573/commits/30b40f6fb85a7da8d076a6dd24fb688074868614

@DnPlas I was hoping you could confirm that Canonical is OK with this minor change that improves the wording on the website listing of the Charmed Kubeflow distribution.

@DnPlas I think Official CNCF Kubernetes distributions is not valid, because there are no "official" CNCF distributions.
However, there are CNCF "certified" distributions, which is a much easier word for people to understand.
So perhaps we could use All Certified Kubernetes Distributions?

/lgtm thanks @thesuperzapper


docs only: added api required to make project drop-down work properly

Is this applied when the most recent changes(SDK update) go to production?

Yes. The SDK update doesn't change this.


chore: fix test case

Codecov Report

Merging #23 (8c64e82) into main (79dba6e) will increase coverage by 16.92%.
The diff coverage is 92.37%.

@@             Coverage Diff             @@
##             main      #23       +/-   ##
===========================================
+ Coverage   67.75%   84.68%   +16.92%
===========================================
  Files          13       13
  Lines         642      914      +272
  Branches      133      274      +141
===========================================
+ Hits          435      774      +339
- Misses         92      128       +36
+ Partials      115       12      -103

Impacted Files
Coverage Δ

src/logger/child.ts
92.30% <ø> (-1.03%)
:arrow_down:

src/logger/contextLogger.ts
75.00% <ø> (+12.50%)
:arrow_up:

src/util.ts
79.24% <80.00%> (+21.18%)
:arrow_up:

src/logger/logger.ts
95.65% <94.44%> (+19.75%)
:arrow_up:

src/format.ts
96.82% <96.15%> (+32.30%)
:arrow_up:

src/index.ts
91.66% <0.00%> (-8.34%)
:arrow_down:

src/winston/logger.ts
100.00% <0.00%> (ø)

src/logger/delegate.ts
100.00% <0.00%> (ø)

src/transport/index.ts
100.00% <0.00%> (ø)

... and 7 more

Continue to review full report at Codecov.

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


Replace manual #include guards with "#pragma once".

Codecov Report
Patch and project coverage have no change.

Comparison is base (8d9be68) 83.22% compared to head (f387428) 83.22%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #245   +/-   ##
=======================================
  Coverage   83.22%   83.22%
=======================================
  Files           6        6
  Lines         739      739
=======================================
  Hits          615      615
  Misses        124      124

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


Add per word timing support

The LRC file format also specifies per word timing, in the format of:
[01:06] <01:07>first <01:09>middle <01:20>last <01:25>

Which means the line starts at 1:06, the first word is marked at 01:07, the second word at 01:09, the last at 01:20. If animated then the first word will take 2 seconds to fill, the second will take 11 and the last will take 5 seconds to fill until the next line time arrives.

Hi @itaibh :wave: I think enhanced lrc is less commonly used, I don't know. I'm having a hard time finding a fairly complete source about this variant. but it doesn't matter there must be another way to find a solution :sweat_smile: or if you have an enhanced lrc sample file it will be very helpful.
Thank you very much :raised_hands:

From https://en.wikipedia.org/wiki/LRC_(file_format)?wprov=sfla1
[ar: Jefferson Airplane]
[al: Surrealistic Pillow]
[au: Jefferson Airplane]
[length: 2:58]
[by: lrc-maker]
[ti: Somebody to Love]

[00:00.00] <00:00.04> When <00:00.16> the <00:00.82> truth <00:01.29> is <00:01.63> found <00:03.09> to <00:03.37> be <00:05.92> lies
[00:06.47] <00:07.67> And <00:07.94> all <00:08.36> the <00:08.63> joy <00:10.28> within <00:10.53> you <00:13.09> dies
[00:13.34] <00:14.32> Don't <00:14.73> you <00:15.14> want <00:15.57> somebody <00:16.09> to <00:16.46> love

dam, i didn't notice 😅. thank you very much 🤣

would you also like to contribute with code? feel free to fork this repo

I had an idea replacing TIME_REGEX with this format:
const TIME_REGEX = /\[\d{2}:\d{2}(.\d{2,})?\]{1,}.*?((<\d{2}:\d{2}(.\d{2,})?>)(.*?))*/g;

so adding further detection groups for timed words, but I can't test it.

how do you test your code?

for now i testing it using native module by modify the script tag in the index.html file.
to check the regex i use an online tool like https://regexr.com/ to see the result instantly.
I know this is terrible and I hope you or someone else can make it better :smile:

I had an idea replacing TIME_REGEX with this format:
const TIME_REGEX = /\[\d{2}:\d{2}(.\d{2,})?\]{1,}.*?((<\d{2}:\d{2}(.\d{2,})?>)(.*?))*/g;

so adding further detection groups for timed words, but I can't test it.

we can give it a try, but i've made some changes maybe you should review it
https://github.com/mcanam/liricle/tree/per-word-timing-support

parser output:

looks great, but since I forked main I don't get this branch. Can you merge to main?

looks great, but since I forked main I don't get this branch. Can you merge to main?

try to run git fetch to get new branch

I actually copied from your branch and completed implementation of a full karaoke interface upon it, still buggy and the code could be improved massively.

I actually copied from your branch and completed implementation of a full karaoke interface upon it, still buggy and the code could be improved massively.

yeah because this feature is still in development branch so it can't be used for real implementation yet. if this feature is ready and stable we will merge it with main branch and release new version :raised_hands:

https://github.com/mcanam/liricle/pull/2/

almost done, please check the latest commit :tada:


[Bug] Some contents on the site are not being translated

Describe the bug
The FAQs on the home and FAQ pages are not translated after switching to EN.
To Reproduce
Steps to reproduce the behavior:
For the home page

Go to home page.
Scroll down to the Frequently Asked Questions section.
See the error

For FAQ page

Go to FAQ page
See the error

Expected behavior
The FAQ section on the home and FAQ pages should be translated after switching to English.
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

OS: Windows
Browser: brave
Version: 10

Note: It's not a bug with the website itself, instead there are no translations for this section at all:

we have to translate all questions in English
we have to apply some changes in the codebase so it will use i18n keys and automatically show the correct text according to the selected language instead of using only the hard-coded Bulgarian text

Closing this issue since it is reported as part of https://github.com/podkrepi-bg/frontend/issues/1066.


MWPW-133053 | Promo aside variant - popup promobar

New variation to promobar aside block. Floating promobar with close button.
Multiple viewport authoring support
Supports integration with section-metada sticky bottom. Promo disappearing on footer.
Resolves: MWPW-133053
Test URLs:

Before: https://main--milo--adobecom.hlx.page/drafts/mathuria/promobar/popuppromo?martech=off
After: https://popupaside--milo--aishwaryamathuria.hlx.page/drafts/mathuria/promobar/popuppromo?martech=off

Hey @aishwaryamathuria - I checked the design file (the old once since I cannot access the one in the ticket description) and noticed there is a drop shadow that's not visible in your implementation. Is the drop shadow still needed?
Also, what's the use-case for closing the promo? I see the state is not persisted after a page refresh.

Hey @aishwaryamathuria - I checked the design file (the old once since I cannot access the one in the ticket description) and noticed there is a drop shadow that's not visible in your implementation. Is the drop shadow still needed? Also, what's the use-case for closing the promo? I see the state is not persisted after a page refresh.

@narcis-radu Thanks for pointing this out.. The box shadow is required. I have added the same in the PR.
For the close button - This was a requirement for the popup promo. This is currently available on live adobe.com page and is replicating the same functionality for this block on Milo https://www.adobe.com/creativecloud.html
The close state is not persistent and promobar is expected to re-appear after refresh.

In "regular" promobars, the action cta is right-aligned and in the same position as all other promobars.  In the popup promobar the cta position is at the end of the text.  Is that intended?
Can you include a sticky sample please.
It's called a "popup" - Can this be displayed by an action?
Should closing the popup shift content?  I guess this will mostly be used as a sticky?

@chrischrischris

The position of the cta is expected to be at the end of the test as per the XD shared in https://jira.corp.adobe.com/browse/MWPW-133053
Sure.. Following are two sample mlo pages with promobar added with sticky section http://localhost:3000/drafts/mathuria/promobar/creativecloud?martech=off
http://localhost:3000/drafts/mathuria/promobar/creativecloud-fragment?martech=off
Popup promobar is expected to be displayed with no delay and appear and disappear on scroll hence the behaviour was added as per the same requirement. https://jira.corp.adobe.com/browse/MWPW-133052
Promobar is used as a sticky section and hence it is adding display none to the section. In those scenario there will be no content shift.

Validation done on the pr raised on the below urls :
https://popupaside--milo--aishwaryamathuria.hlx.page/drafts/mathuria/promobar/popuppromo?martech=off

Mobile and ipad view

Below are the test urls created and verified as part of this PR  by authoring in the page and fragment
https://popupaside--milo--aishwaryamathuria.hlx.page/drafts/Anupama/promo-close/promo-onpageload-frg

https://popupaside--milo--aishwaryamathuria.hlx.page/drafts/Anupama/promo-close/promo-onpageload
https://popupaside--milo--aishwaryamathuria.hlx.page/drafts/Anupama/promo-close/promo-aftermarquee-frg
https://popupaside--milo--aishwaryamathuria.hlx.page/drafts/Anupama/promo-close/promo-aftermarquee
promo bar not seen on the page load , after the scroll of the marquee

disappears after reaching the footer

https://popupaside--milo--aishwaryamathuria.hlx.page/drafts/Anupama/promo-close/creativecloud-scroll

https://popupaside--milo--aishwaryamathuria.hlx.page/drafts/Anupama/promo-close/photoshop-grey-scroll
https://popupaside--milo--aishwaryamathuria.hlx.page/drafts/Anupama/promo-close/photoshop-grey-scroll-frg
https://popupaside--milo--aishwaryamathuria.hlx.page/drafts/Anupama/promo-close/photoshop-grey-pageload-frg
https://popupaside--milo--aishwaryamathuria.hlx.page/drafts/Anupama/promo-close/photoshop-grey-pageload

https://popupaside--milo--aishwaryamathuria.hlx.page/drafts/Anupama/promo-close/photoshop-blue-scroll-frg
display of the banner only in mobile view and doesnot appear in Desktop and tablet

https://popupaside--milo--aishwaryamathuria.hlx.page/drafts/Anupama/promo-close/ccexpress-pageload-frg

https://popupaside--milo--aishwaryamathuria.hlx.page/drafts/Anupama/promo-close/creativecloud-pageload-pdf

Validation has been done in CC folder and the localization has been done , below are the few urls
https://main--cc--adobecom.hlx.page/drafts/Anupama/promo-close/ccexpress-pageload-frg?milolibs=popupaside--milo--aishwaryamathuria

https://main--cc--adobecom.hlx.page/drafts/Anupama/promo-close/photoshop-blue-pageload-frg?milolibs=popupaside--milo--aishwaryamathuria

on locale page
https://main--cc--adobecom.hlx.page/pl/drafts/Anupama/promo-close/creativecloud-scroll?milolibs=popupaside--milo--aishwaryamathuria

https://popupaside--milo--aishwaryamathuria.hlx.page/es/drafts/Anupama/promo-close/photoshop-grey-scroll

@aishwaryamathuria  - This is looking good. I had a few questions mostly around display expectations.

In the jira ticket it looks like there is a backdrop shadow gradient behind the promo-bar. I am not seeing this in the examples and was wondering if this is a requirement?

There are some overlapping links happening on mobile when the chat icon is present. Is there any design considerations around this overlap?

I checked the design and you do have it correct but does the padding look off to anyone when no icon is present?
Huge on top, tiny on bottom. Do we need a quick consonant design review on this to sweep any fine tuning? (realize these reviews should come pre PR)

@aishwaryamathuria - This is looking good. I had a few questions mostly around display expectations.

In the jira ticket it looks like there is a backdrop shadow gradient behind the promo-bar. I am not seeing this in the examples and was wondering if this is a requirement?

2. There are some overlapping links happening on mobile when the chat icon is present. Is there any design considerations around this overlap?

3. I checked the design and you do have it correct but does the padding look off to anyone when no icon is present?
   Huge on top, tiny on bottom. Do we need a quick consonant design review on this to sweep any fine tuning? (realize these reviews should come pre PR)

Hi @ryanmparrish
Following are the inputs to above queries

Box shadow is added to the promobar as per the configuration in XD- 0 3px 6px #707070
The XD does not specify any settings for the overlapping chat icon on the promo.
We have added the extra padding on top if no icon is present since as per the XD the height of the promobar needs to be maintained the same with and without the icon and the XD has requested the extra space on the top. Hence there is a padding difference between top and bottom in the no-icon state.


WIP: Add Fabric namespace support

@niravcodes the unregisterDevice should automatically use the id that is returned by registerDevice. We'll need to store it after calling registerDevice

@niravcodes it seems CI is failing after the version upgrade? could you check?

@danieleds Fixing the CI build issue. It is caused by the demo failing to build because of version mismatch, so no issues in the core packages.

@niravcodes did you make manual changes to the demo/pushNotifications/android/ and demo/pushNotifications/ios/ folders?

Yup! Unfortunately this is one of those problems that needs manual work on the native side. I'm working on a set of notes to make it as easy as possible but it's still somewhat messy.


Manual override of /etc/resolv.conf for custom DNS setups

Using:
Microsoft Windows [Version 10.0.14393]
Currently, /etc/resolv.conf is autogenerated  - which is perfect for most situations.  I'm annoying, however, and run a local DNS server on my dev boxes to allow custom DNS overrides. So for
ipconfig /all
I get several DNS servers, e.g. one public:
<IP_ADDRESS>
and one custom loopback
<IP_ADDRESS>
These are autogenerated into the resolv.conf:
nameserver <IP_ADDRESS>
nameserver <IP_ADDRESS>
search Home
Problem is, when I try to resolve any custom domain, it'll resolve using the first one and fail. I kinda want to remove the first nameserver, and just use my custom local one which also does caching from public servers:
nameserver <IP_ADDRESS>
search Home
So ultimately I need some way of overriding /etc/resolv.conf autogeneration, or disabling it.
I've tried using resolvconf, expecting this may be used to update the conf:

sudo resolvconf --disable-updates
resolvconf: Error: /run/resolvconf/interface either does not exist or is not a directory

Have also looked into modifying:
/etc/network/interfaces.d/eth0.cfg
auto eth0
iface eth0 inet dhcp
dns-search Home
dns-nameservers <IP_ADDRESS>
Have also tried modifying the dhcpclient stuff, no avail.

Since /etc/resolv.conf is autogenerated by a Windows process (not by Linux), using Linux tools is not going to help much.
About the only way to fix it (until more options become available) is to tell the Windows side to use your custom name resolver, or at least put it first. With a bit of luck the autogenerated /etc/resolv.conf might put your custom resolver first then, with the public one second, and it will work as you want. Perhaps someone knows how the autogeneration process chooses which nameservers from which adapters are put first in /etc/resolv.conf, if the obvious changes don't work.
Or I suppose you could put a script in .bashrc or something that overwrites the autogenerated resolv.conf with one more to your liking every time you log in, until such time as WSL gives more options.

@gjonespf Please see #1028 on how WSL currently does DNS and our thoughts around it (and the issue with not keeping DNS entry not in sync between Windows and WSL). In short, and, also as @rodrymbo points out, the way currently to manage your /etc/resolv.conf is by updating your Windows DNS entries. Hopefully, we can soon fix the issue that is preventing the WSL DNS entries to stay in sync with the Windows side, on a continuous basis. As a workaround, a fresh bash launch should regenerate the /etc/resolv.conf.

@sunilmut Yeah, for now I've just removed all public DNS from the Windows side and run everything with caching through custom local DNS server/proxy.  It's a little simpler to debug that way.
@rodrymbo cheers for the info, it's a little difficult to know how much WSL uses the Linux/Ubuntu networking model, so thought I'd try.  And yeah, the .bashrc idea also works, tried that before just simplifying DNS resolution on the Windows side.  Will close this as I'd imagine the work around will work for most people.

anyone know how this is fixed in the insider builds?

In bash/wsl add <IP_ADDRESS> as first entry in resolv.conf (sudo nano /etc/resolv.conf)
For dos use these instructions


A big overhaul but no love for week view

(Required) Version Number: 8.0
Description
I'm having some issues when trying to use 1 row as to:
Change month name (The only way i see of implementing month header is by using viewForHeader which is something i don't wanna do)
Disable scrolling for dates before startDate
Also, i'm rolling back to 7.1.7. After updating cocoapods and changing the names in all delegates and functions, tapping simply stopped to work. Noticed some other glitches as well so, i'm not sure if this is a known issue or whatnot but this update is proving to be a bothersome instead of an improvement, at least for now.
Love your lib and all the effort you put on it, hope to see more from it. :)

Thanks.

ok. Im am unclear what you mean by Change month name.
Can you show me a screen shot of what your calendar looks like so i can have an idea of how to respond?

Also, i'm rolling back to 7.1.7. After updating cocoapods and changing the names in all delegates and functions, tapping simply stopped to work. -- This is mentioned on the migration guide.

There is an important note in there -->
Important: Because the names of some function have changed, if you forget to change their names you might notice things like “my functions are not being called”. If you are experiencing this, changes are you did not change the names.

So if your click isnt working, its because you didnt change the function name. Check out the link and see the new function name for didSelect now includes IndexPath in the function name.

Noticed some other glitches as well - Let me know what they are.
I made a huge overhaul to include YearView. There were also many issues fixed from version 7.1.7.  If you see any new issues, then let me know. Even if the "issue" seems insignificant. This lib should be bug free.

Thanks for the prompt response!
Month name for the header: for reasons untold, i cannot use header view for month for swipe (there are some logics applied to the month label name), thus i cannot select which month i'm displaying. My work around right now is to change the month when the user taps a day.
But it's simple, just 1 row for days and a month label on top of it.
I guess you're right, i've used xcode compiler and haven't paid attention, my bad on that.
I might re-test the glitches since delegate wasn't called properly.

One question:
How would be the proper way to implement this: https://www.dropbox.com/s/3atsai4b538to7k/Video 15-7-19 19 48 27.mp4?dl=0
When the user swipes down, the next day would be selected. But on the last day, it jumps to the next section. Is there a way to achieve this?

But it's simple, just 1 row for days and a month label on top of it.

I am not sure if you looked at the header tutorial, but there are two ways to create headers.
First is using a outsideHeader and the other is using an insideHeader.
Since you just want a simple label, then it looks like you are creating an outsdeHeader (a header that is managed by yourself outside of the scope of this library).
You do this by having a simple headerLabel (like you have done). You change the text of the headerLabel when ever a user scrolls your calendar. You detect when ever a user scrolls the calendar using this function:
func calendar(_ calendar: JTACMonthView, didScrollToDateSegmentWith visibleDates: DateSegmentInfo) {
    guard let startDate = visibleDates.monthDates.first?.date else { return }
    let dateFormatter = DateFormatter() // Do not declare this here. Use a saved variable. DateFormatter is performance heavy
    dateFormatter.dateFormat = "MMMM, yyyy"
    monthLabel.text = dateFormatter.string(from: startDate)
}

Oh! That was what i was wondering! didScrollToDateSegment but i wasn't clear on which date to use from the DateSegment object. That's awesome. I did looked on the header tutorial, but if i'm not mistaken it's written there that a next tutorial would be written for 1 row calendars, thanks for clarifying to me!
Also, i believe the segments were "jumping" from 31 to 1 because i set strict boundaries to true.
Is there a way to prevent user scrolling back when the whole segment is in the past or before startDate?

ok. im am not sure what you mean. but before i answer, can you confirm that your 1row calendar is configured like this? https://github.com/patchthecode/JTAppleCalendar/issues/581

It is like this:
ConfigurationParameters(startDate: startDate, endDate: endDate, numberOfRows: 1, calendar: Calendar.current, generateInDates: .forFirstMonthOnly, generateOutDates: .off, firstDayOfWeek: .sunday, hasStrictBoundaries: false)`
What i mean by that is: If the startDate is July 16, the week would start at July 15 and the user wouldn't be able to scroll to week July 14

Keep in mind that i made this lib as simple as possible. So i do not have functions like this out-of-the-box.
But It is made from a UICollectionView, so making something this is easy.
So you setup a boundary date that you do not want the user to cross.
like this https://github.com/patchthecode/JTAppleCalendar/issues/365

I see, you have a fair point there.
It seems i have everything sorted out because of your help.
May i suggest some improvements on your tutorials? Sometimes it feels you jump a few steps on the matter. But i should email you directly instead of keeping this conversation here. Again, thank you for your prompt response. I will close this issue.

you can make the improvement suggestions by opening a new issue here.
Its easier for me to track issues on guthub.


Improvement to sql generator, added validation

What does this pull request do?
adds validation for CSV files
What is the intent behind these changes?
to reduce risk of system template data being incorrectly configured

Had to fix some tests as they did not work on a FRIDAY because code does not return date for current date and day of week was Friday.


Ajouter le swagger à l'API

closes #23

I am going to merge to test the production today. Any additional modifications and changes to urls etc will be felt with in another PR.


added "Community driven JavaScript documentation" to the manual

I have been working on Haxe JavaScript documentation for a while now.
And I thought it would be a good idea to add it to the Haxe Manual and @Simn agrees...
https://github.com/HaxeFoundation/HaxeManual/issues/301
So this is the first attempt to get it in the Haxe Manual...
And @markknol could give me some help with the tone-of-voice

Definitely a good source to follow along.

I don't think its needed to make complete section for this, but I've added a link to your docs. Thanks! https://github.com/HaxeFoundation/HaxeManual/commit/12b0f3a64a2d3a737ee3c6ce9355e7ae7d9ea7e9


Adding method to the caching key to make it more unique

Fix for issue #15

@d-niu

Is the goal for the key to be unique to different types of request methods or unique per instance of the method?
unique per method and shared across instance.


[smpeg2] Change the vcpkg cmake to not error on narrowing conversions.

Fixes an issue on non-msvc compilers where the CMake added by the vcpkg port is causing warnings as errors to occur.
Might be better to change this to -Wno-error, but I started with this. The vcpkg provided cmake seems to be targeting a very old cmake version, so I wasn't sure what the best ways to detect what should be done here (or what to most appropriately do). I'm open to suggestions, just want to be able to build this on Ubuntu and such :)

Maybe just bump cmake_minimum_required to something more recent? vcpkg internally uses cmake 3.25

@playmer, Thanks for your PR, please also change the vcpkg.json "port-version"(change from '9' to '10').

Note: I will be converting your PR to draft status. When you respond, please revert to "ready for review". That way, I can be aware that you've responded since you can't modify the tags.

There is active development on https://github.com/icculus/smpeg, and there I see
https://github.com/icculus/smpeg/commit/3769f4db50bdd784a930464fe2332ca9da2113f9
(i.e. avoiding the narrowing instead of disabling the diagnostics). This fixes the linux build for me (but I didn't test the result).
The CMakeLists.txt needs a general cleanup.
In addition, this PR should remove the smpeg2 entries from scripts/ci.baseline.txt to actually get CI testing for the port.

Sorry I didn't come back to this (super annoying working on hobby vcpkg stuff on my home machine while I'm Microsoft connected), I had tons of issues trying to repro this again, but I see @dg0yt pretty much immediately did a way way better version of this, thanks! (Maybe that's why I couldn't repro haha). So I'll close this :)


Callback From Foreign Thread

Hello,
I am integrating node with a C++ library that is itself asynchronous and is driven by it's own background thread.
The C++ API functions accepts a callback that will be executed when the action is complete from that background thread.
The API I am exposing with NaN will accept a callback, that the callback from C++ should then invoke/schedule.
This would then be executing that callback outside of the main js thread for the node application.
So that will cause an error in the form of a seg fault.
I've been trying to figure out how to throw an event to the underlying libuv thread to invoke the callback from the main thread but I keep falling short of a working solution.
I tried using the Nan::AsyncWorker but it looks like the ::Execute() function needs to execute a blocking call in order to figure out if the task was successful or not?
I might be missing something there.
I could turn the async calls from the C++ library into synchronous versions which would probably work for me then, but that seems less than ideal.
I am basically looking for a way for the C++ callback, from a foreign thread, to throw an event at node saying "here is a new event".
Just wondering if someone could confirm my thoughts, maybe point my in a direction.
Thanks :)

I brought this into my app
https://github.com/skypjack/uvw
Makes it easy to send an asynchronous event into the main libuv thread running in node.

I brought this into my app
https://github.com/skypjack/uvw
Makes it easy to send an asynchronous event into the main libuv thread running in node.


合并最新版本

11

11

Does this pull request just change all the github link to the github mirror? That's inappropriate for other users who do not need a github mirror.  In general, the mirror sites are mostly used by the Chinese user ( also include me), and actually they are fine.  But the pull request which replaces  the source site is not a good idea.


feat(container): update ghcr.io/sergelogvinov/fluentd (1.16.2 → 1.17.1)

Update Request | Renovate Bot
This PR contains the following updates:

Package
Update
Change

ghcr.io/sergelogvinov/fluentd
minor
1.16.2 -> 1.17.1

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: undefined
Post-upgrade command 'make docs-{{{parentDir}}}' has not been added to the allowed list in allowedPostUpgradeCommands


Use latest (hopefully last) alpha of eslint config

Should be the last one before full release.
Not necessary to merge this I suppose, could morph into stable pretty soon

:+1:


Extract activity names

In item:
"activity": string
"activity": [ string, ... ]
"activity": { "prefLabel": string }
"activity": [{ "prefLabel": string }, ... ]
If there is no activity key in top level objects, look in the subevent object or array of objects.
The result is an array of strings.

https://www.openactive.io/opportunity-data-primer/#how-do-you-describe-the-physical-activities-take-will-place-during-a-session-
https://www.openactive.io/opportunity-data-primer/#how-can-you-refer-to-activities-from-a-standard-activity-list-


Fix off-by-one error in LocalizedDatasetPrototype

Fixes LocalizedDatasetPrototype indexing returning values starting at 0 instead of 1.
Sigh.

gotta sleep, have a thee a self-merge token

Cheers


Fix dimension table nits

Closes #1027 and #1029

Before merging this PR, just take a look at this comment https://github.com/rilldata/rill-developer/issues/1027#issuecomment-1279280733  -- I think we need to add a little space around the dots menu other otherwise it's too small.


There are no Social Media links for this project

Deliverables:

There are no social links such as Twitter , facebook , github , and LinkedIn*

Screenshots

The Green Arrow highlights the Directory of the Footer.js File *

I'll provide you with it later.

Can you please Provide social media links so that i can update the links

Please provide them here or dm me in twitter
https://twitter.com/Mohd_Farseen


Vue.js placeholder

Description
It is possible to add a placeholder in the head tag?
Expected behavior
Add <placeholder name="jss-head" :rendering="route" /> in the <head></head> tag
Your Environment

Sitecore Version: N/A Deconnected Mode
JSS Version: 13.0.0
Operating System and version (desktop or mobile): Desktop
Framework: Vue.js

Placeholders must be added to visible locations only since they render visual editing areas. The head tag, being non-visible page metadata, cannot host a placeholder.
To add head data consider adding route level fields for the head data, then reading them off the route when present.

@npoliquin Seems that you get answer. Feel free to open issue if you will have another questions

I have a similar issue with Next.js. When I put Placeholder into <Head>, I get everything broken. As far as I understand, Placeholder was never intended to work in <Head>.
My scenario:

We need to have the ability to place scripts into <head>. E.g. Google Tag Manager and other tracking scripts
We added a placeholder in <Head>.
Expected behavior: We should be able to render raw HTML. In our case, it is a <script> tag with some content inside.
Actual behavior: Everything placed in that placeholder remains inside <body>. Furthermore, if we have anything under that placeholder, that should go to <head>, it also remains in <body>.

As far as I understand, it was never intended that a placeholder should work inside the head. But what are the technical limitations, and why it is not possible?


KML GroundOverlay should apply alpha transparency value from color property

Google Earth supports a <color> value on a <GroundOverlay>.  The RGB values are ignored, and the alpha value is applied to the image  (see http://dagik.org/kml_intro/E/image.html for an example).  It would be nice if Cesium supported that as well.

Thanks, unsurprisingly I don't think the spec mentions this.  If this is trivial, I'll get it into 1.10.

If I change the color to 550000FF I see a red tinted image.  The choice of white is probably giving the impression that it is being ignored since the center of the image is white anyway and blending a transparent white would serve to soften the color even further.

For what it's worth, GE Desktop exposes a "Transparency" slider in the Properties dialog for a GroundOverlay.  I suppose there might be a use case somewhere for actually applying the other color values as well, but alpha is certainly the most obviously useful (and admittedly the only one I care about myself).

Hello @markerikson
This issue was fixed in #3766 and will be included in the Cesium 1.20 release.  Thanks!


CBC encrypt and decrypt issue?

Hello there,
I hate to ask such a silly question, but did I miss something to use the AES CBC encryption?
I am using AES128 CBC encryption and modified the main() of "test.c" as follows:
`
int main(void)
{
#ifdef AES128
printf("\nTesting AES128\n\n");
#elif defined(AES192)
printf("\nTesting AES192\n\n");
#elif defined(AES256)
printf("\nTesting AES256\n\n");
#else
printf("You need to specify a symbol between AES128, AES192 or AES256. Exiting");
return 0;
#endif
//test_encrypt_cbc();
//test_decrypt_cbc();
//test_encrypt_ctr();
//test_decrypt_ctr();
//test_decrypt_ecb();
//test_encrypt_ecb();
//test_encrypt_ecb_verbose();
//test_encrypt_ecb_verbose();
uint8_t iv[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };

uint8_t i, buf[64], buf2[64];

// 128bit key
uint8_t key[16] = { (uint8_t)0x2b, (uint8_t)0x7e, (uint8_t)0x15, (uint8_t)0x16, (uint8_t)0x28, (uint8_t)0xae, (uint8_t)0xd2, (uint8_t)0xa6, (uint8_t)0xab, (uint8_t)0xf7, (uint8_t)0x15, (uint8_t)0x88, (uint8_t)0x09, (uint8_t)0xcf, (uint8_t)0x4f, (uint8_t)0x3c };

// 512bit text
uint8_t plain_text[64] = { (uint8_t)0x6b, (uint8_t)0xc1, (uint8_t)0xbe, (uint8_t)0xe2, (uint8_t)0x2e, (uint8_t)0x40, (uint8_t)0x9f, (uint8_t)0x96, (uint8_t)0xe9, (uint8_t)0x3d, (uint8_t)0x7e, (uint8_t)0x11, (uint8_t)0x73, (uint8_t)0x93, (uint8_t)0x17, (uint8_t)0x2a,
	(uint8_t)0xae, (uint8_t)0x2d, (uint8_t)0x8a, (uint8_t)0x57, (uint8_t)0x1e, (uint8_t)0x03, (uint8_t)0xac, (uint8_t)0x9c, (uint8_t)0x9e, (uint8_t)0xb7, (uint8_t)0x6f, (uint8_t)0xac, (uint8_t)0x45, (uint8_t)0xaf, (uint8_t)0x8e, (uint8_t)0x51,
	(uint8_t)0x30, (uint8_t)0xc8, (uint8_t)0x1c, (uint8_t)0x46, (uint8_t)0xa3, (uint8_t)0x5c, (uint8_t)0xe4, (uint8_t)0x11, (uint8_t)0xe5, (uint8_t)0xfb, (uint8_t)0xc1, (uint8_t)0x19, (uint8_t)0x1a, (uint8_t)0x0a, (uint8_t)0x52, (uint8_t)0xef,
	(uint8_t)0xf6, (uint8_t)0x9f, (uint8_t)0x24, (uint8_t)0x45, (uint8_t)0xdf, (uint8_t)0x4f, (uint8_t)0x9b, (uint8_t)0x17, (uint8_t)0xad, (uint8_t)0x2b, (uint8_t)0x41, (uint8_t)0x7b, (uint8_t)0xe6, (uint8_t)0x6c, (uint8_t)0x37, (uint8_t)0x10 };

memset(buf, 0, 64);
memset(buf2, 0, 64);

// print text to encrypt, key and IV
printf("CBC encrypt test:\n\n");
printf("plain text:\n \n \n");

for (i = 0; i < 4; ++i)
{
	phex(plain_text + (i * 16));
}

struct AES_ctx ctx;

AES_init_ctx_iv(&ctx, key, iv);

uint8_t encypted_text[128];

printf("\n \n \n");
printf("encrypted and  decrypted text:\n \n \n");
for (i = 0; i < 4; ++i)
{
	//AES_init_ctx_iv(&ctx, key, iv);				// <<<< UNCOMMENT this line -> working
	AES_CBC_encrypt_buffer(&ctx, plain_text + (i * 16), 32);

	//AES_init_ctx_iv(&ctx, key, iv);				// <<<< UNCOMMENT this line -> working
	AES_CBC_decrypt_buffer(&ctx, plain_text + (i * 16), 32);
	phex(plain_text + (i * 16));
}
printf("\n");

return 0;

}`
The problem is that the text which was encrypted and then decrypted isn't identical to the plain text.
For now, I figured out, that I have to call "AES_init_ctx_iv" before each encrypt / decrypt function call. Can someone confirm this as an issue? Or am I doing something wrong?!

Hi @mp1609 and sorry for the slow answer - I am quite busy at the time being.
It doesn't look right that you are encrypting and decrypting at the same time.
I would expect that to ruin the IV since two "sessions" are now using and updating it.
Pull the call to AES_CBC_decrypt_buffer out of the loop, so you have two loops: one encrypting and one decrypting.

Hi kokke, thanks for your response.
Okay I tried what you said and took the AES_CBC_decrypt_buffer into another loop, but unfortunatelly the decrypted text doesn't match the source text. I've zipped my project and attached it here. I only modified the main() in test.c
tinyAES_exe.zip
So the current outpoot looks like this:
plain text:

6bc1bee22e409f96e93d7e117393172a
ae2d8a571e03ac9c9eb76fac45af8e51
30c81c46a35ce411e5fbc1191a0a52ef
f69f2445df4f9b17ad2b417be66c3710

encrypted text:

7649abac8119b246cee98e9b12e9197d
7df76b0c1ab899b33e42f047b91b546f
7df76b0c1ab899b33e42f047b91b546f
7df76b0c1ab899b33e42f047b91b546f

decrypted text:

1997ac7bf0198500f69b2102a9732a13
1637d7ed30fd0022df76845dc6854d4a
1637d7ed30fd0022df76845dc6854d4a
1637d7ed30fd0022df76845dc6854d4a

@mp1609 try re-initializing the IV from the same source between the encryption and decryption loops

@dwinant Thanks, but the issue remains the same:
Tried following:
int main(void)
{

#ifdef AES128
    printf("\nTesting AES128\n\n");
#elif defined(AES192)
    printf("\nTesting AES192\n\n");
#elif defined(AES256)
    printf("\nTesting AES256\n\n");
#else
    printf("You need to specify a symbol between AES128, AES192 or AES256. Exiting");
    return 0;
#endif

	//test_encrypt_cbc();
	//test_decrypt_cbc();
	//test_encrypt_ctr();
	//test_decrypt_ctr();
	//test_decrypt_ecb();
    //test_encrypt_ecb();
    //test_encrypt_ecb_verbose();
	//test_encrypt_ecb_verbose();

	uint8_t iv[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f };

	uint8_t i, buf[64], buf2[64];

	// 128bit key
	uint8_t key[16] = { (uint8_t)0x2b, (uint8_t)0x7e, (uint8_t)0x15, (uint8_t)0x16, (uint8_t)0x28, (uint8_t)0xae, (uint8_t)0xd2, (uint8_t)0xa6, (uint8_t)0xab, (uint8_t)0xf7, (uint8_t)0x15, (uint8_t)0x88, (uint8_t)0x09, (uint8_t)0xcf, (uint8_t)0x4f, (uint8_t)0x3c };

	// 512bit text
	uint8_t plain_text[64] = { (uint8_t)0x6b, (uint8_t)0xc1, (uint8_t)0xbe, (uint8_t)0xe2, (uint8_t)0x2e, (uint8_t)0x40, (uint8_t)0x9f, (uint8_t)0x96, (uint8_t)0xe9, (uint8_t)0x3d, (uint8_t)0x7e, (uint8_t)0x11, (uint8_t)0x73, (uint8_t)0x93, (uint8_t)0x17, (uint8_t)0x2a,
		(uint8_t)0xae, (uint8_t)0x2d, (uint8_t)0x8a, (uint8_t)0x57, (uint8_t)0x1e, (uint8_t)0x03, (uint8_t)0xac, (uint8_t)0x9c, (uint8_t)0x9e, (uint8_t)0xb7, (uint8_t)0x6f, (uint8_t)0xac, (uint8_t)0x45, (uint8_t)0xaf, (uint8_t)0x8e, (uint8_t)0x51,
		(uint8_t)0x30, (uint8_t)0xc8, (uint8_t)0x1c, (uint8_t)0x46, (uint8_t)0xa3, (uint8_t)0x5c, (uint8_t)0xe4, (uint8_t)0x11, (uint8_t)0xe5, (uint8_t)0xfb, (uint8_t)0xc1, (uint8_t)0x19, (uint8_t)0x1a, (uint8_t)0x0a, (uint8_t)0x52, (uint8_t)0xef,
		(uint8_t)0xf6, (uint8_t)0x9f, (uint8_t)0x24, (uint8_t)0x45, (uint8_t)0xdf, (uint8_t)0x4f, (uint8_t)0x9b, (uint8_t)0x17, (uint8_t)0xad, (uint8_t)0x2b, (uint8_t)0x41, (uint8_t)0x7b, (uint8_t)0xe6, (uint8_t)0x6c, (uint8_t)0x37, (uint8_t)0x10 };

	memset(buf, 0, 64);
	memset(buf2, 0, 64);

	// print text to encrypt, key and IV
	printf("CBC encrypt test:\n\n");
	printf("plain text:\n \n \n");

	for (i = 0; i < 4; ++i)
	{
		phex(plain_text + (i * 16));
	}

	struct AES_ctx ctx;

	AES_init_ctx_iv(&ctx, key, iv);

	uint8_t encypted_text[128];

	AES_init_ctx_iv(&ctx, key, iv);
	printf("\n \n \n");
	printf("encrypted text:\n \n \n");
	for (i = 0; i < 4; ++i)
	{
		AES_CBC_encrypt_buffer(&ctx, plain_text + (i * 16), 32);
		phex(plain_text + (i * 16));
	}
	printf("\n");

	// print text to decrypt
	printf("\n \n \n");
	printf("decrypted text:\n \n \n");

	AES_init_ctx_iv(&ctx, key, iv);
	for (i = 0; i < 4; ++i)
	{
		AES_CBC_decrypt_buffer(&ctx, plain_text + (i * 16), 32);
		phex(plain_text + (i * 16));
	}
	printf("\n");

    return 0;
}

plain text:

6bc1bee22e409f96e93d7e117393172a
ae2d8a571e03ac9c9eb76fac45af8e51
30c81c46a35ce411e5fbc1191a0a52ef
f69f2445df4f9b17ad2b417be66c3710
encrypted text:
7649abac8119b246cee98e9b12e9197d
7df76b0c1ab899b33e42f047b91b546f
7df76b0c1ab899b33e42f047b91b546f
7df76b0c1ab899b33e42f047b91b546f
decrypted text:
1004fcc386ad013eac8a9dde1506041f
69e216649fedbac3040cfa4e6aec8f47
6df295cc98109e8a9ac16792a0105e7f
69e216649fedbac3040cfa4e6aec8f47

@mp1609 I think you need to change the length parameter from 32 to 16 in your loops.
When I made that change, in addition to resetting the IV before the decryption, your code ran and gave the correct decrypted text.

@dwinant : Thanks for your answer and also for this cool support!
That worked for me, have a nice weekend.

Thank you very much @dwinant for helping closing this issue :) Very much appreciated.
Have a nice weekend.

i got error when i try to compile test.c is there any documentation for this library .


Upload smart contract for lottery ticket

you should've done better next time.

yes, I'll try to improve next time.


Autocomplete does not consider re-exported symbols

Consider the editor state in the following screenshot:

The top completion here will add import Data.Map.Internal (lookup) as Map, which causes an ImplicitQualifiedImport warning on compile. (As an aside, it would be nice to be able to make autocompletion not consider modules like Data.Map.Internal, which are not meant to be imported from directly.

So the bug is that a import is added even though the Member is already imported by existing imports?


OrderItem populate_from_cart_item() does not use the cart for the unit_price

I have noticed a minor issue when an order item is created from a cart item.
The unit_price is updated directly by calling get_price() again after the cart item unit_price has previously been calculated (3 times by cart.update()) through the cart modifiers. Depending upon the implementation this may or may not be what is desired.
I for example have a get_price() method which by default returns the price in the local customer currency. Yet my cart modifiers maintain the order in the shop local currency. Therefore the cart item unit_price will not be the same as the result from get_price().
The order should be created from exactly what the customer has seen when purchasing, so the order should be populated directly from the cart object.
def populate_from_cart_item(self, cart_item, request):
        """
        From a given cart item, populate the current order item.
        If the operation was successful, the given item shall be removed from the cart.
        If a CartItem.DoesNotExist exception is raised, discard the order item.
        """
        if cart_item.quantity == 0:
            raise CartItemModel.DoesNotExist("Cart Item is on the Wish List")
        self.product = cart_item.product
        # for historical integrity, store the product's name and price at the moment of purchase
        self.product_name = cart_item.product.product_name
        self.product_code = cart_item.product_code
        self._unit_price = Decimal(cart_item.product.get_price(request))   ###  <-- HERE
        self._line_total = Decimal(cart_item.line_total)
        self.quantity = cart_item.quantity
        self.extra = dict(cart_item.extra)
        extra_rows = [(modifier, extra_row.data) for modifier, extra_row in cart_item.extra_rows.items()]
        self.extra.update(rows=extra_rows)

@racitup Thanks for reporting.
This has been fixed in the releases/0.11 branch; is that the branch you are using?
Otherwise I will backport that fix onto the master branch.
btw., this was a legacy issue. In former versions of django-SHOP, the cart_item did not keep the product's unit price.

Cool thanks, I'm still on 0.10.2. Do you know when 0.11 will be ready for release? I'm hoping to deploy soon. Also, will either of my PRs make it in do you think?


Registering version v0.9.0

@essenciary Somehow, I can't release version v0.9.0 without it being the latest release. So currently I deleted the v0.9.0 release and just kept the tag. Perhaps you could help me here? (First time I'm tagging and defining releases ...)
Anyhow, v.0.9.1 is pulled correctly during update as well as the other packages StippleUI and StippleCharts.

What is the highest tagged release now? Did v0.9.1 go through?

Yes that passed!

The ordering of the tags is strange. Are they ordered by submission date?

That was the point. Got it right now!

How did that work? Did the registrator allow v0.9 after 0.9.1? If not, I think we can just skip v0.9, Pkg will resolve it successfully, I hope. And we can release a v0.10 soon, to sort things out.


chore(main): release 1.2.0

:robot: I have created a release beep boop
1.2.0 (2024-06-20)
Features

add list command (ece9d6e)
add new branches command (6484d55)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v1.2.0
:sunflower:


[HUDI-2006] Adding more yaml templates to test suite

What is the purpose of the pull request
Added more yamls to test suite framework.
Default: sanity.yml
Optional yamls
medium_test_suite.yaml: medium sized test suite which validates entire input for N no of rounds
long_test_suite.yaml: long running test suite which validates input after every round and deletes the input data. So that we can scale this test for larger iterations if required.
clustering.yaml : tests clustering.
Brief change log

Added more yamls to test suite framework.

Verify this pull request
./generate_test_suite.sh --execute_test_suite false --include_medium_test_suite_yaml true --include_long_test_suite_yaml

true --include_cluster_yaml true
Include Medium test suite true
Medium test suite iterations = 20
Include Long test suite true
Long test suite iterations = 50
Intermittent delay in mins     = 1
Table type   = COPY_ON_WRITE
Include cluster yaml true
Cluster total itr count  30
Cluster delay mins 1
Cluster exec itr count 15
Jar name hudi-integ-test-bundle-0.9.0-SNAPSHOT.jar
Input path \/user\/hive\/warehouse\/hudi-integ-test-suite\/input\/
Output path \/user\/hive\/warehouse\/hudi-integ-test-suite\/output\/
Cleaning up staging dir
Creating staging dir

Once executed above command, generated files can be found in staging folder.
ls demo/config/test-suite/staging
clustering.yaml
clustering_spark_command.sh
long_test_suite.yaml
long_test_suite_spark_command.sh
medium_test_suite.yaml
medium_test_suite_spark_command.sh
sanity.yaml
sanity_spark_command.sh
test.properties

You can run the same command w/o "--execute_test_suite false" which will go ahead and execute the yamls included.
Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

Codecov Report

Merging #3073 (e039f49) into master (0d0dc6f) will decrease coverage by 46.70%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master   #3073       +/-   ##
============================================
- Coverage     55.14%   8.43%   -46.71%
+ Complexity     3866      62     -3804
============================================
  Files           488      70      -418
  Lines         23619    2880    -20739
  Branches       2528     359     -2169
============================================
- Hits          13024     243    -12781
+ Misses         9437    2616     -6821
+ Partials       1158      21     -1137

Flag
Coverage Δ

hudicli
?

hudiclient
?

hudicommon
?

hudiflink
?

hudihadoopmr
?

hudisparkdatasource
?

hudisync
6.79% <ø> (-39.81%)
:arrow_down:

huditimelineservice
?

hudiutilities
9.09% <ø> (-61.79%)
:arrow_down:

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

 I have updated more into to README. will merge once CI succeeds.


privacy loops have infinity privacy when using more than one capture

there are no privacy tuples (see #23). that means in a privacy loop, where the term looks something like this when there is more than one capture (namely c1 and c2 in this example):
tlet (c1, c2) = p-loop (tlet (c1', c2') = c in (... in (c1',c2')))
in body

the ... is a term that alters c1' and c2'. as the whole body of the privacy loop gets checked in privacy mode and tlet is a sensitivity term, the whole body gets returned and the privacy of everything inside goes to infinity. this can probably be solved by allowing privacy TLet but not privacy Tup, and checking somewhat like this:
t  <- return (e1,e2);
x1 <- return (let (x1,_) = t in x1);
x2 <- return (let (_,x2) = t in x2);
E2

that will lead to the captures but not the rest of E2 to have infinity privacy, which they will anyways because that's how the privacy loop rule wors.

fixed with 860f490


lumina-fm show separated number of folders and files in status bar

Lumina-FM's statusbar shows the number of folders and files combined as "Items: NNN". This minor change splits that.
New string examples:

No Selection: "Folders NN / Files NN"
Selection: "Selected Folders NN / Files NN"

Looks good! Thanks for sending that in!