remove length limit for start/stop commands

I'm not sure why the size limit was there, removing the limit made it possible to use longer start commands successfully.

hey @erkki, thanks for the PR. this topic comes up on occasion (see #43 for background), but so far i've not found a compelling reason to change this restriction. unless you've new information that would change that, i'm afraid i'm still 👎 on this change.

aww, thanks for the explanation, should've used search myself! I still disagree with the call though, maybe once it comes back one time too many, there's a change :)


Contents of XMM registers should be preserved during VM-exit handling

As it is reported in #3, HyperPlatform does not preserve contents of XMM registers when VM-exit occurs. This can corrupt guest's context if a VM-exit handler modifies XMM registers and a guest uses those modified values, and result in unexpected failure in a guest (most likely system crash).
In order to avoid this issue, the VMM should probably save contents of XMM registers on VM-exit, and restore them before VM-enter so that modification of those registers by the VMM does not leak to guest's state.

As of now, no update is planed since any issue due to modified XMM registers has not seen yet. If you faced this issue, please flag it up so that this bug can be prioritized.

already fixed with 7bcb1a7


Unable to Add Files to Chat Context

Which API Provider are you using?
Anthropic
Which Model are you using?
Claude Sonnet
What happened?
I’m on MacOS, cline seems to be able to read the folders in my project but unable to read the files, this leads to it having to ask my permission to read the files whenever I start a task with cline. I’ve added all the folders to my trusted files, triple checked my permissions settings across the files and nothing seems to fix it. Interestingly another codebase I’ve worked on seems to work fine. Is cline caching some file permissions or something and causing an issue itself? Is there anyway I can change clines permissions or solve this some other way. I’ve tried debugging everything and there’s no difference between the codebase in terms of permissions and workspace settings it just flat out seems to be unable to view the files without asking for my permission to view them. I also changed that settings where it doesn’t have to ask my permission to read the files but that still doesn’t solve the fact I can’t add them to my context in the chat window, only folders. Any help here would be much appreciated from the team or otherwise. I’ve similiar issues with file permissions before on MacOS but fixed that a while back and haven’t faced any issues recently until this.
Steps to reproduce

Load project
Try @ files
Only shows folders and root level files, no files within root level folders

Relevant API REQUEST output
No response
Additional context
I also use cursor for this project but closed all other workspaces and only had cline open in VSCode.

I have the same issue. Also, at some point I made a copy of a file, then renamed correctly.. Much later, cline was still looking for the original copied file before it was renamed.

I haven't experienced your specific problem but I found that if you have files open in the Editor panel you don't need to explicitly refer to them using '@' This saves a lot of time as its sometimes difficult to select the exact file path. Does it help?

Same issue

Might be related or a completely different issue. When selecting files with @, it doesn't see anything in folders where the name contains paranthesis. E.g. src/(authenticated)/.


[WISH] non-atomic version, documentation of intrusive_weak_ptr

Hello,
it's a nice template you created but I have trouble understanding a few things.
a) the implementation basically requires atomic variables. However, there are usecases where one wants intrusive_ptr but not including atomic operations, for example because they pull in extra library dependencies on some embedded architectures or because they make the operation slower (memory barriers) although in the specific design the MT-safety might be not required.
Would it be possible to add an inline variant (controlled by traits or prepr. defines) that work without atomic variables?
b) I don't see the point of intrusive_weak_ptr. Maybe it's just missing documentation?
From my point of view, intrusive_weak_ptr does not make any sense. I mean, the basic idea of normal weak_ptr is to a) avoid ref-counted dependency and there allow the object to be deleted and b) giving the user of weak_ptr means to reliable detect whether object was deleted and atomically create a reliable shared_ptr from it.
I cannot see how your current implementation would satisfy such demands, i.e. the point of __lock is to enforce/guarantee... what exactly?

Hi,

a) the implementation basically requires atomic variables. However, there are usecases where one wants intrusive_ptr but not including atomic operations, for example because they pull in extra library dependencies on some embedded architectures or because they make the operation slower (memory barriers) although in the specific design the MT-safety might be not required.

Good question. I am aware of that sometimes people don't want reference counts with atomicity just because there could be no more than one thread - for example when writing single-threaded programs. Basically, in order to make reference count increment/decrement operations overrideable I suggest use of [argument dependent lookup[(http://en.cppreference.com/w/cpp/language/adl) (you know it, no?). The default version is used only in absence of user-provided ones - just like std::swap.

b) I don't see the point of intrusive_weak_ptr. Maybe it's just missing documentation?

intrusive_weak_ptr is to intrusive_ptr what weak_ptr is to shared_ptr. It is as simple as that. Saying you have an object of type A holding an intrusive_ptr to an object B, which in turn holds an intrusive_ptr to A, you end up with a circular dependency. intrusive_weak_ptr is there to break such dependencies. intrusive_ptr asserts ownership, and intrusive_weak_ptr disclaims ownership. You .lock() an intrusive_weak_ptr to get an intrusive_ptr which is potentially null (a null intrusive_ptr is always empty. This is not the case for shared_ptr, whose null-ness and emptiness are orthogonal).
Trivia
It should be noted that, when constructing a weak_ptr from a shared_ptr, the control block containing reference counters (there are typically two reference counters, the strong reference count is what will be returned by use_count() and the weak reference count is used to constrain the lifetime of the control block itself)  will have already be allocated by either make_shared() or the constructor of the shared_ptr, so the entire construction merely increments the weak reference count hence throws no exceptions. This is not the case for intrusive_weak_ptr, which allocates the control block in its constructor. Despite this flaw, copying an intrusive_ptr increments the strong reference count, in contrast to copying a shared_ptr which increments both. Another benefit of intrusive_ptr is that, if you don't use intrusive_weak_ptr, you don't pay for the overheads brought by the weak reference count, which is not possible in case of shared_ptr.

There are some considerations allowing incrementing/decrementing reference counts using user-defined manipulators:
namespace my {

class base : public std::intrusive_base {
protected:
    virtual ~base();
};
class derived : private base {
public:
    ~derived() override;
};

// Returns `true` if the reference count was not zero and has been incremented.
// Returns `false` if the reference count was zero.
bool try_add_ref(base &b){
    return b.std::intrusive_base::try_add_ref();
}
// The behavior is undefined if the reference count was zero.
void add_ref(base &b){
    b.std::intrusive_base::add_ref();
}
// Decrements the reference count.
// Returns `true` if the reference count has been decremented to zero.
// Returns `false` otherwise.
// The behavior is undefined if the reference count was zero.
bool drop_ref(base &b){
    return p.std::intrusive_base::drop_ref();
}

} // namespace my

void foo(){
    intrusive_ptr<my::derived> pd = std::make_intrusive<my::derived>();
    intrusive_ptr<my::base> pb = pd; // Okay.
    pb.reset(); // Maybe this can use ADL to decrement the reference count of
                // an object of type `my::base`...
    pd.reset(); // ... but how about this? `my::base` is PRIVATE!
}

Another solution to a) would be using virtual add_ref(), try_add_ref() and drop_ref() functions. Virtual functions are nothing better than atomic counters essentially .

Well, thanks for commenting. Indeed, I have not looked deep enough and I overlooked the part about weak_view. So this basically means that you recreated the conditions for weak_ptr by storing the control block optionally in a separate object allocated on stack.
Not sure I like this decision - for a generic solution it's probably ok but the user should be aware of the additional costs of this implementation. Because, I said, one usually looks for intrusive_ptr for performance reasons.
Regarding the addition of alternative behavior - yes, virtual calls might be a way to get this. But then again, it shifts costs to runtime which becomes a questionable thing. And in overall, looking at the code size and complexity, I am slightly reluctant to any of the proposals.
So,  thanks for your work! But sorry, I will stay with my own little intrusive pointer implementation for now, which appears more pragmatic for the mentioned usecase.

Well, thanks for commenting. Indeed, I have not looked deep enough and I overlooked the part about weak_view. So this basically means that you recreated the conditions for weak_ptr by storing the control block optionally in a separate object allocated on stack.

It is not 'allocated on stack'. It is dynamic.

Not sure I like this decision - for a generic solution it's probably ok but the user should be aware of the additional costs of this implementation. Because, I said, one usually looks for intrusive_ptr for performance reasons.

Indeed. Elimination of separated allocation of the object and its control block is what people benefit from make_shared. Well, intrusive_ptr attracts people who don't make use of weak semantics.

Regarding the addition of alternative behavior - yes, virtual calls might be a way to get this. But then again, it shifts costs to runtime which becomes a questionable thing. And in overall, looking at the code size and complexity, I am slightly reluctant to any of the proposals.

More than that, if a non-template class has a virtual function (_Impl_intrusive_ptr::_Ref_count_base), we must provide an out-of-line definition of its RTTI, otherwise dynamic_cast'ing across dynamic library boundaries might fail, which prevents this library from being header-only.

So, thanks for your work! But sorry, I will stay with my own little intrusive pointer implementation for now, which appears more pragmatic for the mentioned usecase.

You are welcome. :laughing:

I am closing this issue for now. Please open an new issue for any further discussion.


Help needed in implementing theme spinner

I followed the guide for spinner as mentioned here - https://akveo.github.io/ng2-admin/articles/016-spinner/
However even after following the steps mentioned in the link, I am not able to load the spinner when navigating to chartistJs page - http://localhost:3000/#/pages/charts/chartist-js
First thing which is unclear to me is that where should I register loader, in ngOnInit event or in constructor. (I tried in both but it is not working).
Secondly do I need to import the BaThemeSpinner service as well and then use this._spinner.show() and this._spinner.hide() functions.

What is the expected behavior?
Theme spinner should load while we click on the link to navigate to the page.

Please tell us about your environment:

Angular version: 2.2.3
Browser: [Chrome | Firefox | IE ]

@hem19 , Did you find any solution for the issue?

This is what I did and it is working for me.
Step 1 - Import the spinner
import { BaImageLoaderService, BaThemePreloader, BaThemeSpinner } from '../../../../theme/services';
Step 2 - Modify the constructor for the spinner parameter.
`constructor( private route: ActivatedRoute, private router: Router,
private state: GlobalState, private _spinner: BaThemeSpinner,
private _listService: ListService)
{
console.log( "I am in List component.");
	this._spinner.show();

	this.categories = _listService.categories;

	this._spinner.hide();

	return;
}`

Step 3 - Consume the spinner.
In my case I have combined step 3 in step 2.


Improve on showing past cutoffs

Currently we show all past cutoffs from a hardcoded start date. Ideally, we could:

paginate
use a week picker

@vtjong how far along we are on this? Because if not has been done, we can move it to the UI overhaul

This is the current situation and it's not great

Proposed solution: show most recent 5 elements, and then a date picket to browse the entire history

We want to show the most recent k=5 dates, and then a date picker for the rest

Here are the wireframe of two designs, which one is better? @yoavartzi @joannechen1223
I personally think B is better since it saves more space. A is traditional date picker but in our app, the design like this seems weird since only Tuesdays are clickable. Over 80% of user interface is disabled. It looks weird and not efficient to me.

