[Spanish] localize 'Client-Server Architecture'

Localize the content/en/client_server_architecture.md document to Spanish

@electrocucaracha I would like to work on this one


Simulation FPS

Hi!
I would like to know how to get ~91 FPS with 3070. Is there a special setting?

Hi, please check this reference:
https://docs.omniverse.nvidia.com/isaacsim/latest/reference_material/speedup_cheat_sheet.html


add python specific vscode settings

Two things have been changed

I've added python specific settings
I've removed settings that were duplicating default VScode values

One problem remains: if we split the setting into two as I did, students will be confused when jumping from one language to another. Let's have a chat about why did we add so many new constrains beyond defaut VScode behavior. e.g.

The default 17pt value for font size is so huge! Why?
Why "editor.formatOnPaste:true"
Why changed "editor.multiCursorModifier" default settings?
...

and see if we can find middle grouds that minimizes differences between python and ruby/default student settings

we found a middle ground 🎉


fork

forked your repository and kindly read the instructions.md file

@chamindar2002 the pull request is not in proper order.


Correct Typo in Secure Overlay

Proposed changes
Fixes: https://github.com/docker/docker.github.io/issues/10130
Unreleased project version (optional)

Related issues (optional)

Deploy preview for docsdocker ready!
Built with commit 7b9bd3dbc5d6282413c793c5dffd30295eaddea9
https://deploy-preview-10135--docsdocker.netlify.com


Notification hooks are not removed

Hi,
I needed a different design with keyboard handling, so I ended up writing my own. Thanks for this great example, I learned a lot by reading it.
I did want to point out, LHSKeyboardAdjusting uses the block-oriented methods for adding and removing observers for notifications, and it conflates the calling conventions with the target:selector variety of these methods. As a result, when a view controller disappears and calls the lhs_deactivateKeyboardAdjustment method to unhook, the notification observers are not actually removed.
The block-oriented API docs for addObserverForName:object:queue:usingBlock:

Return Value
An opaque object to act as the observer.

and

To unregister observations, you pass the object returned by this method to removeObserver:

https://developer.apple.com/documentation/foundation/nsnotificationcenter/1411723-addobserverforname?language=objc
- (void)lhs_deactivateKeyboardAdjustment {
  [[NSNotificationCenter defaultCenter] removeObserver:**self** name:UIKeyboardWillHideNotification object:nil];
  [[NSNotificationCenter defaultCenter] removeObserver:**self** name:UIKeyboardDidShowNotification object:nil];
}

"self" is not the observer you are looking for :)
This is what I did in my code. The properties (i.e., .willShowObserver, etc.) are implemented with getter/setters that use ObjC Associated Objects for storage. I apologize in advance if that offends your sense of style. For me, anything is better than coding by punching bytes in 8 switches at a time via front panel.
- (void)activateKeyboardShow:(void(^)(BOOL beforeAfter, NSDictionary *userInfo))showBlock hide:(void(^)(BOOL beforeAfter, NSDictionary *userInfo))hideBlock {
	NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
	UIViewController *__weak weakSelf = self;

	self.willShowObserver = [center addObserverForName: UIKeyboardWillShowNotification
												object: nil
												 queue: [NSOperationQueue mainQueue]
	usingBlock:^(NSNotification * _Nonnull note) {
		[weakSelf keyboardWillShow: note block: showBlock];
	}];

	self.willHideObserver = [center addObserverForName: UIKeyboardWillHideNotification
												object: nil
												 queue: [NSOperationQueue mainQueue]
	usingBlock:^(NSNotification * _Nonnull note) {
		[weakSelf keyboardWillHide: note block: hideBlock];
	}];
}

- (void)deactivateKeyboardEvents {
	NSNotificationCenter *center = [NSNotificationCenter defaultCenter];

	[center removeObserver: self.willShowObserver];
	[center removeObserver: self.willHideObserver];
}

Additionally, the notification blocks have a retain cycle in them as they reference self instead of __weak reference to self.
[[NSNotificationCenter defaultCenter] addObserverForName:UIKeyboardDidShowNotification
  | object:nil
  | queue:[NSOperationQueue currentQueue]
  | usingBlock:^(NSNotification * _Nonnull note) {
  | if (show) {
  | show();
  | }
  |
  | [**self** lhs_keyboardDidShow:note];
  | }];

I've gone in my own direction with this code; I apologize in advance that my goodwill is limited to this bug report and examples from my own code instead of an actual pull request. Major deadlines loom for me, so it's the best I can do.
Thanks again for your code, and for unknowingly being my teacher.

This is great, thanks for the heads up! Those block-based methods always have a gotcha. I'll fix this up, and I'm humbled to have been an inspiration for your implementation ;)


+!!(SEX+VIDEOS+XNXX)Imsha rehman xxx video sex online xxx sexy Xvideo xnxx viral leaked video

44 seconds ago
L𝚎aked Video Imsha rehman Original Video Viral Video L𝚎aked on X Twitter Telegram
[-𝐅𝐔𝐋𝐋-𝐕𝐈𝐑𝐀𝐋-]— Imsha rehman Video Original Video Link Imsha rehman Video Viral On Social Media X Now [1U2M3N]
[-wATCH-]— Imsha rehman Video Original Video Link Imsha rehman Video Viral On Social Media X Trending Now
[-wATCH-]— Imsha rehman Video Original Video Link Imsha rehman Video Viral On Social Media X Trending Now
[-wATCH-]— Imsha rehman ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]— Imsha rehman ʟᴇᴀᴋᴇᴅ Video ᴠɪʀᴀʟ On Social Media ˣ ᵀʷⁱᵗᵗᵉʳ
[-wATCH-]— Imsha rehman Video Original Video Link Imsha rehman Video Viral On Social Media X Trending Now
Imsha rehman Original Video video took the internet by storm and amazed viewers on various social media platforms. Imsha rehman, a young and talented digital creator, recently became famous thanks to this interesting video.
L𝚎aked Video Imsha rehman Original Video Viral Video L𝚎aked on X Twitter
Imsha rehman Original Video video oficial twitter
L𝚎aked Video Imsha rehman Original Video Viral Video L𝚎aked on X Twitter..

fgtryrt


Enable spaces in keyword tags

As the title indicates.

There is nothing removing spaces on the server side.

Easiest close ever


Interop tests for full-stream compression

This PR adds full-stream compression interop tests between a C++ server and Java client.
The following interop scenarios from interop-test-descriptions.md are run with gzip stream compression enabled, currently only in the server-to-client direction:

empty_unary
large_unary
server_streaming
ping_pong

These tests depend on https://github.com/grpc/grpc-java/pull/3403 on the Java side and the presence of a C++ API for enabling stream compression, which is patched into this PR from @muxi 's stream_compression_config_with_cpp branch. Once the C++ API is checked in, this PR will be rebased.
cc @makdharma

[trickle] No significant performance differences

[microbenchmarks] Performance differences noted:
Benchmark                                    atm_cas_per_iteration
-------------------------------------------  -----------------------
BM_PumpStreamClientToServer<InProcess>/256k  +9%


Web app in chapter 10 - default Microsoft site is loaded

Hi,
I created a web app in order to show the pizzas stored in the cosmos db instance.
When I open the app in the browser I can only see the Microsoft default page.
After some minutes nothing is shown and I got an "Application Error":

If a clone it locally and started it in my laptop, it works as expected.
How can I debug it?
I open a SSH Session and can confirm that express app is running.
Best,
Paul

+1

yep, same error

Here's the issue:
https://github.com/fouldsy/azure-mol-samples-2nd-ed/blob/master/10/cosmosdbwebapp/app.js#L23
process.env.PORT should be used instead of hardcoded 3000
Created PR: https://github.com/fouldsy/azure-mol-samples-2nd-ed/pull/7

Thanks, @barbeer. PR has merged.


Show recent chats, allow deletes

Part of #91
This adds Recent Chats to the sidebar (defaults to show previous 5, but you can click Show More... to load another 10, etc).
I've also added UI to let you Delete old chats.
The only risk I see with delete is that it means you could delete a chat you forked off, and currently I don't do a deep copy of a fork'd chat (i.e., I share the messages) so that we don't have a done of duplication in search results.

merged it, need to play with it to see how it feels


"Name" column in "Project - General" has no symbols "..." when its content doesn't fit the width of the column leading to decreased readability

Description
On the video below, first of all, I show the correct expected behaviour in all other columns.
Symbols "..." are shown for all columns, except "Name" column.
The issue itself is shown at the end of the video when the symbols "..." are not shown in the "Name" column.
I suggest adding these symbols for this column as well, because it makes it more readable.
https://github.com/user-attachments/assets/927d4c15-a773-4703-a73a-6face52fe8a7
DBeaver Version
Enterprise Edition 24.2.4-202410172322
Operating System
Windows 10
Database and driver
No response
Steps to reproduce
No response
Additional context
No response

It's not a column but a tree. This is a limitation of the Eclipse/SWT platform.


Add specs for BasicSocket#(local|remote)_address

This is due to differencies between MRI and TruffleRuby implementations.
See https://github.com/oracle/truffleruby/pull/2444

Sorry for the late review, I was on vacations until recently.