This is a good point. But, A gives a better temporal orientation, which I think is a big plus. I would go for A. Thanks!


Add column name to the config instead of hard-coding it into the package src

I think that for something that is not included in the package itself and might be different for each people that uses this package should be easily customized via config. For example in my case, I do not have name column in my users table, i have instead a username column.
Sure it can be changed easily in the source but it would get overwritten each time the package got updated.

Sorry, I'm not sure what you mean. For $thread->participantsString() you can assign your own columns if name doesn't work for you. So something like this: $thread->participantsString($userId, ['username']) or $thread->participantsString($userId, ['first_name', 'last_name']).
Does that help?

Yep, that's how I did it too. But then the next time the package got updated, it will be overwritten back to original value. So i think it'll be nicer to add it to config into something like this
<?php
return [
    // Define your application user model
    'user_model' => 'App\User',

    // Database column that defines your users identity
    // Example: 'name', 'username'
    'user_name' => 'name',
];

This would ease up the package installation for people that uses custom users table.
That's just my opinion on this.

What would be overwritten? The use of $thread->participantsString() would be in your controller or views which wouldn't be overwritten if you updated the package.

I think your a bit off on this, Chris is not telling you to edit his package but rather your view file as
Composer will not update your view files, so just update the line with:
{!! $thread->participantsString(Auth::id()) !!}
and make it something like:
{!! $thread->participantsString(Auth::id(), ['username']) !!}
if it was username you had instead of name.
If this still comes with an error go into your cmd/console and write: php artisan cache:clear I had a problem with the cache not updating so clearing it will help.

Ah alright.. i guess I've been looking around the wrong files.. Still quite a newbie here.. Thanks for your time and your great package @cmgmyr , and also @avlastenok for clearing things up. You may close this issue.

No problem at all! Thanks for using the package and I'm glad you like it. If you have any other questions just let me know.


No support for new bare metal (arm64) Apple architecture

There is no support for the new M1 & M2 apple chips. Both the Physics mod and DiscordSRV mods add additional libraries that can only be launched on x64 computers.
Basically only supporting Windows, old MacOS, and Intel based Linux Distro's.
There is no workaround for this (trust me i've looked) so I think they are client mods and can be removed. it would be nice to have separate versions made and tested on the newer apple chips.

Can you try if the recent version still has this issue?


submitting error for FHO State Change Object Detection

Hello, we have submitted the results for evaluation, but there are some errors.
Traceback (most recent call last):
  File "/code/scripts/workers/submission_worker.py", line 491, in run_submission
    submission_metadata=submission_serializer.data,
  File "/tmp/tmp731rinei/compute/challenge_data/challenge_1632/main.py", line 91, in evaluate
    pred_coco = get_coco_detections(predictions, framesubpath2id)
  File "/tmp/tmp731rinei/compute/challenge_data/challenge_1632/main.py", line 29, in get_coco_detections
    x = box["x"]
TypeError: string indices must be integers

Also, we have a question: can each image of the prediction result only contain one box prediction?
Could you give me some help?

cc @fuqichen1998


Add KOP Proxy to Luna Streaming Helm Chart

This is a feature branch for adding support for KOP Proxy in the proxy pod.
Changes:

add 'proxy.kafkaOnPulsarEnabled' to enable KOP on the Proxy
configure automatically kafkaAdvertisedListeners on the Broker pods

The KOP proxy works well without Auth and TLS with this change.
I have to add support for those features, then we are good to go

Do you want to add to broker statefulset too?
As far as I can see there is nothing to be changed in the broker statefulset.

But I may be wrong.
I don't know the helm chart very well

My main concern about a short cut is that once it is released, we need to maintain backwards compatibility, and that can make helm charts harder to read and harder to develop.

I agree, it is better to leave stuff like "proxyMessagingProtocols" in the values.yaml file
no need to auto wire those properties


Feedback and errors

I'm trying to build a similar app to the Winforms on netcore3.0 example.
Unfortunately I can't get it to work following the steps in https://github.com/marb2000/XamlIslands/blob/master/1903_Samples/WnForms_and_WPF_Readme.md, even though this seems to be the most exhaustive explanation I can find.
Setup:

Visual Studio 16.3 Preview 1
.net core 3.0 preview 7

What am I trying:

Winforms project written in .net core that sits in Systray
UWP class library containing user controls, theme resources and assets

user control class library references the Microsoft.Toolkit.Uwp.UI.Animations nuget package

What did I miss from the explanation:

Platforms + RuntimeIdentifiers need to be set to x86/x64 (VS also gives a warning about the VCForwarders if you do not do that). VS template for Winforms on netcore3.0 does not set them by default and then VS thinks you want to use AnyCpu.

    <Platforms>x64;x86</Platforms>
    <RuntimeIdentifiers>win-x64;win-x86</RuntimeIdentifiers>

If I do not add this, I get a warning:
Because your app is being built as AnyCPU no Microsoft.VCRTForwarders.140 DLLs were copied to your ouput folder. Microsoft.VCRTForwarders.140 only supports x86 or x64 applications due to a C++ Runtime dependency. Please change your app project architecture to x86 or x64 in the Configuration Manager.

After adding this, the app does not start anymore on x86:

The target process exited without raising a CoreCLR started event. Ensure that the target process is configured to use .NET Core. This may be expected if the target process did not run on .NET Core.

On x64, the app raises an exception:

System.IO.FileNotFoundException: 'Could not load file or assembly 'Microsoft.Toolkit.Uwp.UI.Animations, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null'.

Are the `Microsoft.Toolkit.Uwp.UI.Animations` supported in xaml islands? Should I include them in a special way?

x64:

I reported the issue with Microsoft.Toolkit.Uwp.UI.Animations as https://github.com/windows-toolkit/Microsoft.Toolkit.Win32/issues/159.
on x64 it works if I remove the reference to Microsoft.Toolkit.Uwp.UI.Animations but that breaks my animation UX

x86:

The issue on x86 is not solved by removing  Microsoft.Toolkit.Uwp.UI.Animations


Set SWIFT_VERSION to 5.0

Fixing Xcode's "Swift Conversion Available" suggestion...
After installing CodableFirebase 0.2.1 from Cocoapods, Xcode displays a warning saying that "Conversion to Swift 5 is available" for the CodableFirebase.framework.

I'm still facing this issue, I have  CodableFirebase (0.2.1)
@Wiingaard @alickbass


Create sign-in/sign-up page and user page

Pull Request
Description
The purpose of this PR is for us to review and discuss the design of these pages and it is not meant to be merged yet but do give suggestions on the layout/flow of the components. (First draft)
All components have no working backend.

Created Sign-in/Sign-up components
Created email verification page
Created profile update page

Related Issue(s)
#11
Changes Made
Added login, verify and profile folders to /frontend/components/ to contain the components created.
Login:

EyeHideLogo.tsx
EyeShowLogo.tsx
GithubLogo.tsx
GoogleLogo.tsx
Login.tsx
SubmitLogo.tsx

Profle:

ChangePassword.tsx
Information.tsx
Profile.tsx
ProfileCard.tsx

Verify:

Verify.tsx

Others:

user.d.tsx (/types)
loading.tsx (in /(pages)/ for verify, profile and login)
error.tsx (in /(pages)/ for verify, profile and login)

Screenshots (if applicable)
Sign-in:

Loading:

Password visibility toggle:

Password not match:

Sign-Up:

Verify:

Profile:

Change Password:

Clickable display pic:

Old and new passwords cannot be the same:

Checklist

[] I have checked that the changes included in the PR are intended to merge to master or any destination branch.
[] I have verified that the new changes do not break any existing functionalities, unless the new changes are intended and have approved by the team.
[] I will take care of the merging and delete the side-branch after the PR is merged.

Additional Notes/References
Please give any ideas below!

I have some feedback/ considerations on the UI:

White text on the light-blue background is a bit hard to read, you might want to consider using black text instead.
I think in general, users would expect the buttons for the happy path to be on the right (e.g in Profile, the "Submit" button will be on the right instead of the "Change password" link), or at least that is my own opinion 😅
Can consider using a different style for error indication as the red underline feels like a typo...
Can consider using a different colour for hyperlinks for a more styled look. It would also be a good idea for us to standardise the colour of hyperlinks throughout the website, so maybe you can choose one and the rest of us will stick to it 😄
(Profile) How will the component react when the "Bio" input is too long?

Other than these, most of it looks good to me! Thank you for making the pages! 😄

feedback from my side:
UI:

Agree with what Le Yi said about the text color and background color and that the happy path should be on the right hand side

Code:

Instead of checking

 {password != checkPassword ? (<div> Passwords do not match </div>) : (<></>)}

,
would it be better to use set a flag and use useEffect hook to update the flag?
Eg
const [isEqual, setIsEqual] = useState(false);

useEffect(() => {
    if (password === checkPassword ) {
      setIsEqual(true);
    } else {
      setIsEqual(false);
    }
  }, [password, checkPassword ]);

...

{isEqual ? (<div> Passwords do not match </div>) : (<></>)}

I think doing this is trivial in this case but in the future when there is a more complicated condition to check for, handling the condition inside useEffect will make the code neater.
Files:

Just to clarify for the files loading.tsx and error.tsx, why are multiple of the same file created? Especially loading.tsx, shouldn't it be a loading component that is reusable by all pages (so should be extracted out to /components)

Anyway, everything else looks very good! Thanks for the hard work 👍👍

If multiple loading.tsx file renders the same UI elements. We can put this loading.tsx in their parent directory. For example, in this case, you are displaying the spinner to display the loading state, you can actually put this file directly under the /(pages) directory.

Just to clarify for the files loading.tsx and error.tsx, why are multiple of the same file created? Especially loading.tsx, shouldn't it be a loading component that is reusable by all pages (so should be extracted out to /components)

For @xingjie99 , I thought this loading.tsx and error.tsx are the file name required by NextJS as it automatically set up the routing for displaying all these elements, see this docs. So if I understand correctly, they can't be extracted out into components? Please correct me if I am wrong.

If multiple loading.tsx file renders the same UI elements. We can put this loading.tsx in their parent directory. For example, in this case, you are displaying the spinner to display the loading state, you can actually put this file directly under the /(pages) directory.

Just to clarify for the files loading.tsx and error.tsx, why are multiple of the same file created? Especially loading.tsx, shouldn't it be a loading component that is reusable by all pages (so should be extracted out to /components)

For @xingjie99 , I thought this loading.tsx and error.tsx are the file name required by NextJS as it automatically set up the routing for displaying all these elements, see this docs. So if I understand correctly, they can't be extracted out into components? Please correct me if I am wrong.

@tryyang2001 Oh.. I am not familiar with that perhaps if that is the case then can ignore my previous comment.

How will the component react when the "Bio" input is too long?

@tlyi Fyi I believe this should be handled by the backend. So as long as we only store the "bio" with appropriate length (I set the limit as 255 characters now), the frontend will never need to worry that they have a bio that is super long.

How will the component react when the "Bio" input is too long?

@tlyi Fyi I believe this should be handled by the backend. So as long as we only store the "bio" with appropriate length (I set the limit as 255 characters now), the frontend will never need to worry that they have a bio that is super long.

@tryyang2001 Oh, I meant to ask what would happen if it is longer than the length of the field in the component! Was wondering if the field would expand downwards or would it just scroll along the field (which might be quite inconvenient for the user).

@tlyi 's comments:

White text on the light-blue background is a bit hard to read, you might want to consider using black text instead.
I think in general, users would expect the buttons for the happy path to be on the right (e.g in Profile, the "Submit" button will be on the right instead of the "Change password" link), or at least that is my own opinion 😅

Changed all button colors to blue to match Junsheng's implementation, moved buttons to the right (Example):

Can consider using a different style for error indication as the red underline feels like a typo...

Ok changed to:

Can consider using a different colour for hyperlinks for a more styled look. It would also be a good idea for us to standardise the colour of hyperlinks throughout the website, so maybe you can choose one and the rest of us will stick to it 😄

Im ok with this as its functional and looks like a link for people to press. "just move on" - cactus

(Profile) How will the component react when the "Bio" input is too long?

I just added in a limit for 50 chars, hopefully that works for u. I will sort more of the validation things (like email etc) once connected to the backend cos some coordination is required between db and here.

@xingjie99 :

I think doing this is trivial in this case but in the future when there is a more complicated condition to check for, handling the condition inside useEffect will make the code neater.

Oh yeah I forgot about it.. thanks! Just move all the conditions already.
thanks for the review everyone

updated the PR description to match the changes made


Add support for custom HTML email templates

Please add support for custom HTML email templates, e.g. including company logo, social media links etc. We already have standard HTML emails to ensure consistent branding across customer-facing services but currently it does not appear possible to use them for Helpy-generated emails.

Thanks for making these suggestions!  We'll add them into the backlog and prioritize them for dev, unless you want to submit a PR.

Hi @samtuke @scott I don't mind taking a look at this. Could you provide more details?

@hin101 For me, simply allowing the saving of HTML templates, and automatic insertion of messages into these templates when they are sent by Helpy, would be sufficient. If the template can be previewed / rendered in-browser, that would be even better. Multiple categories of template may be required for different kinds of emails, e.g. template for emails to admins vs emails to customers. A category for priority / VIP customers would be useful. Automatic inlining of CSS saved within HTML inside

There is a very nice and easy to user templating language for e-mail. It called mjml  there is even a ruby gem that makes the work with rails even easier.
It would be easy to add upload form for various templates in the the admin section so the user can could upload his mjml files. Alternatively a single HTML file that contains everything.


fix: middleware, status was always 'loading', if no session was set

Closes #365 .
Checklist:

[x] issue number linked above after pound (#)
[x] manually checked my feature (playground)
[x] testing not applicable (playground)
[x] screenshot not applicable

Great catch!
Could you briefly explain why this resolves #365, just so that we have the connection between this fix abd the issue? (:
Thanks already and have a sunny sunday 🌞

@BracketJohn I tried to reproduce the error, add the login page and middleware to the playground and notice, that I can't trigger the middleware.
I found the loading bug and after this everything works fine.
So I can't reproduce the error from #365

So I can't reproduce the error from https://github.com/sidebase/nuxt-auth/issues/365

just to be clear: You mean with the changes of this PR the problem of #365 is gone? Makes sense!

Thanks @Danielwinkelmann 🤝

@Danielwinkelmann
Thanks, You made my day.


crictl code and args optimization

What type of PR is this?
/kind feature

What this PR does / why we need it:
crictl

code optimization

Unified crictl cli.Context variable names to provide code readability

args optimization

Control the input args of crictl, and provide more readable returns to users in some args output errors.

Which issue(s) this PR fixes:
None

Special notes for your reviewer:
Does this PR introduce a user-facing change?

NONE

/retest


Move to offset-based joins

Description
This PR is influenced from discussions in #111 where we found the chunk_columns parameter can be cause for unexpected issues when attempting to join datasets which share very few of the same numeric identifying columns (by name). My hope is that the change reduces the complexity of the code while allowing similar functionality by following a similar convention to initial data extraction into Parquet (performed within _source_chunk_to_parquet).
What is the nature of your change?

[x] Bug fix (fixes an issue).
[ ] Enhancement (adds functionality).
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).
[ ] This change requires a documentation update.

Checklist
Please ensure that all boxes are checked before indicating that a pull request is ready for review.

[x] I have read the CONTRIBUTING.md guidelines.
[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] New and existing unit tests pass locally with my changes.
[x] I have added tests that prove my fix is effective or that my feature works.
[x] I have deleted all non-relevant text in this pull request template.

Thank you @gwaybio and @falquaddoomi for the reviews! Merging this in.


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-main" workflow

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

Comparison is base (2d7183f) 95.69% compared to head (9b7a831) 95.69%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #903   +/-   ##
=======================================
  Coverage   95.69%   95.69%
=======================================
  Files           1        1
  Lines         395      395
  Branches       53       53
=======================================
  Hits          378      378
  Misses         17       17

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


Can't run Protractor 2.0.0 tests on Ubuntu setup

Hi @juliemr, I'm running to an issue running my Protractor tests on our build machine on CircleCI.
Versions are as follows:
protractor v2.0.0
grunt-protractor-runner v2.0.0
I then run the following:
$ ./node_modules/protractor/bin/webdriver-manager update --standalone
Updating selenium standalone
downloading https://selenium-release.storage.googleapis.com/2.45/selenium-server-standalone-2.45.0.jar...
Updating chromedriver
downloading https://chromedriver.storage.googleapis.com/2.14/chromedriver_mac32.zip...
chromedriver_2.14.zip downloaded to /Users/andrewboni/code/Iterable/node_modules/protractor/selenium/chromedriver_2.14.zip
selenium-server-standalone-2.45.0.jar downloaded to /Users/andrewboni/code/Iterable/node_modules/protractor/selenium/selenium-server-standalone-2.45.0.jar

...to get chromedriver v2.14 and selenium-server-standalone-2.45.0.jar
Running tests on OSX Yosemite runs as expected:
$ grunt protractor:navbar
Running "protractor:navbar" (protractor) task
Using ChromeDriver directly...
[launcher] Running 1 instances of WebDriver
...

Finished in 21.805 seconds
3 tests, 3 assertions, 0 failures

[launcher] 0 instance(s) of WebDriver still running
[launcher] chrome #1 passed

Done, without errors.

However, running the same setup on Ubuntu 12.04 64bit runs into issues:
grunt protractor:navbar
Running "protractor:navbar" (protractor) task
[launcher] Process exited with error code 1

/home/ubuntu/Iterable/node_modules/protractor/node_modules/q/q.js:126
                    throw e;
                          ^
Error: Cannot find module 'tmp'
  at Function.Module._resolveFilename (module.js:338:15)
  at Function.Module._load (module.js:280:25)
  at Module.require (module.js:364:17)
  at require (module.js:380:17)
  at Object.<anonymous> (/home/ubuntu/Iterable/node_modules/protractor/node_modules/selenium-webdriver/io/index.js:19:11)
  at Module._compile (module.js:456:26)
  at Object.Module._extensions..js (module.js:474:10)
  at Module.load (/home/ubuntu/Iterable/node_modules/coffee-script/lib/coffee-script/register.js:45:36)
  at Function.Module._load (module.js:312:12)
  at Module.require (module.js:364:17)
  at require (module.js:380:17)
  at Object.<anonymous> (/home/ubuntu/Iterable/node_modules/protractor/node_modules/selenium-webdriver/chrome.js:120:10)
  at Module._compile (module.js:456:26)
  at Object.Module._extensions..js (module.js:474:10)
  at Module.load (/home/ubuntu/Iterable/node_modules/coffee-script/lib/coffee-script/register.js:45:36)
  at Function.Module._load (module.js:312:12)
  at Module.require (module.js:364:17)
  at require (module.js:380:17)
  at Object.<anonymous> (/home/ubuntu/Iterable/node_modules/protractor/lib/driverProviders/direct.js:8:14)
  at Module._compile (module.js:456:26)
  at Object.Module._extensions..js (module.js:474:10)
  at Module.load (/home/ubuntu/Iterable/node_modules/coffee-script/lib/coffee-script/register.js:45:36)
  at Function.Module._load (module.js:312:12)
  at Module.require (module.js:364:17)
  at require (module.js:380:17)
  at [object Object].Runner.loadDriverProvider_ (/home/ubuntu/Iterable/node_modules/protractor/lib/runner.js:107:26)
  at new Runner (/home/ubuntu/Iterable/node_modules/protractor/lib/runner.js:52:8)
  at [object Object].TaskRunner.run (/home/ubuntu/Iterable/node_modules/protractor/lib/taskRunner.js:116:18)
  at createNextTaskRunner (/home/ubuntu/Iterable/node_modules/protractor/lib/launcher.js:220:20)
  at /home/ubuntu/Iterable/node_modules/protractor/lib/launcher.js:243:7
  at _fulfilled (/home/ubuntu/Iterable/node_modules/protractor/node_modules/q/q.js:797:54)
  at self.promiseDispatch.done (/home/ubuntu/Iterable/node_modules/protractor/node_modules/q/q.js:826:30)
  at Promise.promise.promiseDispatch (/home/ubuntu/Iterable/node_modules/protractor/node_modules/q/q.js:759:13)
  at /home/ubuntu/Iterable/node_modules/protractor/node_modules/q/q.js:573:44
  at flush (/home/ubuntu/Iterable/node_modules/protractor/node_modules/q/q.js:108:17)
  at process._tickCallback (node.js:419:13)
  at Function.Module.runMain (module.js:499:11)
  at startup (node.js:119:16)
  at node.js:906:3

Googling the issue leads nowhere. Any thoughts/ideas? Thanks!

Here's the line throwing the error:
https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/io/index.js#L19
Sounds like npm install isn't working properly. Can you check and see what output npm ls gives you?

Thanks Julie- that helped, I cleaned up some the the dependencies and did an npm install tmp, which fixed that error.
Now I get the following:
      Warning: Running "protractor:navbar" (protractor) task
    Using ChromeDriver directly...
    [launcher] Running 1 instances of WebDriver
  ERROR - Unable to start a WebDriver session.

    /home/ubuntu/Iterable/node_modules/protractor/node_modules/selenium-webdriver/http/util.js:87
              Error('Timed out waiting for the WebDriver server at ' + url));
              ^
    Error: Timed out waiting for the WebDriver server at http://<IP_ADDRESS>:38116/
        at Error (<anonymous>)
        at onResponse (/home/ubuntu/Iterable/node_modules/protractor/node_modules/selenium-webdriver/http/util.js:87:11)
        at /home/ubuntu/Iterable/node_modules/protractor/node_modules/selenium-webdriver/http/util.js:42:21
        at /home/ubuntu/Iterable/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/http/http.js:123:5
        at ClientRequest.<anonymous> (/home/ubuntu/Iterable/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:145:7)
        at ClientRequest.emit (events.js:95:17)
        at Socket.socketErrorListener (http.js:1551:9)
        at Socket.emit (events.js:95:17)
        at net.js:440:14
        at process._tickCallback (node.js:419:13)
    From: Task: WebDriver.createSession()
        at Function.webdriver.WebDriver.acquireSession_ (/home/ubuntu/Iterable/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:155:22)
        at Function.webdriver.WebDriver.createSession (/home/ubuntu/Iterable/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:129:30)
        at new Driver (/home/ubuntu/Iterable/node_modules/protractor/node_modules/selenium-webdriver/chrome.js:791:36)
        at Object.createDriver (/home/ubuntu/Iterable/node_modules/protractor/node_modules/selenium-webdriver/chrome.js:767:10)
        at [object Object].DirectDriverProvider.getNewDriver (/home/ubuntu/Iterable/node_modules/protractor/lib/driverProviders/direct.js:68:23)
        at [object Object].Runner.createBrowser (/home/ubuntu/Iterable/node_modules/protractor/lib/runner.js:180:37)
        at /home/ubuntu/Iterable/node_modules/protractor/lib/runner.js:257:21
        at _fulfilled (/home/ubuntu/Iterable/node_modules/protractor/node_modules/q/q.js:797:54)
        at self.promiseDispatch.done (/home/ubuntu/Iterable/node_modules/protractor/node_modules/q/q.js:826:30)
        at Promise.promise.promiseDispatch (/home/ubuntu/Iterable/node_modules/protractor/node_modules/q/q.js:759:13)
        at /home/ubuntu/Iterable/node_modules/protractor/node_modules/q/q.js:573:44
        at flush (/home/ubuntu/Iterable/node_modules/protractor/node_modules/q/q.js:108:17)
        at process._tickCallback (node.js:419:13)
        at Function.Module.runMain (module.js:499:11)
        at startup (node.js:119:16)
        at node.js:906:3
    [launcher] Process exited with error code 1
    >>
    Warning: Tests failed, protractor exited with code: 1 Use --force to continue.

    Aborted due to warnings.