I'll address the feedback myself so I can merge this before doing the monthly synchronization of specs.
(in general it's better to have specs on the Ruby impl PR so both are tested together)

Thanks for writing those specs!


WIP: fix: ignoring npm ls error, closes #3348

Ignoring npm ls error.

Thanks for the PR 🙏
In some cases, We want to throw errors. for example: npx refine check-updates
I believe we should handle `reject: true from the outside.
What do you think?
type GetInstalledRefinePackages = {
    reject?: boolean;
};

export const getInstalledRefinePackages = async ({
    reject = true,
}: GetInstalledRefinePackages = {}) => {
    try {
        const execution = await execa("npm", ["ls", "--depth=0", "--json"], {
            reject,
        });

In src/telemetry/index.ts
packages: (await getInstalledRefinePackages({ reject: false })) || [],

Also, can you provide a changeset please?

Thanks for the PR pray
In some cases, We want to throw errors. for example: npx refine check-updates I believe we should handle reject: true from the outside.
What do you think?
interface GetInstalledRefinePackages {
    reject?: boolean;
};

export const getInstalledRefinePackages = async ({
    reject = true,
}: GetInstalledRefinePackages = {}) => {
    try {
        const execution = await execa("npm", ["ls", "--depth=0", "--json"], {
            reject,
        });

In src/telemetry/index.ts
packages: (await getInstalledRefinePackages({ reject: false })) || [],

Also, can you provide a changeset please?

But the point is, npm ls is throwing an error wrongly, an error that doesn't exist, the packages are installed. I could add these changes, but the telemetry will not get package versions for monorepos even if working.

Thanks for the PR pray
In some cases, We want to throw errors. for example: npx refine check-updates I believe we should handle reject: true from the outside.
What do you think?
interface GetInstalledRefinePackages {
    reject?: boolean;
};

export const getInstalledRefinePackages = async ({
    reject = true,
}: GetInstalledRefinePackages = {}) => {
    try {
        const execution = await execa("npm", ["ls", "--depth=0", "--json"], {
            reject,
        });

In src/telemetry/index.ts
packages: (await getInstalledRefinePackages({ reject: false })) || [],

Also, can you provide a changeset please?

But the point is, npm ls is throwing an error wrongly, an error that doesn't exist, the packages are installed. I could add these changes, but the telemetry will not get package versions for monorepos even if working.

Actually, we need to fix npm ls not suppress errors am I right? 👀
Let's continue with this method, probably we should find another way to detect installed packages. I will discuss this with the core team tomorrow. Thanks for the issue 🚀
If you have another idea to find installed packages, please let me know 🙏

Thanks for the PR pray
In some cases, We want to throw errors. for example: npx refine check-updates I believe we should handle reject: true from the outside.
What do you think?
interface GetInstalledRefinePackages {
    reject?: boolean;
};

export const getInstalledRefinePackages = async ({
    reject = true,
}: GetInstalledRefinePackages = {}) => {
    try {
        const execution = await execa("npm", ["ls", "--depth=0", "--json"], {
            reject,
        });

In src/telemetry/index.ts
packages: (await getInstalledRefinePackages({ reject: false })) || [],

Also, can you provide a changeset please?

But the point is, npm ls is throwing an error wrongly, an error that doesn't exist, the packages are installed. I could add these changes, but the telemetry will not get package versions for monorepos even if working.

Actually, we need to fix npm ls not suppress errors am I right? eyes Let's continue with this method, probably we should find another way to detect installed packages. I will discuss this with the core team tomorrow. Thanks for the issue rocket
If you have another idea to find installed packages, please let me know pray

Could we get installed packages from package.json? Or is this not a good idea?

Hi @vanflux, we will research other ways to detect installed packages. we'll probably find it in 1-2 days. We'll be able to use your solution during this time.
Thank you again for helping us 🙏


About the convergence trend comparison with Adamw in ViT-H

Hi,
Thank you very much for your brilliant work on Adan!
And from you paper, it said Adan should get a lower loss (both Train and test) than Adamw according to Figure 1. However, I got a higher training loss with Adan than AdamW in ViT-H:

Steps
Adamw_train_loss
Adan_train_loss

200
6.9077
6.9077

400
6.9074
6.9075

600
6.9068
6.9073

800
6.9061
6.907

1000
6.905
6.9064

1200
6.9036
6.9056

1400
6.9014
6.9044

1600
6.899
6.9028

1800
6.8953
6.9003

2000
6.8911
6.8971

2200
6.8848
6.8929

2400
6.8789
6.8893

2600
6.8699
6.8843

2800
6.8626
6.8805

3000
6.8528
6.8744

3200
6.8402
6.868

3400
6.8293
6.862

3600
6.8172
6.8547

3800
6.7989
6.8465

4000
6.7913
6.8405

I used the same HPs as AdamW and only changed beta from (0.9, 0.999) to (0.9, 0.92, 0.999).
I only trained for few steps to see the trend. But it seems the loss gap from AdamW is quite big, should I change other HPs to better using Adan? How can I get a lower Loss than AdamW?
I noticed that Adan prefers a large batch size in Vision tasks, should we using a larger batch size?
Or should I train with more steps to see the trend?
Thank you!

@haihai-00 Hi,
I suggest referring to the  HPs we use for ViT-B and ViT-S. At least, you may try the default betas (0.98,0.92,0.99) and set wd to 0.02.
To make more progress on your task, I will try to train ViT-H now. So, please provide more HPs about your setting.

Thank you!
We are using the HPs provided from this paper: https://arxiv.org/pdf/2208.06366.pdf F Hyperparameters for Image Classification Fine-tuning for ViT-L/16. This is the HPs provided for ViT-L, but we use it since we didn't find released official HPs for ViT-H.

It seems that you are performing the model finetuning and do not train from scratch, right? Actually, we have provided the results for fine-tuning  MAE-ViT-Large here.
Moreover, I also fine-tune the MAE-ViT-H on its official pre-trained model (obtain 86.9% after 50 epochs). You may add my WeChat: xyxie_joy, and I can send you the log file.


chore: release main

:robot: I have created a release beep boop
@markdown-confluence/cli: 5.2.4
5.2.4 (2023-05-10)
Bug Fixes

Show better CLI error messages (2120168)

Dependencies

The following workspace dependencies were updated

devDependencies

@markdown-confluence/lib bumped from 5.2.3 to 5.2.4
@markdown-confluence/mermaid-puppeteer-renderer bumped from 5.2.3 to 5.2.4

@markdown-confluence/lib: 5.2.4
5.2.4 (2023-05-10)
Miscellaneous Chores

@markdown-confluence/lib: Synchronize obsidian packages versions

@markdown-confluence/mermaid-electron-renderer: 5.2.4
5.2.4 (2023-05-10)
Miscellaneous Chores

@markdown-confluence/mermaid-electron-renderer: Synchronize obsidian packages versions

Dependencies

The following workspace dependencies were updated

dependencies

@markdown-confluence/lib bumped from 5.2.3 to 5.2.4

@markdown-confluence/mermaid-puppeteer-renderer: 5.2.4
5.2.4 (2023-05-10)
Bug Fixes

Download browser for mermaid if required (b6e45f0)

Dependencies

The following workspace dependencies were updated

dependencies

@markdown-confluence/lib bumped from 5.2.3 to 5.2.4

obsidian-confluence: 5.2.4
5.2.4 (2023-05-10)
Miscellaneous Chores

obsidian-confluence: Synchronize obsidian packages versions

Dependencies

The following workspace dependencies were updated

dependencies

@markdown-confluence/lib bumped from 5.2.3 to 5.2.4
@markdown-confluence/mermaid-electron-renderer bumped from 5.2.3 to 5.2.4

obsidian-confluence-root: 5.2.4
5.2.4 (2023-05-10)
Bug Fixes

Download browser for mermaid if required (b6e45f0)
Show better CLI error messages (2120168)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/markdown-confluence/markdown-confluence/releases/tag/obsidian-confluence-v5.2.4 :sunflower:

:robot: Release is at https://github.com/markdown-confluence/markdown-confluence/releases/tag/%40markdown-confluence/lib-v5.2.4 :sunflower:

:robot: Release is at https://github.com/markdown-confluence/markdown-confluence/releases/tag/%40markdown-confluence/mermaid-electron-renderer-v5.2.4 :sunflower:

:robot: Release is at https://github.com/markdown-confluence/markdown-confluence/releases/tag/%40markdown-confluence/cli-v5.2.4 :sunflower:

:robot: Release is at https://github.com/markdown-confluence/markdown-confluence/releases/tag/%40markdown-confluence/mermaid-puppeteer-renderer-v5.2.4 :sunflower:

:robot: Release is at https://github.com/markdown-confluence/markdown-confluence/releases/tag/obsidian-confluence-root-v5.2.4 :sunflower:


Revert "Bump puppeteer from 14.2.1 to 15.1.1 in /src"

Reverts slVqND9w/almanac.httparchive.org#11

niewiem


SettingWithCopyWarning in Prophet with exogenous data

Reference Issues/PRs

Fixes #696
What does this implement/fix? Explain your changes.

Use .loc as suggested in the warning and by @muhlbach so that warning is no longer raised.
Does your contribution introduce a new dependency? If yes, which one?

No
What should a reviewer concentrate their feedback on?

Any other comments?

This is my first time creating a pull request so I hope I've done everything correctly.
PR checklist

For all contributions

[x] I've added unit tests and made sure they pass locally.

Thanks @jschemm for the PR and @aiwalter for reviewing! 🎉


Use rustls for reqwest

This change enables the rustls-tls feature flag on the reqwest dependency. This allows it to use rustls in place of the openssl dependency, which should allow for further compatibility on different Linux distributions.
As far as I can tell, default-features must be disabled for this to work. From my testing, it doesn't seem to make a difference (i.e. cause an error) when it comes to building the project.
As it stands, the Linux binary for the latest release produces the following error on Ubuntu 22.04:
error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
I suspect this is because the version of Ubuntu the binary was compiled on is different, so it expects a different version of OpenSSL.
This can also be solved by including the openssl dependency with the vendored feature enabled, but it seems like most Rust projects are using rustls now (including rbxcloud and aftman).

Yeah, this is probably a good idea. Thanks!


Implement AKInput

Implemented AKInput for all nodes.
Most of the nodes just needed the protocol added.  The commit with 53 files doesn't need much review.  For the rest (12-13 nodes), it would be good took give them a once over.
For all of the nodes, I gave init a default value for the input node parameter.  Now the nodes can be initialized with init() instead of init(nill).
Nodes with more than one internal node require AKProtocol.inputNode to be implemented within the class, I added it where necessary, returning the avAudioNode of the first node in the chain.
Some changes were necessary to properly expose the input node with a non-optional value on some of the nodes, or where the input was split internally.  In short, I added an inputMixer in front of everything to handle this.

Phenomenal update!


[BUG] Rooting: Flags all devices as rooted starting with Android 6.0

Bug description
In Android Marshmallow, toybox binary was included in the system
https://android.googlesource.com/platform/external/toybox/
https://lwn.net/Articles/629362/
This results in rooting checks fail for ALL devices above Android 6.0 as non-rooted terminal shell now responds positively for the toybox binary.
Reproduction steps
Run which toybox on a device without root on Android 6.0+.
Expected behavior
Toybox is not included in the attestation at all.
Actual behavior
Result will be present, and the attestation will fail.
We shouldn't check for toybox anymore.

Hey, sorry for the delay, been really busy
That's not actually a bug: it depends on what you want to be included in your resulting attestation.
If you want to detect toybox (which as you rightfully you pointed out is included from Android M upwards), then you add the targets { toybox() } flag, and the attestation will report it. This doesn't mean that it detected root access though, it means that it detected toybox.
Root access is detected via the targets { root() } block. But when you check for something you always have to confirm its presence in the attestation result.
So e.g. if you check for root and toybox and get a non-empty attestation back, you still have to check what it returned, you can't just assume it's root access: it may be either or both.
That's the ideal power of kevlar: you tell it what are the things you are interested in checking, it returns a list of which if those characteristics it found on the running system and you take action accordingly, for each of the returned entries

Why would I ever want to check for it? Toybox is included as a rooting attestation, there's nothing about the fact it will always report inclusion from android M in the documentation. Your library is a root detection library, I don't think it is a library for always returning true

I should clarify that in the documentation, as soon as I get some free time I'll make sure to review that.
The attestation mechanism is a fine tool for checking the presence of discrete system characteristics on the system. The module is called rooting because its main functionality is checking for root access and similar system-wide features.
The following is a complete rooting configuration:
private val rooting = KevlarRooting {
    targets {
        root()
        magisk()
        busybox()
        xposed()
        toybox()
    }

    status {
        emulator()
        testKeys()
        selinux {
            flagPermissive()
        }
    }

    allowExplicitRootCheck()
}

This means that kevlar will be checking {ROOT, BUSYBOX, MAGISK, XPOSED TOYBOX} + {EMULATOR, TEST_KEYS, SELINUX} using explicit root access.
A blank attestation means that none of the previous traits have been detected on the system.
A failed attestation (positive) means that any of the previous elements may have been detected.
However, you can not infer that root access has been detected: to check that you have to
CoroutineScope(Dispatchers.Default).launch {
    // Attestation request
    when (val attestation = rooting.attestateTargets(context)) {
        is TargetRootingAttestation.Blank -> {
            // Pending attestation, no information yet.
            // Don't do anything.
        }
        is TargetRootingAttestation.Clear -> {
            // Good to go.
        }
        is TargetRootingAttestation.Failed -> {
            // System modifications detected. See which target(s) and act accordingly:
            val targets: Set<DetectableSystemTarget> = detectedTargets.detectedTargets
        }
    }
}

And then in the TargetRootingAttestation.Failed branch you can go ahead and check which DetectableSystemTarget is present, and for each act accordingly
On the other hand:
private val rooting = KevlarRooting {
    targets {
        root()
    }
}

This way your only test is root access, so if the attestation comes back positive you know root access is detected by kevlar.
At this point it should be trivial why a toybox check is in the library: there have been a few apps and tools that check for toybox in the host system and make assumption / decisions with regards to it, so I decided to include it since it's a pretty innocuous flag to have, it doesn't cost anything if you don't run it but it's in the battery of tests that you can launch.


Create new VSCodeTheme in separate file

Create new VSCodeTheme in separate file
Only new change I added, just transposing to existing repo in https://github.com/lastmile-ai/aiconfig/tree/main/python/src/aiconfig/editor/client/src/themes

Stack created with Sapling. Best reviewed with ReviewStack.

-> #985
#984

Synced with Sarmad who is handling this and will deal with merge conflicts


Fix dealer

The dealer showed some awkward behaviour during the testing period, with some suboptimal role assignments. It is important the dealer is clear and documented

I think this could have been fixed with the removal of the robotype. Apparently every not_important robot would get a score of 0.1 which is really good. Now, it gets a score of 30 which is like super bad. You can test origin/development for this


Fix JSON parsing bug for modeled empty structs

Motivation and Context
This will fix aws-sdk-rust#212.
Testing

Reproduced the issue with the following:

#[tokio::main]
async fn main() {
    tracing_subscriber::fmt::init();

    let resp = http::Response::builder()
        .status(200)
        .body(
            r#"
            {"scheduleActions":[{"actionName":"REDACTED","scheduleActionStartSettings":
            {"immediateModeScheduleActionStartSettings":{"time":"2021-08-29T21:54:42.651"}},
            "scheduleActionSettings":{"inputSwitchSettings":
            {"inputAttachmentNameReference":"REDACTED","urlPath":[]}}}]}
            "#,
        )
        .unwrap();

    let _schedule = DescribeSchedule::new()
        .parse_loaded(&resp.map(Bytes::from))
        .unwrap();
}

Also reproduced the issue in the JsonParserGeneratorTest.
Added rest-json-extras test case.
Verified all work correctly after code fix.

Checklist

[x] I have updated the CHANGELOG

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

There's no codegen diff now for the smoketest services since the only difference is for modeled empty structs, and none of them have any. Here's an example of generated code for a modeled empty struct though:
pub fn deser_structure_empty_struct<'a, I>(
    tokens: &mut std::iter::Peekable<I>,
) -> Result<Option<crate::model::EmptyStruct>, smithy_json::deserialize::Error>
where
    I: Iterator<
        Item = Result<smithy_json::deserialize::Token<'a>, smithy_json::deserialize::Error>,
    >,
{
    match tokens.next().transpose()? {
        Some(smithy_json::deserialize::Token::ValueNull { .. }) => Ok(None),
        Some(smithy_json::deserialize::Token::StartObject { .. }) => {
            #[allow(unused_mut)]
            let mut builder = crate::model::EmptyStruct::builder();
            smithy_json::deserialize::token::skip_to_end(tokens)?;
            Ok(Some(builder.build()))
        }
        _ => Err(smithy_json::deserialize::Error::custom(
            "expected start object or null",
        )),
    }
}


SAK-25706 When zipfile exceeds the maximum number of files a warning …

…should be shown

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 1

Complexity increasing per file
==============================
- kernel/api/src/main/java/org/sakaiproject/exception/ZippedFilenumberException.java  1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Complexity increasing per file
==============================
- kernel/api/src/main/java/org/sakaiproject/exception/ZippedFilenumberException.java  1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Complexity increasing per file
==============================
- kernel/api/src/main/java/org/sakaiproject/exception/ZippedFilenumberException.java  1

See the complete overview on Codacy

 Here is an overview of what got changed by this pull request:

Complexity increasing per file
==============================
- kernel/api/src/main/java/org/sakaiproject/exception/ZipFileNumberException.java  1

See the complete overview on Codacy


How to trigger the 'refresh' event of refresher in ionic2 when a page reload

Ionic version:  (check one with "x")
[ ] 1.x
[ ] 2.x
I'm submitting a ...  (check one with "x")
[ ] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:

I don't know how to trigger the event of refresher when a page reload.
For example：
.....
export class ActivityPage implements OnInit {
ngOnInit() {
}
}
I want to trigger the 'refresh' event of refresher in the function ngOnInit()
Expected behavior:

I want to trigger the 'refresh' event of refresher in the function ngOnInit()
Who can give me a demo?Thanks.
Steps to reproduce:

Related code:
insert any relevant code here

Other information:

Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):
insert the output from ionic info here

+1 how to achieve it?

+1

Hello! Thanks for opening an issue with us! As this seems like more of a support question i will urge that you ask this question on our forum or on our slack channel. Thanks for using Ionic!


Massive Error on Command

Command that caused the error
stats
Image that caused the error
https://i.imgur.com/s2375lH.png
Steps to reproduce

Type the prefix along with the command stats
You will encounter a massive error upon execution.

Self-hosted instance?
No
Error file
Message: TypeError: Cannot read properties of null (reading 'username')
    at StatsCommand.run (file:///home/esmBot/esmBot/commands/general/stats.js?v=45:22:63)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async default (file:///home/esmBot/esmBot/events/messageCreate.js:105:20)

Stack Trace: TypeError: Cannot read properties of null (reading 'username')
    at StatsCommand.run (file:///home/esmBot/esmBot/commands/general/stats.js?v=45:22:63)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async default (file:///home/esmBot/esmBot/events/messageCreate.js:105:20)

Additional context
Looks to be that the bot cannot read the user's username, or user object.

Should be fixed on the main branch with 9ff4126


ES2015 Class Support

This is one of the more advanced ES6 Features. I also believe this is probably an area where Duktape can definitely make some vast improvements. The examples for this are from the es6 Features website and more information can be found on the 2ality blog.

[ ] Classes ( class keyword )
/* New Method */
class Shape
{
function constructor (id, x, y) {
    this.id = id;
    this.move(x, y);
}
function move (x, y) {
    this.x = x;
    this.y = y;
}
}

/* Old Method */
var Shape = function (id, x, y) {
this.id = id;
this.move(x, y);
};
Shape.prototype.move = function (x, y) {
this.x = x;
this.y = y;
};

[ ] Class Function definition without function keyword
/* New Method */
class Shape
{
constructor (id, x, y)  {
    this.id = id;
    this.move(x, y);
}
move (x, y) {
    this.x = x;
    this.y = y;
}
}

[ ] Class Inheritance ( extends and super keywords)
/* New Methods */
class Rectangle extends Shape
{
constructor (id, x, y, width, height) {
    super(id, x, y);
    this.width  = width;
    this.height = height;
}
}

class Circle extends Shape {
constructor (id, x, y, radius) {
    super(id, x, y); this.radius = radius;
}
}

/* Old Method */
/* Define a Rectangle */
var Rectangle = function (id, x, y, width, height) {
Shape.call(this, id, x, y);
this.width  = width;
this.height = height;
};
Rectangle.prototype = Object.create(Shape.prototype);
Rectangle.prototype.constructor = Rectangle;
/* Define a Circle */
var Circle = function (id, x, y, radius) {
Shape.call(this, id, x, y);
this.radius = radius;
};
Circle.prototype = Object.create(Shape.prototype);
Circle.prototype.constructor = Circle;

[ ] Base Class Access(super and extends keywords:
  /* See "Classes ( class keyword )" for rest of Definition of Classes */
class Shape {
// Override toString.
function toString () {
    return "Shape(" + this.id + ")";
}
}
class Rectangle extends Shape {
// Override toString.
function toString () {
    return "Rectangle > " + super.toString(); }}
class Circle extends Shape {
function toString () {
    return "Circle > " + super.toString();
}
}

[ ] TypeOf Operator Interaction.
  /* See "Classes ( class keyword )" for rest of Definition of Classes */
class Shape { }
class Rectangle extends Shape { }

// The following is true.
typeof Shape  === 'function';
typeof Rectangle === 'function';

[ ] instanceof Operator Interaction.
class Shape { }
class Rectangle extends Shape { }
var myRectangle = new Rectangle();
var a = myRectangle instanceof Rectangle; // True
var b = myRectangle instanceof Shape; // True
var c = myRectangle instanceof Object; // True
var d = myRectangle instanceof String; // False
var e = myRectangle instanceof Date; // False

[ ] Static Members:
class Rectangle extends Shape {
static defaultRectangle () {
    return new Rectangle("default", 0, 0, 100, 100);
    }
}
class Circle extends Shape {
static defaultCircle () {
    return new Circle("default", 0, 0, 100);
}
}

var defRectangle = Rectangle.defaultRectangle();
var defCircle  = Circle.defaultCircle();

[ ] Variable Getters and Setters
class Rectangle {
constructor (width, height) {
    this.width  = width; this.height = height;
}
set width (width) { this._width = width; }
get width () { return this._width; }
set height (height) { this._height = height; }
get height () { return this._height; }
get area () { return this.width * this.height; }
};
var r = new Rectangle(50, 20);
r.area === 1000;

After a little bit of thought, I figured I could outline some example C code for use by applications implementing this feature. Keep in mind this is mostly end user API and does not define any actual source changes to implement this though.
Minor changes which can be of use now.
New Functions
// new Generalized functions.
void duk_get_constructor(duk_context *ctx, duk_idx_t index);
void duk_set_constructor(duk_context *ctx, duk_idx_t index);

These functions work the same as duk_get_finalizer and duk_set_finalizer but are intended to make it easier for a program to access a constructor.
Example Base Class:
New Functions
duk_idx_t duk_push_c_class(duk_context *ctx, const char* base);

This Function works a lot like your duk_push_object, and the base parameter can be set to NULL (0) when this class does not inherit from anything.
Class Source
/* These Functions usually will go in a Header */
duk_ret_t duk_class_shape_constructor(duk_context *ctx);
duk_ret_t duk_class_shape_finalizer(duk_context *ctx);
duk_ret_t duk_class_shape_staticFunc(duk_context *ctx);

duk_idx_t duk_register_shape_class(duk_context *ctx)
{
	/* Creat Shape Base Class */
	duk_idx_t shape_idx;
	duk_push_global_object(ctx); // Push Global Space.
	shape_idx = duk_push_c_class(ctx, 0);
	duk_push_c_function(ctx, duk_class_shape_constructor, 3 /*nargs*/);
	duk_set_constructor(ctx, shape_idx);
	duk_push_c_function(ctx, duk_class_shape_finalizer, 1 /*nargs*/);
	duk_set_finalizer(ctx, shape_idx);
	/* Define a Static Member */
	duk_push_c_function(ctx, duk_class_shape_default,0);
	duk_put_prop_string(ctx, shape_idx, "createDefaultShape");
	duk_put_prop_string(ctx, -1, "Shape"); // Class is now defined as Shape.
	return shape_idx;
}

duk_ret_t duk_class_shape_constructor(duk_context *ctx)
{
	int id = duk_require_int(ctx,0);
	int x = duk_require_int(ctx,1);
	int y = duk_require_int(ctx,2);
	/* This Constructor assumes that the object is already Created */
	/* Current Method requires a call to duk_push_object */
	duk_push_this(ctx);
	duk_push_int(ctx, id);
	duk_put_prop_string(ctx, obj_idx, "id");
	duk_push_int(ctx,x)
	duk_put_prop_string(ctx, obj_idx, "x");
	duk_push_int(ctx,y)
	duk_put_prop_string(ctx, obj_idx, "y");
	duk_pop(ctx);
	return 0;
}
duk_ret_t duk_class_shape_finalizer(duk_context *ctx)
{
/* Take care of New object Clean up Here */
return 0;
}
duk_ret_t duk_class_shape_staticFunc(duk_context *ctx)
{
/* Do something that is normally done in static functions */
return 0;
}

Example Inherited Class:
New Functions
duk_bool_t duk_has_parent(duk_context *ctx); // super is set.
void duk_push_parent(duk_context *ctx); // Pushes Parent to top of stack.

duk_has_parent  - returns false if parent is set to a value other than Null.
duk_push_parent - This works a lot like duk_push_object, but instead sets the parent object to the top of the stack.
Class Source
duk_ret_t duk_class_rectangle_constructor(duk_context *ctx);
duk_ret_t duk_class_rectangle_finalizer(duk_context *ctx);
duk_ret_t duk_class_rectangle_default(duk_context *ctx);

duk_idx_t duk_register_rectangle_class(duk_context *ctx)
{
	/* Create Rectangle Class */
	duk_idx_t rectangle_idx;
	duk_push_global_object(ctx); // Push Global Space.
	rectangle_idx = duk_push_c_class(ctx, "Shape");
	duk_push_c_function(ctx, duk_class_rectangle_constructor, 5 /*nargs*/);
	duk_set_constructor(ctx, rectangle_idx);
	duk_push_c_function(ctx, duk_class_rectangle_finalizer, 1 /*nargs*/);
	duk_set_finalizer(ctx, rectangle_idx);
	/* Define a Static Member */
	duk_push_c_function(ctx, duk_class_rectangle_default,0);
	duk_put_prop_string(ctx, rectangle_idx, "createDefaultRectangle");
	duk_put_prop_string(ctx, -1, "Rectangle"); // Class is now defined as Rectangle.
	return rectangle_idx;
}

duk_ret_t duk_class_rectangle_constructor(duk_context *ctx)
{
	int id = duk_require_int(ctx,0);
	int x = duk_require_int(ctx,1);
	int y = duk_require_int(ctx,2);
	int w = duk_require_int(ctx,3);
	int h = duk_require_int(ctx,4);
	duk_push_this(ctx);
	if(duk_has_parent(ctx)) {
		/* Call parent Constructor */
		duk_push_parent(ctx);
		duk_get_constructor(ctx, -1);
		duk_push_int(ctx, id);
		duk_push_int(ctx,x)
		duk_push_int(ctx,y)
		duk_call(ctx);
		duk_pop(ctx); // Done with Parent.
	}
	duk_push_int(w);
	duk_put_prop_string(ctx, -2, "width");
	duk_push_int(h);
	duk_put_prop_string(ctx, -2, "height");
	/* Take care of New object Here */
	return 0;
}
duk_ret_t duk_class_rectangle_finalizer(duk_context *ctx)
{
	/* Take care of Current Object clean up */
	return 0;
}
duk_ret_t duk_class_rectangle_default(duk_context *ctx)
{
	/* Do something that is normally done in static functions */
	return 0;
}

Is this expected to land any time soon? This feature would make my life a whole lot easier.

I completely forgot I made this bug report. Anyways, I recently noticed another stack based scripting language that makes use of classes that has some basic functionally similar what ECMAScript 6 classes require. This language is called Squirrel. I probably should mention that the licensing on this is compatible with Duktape's License because it also uses the MIT License.

@svaarala any chance we'll see this in duktape any time soon?

@s1341 There's no set plan for adding ES6 features yet. ES6 will require some groundwork in the lexer and compiler before it'll be possible to implement ES6 features comfortably.

@svaarala, Node.js and SpiderMonkey already have this feature.
The normal syntax for class declarations - this is something that is very lacking in the JavaScript.

Why not use an ES6 transpiler such as Babel JS?

@brodybits,
This is inconvenient workaround

@brodybits You might be just asking about using babel to solve only this specific issue/request, but I am going to assume you really mean it in general, for a lot of the opened ES6 feature request issues.  In general, even though transpilers can solve a lot of these ES6 requests, there are several things to take into consideration:
One is that transpiled solutions for certain features can be slightly slower to execute at runtime than if the engine supported them natively.  This issue is a bad example of that, of course, but features like default arguments, destructuring, rest params, and things like Array#from make better cases.  The strongest cases I can think of at the moment are Sets and Maps, for which the native implementation  would be much faster than anything spit out by a transpiler.
Another consideration is that a lot of things can't be transpiled or even polyfilled properly, and thus native solutions must exist for support to be present.
Lastly, some users of duktape are unable to use transpilers (as pointed out by @ricardobeat in #273), so implementing

@rosshadden Fully agree that transpiling is not ideal, and there's no disagreement whether full ES2015 support should be provided (it is intended to be eventually fully supported). However, the changes needed are not trivial and take time to implement, especially those requiring compiler rework (like destructuring).

Haha yeah, of course!  I was just trying to answer what I envisioned as the generalized version of his question, shedding some light in places that not everyone might know about.  For instance, I did not even consider use cases where people couldn't just use a transpiler until I read #273.

Covering transpiling in practice (including its limitations) would make a good Wiki Howto BTW.
Anyway, just wanted to make clear supporting ES2015 is a project goal. It's not a given because some ES2015 features conflict a bit with keeping a low footprint and memory usage. In practice the approach will be such that the low memory baseline is an ES5-like configuration where you can enable individual ES2015 features that you specifically need. However, even with that approach some things like compiler architecture potentially conflict with footprint goals.
So there are definitely challenges ahead (which is good :-). In the meanwhile ES2015 features have been implemented little by little where they don't require significant structural rework. For example, 2.0.0 adds support for Reflect, Symbols, more Math built-ins, new object literal property formats, hex/octal literals, etc.

Added this for the Wiki: https://github.com/svaarala/duktape-wiki/issues/157.

@svaarala I wonder how difficult it would be to implement classes with the current parser.  My initial thought is that it shouldn't be too different from parsing an object literal (and hence require minimal hacking, which I know is something you want to avoid), but there are probably complications that I'm not accounting for.

Whats the status of this, I guess this is still a missing feature?

Wil this ever be implemented?

Provided that I (or others) have time to spend on the implementation, it's definitely a goal. Please note that this project is (originally) a personal off-hours project. It has no commercial backing, and no dedicated development resources, so progress depends entirely on the free time available.

True but this issue has almost been there for 5 years hahaha

Bump, any updates on this?

It would certainly be nice to have this, even just the basic aspects (class, constructor, this., member functions, and new).


9- block- validation

Changes:

Validation for field inputs related to parent atom blocks
Small styling

Looks Good.
Will need to add validations to other blocks, e.g.
Fun, Data & Atom within Expr


RPC 500 error handling

RPC 500 error handling #150

I want to add a log to him, but I don't know what is more appropriate to output

You can probably log a warning, since this error should hopefully be rare enough.

I have added it, you can see if you need to modify it


Update install.md

From Script should be in the same level as other Installing the Helm Client options.

good catch. Thanks!


JSX formating not work properly with .js extension

Description
if file extension is .js, and contains jsx,
after select the Beautify menu, the file will become something like this:
  <
            Text style = {
                [styles.white, styles.title]
            } > {
                this.state.orderData.statusInfo.text
            } < /Text> <
            Text style = {
                [styles.white]
            } > order ID: {
                this.state.orderData.mainOrderId
            } < /Text> <
            Text style = {
                [styles.white]

Expected Results
The beautified code should have looked like:
  <Text style={[styles.white, styles.title]}>{this.state.orderData.statusInfo.text}</Text>

Steps to Reproduce

Add code to Atom editor
Run command Atom Beautify: Beautify Editor
This beautified code does not look right!

Debug
Here is a link to the debug.md Gist:
Checklist

[* ] I have tried uninstalling and reinstalling Atom Beautify to ensure it installed properly
[ *] I have reloaded (or restarted) Atom to ensure it is not a caching issue
[ *] Searched for existing Atom Beautify Issues at https://github.com/Glavin001/atom-beautify/issues
so I know this is not a duplicate issue
[* ] Generated debugging information and added link for debug.md Gist to this issue

I change the setting and it works fine now.

@seajean I meet the same issue. What change has you made?

@phaibin  go to the package setting and find the javascript column,  change the default beautifier to  Pretty Diff

@seajean I works! Thanks!


Unable to login with username

Laravel Version: 5.7
Adldap2-Laravel Version: 4.0
PHP Version: 7.2
LDAP Type: ActiveDirectory

Description:
I've a fresh laravel installation to try this package.
I've installed :
"adldap2/adldap2": "^8.0",
"adldap2/adldap2-laravel": "^4.0",
and try to configure, but I'm lost in documentation to login with username.
I don't understand the correct steps to work.
I've ths error:

If you want i make a new laravel installation ... no problem ... this is a test
Tell me what to check, help me please ...
thanks in advance!

I have the same problem.
I'm looking for a tutorial to login with active directory and laravel. I've spend a lot a time and I'm stuck her.
Is there any example to config the laravel authentication with adlap2 against windows ad?
Best regards
Hans-Peter

This would be fantastic, I am stuck here as well.

@2PeterSteiner all examples and tutorials on the documentation site are all based on ActiveDirectory.
This issue is already described in the documentation:
https://adldap2.github.io/Adldap2-Laravel/#/auth/setup?id=ldap
I've also described and walked through this issue multiple times on several issues here.
The ldap_auth.usersnames array is what causes this. You need to have your HTML input field name the same as your ldap_auth.usernames.eloquent value. UNLESS you are using the NoDatabaseUserProvider, then the ldap_auth.usernames.ldap.discover must match your HTML input field name.
You can see this taking place in the Resolver::byCredentials() method:
https://github.com/Adldap2/Adldap2-Laravel/blob/9c4e0f04e64245f19de286842b0f062fa8350681/src/Resolvers/UserResolver.php#L61-L82
This option controls how Adldap2-Laravel knows what array key contains your users username when passed into Laravel's Auth::attempt() method in the LoginController.


Remove SC exercises

In order to simplify the workflow for authors, we do not neet any distinction between SC and MC exercises any longer. Hence automatically every such exercise should be a MC one in future.

Isn't that already the case for the plugin in the new editor? Or what do you mean?

Both options are still available:

But you are right: Multiple Choice is the default option.

Okay, this is what you mean. This is intentionally, because there also a difference for the learner on how to approach the exercise

In sc exercises, the learner knows that there is only one correct choice. So a procedure of exclusion is a valid approach
This is not the case for mc exercises because the learner doesn't know how many - if any - choices are correct

This is also indicated by the typical UX that is common in web: sc exercises are rendered with radio buttons (circles), mc exercises with checkboxes (squares).


[wip] http plugin prototype

Endpoint on management API to contact 3scale backend.
/cc @jmprusi

No need for this. The operator uses native go client.


Add Kitty themes

Adds a theme for Kitty terminal emulator, using the catppuccino theme colors.

colors are all pulled from this file: https://github.com/Pocco81/Catppuccino.nvim/blob/main/lua/catppuccino/color_schemes/catppuccino.lua

Awesome! I was thinking it'd be great too to create Kitty themes for the other colorschemes, what do you think? (If this ever comes to be then we should organize this as extras/neon_latte/kitty, extras/catppuccino/kitty, ...)

I added this one cause it's the one I personally use but I can add the others when I get time later today if you'd like.

Oh if you can it'd be great, truly appreciate it. I'll help too. Would you like to make Light Melya or Neon Latte?

I can do Neon Latte. I'm more likely to use that one myself.

Great, I'll do Light Melya :)

@Pocco81 I changed the directory organization and added the neon_latte theme 🚀

Light Melya is ready too: https://github.com/Pocco81/Catppuccino.nvim/pull/8/commits/43eef24bdb68a31c3519252436e857507db07c5b

Btw the Neon Latte one looks absolutely gorgeous. Great job!

@Pocco81 most credit goes to you! I just copy/pasted the colors from your Lua file 😁


[rstream-log] Unable to build a Typescript project while using rstream-log

I am using rstream-log in a Typescript project. When I try to build the project I am getting the following errors ( only pasting two lines from the error here). Other dependent umbrella packages also seem to throw similar errors
node_modules/@thi.ng/rstream/from/worker.d.ts:22:55 - error TS2304: Cannot find name 'Blob'.
22 export declare const fromWorker: <T>(worker: string | Blob | Worker, terminate?: boolean, id?: string | undefined) => Stream<T>;

node_modules/@thi.ng/rstream/from/worker.d.ts:22:62 - error TS2304: Cannot find name 'Worker'.
22 export declare const fromWorker: <T>(worker: string | Blob | Worker, terminate?: boolean, id?: string | undefined) => Stream<T>;

Hi!
Have you tried to add "dom" to my compilerOptions.lib array in tsconfig.json?
Is it a browser or node project?

@nkint you beat me to it (again!) :) was just double checking it, but that is my hunch too... somehow you must have excluded it...
Also see (lib section & defaults):
https://www.typescriptlang.org/docs/handbook/compiler-options.html

Thanks. I just did that and it helped. However I am running into the following now:
node_modules/@thi.ng/transducers/iter/as-iterable.d.ts:6:58 - error TS2315: Type 'Generator' is not generic.
6 export declare function asIterable<T>(src: Iterable<T>): Generator<T, void, undefined>;

node_modules/@thi.ng/transducers/iter/choices.d.ts:17:131 - error TS2315: Type 'Generator' is not generic.
17 export declare const choices: <T>(choices: ArrayLike<T> & Iterable<T>, weights?: ArrayLike<number> | undefined, rnd?: IRandom) => Generator<any, void, unknown>;

@vidyanand can you please let me know which version of TS you're using? I haven't tested w/ 3.7 yet and there might be some (new) issues w/ generics

Thank you @postspectacular . Here is the information you asked for:

$ tsc --version
Version 3.7.2

@postspectacular  - I downgraded typescript to 3.6.3 and can confirm that with version of typescript this seems to be working.

@vidyanand thanks & that's good to know that there'll be refactoring ahead. Sometimes I wish they (MSFT) wouldn't change the inferencer rules/generics with each new release and break people's code...

@vidyanand just in case you haven't noticed yet, but end of November, I released new versions of all packages which are now built w/ TS 3.7.2. See new versions here: https://github.com/thi-ng/umbrella#reactive-programming


Velocity settings

remove rescale and aimless options in velocity generation, meaning we now only support aimless shooting and we do not support rescaling the energy to match some total energy at the shooting point
add the H2 dissociation example to all engines, which will be used to make a heavy test later
read in velocity settings from the .toml, fixes #8
make lammpsengine aware of exe_dir, fixes #74
add internal velocity generation in gromacs, resolves #16
Add unit tests for velocities, one heavy

Looks good, I can pass this once the number of test files are reduced

LGTM


Ensure that ECV is language-specific

Currently, ECV button export all items in database
Users (with sufficient authorisation) should only be able to refresh ECV for the datasets they have access to
Create list of languages under the ECV button (like the list under the Search button)

See also #254

Wouldn't it make more sense to have the ECV be Dataset specific?
Btw, do you mean written languages or sign languages as language?

@henrinie: indeed, that's what it should be. When I created this issue we weren't yet in the clear about any role of dataset objects.

Update too original issue: better than displaying a list of languages to the user, perhaps just keep the button as it id's, but have it update all the ECVs for datasets to which the user has write access.


freeze, latest flags for install and update

Rather than keeping reinstall around, we should make freeze and latest install-specific options that can be passed.

Follow-up here - for now we will keep them deprecated and reinstate them if/when there is need in future.


Remove old static Window Functions page

Part of https://github.com/apache/datafusion/issues/12740
Is your feature request related to a problem or challenge?
@Omega359  added the infrastructure to automatically create documentation from code in https://github.com/apache/datafusion/pull/12668
After https://github.com/apache/datafusion/pull/13161 Window Functions still have two pages

A "static" one: https://datafusion.apache.org/user-guide/sql/window_functions.html
A "auto generated" one https://datafusion.apache.org/user-guide/sql/window_functions_new.html

Describe the solution you'd like
Once all the window functions have all been migrated

https://github.com/apache/datafusion/issues/8709

We should remove the static window functions page (in favor of the auto generated one). We can follow the model of https://github.com/apache/datafusion/pull/13161
Describe alternatives you've considered
Basically this means for the scalar, window and aggregate functions:

Delete the static file docs/source/user-guide/sql/window_functions.md
Rename the _new files like docs/source/user-guide/sql/window_functions_new.md to  docs/source/user-guide/sql/window_functions.md
Update the index page docs/source/user-guide/sql/index.rst to remove the _new entries
Update the script dev/update_function_docs.sh so it writes to the scalar_functions.md file

Additional context

This is just waiting on #12649

It seems assignee removed their assignment from that issue. Let me implement that and remove old static windows then

@jonathanc-n  notes that now we have merged the following PR this is unblocked 🐱 🚀

https://github.com/apache/datafusion/pull/13201


textAlign not working.

textAlign property isn't working in InputGroup.
So we've to use TextInput of react-native...But then it doesn't support styling of border in TextInput.
So,do something.

It's suddenly working.
You people are very fast in resolving issues.
Nicely Done.
Thank You...It was really helpful.


AuthorizationInterceptor not working for Collection of IIdType (theOwners)

I am implementing AuthorizationInterceptor for my fhir server.
The interceptor works fine for a single owner:
IdDt userIdPatientId = new IdDt("Patient", 2L);
new RuleBuilder().allow().read().allResources().inCompartment("Patient", userIdPatientId )
However when I am setting the owners as a collection of ids its failing with
ERROR ca.uhn.fhir.rest.server.interceptor.ExceptionHandlingInterceptor - ExceptionHandlingInterceptor.createOperationOutcome Failure during REST processing: java.lang.NullPointerException java.lang.NullPointerException
at ca.uhn.fhir.rest.server.interceptor.auth.RuleImplOp.applyRule(RuleImplOp.java:252):
List idtList = new ArrayList<>();
................
new RuleBuilder().allow().read().allResources().inCompartment("Patient", idtList)
While checking code for ca.uhn.fhir.rest.server.interceptor.auth.RuleBuilder class I found that it is not setting myInCompartmentName and myInCompartmentOwners in method inCompartment(String theCompartmentName, Collection<? extends IIdType> theOwners) :
@Override
public IAuthRuleBuilderRuleOpClassifierFinished inCompartment(String theCompartmentName, Collection<? extends IIdType> theOwners) {
Validate.notBlank(theCompartmentName, "theCompartmentName must not be null");
Validate.notNull(theOwners, "theOwners must not be null");
Validate.noNullElements(theOwners, "theOwners must not contain any null elements");
for (IIdType next : theOwners) {
validateOwner(next);
}
myClassifierType = ClassifierTypeEnum.IN_COMPARTMENT;
return finished();
}
@Override
public IAuthRuleBuilderRuleOpClassifierFinished inCompartment(String theCompartmentName, IIdType theOwner) {
Validate.notBlank(theCompartmentName, "theCompartmentName must not be null");
Validate.notNull(theOwner, "theOwner must not be null");
validateOwner(theOwner);
myInCompartmentName = theCompartmentName;
myInCompartmentOwners = Collections.singletonList(theOwner);
myClassifierType = ClassifierTypeEnum.IN_COMPARTMENT;
return finished();
}

Fix has been merged


feat(windows): Implemented gethost() for windows

Description
Added windows implementation of getHost(). Using this user can get full name of windows devices.
Fixes #1549

Compatibility

OS
Existing
Implemented

iOS
❌
❌

Android
✅
✅

Windows
❌
✅

Checklist

[x] I have tested this on a device/simulator for each compatible OS
[x] I added the documentation in README.md
[] I updated the typings files (privateTypes.ts, types.ts)
[] I added a sample use of the API (example/App.js)

@mikehardy can you please merge this at your convenience?

@mikehardy  Can you please merge this today.

E2E was passing earlier, now it failed for java.lang.RuntimeException: android.os.DeadSystemException

E2E was passing earlier, now it failed for java.lang.RuntimeException: android.os.DeadSystemException

I need to change the way the android CI emulator is started up, I manage quite a few repos and don't have CI working in the most optimal way in all of them all at the same time (always discovering new/better methods, but takes time to propagate...) in the meantime the emulator startup here is flaky. Eventually will have it handled same way I'm doing either react-native-firebase or ankidroid  as those seem to be working well at the moment


Java elasticsearch client support for reading documents with metadata

Previously the beam elastic read client did not give access to document metadata. This pull request let's api users choose to read the entire elastic document including metadata from the search result. The default is still to read only the document _source node from the result. The change is completely backward compatible.

Retest this please

Thank you for the feedback, @timrobertson100. I don't have an ASF jira user, but I will add a test and update this pull request.

We have a broken test ElasticsearchIOTest.testWriteWithIdFn. @torhaa do you think it can be related to your changes?

Added a test for elastic 2 and 5, rebased, and squashed.

Thank you for adding those @torhaa
LGTM (contributor not committer) and pinging @echauchot

Well, it LGTM too, so I'm going to merge this.
Thank you @torhaa for your first contribution and thank you @timrobertson100 for review!

Nice addition, also it is good that the default behavior stays backward compatible


subedit: init at 1.2.2

Description of changes
Command-line subtitle editor written in BASH. https://github.com/helixarch/subedit
Since subtitleeditor is broken, I needed another subtitle editor and found this, useful to shift subtitles times etc.
Things done

Built on platform(s)

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

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

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

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

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

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 185743 run on x86_64-linux 1

1 package built:

subedit


Could you make this to be able to use for ESP32?

Actually this is not the issue. I wish you guys make this to be available to work for ESP32.

I try to setting by esp8266 but my device is esp32, it also work.

Yes, using ESP8266 as a workaround will give you most of the plugin functions for ESP32. Follow #44 for updates.


Investigate master merges

3 merge commits have appeared on master
commit d3336fbbf
Merge: 7a84bbdd6 0b2f2d1f2
Author: Saravanan Balasubramanian<EMAIL_ADDRESS>Date:   Sun Apr 17 13:53:07 2022 -0700

    Merge branch 'master' of https://github.com/argoproj/argo-workflows

    Signed-off-by: Saravanan Balasubramanian<EMAIL_ADDRESS>
commit 7a84bbdd6
Merge: 4557e684f f467cc555
Author: Saravanan Balasubramanian<EMAIL_ADDRESS>Date:   Thu Apr 14 13:24:13 2022 -0700

    Merge branch 'master' of https://github.com/argoproj/argo-workflows

    Signed-off-by: Saravanan Balasubramanian<EMAIL_ADDRESS>
commit 4557e684f
Merge: e97b0e66b 73ea7c72c
Author: Saravanan Balasubramanian<EMAIL_ADDRESS>Date:   Wed Apr 13 21:50:35 2022 -0700

    Merge branch 'master' of https://github.com/argoproj/argo-workflows

    Signed-off-by: Saravanan Balasubramanian<EMAIL_ADDRESS>

How did they appear?
Did they change anything?

How did they appear?

@sarabala1979 is an admin. Admins can push to master. I've changed this setting to prevent the problem happening again.

Did they change anything?

No
https://github.com/argoproj/argo-workflows/compare/73ea7c72c...4471b59a5


Remove compile dependency on kafka-clients

The kafka-clients 3+ dependency is currently declared with compile scope, which makes the library harder to integrate in code bases when using a kafka-clients 2+ (code base where the migration to `kafka-client`` 3+ is not easily doable).
The dependency is only used to generate an UUID in the StrimziKafkaContainer class using the Kafka client's org.apache.kafka.common.Uuid, in order to apply a specific filter to ignore 2 specific Kafka UUIDs (metadata topic uuid & zero uuid) and to encode the UUID in base64.
The constraints to have a compile dependency on the kafka-clients seems very high compared to the benefits.