Any thoughts? Thanks!

Saw this thread https://github.com/angular/protractor/issues/656
But it appears that my binaries are OK:
ls node_modules/protractor/selenium
total 48M
-rw-r--r--  1 user staff  34M Apr  2 16:22 selenium-server-standalone-2.45.0.jar
-rwxr-xr-x  1 user staff  11M Apr  2 16:22 chromedriver
-rw-r--r--  1 user staff 3.4M Apr  2 16:22 chromedriver_2.14.zip

My protractorConf.js file as well:
(function() {
  exports.config = {
    baseUrl: 'http://localhost:9000',
    rootElement: 'div',
    directConnect: true,
    capabilities: {
      browserName: 'chrome',
      elementScrollBehavior: 1
    }
  };
}).call(this);

In my previous stacktrace, you can see the error message was:
Error: Timed out waiting for the WebDriver server at http://<IP_ADDRESS>:38116/

Running it again yields:
Error: Timed out waiting for the WebDriver server at http://<IP_ADDRESS>:55814/

Note the different ports. Is this an issue? I also specified seleniumAddress: 'http://localhost:4444/wd/hub' in the config, but I'm not sure if it's respecting that.

The config you posted does not seem to have a seleniumAddress. You're correct that it doesn't seem to be using that - you should turn of directConnect and only use seleniumAddress.
I'm going to close this issue since it looks like it's not a general problem with Protractor, but a specific setup question. Please continue discussion on closed issue or, preferably, move to stack overflow, which is better suited for support-style questions. Thanks!

So turning off directConnect means I have to run selenium-standalone server for firefox?
I am facing the above issue with directconnect ON . Also if I turn it off  and set seleniumAddress it gives me new error:
callback(new Error(message));
^
Error: ECONNREFUSED connect ECONNREFUSED
at ClientRequest. (/home/vagrant/experiments/node_modules/protractor/node_modules/selenium-webdriver/http/index.js:145:16)
at ClientRequest.emit (events.js:107:17)

@andrewboni
Did you finally get a solution to your problem using DirectConnect: true?

@nishakchaudhari yes, I ended up getting it to work with directConnect: true
Another issue for me was that I was using an incorrect binary on my CI machine. What I needed to do on CI was:

rm -rf node_modules/protractor/selenium # Remove old selenium if exists
./node_modules/protractor/bin/webdriver-manager update # Update to latest selenium & correct Linux binary

FWIW, I'm having this same issue, when running Protractor 3.3.0 on Ubuntu. I tried chromeOnly too, but same problem. directConnect: true does work, but then jasmine custom reporting stops working... turtles all the way down.


Updating the Author value on drawings throws errors

Attached is the error being thrown when MLT tries to update the author value of the drawings on a scene:

This happens because d._id is undefined. It should either be d.id or d.data._id.

Steps to replicate:

Create a scene with MLT drawings in it.
Export the scene to a module compendium.
Create a new world (so that the GM userID changes).
Import the scene from the module compendium. When it first loads, it will throw these errors.

Thanks!


Inconsistency document about platform independent on supported type

In the document here it said
CGFloat properties are discouraged, as the type is not platform independent.
What about NSInteger though?
Is this type also discouraged? because if I remember correctly NSInteger is also platform dependent.
Thanks.

Hi @sainttail, usage of NSInteger is be fine, since Realm only has a single representation for all integer widths, whereas it uses separate representations for different floating point widths.

In rarer cases using NSInteger may still be a problem. For instance, it can a problem if your Realm file is shared / can be moved between applications that run on different architectures, since an NSInteger on a 32-bit platform cannot represent all of the values of NSInteger on a 64-bit platform. If that's something your app may need to worry about then you'll want to use a fixed-size integer type rather than a type whose range may differ between architectures.

If I understand correctly, using NSInteger will always produce the same schema on multiple platforms (since Realm only has a single integer type), but if the Realm file is shared between 32-bit and 64-bit platforms truncation may occur. However, using CGFloat might produce different schema on different platforms making the Realm file entirely incompatible between the same application on 32-bit and 64-bit platforms (crashes, not truncation).

That's correct.

@bdash My usage is very simple. Not right that scenario but I just want to know the best practice that should I declare type explicitly like int and long or use NSInteger

Excellent! If the situation @bdash described above doesn't apply to your use case, feel free to choose whichever convention you prefer.


183857624 Update Balance on Home and Sim Screens

I had to move from using StateFlow to a MutableLiveData since the composable doesn't recompose whenever state flow is updated. Not sure if this has anything to do with the nested UI, but it looks like the UI is destroyed and recreated when the user manually navigates to home screen using the home tab option, and doesn't change when the view was in the backstack - someone pressing back button
Finishes #183857624

Has some wierd behaviour
Try see if you find a good solution


Static Generated Queries

My game creates and destroys multiple world (running lots of mini-games in sequence). I've found that for the first World everything works fine, but for subsequent games any static queries will never be called.
Stepping through the generated source it seems as though the query is simply not finding any relevant entities.
Just to be clear, this is with queries generated like this:
[Query]
[None<PendingDestroy>]
private static void MySpecialQuery(in Thing whatever)
{
    // Do stuff
}

Note that it is a static query. Changing this to an instance method seems to fix the problem.

Is this sill a valid problem?
I think that was related to the PR you made a few weeks ago on archs core right?

#55 was merged, but that's only a partial fix.
If multiple worlds and multiple threads are in use then threads running the static query for one world might interfere with threads running the static query for another world by overwriting the cache and invalidating it while it's in use.
This could potentially be fixed by making the _{{queryMethod.MethodName}}_Initialized; and _{{queryMethod.MethodName}}_Query; methods [ThreadStatic]. But I haven't tested that.


localize the datepicker

I try to localize it by regional like in JQuery datepicker, but it doesnt't work, and I can't find the localize or other means in index.js
is there any way to localize the datepicker?

https://docs.angularjs.org/guide/i18n you need to localize your angular app not only the date-picker.

@eralha yes, you are right, I have required the angular-locale js


add badger image and fix font links in html

Added badger image in html
Fixed html so that there's only 1 h1
Added open sans font link in html

@clmntnbrn can you give this a 👍 if you're happy?


Add task.wait_for_status()

This PR extends Task with the following function:
def wait_for_status(self, status=(tasks.TaskStatusEnum.completed),
                        raise_on_status=(tasks.TaskStatusEnum.failed),
                        check_interval_sec=60)

Use case: in a controller, it is handy to do as follows:
cloned_task = Task.clone(...)
cloned_task.connect(...)
cloned_task.enqueue(...)
cloned_task.wait_for_status(TaskStatusEnum.completed)
... # continue after task is finished

Hi @H4dr1en ,
Would it make more sense to have it as part of the automation/TrainsJob ?
At least when we think about controllers, the idea was to create a simple (optimized) interface to clone/enqueue/monitor a job , this was the reason to add the TrainsJob class.
It is also used by the HyperParameterOptimizer that actually implements a kind of complex controller.
It might makes sense to have it on the Task object as well, especially for completeness,
but I suspect that for controllers we should have a simple interface like the TrainsJob.
What do you think?

Would it make more sense to have it as part of the automation/TrainsJob ?

Hoo, very cool! I wasn't aware of this class, awesome! It would be nice to mention it somewhere in allegro.ai/docs.
I agree, it makes more sense that it lives in TrainsJob!

Yes absolutely, I'll make sure we have it in the documentation (probably will be with a section on controllers that we are working on :)
I think that what we will do is to merge the commit, and then have a similar functionality in TrainsJob (I especially like the raise_on_status :+1: )

Very cool, looking forward! Feel free to push any changes btw


fix new leaderboard synced players modal

@mrfinch oh yes, here is the 404 when i click a cq21 user (synced from china) , this 404 is based on user not find since we sync level session only but no user. so i get rid of the user model . this pr is the mirror version of this one (that stupid another solution commit :joy:)


feat: Expose fair_pubdata_price for blocks and batches

What ❔

Exposing fair_pubdata_price in our block & batches API

Why ❔

This is crucial information for projects that need to replay our transactions (for example era_test_node).
Without this, they cannot compute the correct gas costs.

Hmm, It's exposed in en_syncBlock which is a preferred endpoint for re-execution purposes. But it seems it makes sense to add it to zks_getBlockDetails as well as it already returns fair_l2_gas_price, right?

@perekopskiy - good point. The alternative is for me to switch era-test-node to use en_SyncBlock. But yes, as zks_getBlockDetails already returns other gas pricing, it still makes sense for it to return all of it.


Doesn't seem to work / Or I might be doing something wrong

I installed this extension, loaded up a file "test.asp" with the code below.  There is no syntax highlighting at all.
Did I setup something wrong?

If Len(Request("file")) > 0 Then
Set ConnFile = Server.CreateObject("ADODB.Connection")
ConnFile.Open Session("ConnectString_Tables")
Set RSFile = CreateObject("ADODB.Recordset")

sql = "SELECT * FROM table_files WHERE id = '" & Request("file") & "' "

Session("SQL") = sql
RSFile.Open sql, ConnFile, 1, 2