@tombentley WDYT about this? Is the UUID stable enough to replace it like this?

Hi!
Is there any news about this PR?
Thanks in advance :)

Thanks for the PR.

Hi @scholzj,
Do you know if a date is planned for the 0.102.0 release?
Thanks in advance.

Hi @scholzj, Do you know if a date is planned for the 0.102.0 release? Thanks in advance.

Yesterday, we released CR1 of the test container :) (https://github.com/strimzi/test-container/releases/tag/0.102.0-rc1)

Amazing :). Thanks a lot.


kernel/parser: portability issues with 64 bit ints

The literal 0xffffffff00000000 has the value -4294967296 on the 64-bit VM.
const int big = 0xffffffff00000000;

The kernel ast.IntLiteral has no indication that the value has been truncated to fit in 64-bits.
I believe on the web platform we need to either to reject the literal, or honor the original value.
If 0xffffffff00000000 is permitted, it should have the same value as 0xffffffff * 0x100000000, i.e. big > 0 should be true.

Depending on what is decided, either fasta could be configured to reject the literal, or, if the kernel IR is seen as platform agnostic, the kernel ast.IntLiteral needs to be augmented so that it can be handled downstream.

The fasta error message mentions '64-bits'. This does not fit the web platform.

Error: The integer literal 0xffffffdff00000000 can't be represented in 64 bits.
Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.