if request("mode") = "delete" then

    If NOT(RSFile.EOF) Then
		response.write "deleting..."
        sql = " DELETE FROM TableViews WHERE File_Id = '" & Request("file") & "'; "
        sql = sql & " DELETE FROM table_files WHERE id = '" & Request("file") & "' "
        Session("SQL") = sql
        ConnFile.Execute sql
    Else
		response.write "Cannot find a record to delete..."
    End If

else
	'download the file ---THIS BRANCH MUST BE THE FIRST THING TO RUN...dont put the headers above this!
	'response.contenttype = RSFile("coding") this method doenst work with this component
	if right(lcase(RSFile("file_name")),3) = "tif" or right(lcase(RSFile("file_name")),4) = "tiff" then
		Response.ContentType = "image/tiff"
	elseif right(lcase(RSFile("file_name")),3) = "pdf" then Response.ContentType = "application/pdf"
	else
		 Response.ContentType = "application/x-msdownload"
	end if
	Response.AddHeader "Content-Disposition", "attachment; filename=" & RSFile("file_name")
	Response.BinaryWrite RSFile("FILE_data")
	response.end
end if 'delete/download

Set RSFile = Nothing
ConnFile.Close
Set ConnFile = Nothing

Response.End

End If
%>

This is strange. I think there is an issue ASP.tmLanguage syntax definition. Unfortunately I took this file from another open source project. Please let me know if you will find better language definition file, and I will update the extension.

Unfortunately I don't know much language files.  Thanks for looking into it.

Take a look to https://github.com/ilich/vscode-classic-asp/issues/4. It may help you.

Thank you, that helped.My next question would be why doesn't it open as an ASP file to begin with?  All my file extensions are .asp
Is that a different setting somewhere?
ThanksJoe
Date: Sun, 15 May 2016 23:26:23 -0700
From<EMAIL_ADDRESS>To<EMAIL_ADDRESS>CC<EMAIL_ADDRESS><EMAIL_ADDRESS>Subject: Re: [ilich/vscode-classic-asp] Doesn't seem to work / Or I might be doing something wrong (#3)
Take a look to #4. It may help you.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub

Finally found a file association setting and added asp files to that, now they highlight automatically when loaded.
Joe


Where to go from here?

Where shall this extension go from here? Meanwhile PHP Markdown has released version 1.8.0, and the current version of HTML Purifier is 4.10.0. So we may consider one of the following:

Update the libraries and keep the rest "as is".
Update the libraries and switch to composer.
Update PHP Markdown and remove HTML Purifier (has it ever been used by anybody?) – that's a breaking change, so it means a 2.0 release.

The update of PHP Markdown would solve #8 .
Regarding the third option: This has also been discussed in #6.

I would vote for option 2). I did used the purifier once on imported content, which was nice.
I would keep all 4 classes.
cc @fhamon