If we plan to have libraries that can be used on both web and Flutter, we should reject literals that are not portable. I believe this should be the default (i.e. opt-out, not opt-in).

Messages that are generated downstream should be able to include the literal text, like the error message quoted above.

@vsmenon

For context, notes from the language meeting on Feb 6, 2018 say "64-bit int literals limited to 64-bit for now. May need escape clause for web."

Summarizing some discussion:
Const evaluation
I think there's broad agreement that any const evaluation has to be done using platform specific semantics.  Anything else is extremely confusing, since then new Foo().x and const Foo().x may have completely different integer values.
** Hexadecimal literals **
Hexadecimal literals represent unsigned 64 bit numbers.  The question at hand is what process to follow to get from the unsigned 64 bit value to the platform number that it denotes.  Options:

unsigned int64 -> signed int64 -> platform int
unsigned int64 -> platform int

The former is what is currently implemented.
Option 1 has the positive effect of making the interpretation of the same literal on different platforms be closer.  If the signed 64 bit integer representation can be represented exactly on all platforms, then all platforms will see the same result.
void main() {
  const int small = 0xffffffff00000000;
  // True on all platforms under option 1
  assert(small == -4294967296);
}

On the other hand, option 1 has the unfortunate effect that the interpretation function for literals does not distribute over arithmetic: that is, on JS platforms, interpretation(a) * interpretation(b) != interpretation(a*b).
void main() {
  const int small = 0xffffffff00000000;
  const int bigOrSmall = 0xffffffff000000 * 100;
  // Succeeds on the VM, fails on JS under option 1
  assert(small == bigOrSmall);
}

Option 2 has the inverse properties.  Interpretation of literals distributes over arithmetic (at least within the set of representable numbers), but literals have (more) different interpretations on the VM vs JS.
void main() {
  const int small = 0xffffffff00000000;
  // True on the VM, fails on JS under option 2
  assert(small == -4294967296);
}

void main() {
  const int small = 0xffffffff00000000;
  const int bigOrSmall = 0xffffffff000000 * 100;
  // True on all platforms under option 2
  assert(small == bigOrSmall);
}

On balance, I am inclined towards option 2, and would like to propose that we move forward with that.  @lrhn WDYT?
cc @vsmenon @rakudrama @munificent

The reason for allowing unsigned 64-bit integer hex-literals is to allow you to represent the individual bits, and nothing else.
If you don't actually preserve the individual bits, then the result will likely be wrong. But then again, any bit-wise operation over 32 bits is wrong in JS anyway, so if representing 64 bits is your goal, you should not compile to JavaScript at all.
So, I would pick option 1. It's less useful when compiling to JS, but you shouldn't be using it at all when compiling to JS. I don't want to make hexadecimal numbers more useful when compiling to JS.
If/when JS compilation switches to using JS BigInt to represent 64-bit integers, I don't want existing web code literals to change meaning.
So, if you want a number outside the signed 64-bit range, don't use a literal.
Compilation to JS should probably still warn if any literal is not representable as a double.