Oh.
I am not a fan of HTML Purifier, simply because it's so big, much bigger than Symphony.
In this case I am not sure if I'd like to care for it. I will have to think about it. Today I spent some time to write the aforementioned very simple extension that does PHP Markdown, and nothing else. I haven't released it to the public, because I wouldn't like to compete with Symphony's Markdown extension. But IMHO the Markdown extension is too big and tries too much.
(I don't like Smarty Pants either, partly related to the fact that typographically correct quotes are different in German, but also because – reading the docs – Smarty Pants creates new, different problems.)

So the option would be to keep 3 classes in Markdown, and create a new one with the purifier, that depends on the first one being installed ? I would live with that... But it needs time which, for now, goes elsewhere (for me). If you want to send PRs and create new repos, I am ok with that !

At the moment I don't know if any work on "chained" text formatters has been already done. I am afraid that this still is a bigger undertaking.
But, honestly, should we really insist on "backwards compatibility forever" here? We no longer demand that for Symphony, so why for this extension?
The Markdown extension must do Markdown (and Markdown Extra, probably). Should it provide Smarty Pants (which only works in English, has side effects, and has nothing to do with Markdown)? Or even HTML purification? We might think that the "universal" answer depends on the possibility to chain text formatters. Or maybe we should just dare to say that Symphony and core extensions keep things simple? For me the solution actually is simple, as posted above — I have created an created an extension that fits my needs (Markdown and Markdown Extra only).
If chained text formatters are not possible (which I suppose), I can not propose any universal solution, unfortunately.
Please feel free to close this issue if you think that it leads to nowhere. (And I am afraid that the latter is the case if we don't dare to break compatibility in order to simplify things.)

I don't know if any work on "chained" text formatters has been already done.

No need to chain them. But "require()" files (link the markdown lib) from the other extension

But, honestly, should we really insist on "backwards compatibility forever" here? We no longer demand that for Symphony, so why for this extension?

I do not !
The thing is, I would like to not loose features. But smaller bundles are great.
PHP Markdown includes normal and extra,  and the other two could live in other repos. you would first need to install the "core markdown" to make the other one works (just because they require files, they do not need to chain)

Oh, I understand your idea. So we might have three new extensions, allowing lots of text formatter combinations:

Extension "PHP Markdown" provides the following text formatters:

PHP Markdown
PHP Markdown Extra

Extension "PHP SmartyPants" provides:

PHP SmartyPants
PHP Markdown + PHP SmartyPants
PHP Markdown + PHP SmartyPants w/ Typographer
PHP Markdown Extra + PHP SmartyPants
PHP Markdown Extra + PHP SmartyPants w/ Typographer

Extension "HTML Purifier" provides:

HTML Purifier
PHP Markdown + HTML Purifier
PHP Markdown + PHP SmartyPants + HTML Purifier
PHP Markdown + PHP SmartyPants w/ Typographer + HTML Purifier
PHP Markdown Extra + HTML Purifier
PHP Markdown Extra + PHP SmartyPants + HTML Purifier
PHP Markdown Extra + PHP SmartyPants w/ Typographer + HTML Purifier

Number 2 + 3 would be supposed to check for other extensions in order to see which text formatters can be provided. So, for example, of you install PHP SmartyPants without having PHP Markdown istalled, you will only see the PHP SmartyPants formatter. Right?
There's even more interesting work that might be added to this idea (as a fourth extension) to provide useful "German SmartyPants".
So, for example, if you install all 4 extensions from this "extension family", you would see the following text formatters (sorted alphabetically):

HTML Purifier
PHP Markdown
PHP Markdown + HTML Purifier
PHP Markdown + PHP SmartyPants
PHP Markdown + PHP SmartyPants (German)
PHP Markdown + PHP SmartyPants (German) + HTML Purifier
PHP Markdown + PHP SmartyPants (German) w/ Typographer
PHP Markdown + PHP SmartyPants (German) w/ Typographer + HTML Purifier
PHP Markdown + PHP SmartyPants + HTML Purifier
PHP Markdown + PHP SmartyPants w/ Typographer
PHP Markdown + PHP SmartyPants w/ Typographer + HTML Purifier
PHP Markdown Extra
PHP Markdown Extra + HTML Purifier
PHP Markdown Extra + PHP SmartyPants
PHP Markdown Extra + PHP SmartyPants (German)
PHP Markdown Extra + PHP SmartyPants (German) + HTML Purifier
PHP Markdown Extra + PHP SmartyPants (German) w/ Typographer
PHP Markdown Extra + PHP SmartyPants (German) w/ Typographer + HTML Purifier
PHP Markdown Extra + PHP SmartyPants + HTML Purifier
PHP Markdown Extra + PHP SmartyPants w/ Typographer
PHP Markdown Extra + PHP SmartyPants w/ Typographer + HTML Purifier
PHP SmartyPants
PHP SmartyPants (German)

Well, that's pretty interesting, conceptually. But here are the downsides, IMHO:

The developer must understand the concept of, well, let's call it a "text formatter extension family".
The text formatter list in the backend may be overwhelming (because it's supposed to provide all possible combinations).
This concept needs a lot of hard-coded "dependency checking" in the extension code.

Honestly, chained text formatters would be a much better solution. And standalone "full-blown" solutions, on the other hand, are much simpler. Experienced Symphony developers can easily create their own private extension(s), providing dedicated text formatter combinations only (instead of an exhautive list like the one above).
And: This would mean a bit of work… I am afraid that currently neither you nor me find the time for this.
So let's keep this issue open for the moment. There's no pressure here.
(I can release my "minimal extension" now or later, as you like. I can as well keep it private, in order to not create confusion.)

you will only see the PHP SmartyPants formatter. Right?

Yes, in an ideal world !

Honestly, chained text formatters would be a much better solution.

For the CMS developer yes, but you would need a UI do create those ?

I can release my "minimal extension" now or later

Yes, please do. Feel free to put it in symphonists org.

For the CMS developer yes, but you would need a UI do create those ?

Yep. Which is complicated.

Yes, please do. Feel free to put it in symphonists org.

For the moment, I will release the minimal "PHP Markdown" as my own extension, which means that I will actually care for it. :-)

Here it is: https://github.com/michael-e/php_markdown

Crowd goes wild ! Wanna keep it under your name ? Want to add it on sym ext ?

Yep. Which is complicated.

Even more than that.

Want to add it on sym ext ?

Oh, I tried, but sym ext wanted write access to my account. :-(
I posted a message about it on Gitter!

Yes, for real!

Looks like it is not me ! It's a problem with our scopes works with the github api:
https://github.com/jollygoodcode/jollygoodcode.github.io/issues/6
https://developer.github.com/apps/building-oauth-apps/scopes-for-oauth-apps/

That's about repos, isn't it? For users, schouldn't it be possible to use the read:user scope?

:D


[BUG]  App wont start. Says: Error: json: cannot unmarshal array into Go value of type main.Config Details: file(D:/a/SydneyQt/SydneyQt/config.go) line(157).

Checks

[x] I confirm that I have searched existing issues and couldn't find a similar bug.
[x] I have read the documentation carefully and it couldn't resolved my problem.

Describe the bug
App wont start. Says: Error: json: cannot unmarshal array into Go value of type main.Config
Details: file(D:/a/SydneyQt/SydneyQt/config.go) line(157).

This could be solved by deleting the config.json file before retrying.


Allow "0." to be typed in to a text widget

Reasons for making this change
Fixes #1355.
Changed some of the number field tests to run both on the default uiSchema and the uiSchema with the input type set to "text".
Checklist

[ ] I'm updating documentation

[ ] I've checked the rendering of the Markdown text I've added

[x] I'm adding or updating code

[ ] I've added and/or updated tests
[ ] I've updated docs if needed

[ ] I'm adding a new feature

[ ] I've updated the playground with an example use of the feature

@edi9999 / @LucianBuzzo can you review when you get a chance?


Removed extends Drag, not compatible with Dart 3 & Flutter 3.10

The CropState extends both State and Drag, but Dart 3 & Flutter 3.10, the class 'Drag' can't be used as a mixin because it's neither a mixin class nor a mixin.

I can confirm that this PR is working, and I strongly advise @lykhonis to merge this PR ASAP, as image_crop is breaking compatibility in many production apps...

please merge this branch, this issue is causing errors in production apps

@lykhonis look this pr please


Feature/tx status

What is this pull request?
This pull request contains features to make possible inform about transaction status.
Why do you implement it? Why do we need this pull request?
We need it for end users or anyone else informing - they did not have any ways to get status of a transaction they sent. Also now we check a blockstore if transaction not found in memory so we can get a status of transaction sent from another nodes.
How to use the features provided in the pull request?
Now iroha-cli after it receives a transaction prints its hash which can be used to retrieve its status:
...
Command is formed. Choose what to do:
1. Add one more command to the transaction (add)
2. Send to Iroha peer (send)
3. Go back and start a new transaction (b)
4. Save as json file (save)
> : 2
Peer address: <IP_ADDRESS>
Peer port: 50051
Congratulation, your transaction was accepted for processing.
Its hash is 18d3c453e0a84739d21f5dc073df04b245cf34eed5c811a3909c91efdefb496f

In the main menu users now have an option to retrieve transaction status:
Choose what to do:
1. New transaction (tx)
2. New query (qry)
3. New transaction status request (st)
> : 3
Choose action:
1. Get status of transaction (get_tx_info)
0. Back (b)
> : 1
Requested tx hash: 18d3c453e0a84739d21f5dc073df04b245cf34eed5c811a3909c91efdefb496f
Tx hash is saved. Choose what to do:
1. Send to Iroha peer (send)
2. Save as json file (save)
0. Back (b)
> : 1
Peer address: <IP_ADDRESS>
Peer port: 50051
**Transaction was successfully committed.**

Details/Features
List of features / major commits

Add possibility to get transaction status in iroha-cli
Handler map from command service extracted into a separate cache entity
Cache can contain a limited maximum amount of items; the oldest items are cleared automatically
Perform a request to blockstore if cache is empty
Add Redis index for transactions

Codecov Report

Merging #654 into develop will decrease coverage by 0.29%.
The diff coverage is 28.57%.

@@            Coverage Diff             @@
##           develop     #654     +/-   ##
==========================================
- Coverage    43.42%   43.12%   -0.3%
==========================================
  Files          297      300      +3
  Lines        12005    12197    +192
  Branches      6597     6745    +148
==========================================
+ Hits          5213     5260     +47
- Misses         721      731     +10
- Partials      6071     6206    +135

Impacted Files
Coverage Δ

irohad/ametsuchi/block_query.hpp
50% <ø> (ø)
:arrow_up:

irohad/ametsuchi/impl/redis_flat_block_query.hpp
0% <ø> (ø)
:arrow_up:

...had/torii/processor/transaction_processor_test.cpp
8.57% <ø> (ø)
:arrow_up:

irohad/torii/command_service.hpp
100% <ø> (ø)
:arrow_up:

...had/torii/processor/transaction_processor_impl.hpp
0% <ø> (ø)
:arrow_up:

test/integration/client_test.cpp
11.29% <0%> (-0.1%)
:arrow_down:

test/module/irohad/torii/torii_queries_test.cpp
10.45% <0%> (-0.04%)
:arrow_down:

irohad/ametsuchi/impl/mutable_storage_impl.cpp
44.82% <0%> (-1.61%)
:arrow_down:

test/module/irohad/torii/torii_service_test.cpp
25.9% <0%> (-1.26%)
:arrow_down:

irohad/ametsuchi/impl/flat_file_block_query.cpp
22.64% <0%> (ø)
:arrow_up:

... and 12 more

Continue to review full report at Codecov.

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

Docs are in the iroha-api, btw: https://hyperledger.github.io/iroha-api/#get-transaction-status


Failure to print resource error message on Windows

Version:
Chef-Client 12.1.0
Environment:
Windows Server 2012 R2
Scenario:
Execute a chef-solo run & view the chef log
Steps to Reproduce:
Add an resource with a forced error, where the cookbooks are in a subdirectory starting with "p" like "C:\Windows\Temp\packer\cookbooks"
Expected Result:
Get the nice display listing the source code of the resource & its values
Actual Result:
C:/opscode/chef/embedded/apps/chef/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb:66: warning: invalid Unicode Property \p
What I think is happening is that the "file" variable in the below line has Windows back-slashes.  Hence when used as a regex direct (without other processing or escaping) parts will be interpreted as special escape codes & so block the desired functionality.  Not sure but would hope there's an easy way in ruby to regex-escape an arbitrary string.
https://github.com/chef/chef/blob/master/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb#L66

My little one-liner recipe that states chocolatey wget also gets this nasty warning from resource_failure_inspector.rb.
I have seen other exceptions on Windows guests that cause the file-path-parser regex in this resource_failure_inspector.rb file to puke. Generally, it does not appear to be savvy about Windows pathname tokens.

That should probably the wrapped in a Regexp.escape


add other computed macros

(this may actually work, pending spec people telling me if i am wrong or babel is wrong)

[X] need to report babel issue (and get the spec to add further clarification)
[x] pending babel fix https://github.com/babel/babel/issues/1277
[x] once the babel fix lands, we will need to update this project to take into account descriptor initializers

npm cache needs to be purged
1.10 is failing, but I believe it was failure before

:shipit:

Released as v0.1.3


PROCESS:  Audience and Personas

Audience and Personas - let's get to agreement!

Find previous work on personas, audiences
Gap analysis
Revisit, iterate on how they're presented
Discuss with stakeholders, refine, come to agreement
Discuss w/ UXD team ways to make sure the personas and audiences are integrated into our work so they're kept front and center


Native ads support

Is your feature request related to a problem? If so, please describe.
No response
What feature or improvement would you like to see?
First of all, nice plugin, it's pretty handy!
It would be awesome to have the possibility to also create Native ads so we can have a better integration in our applications.
As an example, just load a video ad in some part of our app but the user can scroll down to avoid the ad.
Thanks!
Additional context
No response

Hello, for now, native ads will not be implemented for the plugin, it is very complicated to deal with standard Android/iOS objects together with Godot, read more here: #75. Maybe in the future it will be implemented, we need contributors for this.
We have a higher priority in implementing the Open Ads App: #141


Embedded node doesn't launch correctly on every fresh start

Description
After upgrading to 0.2.0 - on every launch of SYRIUS the node doesn't successfully initialize and shows a Zenon SDK exception error. The embedded node doesn't commence/continue its synch.
Steps to Reproduce
Steps to reproduce the behavior: Launch SYRIUS 0.2.0 with the embedded node the last previously used node.
Expected behavior
The embedded node should start synching automatically
Actual behavior
On every launch of SYRIUS the node doesn't successfully initialize and shows a Zenon SDK exception error. The embedded node doesn't commence/continue its synch.
Workaround
On the node selection screen, press confirm on the already selected Embedded node to resolve the issue. It's not necessary to switch to a public node and back to the embedded.
Screenshots

Desktop (please complete the following information):

OS: Windows 11 Pro Version 10.0.22631 Build 22631
Syrius Version: 0.2.0
Commit hash: 77e082e

Additional context
Multiple users have advised they are experiencing this issue on Telegram
Bounty program

Zenon Address: Donate to AZ if applicable

A hotfix has been made available. You can download the unreleased build and try it out.

tested the hotfix and it works as expected - node started synching on launch


Remove provisionality for oven op-state and oven mode clusters

This PR remove provisional status from the oven op-state and mode clusters.

CC @kiel-apple


Add ekf distro

Fixes #2639
cc: @RFMVasconcelos here's the PR for the Arrikto EKF description as discussed on #2611

@RFMVasconcelos can you please merge the above PR today?
This is fully supported by Arrikto, tested and validated for 1.3, so it needs to be in the distributions table for people to be able to find it, before 1.3 gets announced.

@RFMVasconcelos we have a precedent for adding distros that members of the community are actively maintaining. Argoflow is just one example. It is arbitrary to exclude Arrikto EKF at this point. I'd asked to have this included in #2611 and you and @thesuperzapper asked me to file a separate PR. Here it is. I would appreciate getting this merged in time for the release announcement. I have not heard any specific objections to including this so there does not seem to be a reason to hold off.

@shannonbradshaw to be honest, I feel uncomfortable making this decision on my own without a community agreement.

@RFMVasconcelos what would it take to get community agreement? Also, I'm not sure I understand the hesitation. We seem to have made the decision about Argoflow without community agreement.

I don't see any significant issues with including this distribution in the docs. Clearly, once we have resolve Kubeflow's governance issues, and then setup a distribution validation system, this list will surely change anyway.
@RFMVasconcelos @Bobgy from a logistical perspective one of you will have to /approve this.
But @shannonbradshaw please only make one change per PR, (don't bring the GCP thing in, as it's unrelated, and just makes it less likely to get merged)
Once @shannonbradshaw removes that other commit, I believe it's fine to merge.

@thesuperzapper @RFMVasconcelos @Bobgy ok I reverted the last commit per @thesuperzapper's request.

/approve

Do you really need to add the AWS acronym  @shannonbradshaw ?

/ok-to-test
/hold
Holding for the AWS acronym

@thesuperzapper if we use the acronym it should be defined. That is a docs best practice.

From my point of view, we should include all distribution in the official Kubeflow docs that vendors support.
Until we don't have a clear vision on how to explain users how to use Kubeflow on various platforms, www.kubeflow.org/docs/distributions/ should be source of truth.
There are couple of advantages by doing this for Kubeflow 1.3:

Users will have more variety to deploy Kubeflow.
Kubeflow will be more popular and stable if we test it in the different environments.
Community will get support from the Cloud/Platform vendors.

I don't see any problems with merging this PR.
/lgtm
cc @RFMVasconcelos

Thank you for your comment @andreyvelich! Given your support + @thesuperzapper and @Bobgy's ack, I think I can pull the trigger to add this distribution without upsetting anyone in the community.
Apologies for the delay on this @cvenets @shannonbradshaw @castrojo @jbottum, having more people chime in was important for me to be making this call.
/lgtm
/approve

/hold cancel


problems with autoload from netbeans

When try to create a project with ZendSkeletonApplication get a problem from Composer:
"C:\ProgramData\ComposerSetup\bin\composer.bat" "--ansi" "--no-interaction" "install"
Loading composer repositories with package information
Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- zendframework/zendframework 2.3.x-dev requires php >=5.3.23 -> no matching package found.
- zendframework/zendframework 2.3.3 requires php >=5.3.23 -> no matching package found.
- zendframework/zendframework 2.3.2 requires php >=5.3.23 -> no matching package found.
- zendframework/zendframework 2.3.1 requires php >=5.3.23 -> no matching package found.
- zendframework/zendframework 2.3.0 requires php >=5.3.23 -> no matching package found.
- Installation request for zendframework/zendframework 2.3.* -> satisfiable by zendframework/zendframework[2.3.0, 2.3.1, 2.3.2, 2.3.3, 2.3.x-dev].
Potential causes:

A typo in the package name
The package is not available in a stable-enough version according to your minimum-stability setting
see https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion for more details.

Read http://getcomposer.org/doc/articles/troubleshooting.md for further common problems.
Готово.
Can someone help me?

You have an old version of PHP installed: the minimum requirement for ZF 2.3.* is PHP 5.3.23

no, i checked it in console.

php >=5.3.23 -> no matching package found means that PHP with that version couldn't be found. Run php --version

Oh y 5.3.13 i have. Thank you.))


Create qna.yaml for homonyms

If your PR is related to a contribution to the taxonomy, please, fill
out the following questionnaire. If not, replace this whole text and the
following questionnaire with whatever information is applicable to your PR.
Describe the contribution to the taxonomy

This skill instructs how to identify homographs and homophones - words that sound the same, but are spelled differently, or words that are spelled the same, but have different meanings (regardless of pronunciation).

Input given at the prompt

   ...

Response from the original model

  ...

Response from the fine-tuned model

  ...

Contribution checklist

[ ] The contribution was tested with lab generate
[ ] No errors or warnings were produced by lab generate
[x] All commits are signed off (DCO)
[x] The qna.yaml file contains at least 5 seed_examples
[x] The qna.yaml file was linted and prettified (yaml-validator can do both)

Thank you for your contribution to InstructLab! Unfortunately, once a Github repo is made public, all open PRs are automatically closed since they link against a private repo. We have detected that your PR might have been one of the ones affected by this change. If you are still interested in contributing your improvement, please fill out the following short form by no later than May 3rd, and we will get back to you with the additional steps necessary once we have had time to assess the PRs of those still interested:
https://forms.gle/V7SrPPMZDo6iGDYu8


Error on borgmartic configuration on a Debian 10 and 11 server

I have this error on a Debian 10 / 11 server:

TASK [m3nu.ansible_role_borgbackup : Add Borgmatic Configuration] **************
fatal: [fuster.calbasi.net]: FAILED! => {"changed": false, "msg": "AnsibleError: Unexpected templating type error occurred on (# Full config: https://torsion.org/borgmatic/docs/reference/config.yaml\nlocation:\n    source_directories:\n{% for dir in borg_source_directories %}\n        - {{ dir }}\n{% endfor %}\n\n    # Stay in same file system (do not cross mount points).\n    one_file_system: {{ borg_one_file_system }}\n    repositories:\n{% if borg_repository is iterable and (borg_repository is not string and borg_repository is not mapping) %}\n  {% for repo in borg_repository %}\n        - {{ repo }}\n  {% endfor %}\n{% elif borg_repository is defined and borg_repository is string %}\n        - {{ borg_repository }}\n{% endif %}\n\n    # Store atime into archive.\n    atime: {{ borgmatic_store_atime }}\n\n    # Store ctime into archive.\n    ctime: {{ borgmatic_store_ctime }}\n\n{% if borg_exclude_patterns|length %}\n    # Any paths matching these patterns are excluded from backups. Globs and tildes\n    # are expanded. See the output of "borg help patterns" for more details.\n    exclude_patterns:\n{% for dir in borg_exclude_patterns %}\n        - '{{ dir }}'\n{% endfor %}\n{% endif %}\n\n{% if borg_exclude_from|length %}\n    # Read exclude patterns from one or more separate named files, one pattern per\n    # line. See the output of "borg help patterns" for more details.\n    exclude_from:\n{% for dir in borg_exclude_from %}\n        - {{ dir }}\n{% endfor %}\n{% endif %}\n\n    # Exclude directories that contain a CACHEDIR.TAG file. See\n    # http://www.brynosaurus.com/cachedir/spec.html for details.\n    exclude_caches: true\n\n    # Exclude directories that contain a file with the given filename.\n    exclude_if_present: .nobackup\n\n    # Alternate Borg remote executable. Defaults to "borg".\n    # remote_path: borg1\n{% if borg_remote_path %}\n    remote_path: {{ borg_remote_path }}\n{% endif %}\n\n# Repository storage options. See\n# https://borgbackup.readthedocs.io/en/stable/usage.html#borg-create and\n# https://borgbackup.readthedocs.io/en/stable/usage/general.html#environment-variables for\n# details.\nstorage:\n    encryption_passphrase: {{ borg_encryption_passphrase }}\n\n    # The standard output of this command is used to unlock the encryption key. Only\n    # use on repositories that were initialized with passcommand/repokey encryption.\n    # Note that if both encryption_passcommand and encryption_passphrase are set,\n    # then encryption_passphrase takes precedence.\n    # encryption_passcommand: secret-tool lookup borg-repository repo-name\n{% if borg_encryption_passcommand %}\n    encryption_passcommand: {{ borg_encryption_passcommand }}\n{% endif %}\n\n    # Type of compression to use when creating archives. See\n    # https://borgbackup.readthedocs.org/en/stable/usage.html#borg-create for details.\n    # Defaults to no compression.\n    compression: auto,zstd\n\n    # Remote network upload rate limit in kiBytes/second.\n{% if borg_remote_rate_limit %}\n    remote_rate_limit: {{ borg_remote_rate_limit }}\n{% endif %}\n\n    # Command to use instead of just "ssh". This can be used to specify ssh options.\n    # ssh_command: ssh -i ~/.ssh/id_ed25519\n{% if borg_ssh_command %}\n    ssh_command: {{ borg_ssh_command }}\n{% endif %}\n\n    # Umask to be used for borg create.\n    umask: 0077\n\n    # Maximum seconds to wait for acquiring a repository/cache lock.\n    lock_wait: {{ borg_lock_wait_time }}\n\n    # Name of the archive. Borg placeholders can be used. See the output of\n    # "borg help placeholders" for details. Default is\n    # "{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f}". If you specify this option, you must\n    # also specify a prefix in the retention section to avoid accidental pruning of\n    # archives with a different archive name format. And you should also specify a\n    # prefix in the consistency section as well.\n    archive_name_format: '{hostname}-{now:%Y-%m-%d-%H%M%S}'\n\n    # Bypass Borg error about a repository that has been moved.\n    relocated_repo_access_is_ok: {{ borgmatic_relocated_repo_access_is_ok }}\n\n# Retention policy for how many backups to keep in each category. See\n# https://borgbackup.readthedocs.org/en/stable/usage.html#borg-prune for details.\n# At least one of the "keep" options is required for pruning to work.\nretention:\n{% if borg_retention_policy.keep_secondly is defined %}\n    # Number of secondly archives to keep.\n    keep_secondly: {{ borg_retention_policy.keep_secondly }}\n{% endif %}\n\n{% if borg_retention_policy.keep_minutely is defined %}\n    # Number of minutely archives to keep.\n    keep_minutely: {{ borg_retention_policy.keep_minutely }}\n{% endif %}\n\n{% if borg_retention_policy.keep_hourly is defined %}\n    # Number of hourly archives to keep.\n    keep_hourly: {{ borg_retention_policy.keep_hourly }}\n{% endif %}\n\n{% if borg_retention_policy.keep_daily is defined %}\n    # Number of daily archives to keep.\n    keep_daily: {{ borg_retention_policy.keep_daily }}\n{% endif %}\n\n{% if borg_retention_policy.keep_weekly is defined %}\n    # Number of weekly archives to keep.\n    keep_weekly: {{ borg_retention_policy.keep_weekly }}\n{% endif %}\n\n{% if borg_retention_policy.keep_monthly is defined %}\n    # Number of monthly archives to keep.\n    keep_monthly: {{ borg_retention_policy.keep_monthly }}\n{% endif %}\n\n{% if borg_retention_policy.keep_yearly is defined %}\n    # Number of yearly archives to keep.\n    keep_yearly: {{ borg_retention_policy.keep_yearly }}\n{% endif %}\n\n    # When pruning, only consider archive names starting with this prefix.\n    # Borg placeholders can be used. See the output of "borg help placeholders" for\n    # details. Default is "{hostname}-".\n    prefix: '{hostname}-'\n\n# Consistency checks to run after backups. See\n# https://borgbackup.readthedocs.org/en/stable/usage.html#borg-check and\n# https://borgbackup.readthedocs.org/en/stable/usage.html#borg-extract for details.\nconsistency:\n    # List of one or more consistency checks to run: "repository",\n    # "archives", "data", and/or "extract". Defaults to\n    # "repository" and "archives". Set to "disabled" to disable\n    # all consistency checks. "repository" checks the consistency\n    # of the repository, "archives" checks all of the archives,\n    # "data" verifies the integrity of the data within the\n    # archives, and "extract" does an extraction dry-run of the\n    # most recent archive. Note that "data" implies "archives".\n    checks:\n    {% for checks in borgmatic_checks %}\n        - {{ checks }}\n    {% endfor %}\n\n    # Restrict the number of checked archives to the last n. Applies only to the "archives" check.\n    check_last: {{ borgmatic_check_last }}\n\n    # When performing the "archives" check, only consider archive names starting with\n    # this prefix. Borg placeholders can be used. See the output of\n    # "borg help placeholders" for details. Default is "{hostname}-".\n    prefix: '{hostname}-'\n\n# Shell commands or scripts to execute before and after a backup or if an error has occurred.\n# IMPORTANT: All provided commands and scripts are executed with user permissions of borgmatic.\n# Do not forget to set secure permissions on this file as well as on any script listed (chmod 0700) to\n# prevent potential shell injection or privilege escalation.\nhooks:\n    # List of one or more shell commands or scripts to execute before creating a backup.\n    before_backup:\n{% for cmd in borgmatic_before_backup_command %}\n        - {{ cmd }}\n{% endfor %}\n\n    # List of one or more shell commands or scripts to execute after creating a backup.\n    after_backup:\n{% for cmd in borgmatic_after_backup_command %}\n        - {{ cmd }}\n{% endfor %}\n\n    # List of one or more shell commands or scripts to execute in case an exception has occurred.\n    on_error:\n{% for cmd in borgmatic_failure_command %}\n        - {{ cmd }}\n{% endfor %}\n\n{% for hook in borgmatic_hooks %}\n    {{ hook }}: {{ borgmatic_hooks[hook] }}\n{% endfor %}\n): object of type 'NoneType' has no len()"}
PLAY RECAP *********************************************************************
MYSERVER         : ok=9    changed=5    unreachable=0    failed=1    skipped=2    rescued=0    ignored=0

Unexpected templating type error occurred
object of type 'NoneType' has no len()

Could be an issue with your input. Doesn't look Debian-specific. We also test against Debian 10 and such an error would show up.

Unexpected templating type error occurred
object of type 'NoneType' has no len()

Could be an issue with your input. Doesn't look Debian-specific. We also test against Debian 10 and such an error would show up.

My input? What input?

The arguments you are passing to the role.


Save meson logs on failure

What does your PR fix?
Ensure that extra logs from meson builds are also saved on error.
Documents a parameter added in a previous PR.

Which triplets are supported/not supported?
I am still working on this PR: Includes test PR (#24934).

Worked as expected with the test merge. Rolled back to the actual changes.


MM-24812 Add e2e tests for adding reactions to existing reactions in archived channel posts

Summary
Add e2e tests for adding reactions to existing reactions in archived channel posts.
Ticket Link
https://mattermost.atlassian.net/browse/MM-28412
PS: we don't show reactions in search results, so excluding that from test steps

/update-branch


mercury: use jdk_headless to allow non-gui builds

Description of changes
Verified by building and testing notmuch-bower.
Things done

Built on platform(s)

[x] x86_64-linux
[x] powerpc64le-linux

[x] Tested compilation of notmuch-bower
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

@ofborg build mercury

Since this PR has been open for six months with no objections, I am going to self-merge.  If I broke anything please just "revert first, ask questions later".


[SPARK-39261][CORE] Improve newline formatting for error messages

What changes were proposed in this pull request?
Error messages in the JSON file should not contain newline characters; newlines are delineated as different elements in the array.
This PR:

Checks that newline characters do not exist, and improves the formatting of the JSON file so that each array element is on a new line
Checks that messages are trimmed, and improves the formatting of the JSON file by adding spaces after all newlines and between error class messages/subclass messages in the code
Introduces an environment variable to generate a formatted file: SPARK_GENERATE_GOLDEN_FILES=1 build/sbt "core/testOnly *SparkThrowableSuite"

Why are the changes needed?
Improves the readability of the error message JSON file.
Does this PR introduce any user-facing change?
No
How was this patch tested?
UTs

thanks, merging to master!


No hardware requirements for the listed Linux flavors

Do we just follow the recommended hardware requirements for each OS?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 9cbfa632-1612-9d5f-7f36-3128d7305f14
Version Independent ID: 000c1405-b54f-6668-daac-ac69c97d9601
Content: Connect CEF data to Azure Sentinel Preview
Content Source: articles/sentinel/connect-common-event-format.md
Service: azure-sentinel
Sub-service: azure-sentinel
GitHub Login: @yelevin
Microsoft Alias: yelevin

Thanks for the question! We will review and get back to you shortly.

Hi @dreeves14, thanks for having sent your question in to Microsoft docs!
We're still checking this with our team and will update as needed in a coming docs release.
I'm going to close this in the meantime, but feel free to continue commenting here as needed.
I can also recommend the community resources linked from Comment on our blogs and forums.
We appreciate your contributions to docs!
#please-close


Limetime management for OIDC JWKS

The first step in verifying the OIDC JWTs is verifying their signatures, which means checking them against the OIDC provider's signing key set.
There are a few approaches we could take to acquiring and maintaining the updatedness of those keys:

Bake them into the Warehouse codebase. We could pull the current JWKS blob from the URI referenced in the provider's openid-configuration.

Pros: Simple.
Cons: More tedious to update in the event of key updates/rotations; requires a PR each time any provider does so. Gaps between the rotation and updates means that Warehouse would probably reject authentic JWTs.

Fetch the JWKS for each provider on Warehouse startup/initialization. Restarts always re-fetch the JWKS.

Pros: Simple.
Cons: Most of the same cons as (1).

All of (2), but we also include a periodic job that checks each OIDC provider's JWKS on a schedule.

Pros: No rotation downtime.
Cons: Requires the most code.

(3) is probably the right approach. At minimum, we're going to need:

A registry/configuration list of supported OpenID connectors (just GitHub, for the time being), tied to their openid-configuration URLs
A scheduled periodic task (similar to the ones already in Warehouse) for checking the openid-configuration + JWKS URL
A verification service for incoming JWTs

WIP branch is here: https://github.com/trailofbits/warehouse/tree/tob-jwk-management
Some outstanding design questions:

How should we store "live" JWKs? They're JSON blobs and they're not sensitive and they rotate, so it doesn't make sense to cram them into the DB. Perhaps Redis?

What should we do for our development environment? Does it make sense to have a DevelopmentJWKService that uses a local RSA keypair + JWK that we generate as part of make build, or should we just run the "full" JWKService?

How should we store "live" JWKs? They're JSON blobs and they're not sensitive and they rotate, so it doesn't make sense to cram them into the DB. Perhaps Redis?

I went ahead and did this on the branch -- we cache JWKs under the /warehouse/oidc/jwks/{provider} key for each provider.
You can smoke-test this with:
docker-compose run --rm web python -m warehouse oidc update-oidc-jwks
docker-compose run --rm web python -m warehouse oidc list-jwks --provider github

All of (2), but we also include a periodic job that checks each OIDC provider's JWKS on a schedule.

There's the potential for a brief window here where a new public key has been published to the JWKS but we haven't fetched it yet, and as a result signature verification will fail with legitimate signatures. Perhaps it be better to fetch the JWKS whenever we attempt to verify a JWT that has a kid (key ID) that we haven't encountered before?
This behavior works with cold-starts (the first verification with no JWK in cache causes us to reach out and get the entire JWKS) and this ensures we always have the latest keys before failing. To avoid these requests becoming abusive we could only repeat a request for a previously nonexistent kid outside of some window.

There's the potential for a brief window here where a new public key has been published to the JWKS but we haven't fetched it yet, and as a result signature verification will fail with legitimate signatures. Perhaps it be better to fetch the JWKS whenever we attempt to verify a JWT that has a kid (key ID) that we haven't encountered before?

That sounds good! And yeah, that provides nice self-starting behavior (much better than having to jumpstart things with a CLI command on each startup.)
We'll want to make sure that we preserve provider-first identification with these changes -- a previously unknown kid shouldn't enable a cache poisoning attack where an attacker tricks us into trusting a different provider for a matching kid.

To avoid these requests becoming abusive we could only repeat a request for a previously nonexistent kid outside of some window.

Sounds good. In that case we'll probably want an additional self-expiring KV in Redis for the cooldown window. A cooldown of even just 60s is probably more than sufficient.


Error with Version 4.1.0

nfo Deleting .cache, public
info Successfully deleted directories
ERROR #10226  CONFIG
Couldn't find the "gatsby-source-filesystem" plugin declared in "/Users/bryce/docs/code-surfer/mdx-deck/node_modules/mdx-deck/gatsby-config.js".
Tried looking for a local plugin in /Users/bryce/docs/code-surfer/mdx-deck/node_modules/mdx-deck/plugins/gatsby-source-filesystem.
Tried looking for an installed package in the following paths:

/Users/bryce/docs/code-surfer/mdx-deck/node_modules/gatsby/dist/bootstrap/load-themes/node_modules/gatsby-source-filesystem
/Users/bryce/docs/code-surfer/mdx-deck/node_modules/gatsby/dist/bootstrap/node_modules/gatsby-source-filesystem
/Users/bryce/docs/code-surfer/mdx-deck/node_modules/gatsby/dist/node_modules/gatsby-source-filesystem
/Users/bryce/docs/code-surfer/mdx-deck/node_modules/gatsby/node_modules/gatsby-source-filesystem
/Users/bryce/docs/code-surfer/mdx-deck/node_modules/gatsby-source-filesystem
/Users/bryce/docs/code-surfer/node_modules/gatsby-source-filesystem
/Users/bryce/docs/node_modules/gatsby-source-filesystem
/Users/bryce/node_modules/gatsby-source-filesystem
/Users/node_modules/gatsby-source-filesystem
/node_modules/gatsby-source-filesystem

not finished open and validate gatsby-configs - 0.055s
Error: Command failed with exit code 1: gatsby develop --host localhost --port 8000 --open
at makeError (/Users/bryce/docs/code-surfer/mdx-deck/node_modules/execa/lib/error.js:58:11)
at handlePromise (/Users/bryce/docs/code-surfer/mdx-deck/node_modules/execa/index.js:114:26)
at processTicksAndRejections (internal/process/task_queues.js:89:5)

Can confirm this is happening in 4.1.0. Wasn't happening previously. I had to manually run yarn add -D gatsby-source-filesystem to make it work for now.

@gopinav Hm, when I add it, I end up in an endless watch/build loop 😭

FWIW, this happened on my first attempt to use mdx-deck.  It's not confidence-inspiring, of course.

Just wanted to chime in, myself and one other developer also have the infinite loop of:
info changed file at <project path>/node_modules/mdx-deck/.cache/redux.state

Totally fresh install, 1 or 2 slides with nothing in them. Completely nonfunctional out of the box experience with 4.1.1.

I'm just hit this as well. Downgrading to 4.0.0 works fine for me now.


Macros typos on windows platform in wave.h

in wave.h file, line 34-37,
a type mistake happenned which made Macro
#if defined(_MSC_VER)
#define WAVE_API __declspec(dllexport)
#else
to
#if defined(_MSV_VER)
#define WAVE_API __declspec(dllexport)
#else
it seems that MSC_VER was misspelled as MSV_VER, cause a compiler error on windwos

This lib does a small but nice work.
another suggest is the macro which detects BIG-ENDIAN or LITTLE-ENDIAN was also broken on windows

Fixed in 72bbb7b.


Added two tests for access token generation.

@DanielCraigie Tokens should be ASCII-compatible, so I believe we actually want non-multibyte strlen()s here.
Pushing that change will also re-trigger StyleCI. I dropped alignment rules just now in the config (which isn't in-repo at the moment) so it should pass now. Didn't make sense to keep those rules since StyleCI will flag based on the entire file when you didn't edit anything else, and thus blow up the diff.

It does make sense to check using mb_strlen as the DB-field is a varchar(16) in a UTF8 table. So it actually can hold multibyte characters. Though I see it like @iansltx that that doesn't make sense. So we perhaps should assert before setting the access token that it actually is only ASCII based alphanumeric....

Checked the impl and we're handing back 16 hexidecimal characters at this point, so "it should be ASCII" seems perfectly reasonable to assert.
Though this brings up why we're still using sha1() for anything at this point, given that it's getting cheaper by the minute to so SHA1 collisions.


Appstudio update test-component-pac-ujid

Pipelines as Code configuration proposal
To start the PipelineRun, add a new comment with content /ok-to-test
For more detailed information about running a PipelineRun, please refer to Pipelines as Code documentation Running the PipelineRun
To customize the proposed PipelineRuns after merge, please refer to Build Pipeline customization

Pipelines as Code CI/test-component-pac-ujid-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
7 seconds
init

✅ Succeeded
20 seconds
clone-repository

✅ Succeeded
35 seconds
build-container

✅ Succeeded
23 seconds
inspect-image

✅ Succeeded
18 seconds
deprecated-base-image-check

✅ Succeeded
17 seconds
sbom-json-check

✅ Succeeded
17 seconds
clair-scan

✅ Succeeded
1 minute
clamav-scan

✅ Succeeded
21 seconds
label-check

✅ Succeeded
8 seconds
show-sbom

✅ Succeeded
9 seconds
show-summary

Pipelines as Code CI/test-component-pac-ujid-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
7 seconds
init

✅ Succeeded
20 seconds
clone-repository

✅ Succeeded
35 seconds
build-container

✅ Succeeded
18 seconds
deprecated-base-image-check

✅ Succeeded
23 seconds
inspect-image

✅ Succeeded
1 minute
clamav-scan

✅ Succeeded
17 seconds
sbom-json-check

✅ Succeeded
17 seconds
clair-scan

✅ Succeeded
21 seconds
label-check

✅ Succeeded
9 seconds
show-summary

✅ Succeeded
8 seconds
show-sbom