So, I would pick option 1. It's less useful when compiling to JS, but you shouldn't be using it at all when compiling to JS.

This is an odd argument.  Option 1 and Option 2 are identical when not compiling to JS.  So if Option 1 is less useful when compiling to JS, why not use Option 2?

If/when JS compilation switches to using JS BigInt to represent 64-bit integers, I don't want existing web code literals to change meaning.

They already will, regardless of what we decide here.

When I say "less useful" I mean that we don't introduce an unintended feature that people might use and that we might want to remove again at a later time. If hex-numbers are allowed to be unsigned and represent signed 64-bit numbers elsewhere, allowing them to represent (some) unsigned 64-bit numbers when compiling to the web will cause an extra incompatibility.
If we move the web integers to actually be 64-bit at some point, then we will break that feature again.
I'd prefer not to introduce it to being with. Allowing one extra bit (on positive numbers only, and in magnitude only, not precision) isn't worth that.

Requires no further work from the analyzer (modulo existing bugs in platform correct constant evaluation)

I don't think DDC+Analyzer can reliably issue these errors, because of the existing bugs in constant evaluation (https://github.com/dart-lang/sdk/issues/32964). DDC+Kernel will be able to issue them reliably. (If it's high priority, we can fix #32964, but it involves copying Analyzer's constant eval code into DDC so we can fix it, that also gives us a place to issue these errors.)

I agree that if we aim for having each platform provide its own complete int implementation, then it's best if it's carried out throughout the entire system, including the parsing of literals. Until then, we should ensure that the integer literals we do allow will keep their meaning in the future, which means that large positive hexadecimal literals should stay positive when compiled to JS doubles, and not wrap to negative like they do for native int64s.
It will be consistent with the intended behavior of "integer literals in a double context" implicit conversion, where we allow any mathematical integer that can be exactly represented as a double. For compiling integers to JS, we would just use the same semantics in non-double contexts as well, so the work will need to be done anyway.
I think it's the best long-term plan, and short term strategy for being forwards compatible.

@kmillikin - is it easy to just do this in CFE (when configured to do so)?

Requires DDC and dart2js to warn if a literal is not exactly representable in JS

Ok, I think we have a resolution.  Closing this in favor of the tracking issue here: https://github.com/dart-lang/sdk/issues/33282 .


VM creation failed - no action on button click

@ershovaelena
Try to configure VM as at the screenshot. Create button doesn't work.

It's in /216-vm-tags CI deployment.

@bwsw This problem is likely fixed in #249 which will be merged soon.


Cannot seem to force to POST...

Discussed in https://github.com/vitmalina/w2ui/discussions/2568

Originally posted by carlbeechvuw October  3, 2024
Hi
Working with V2 - on both Grid and Form objects, I always get  GET style data rather than POST...   I'm using php with a front end web page which uses w2ui - and the PHP always reports comms as being GET.   (As its the receiving PHP, I can't do a jsfiddle to demonstrate I'm afraid...)
Here's the front end code:
<script type="module">
import { w2layout, w2grid, w2toolbar, w2alert,w2form,w2utils,w2ui } from 'https://rawgit.com/vitmalina/w2ui/master/dist/w2ui.es6.min.js'
let config = {
    layout: {
        name: 'layout',
        padding: 4,
        panels: [
            { type: 'main', size: '25%', resizable: true  }
        ]
    },
	PtchGrpDates: {
		name: 'PtchGrpDates',
		method: 'POST',
		url: 'retrievedata.php?datatype=PtchGrpDates&ObjType=GRID',
		show: {
			toolbar: true,
			footer: true ,
			toolbarAdd: true ,
			toolbarSave: true
			},
		columns:
			[
			{ field : 'PatchingGroup', text: 'Group', size: '200px', sortable: true, hidden: 0, editable: { type: 'text' }  },
			{ field : 'PatchingDate', text: 'Patching date', size: '100px', sortable: true, hidden: 0, editable: { type: 'text' }  }
			],
		postData: {
			datatype : 'PtchGrpDates',
			ObjType : 'GRID'
			},
		onSubmit(event) {
			   event.detail.httpMethod = 'POST'
			}
		}
	}
let layout = new w2layout( config.layout )
let PtchGrpDates = new w2grid( config.PtchGrpDates )
layout.render('#PATCHGRPDT')
layout.html('main',PtchGrpDates)
</script>

When I make a change and click save, I've got PHP sending information to a log file - here's the relevant part:
2024-10-03 07:33:46 ConsolidateInputs:POST variables:
2024-10-03 07:33:46 ConsolidateInputs:GET variables:
2024-10-03 07:33:46 GET variable:datatype=PtchGrpDates
2024-10-03 07:33:46 GET variable:ObjType=GRID
2024-10-03 07:33:46 GET variable:request={"datatype":"PtchGrpDates","ObjType":"GRID","changes":[{"recid":"1000024","PatchingDate":"2024-09-23"}],"action":"save"}
As you can see in the code, I've tried to set the sending method to be POST, but it doesnt appear to work... as mentioned, its the same with FORMS as well...
I know I'm missing something - but after 2-3 weeks of not being able to work it out - I thought I'd raise this as a query...
Addendum - forgot to include that I'd made a simple HTML form, using POST and this came through correctly as POST variables as expected.
Hope you're able to help
Thanks
Carl.

Submitting as issue as there was no comment in discussion board...

Addendum - forgot to include that I'd made a simple HTML form, using POST, which sent data through to the PHP and this came through correctly as POST variables as expected - so I know that the PHP is working correctly - which demonstrates the issue is with the html/w2ui...
Hope that clarifies.


save and exit cause error

pptx.save('sample', filename=>{
    console.log(filename);
    process.exit(0);
})

There is no pptx saved.
Maybe use callback at wrong time?
Thanks.

<EMAIL_ADDRESS>

The process.exit(0) is the issue.  If this line is removed, the sample.pptx file is created.
While there is a callback in use, the OS itself and the Node background filestream are still in flight and hard-exiting the process is killing the file generation.
The PptxGenJS code is passing the callback to fs.writeFile() which fires the callback upon completion, so this is the extent of what can be coded.

Thank you.


MWPW-135875 Add milo property to window.marketingtech

Martech folks would like to be able to easily id milo sites.
Resolves: MWPW-135875
To test: Open after url and check the window.marketingtech object for milo:true
Test URLs:

Before: https://main--milo--adobecom.hlx.page
After: https://135875-martech--milo--adobecom.hlx.page


Redirect all output to debug stream in debug mode

Fixes #97

Current coverage is 88.23% (diff: 100%)

Merging #206 into master will not change coverage

@@             master       #206   diff @@
==========================================
  Files             4          4
  Lines           595        595
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            525        525
  Misses           70         70
  Partials          0          0

Powered by Codecov. Last update 5cd934c...b8e86bd


⚠ ClamAV has degraded performance

In 737dead, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 260 ms

Resolved: ClamAV performance has improved in a376150 after 1 hour, 24 minutes.


Google PageSpeed recommendations should be followed

See https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fryanfitzgerald.github.io%2Fdevportfolio-template%2F&tab=mobile

In this case, arguably the most important PageSpeed recommendations are followed (minification, page response time, compression, etc.) and the remaining warnings are something that would be handled on an individual basis by each user should they wish to address it on their end (i.e. caching). Also, the images are meant to serve as placeholders that get replaced by user content, so I'm not overly concerned with them being able to be reduced slightly.


Create Math - Multiplication of two Matrices with example in c++

🛠 Issue (Number)

Issue no #200
👨💻 Changes proposed

✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

📄 Note to reviewers

📷 Screenshots

@Durgesh4993 Please wait for 2 days, if inactivity is there please report
I will assign the issue, till then this PR will be in STAND BY


SOURCE_TYPE_GPS: deprecated constant

I found a log-entry about a deprecated constant that will be removed in HA Core 2025.1. Still a year left to fix it… :)
2024-01-07 21:13:27.944 WARNING (MainThread) [homeassistant.components.device_tracker] SOURCE_TYPE_GPS was used from skodaconnect, this is a deprecated constant which will be removed in HA Core 2025.1. Use SourceType.GPS instead, please create a bug report at […]
Installation:

Home Assistant variant: Core 2024.1.2
Supervisor 2023.12.0
Operating System 11.3
Frontend 20240104.0
Skoda connect integration version 1.2.8

Duplicate of #249 Sorry.

Closer duplicate.


Hackertarget Error

What's the problem (or question)?
When using a subdomain for enumeration, the request to hackertarget fails.
Do you have an idea for a solution?
Either use only the domain and not an additional the subdomain when requesting hackertarget
or skip the test of hackertarget (as it may produce false positives).
How can we reproduce the issue?

Make request to 'https://api.hackertarget.com/hostsearch/?q=dev.redacted.com'
See error message ('error check your search parameter')
Make request to 'https://api.hackertarget.com/hostsearch/?q=redacted.com'
works.

I can confirm the problem, I get this error with different URLs.
Hi @codingo @picatz @Ice3man543,
Is it possible to solve the problem?, and when will the long announced update come?
I use Subfinder daily and appreciate it very much, I would be very happy about an update...
Thank you for your good work!

Hi @ZeroDot1, I am aware of the current issues in subfinder and am working on something much better than the original subfinder, just you know life's life, got busy in some other stuff, so not able to dedicate enough time on this. I promise, in upcoming months, we'll release many great things. You people won't be disappointed for sure!

Hi @Ice3man543,
Thank you very much for your quick answer, I appreciate your work very much, keep up the good work!
We should make an update for the earth so that one day has 48 hours, then we could do more good things... :D

@ZeroDot1 seriously, I would love it so much. So much to do, so little time ;)

Hey, as far as i am aware, hackertarget doesn't allows recursive enumeration, hence the issue. This is not possible to fix in subfinder, so closing this issue now. Thanks for understanding!

uhm.. well maybe you should at least fix subfinder in order to circumvent the error...
as already mentioned:
Either use only the domain and not an additional the subdomain when requesting hackertarget
or skip the test of hackertarget (as it may produce false positives).


bump purescript to v0.7.5

Upgrade purescript.rb to latest version 0.7.5.

Thank you for the contribution. It was merged directly as dde72537729a6258d5f1a7718214ea0b3d0ff9d2 to keep commit history cleaner. Your contribution is still credited to you.


Experiment: Graph-Copy-Based Stabilization

Note: This is only an experiment. Maybe too complicated to continue.
Using graph copying instead of Candid-based serialization for stabilization, to save stable variables across upgrades.
Goals

Stop-gap solution until enhanced orthogonal persistence: More scalable stabilization than the current Candid(ish) serialization.
With enhanced orthogonal persistence: Upgrades in the presence of memory layout changes introduced by future compiler versions.

Design
Graph copy of sub-graph of stable objects from main memory to stable memory and vice versa on upgrades.
Properties

Preserve sharing for all objects like in the heap.
Allow the serialization format to be independent of the main memory layout.
Minimize the amount of stable memory accesses (expensive API calls) through streaming read/writes.
Limit the additional main memory needed during serialization and deserialization.
Avoid deep call stack recursion (stack overflow).

Memory Compatibility Check
Apply a memory compatibility check analogous to the enhanced orthogonal persistence, since the upgrade compatibility of the graph copy is not identical to the Candid subtype relation.
Algorithm
Applying Cheney’s algorithm [1, 2] combined with multiple copying between stable and main memory (credits to Claudio for this idea):
Serialization

Cheney’s algorithm using main memory as from-space and stable memory as to-space:
Focusing on stable variables as root (sub-graph of stable objects).
The target pointers and Cheney’s forwarding pointers denote the (skewed) offsets in stable memory.
Using streaming reads for the scan-pointer and streaming writes for the free-pointer in stable memory..

Deserialization

Copy the entire stable memory image in main memory at the heap end.
Apply Cheney’s algorithm in serialization, however with two differences:

Rebase the stable memory offsets inside the pointer fields of the image to corresponding absolute main memory addresses.
The Cheney’s forwarding pointers denote the simulated addresses in main memory, as if the objects would be allocated on top of the existing heap.

Copy the entire stable memory image back in main memory at the heap and extend the heap.

Specific Aspects

A streamed reader/writer abstraction is provided that caches stable memory access and thus minimizes stable memory API calls.
Currently, the object payload uses the same encoding for main memory and stable memory. On a longer term, the main memory layout may however evolve and would be mapped to the current stable format.
The null object is handled specifically to guarantee the singleton property. For this purpose, null references are encoded as sentinel values that are decoded back to the static singleton of the new program version.
Field hashes in objects are serialized in a blob. On deserialization, the hash blob is allocated in the dynamic heap. Same-typed objects that have been created by the same program version share the same hash blob.
For backwards compatibility, old Candid destabilzation is still supported when upgrading from a program that used older compiler version.
Incremental GC: Serialization needs to consider Brooks forwarding pointers (not to be confused with the Cheney's forwarding information), while deserialization can deal with partitioned heap that can have internal fragmentation (free space at partition ends).

Stable Format
Currently, for ease of implementation, the object layout in stable memory is largely identical to the main memory with the following differences:

The Brooks forwarding pointer is omitted (used by the incremental GC).
The pointers encode skewed stable memory offsets to the corresponding target objects.
References to the null objects are encoded by a sentinel value.

Complexity
Specific aspects that entail complexity:

The destabilzation uses bulk-copying to main memory which is relatively invasive. For correctness, the following invariants need to be met:

The main memory allocator used during deserialization must not write to the heap (only compute the target addresses).
The allocator must yield monotonously growing addresses during deserialization. Free space gaps are allowed to complete partitions.

The logic for pointer visiting and object encoding/decoding is partly duplicated since the access to stable memory is stream-based and slightly differs (e.g. different object headers).
For better performance, the accesses to the stable memory need to be buffered by an extra abstraction.

TODOs

Measure scalability and performance.
Redesign/refactor the scan and copy logic for the different object types: E.g. define explicit stable memory object structures, reduce code duplications for pointer scanning.

Related PRs

Motoko Enhanced Orthogonal Persistence: https://github.com/dfinity/motoko/pull/4225
Motoko Incremental Garbage Collector: https://github.com/dfinity/motoko/pull/3837

References
[1] C. J. Cheney. A Non-Recursive List Compacting Algorithm. Communications of the ACM, 13(11):677-8, November 1970.
[2] R. Jones and R. Lins. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley 2003. Algorithm 6.1: Cheney's algorithm, page 123.

This is cool! Looking forward to reviewing it!

For the record, I did a bit of digging and for bignum serialization, we could also use the functions provided by LibTomMath (if you don't already).
See section 10.2 of the pdf manual https://github.com/libtom/libtommath/releases/download/v1.2.0/bn-1.2.0.pdf
There's to/from_sbin and libgmp style pack unpack avialable. Might actually be easier/cheaper than sleb encoding.

Just for future reference, if needed:
Branching off the original more complex version of the graph copy that caches stable memory and flips memory on deserialization: https://github.com/dfinity/motoko/tree/luc%2Foriginal-graph-copy

Update: I changed the serialization of BigInt to use the defined binary format of Tom's math library mb_to_sbin() and mb_from_sbin(). The only aspect I am little bit worried are the temporary allocations performed by the library which could be relevant if memory is short.

Update: I changed the serialization of BigInt to use the defined binary format of Tom's math library mb_to_sbin() and mb_from_sbin(). The only aspect I am little bit worried are the temporary allocations performed by the library which could be relevant if memory is short.

I wonder if we could write our own that uses stack allocation instead, by modifying that code.

Update: I changed the serialization of BigInt to use the defined binary format of Tom's math library mb_to_sbin() and mb_from_sbin(). The only aspect I am little bit worried are the temporary allocations performed by the library which could be relevant if memory is short.

I wonder if we could write our own that uses stack allocation instead, by modifying that code.

Yes, this would probably work for the temporary buffer and the temporary BigInt allocation(s) during serialization. An aspect to consider could be large-sized bigints - not sure whether and how often this occurs in practice. Another more tricky aspect could be the BigInt allocations during deserialization: While decoding, Tom's math library implementation increases the number by reallocating the object and keeping the last instance.

Probably before doing any optimization we should try to capture the instructions used by upgrade to have some measure to optimize against.

Update: I now implemented a bespoke direct serialization that stores the bignum in little endian arbitrary-length byte array, without causing temporary allocations.

Hmm, I took a look at the decompiled wasm for the rts and couldn't find any call_indirect I could attribute to the object visitor: perhaps those lambda calls are indeed all optimized to direct calls.
It's possible I missed something of course.

Yes, I also checked, Rust optimizes these and seems to be adhere to its "zero-cost abstraction" principle as for the generics, traits, and lambdas (unless the types would be declared dyn which we do not use in the RTS).

Left some comments for possible (micro) optimizations.
Given the deserialization code is a simple, interruptible loop, recording its progress mostly within the heap/stable-memory, I wonder if we can even use this when there is too much data for the upgrade budget? We "just" do the serialization/deserialization over several ordinary messages, immediately before and after upgrade, rejecting all other messages in the meantime. But maybe I'm missing something and it's not actually so easy to pause and resume the loop iterations between IC messages.

I believe this could be a viable approach, and interrupting/resuming the upgrade would be simple enough to realize. As you say, it would be important to block other messages in meantime, including the GC during serialization and deserialization (e.g. serialization replaces objects by forwarding blocks; during deserialization, there exist unpatched references in objects pending to be scanned). A downside could be that the users or DFX or some other external mechanism would need to issue these repeated update increment calls...

Left some comments for possible (micro) optimizations.
Given the deserialization code is a simple, interruptible loop, recording its progress mostly within the heap/stable-memory, I wonder if we can even use this when there is too much data for the upgrade budget? We "just" do the serialization/deserialization over several ordinary messages, immediately before and after upgrade, rejecting all other messages in the meantime. But maybe I'm missing something and it's not actually so easy to pause and resume the loop iterations between IC messages.

Thanks for this suggestion. I implemented this "incremental" upgrade process in the additional PR https://github.com/dfinity/motoko/pull/4361

Note: Branching off the original non-incremental graph copy to https://github.com/dfinity/motoko/tree/luc%2Fnon-incremental-graph-copy

Closing PR in favor of https://github.com/dfinity/motoko/pull/4475 (graph copy used in combination with enhanced orthogonal persistence).


312 react router

migration to react router.
routing works internally with react router, but when trying to click back requires several clicks.
13 tests currently fail after these changes.
need review & advice on how to proceed.

oh cool thanks for working on this! running it locally in firefox i'm not seeing any issues with back behavior, although i can't seem to go forward again
i'm going to play around with it locally and see if i can't figure out what's going on

going to leave a bunch of code level comments, but this looks great. i think the main comment is let's do less prop drilling, i think we can useSearchParams in components rather than passing searchParams, and we should try also not drilling setState anymore.
i think this will help clean up the application flow, components just setQueryParams, and these waterfall from the top down to state


fix(deps): update terraform github.com/terraform-ibm-modules/terraform-ibm-key-protect to v2.2.0

This PR contains the following updates:

Package
Type
Update
Change

github.com/terraform-ibm-modules/terraform-ibm-key-protect
module
minor
v2.0.0 -> v2.2.0

Release Notes

terraform-ibm-modules/terraform-ibm-key-protect
v2.2.0
Compare Source
Features (#344) (c944fcd)

added the ability to configure rotation policy using new vars rotation_enabled (default value of true), and rotation_interval_month (default value of 1)
added the ability to enable / disable a dual authorization policy on the instance using new var dual_auth_delete_enabled (default value of false). Note: Once the dual authorization policy is set on the instance, it cannot be reverted. An instance with dual authorization policy enabled cannot be destroyed using Terraform.
added the ability to configure key create import access policy settings using vars key_create_import_access_enabled (default value of true) and key_create_import_access_settings (If no value is passed it takes all of the objects default values. If only one is passed then it only overrides that one value so consumers do not have to pass the entire map in order to supply overrides they want to use).

v2.1.0
Compare Source
Features

add ability to attach access tags to resources (#304) (e9d25b3)

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.

Created https://github.com/terraform-ibm-modules/terraform-ibm-key-protect-all-inclusive/pull/333 to consume key-protect v2.2.0

/run pipeline

/run pipeline


Add order comment indicator in order overview

1. Why is this change necessary?
Currently it is not easy for the merchant to quickly see if the order has a comment.
2. What does this change do, exactly?
This PR adds an indicator in the order overview so the merchant can quickly see if an order has a comment

3. Describe each step to reproduce the issue or behaviour.
N/A
4. Please link to the relevant issues (if any).
N/A
5. Checklist

[x] I have rebased my changes to remove merge conflicts
[ ] I have written tests and verified that they fail without my change
[x] I have created a changelog file with all necessary information about my changes
[x] I have written or adjusted the documentation according to my changes
[x] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

Hello,
thank you for creating this pull request.
I have opened an issue on our Issue Tracker for you. See the issue link: https://issues.shopware.com/issues/NEXT-24148
Please use this issue to track the state of your pull request.

Thank you for your contribution! 👍 💙
We've merged your PR into the trunk branch.