Add 'tree_navigable' option to PageChooserPanel and PageChooserBlock

The ability to limit PageChooserPanel choices to instances of a specific page type was a welcome addition and works beautifully when the those page types can exist in multiple locations throughout the site. However, it's often the case that certain page types only live under a single page (e.g. events, news articles, blog posts etc), in which case, starting at the root level of the explorer-like listing is not ideal.
I propose a tree_navigable option be added to PageChooserPanel and PageChooserBlock to give developers the option to specify whether the chooser should render as it does currently (the default option), or whether is jumps straight into a list of pages that match the specified type(s) (with the most recently modified pages appearing first)
The search function within the widget already limits the results to those that match the type, so that wouldn't need to change. I also think it would be possible in this case to ditch the message above the list.
Any thoughts?

Improving the editor UX here would definitely be a good idea, but I think we'd be missing a trick if we left it up to the site implementer to remember about the existence of the tree_navigable option and set it appropriately. (I suspect that most site implementers are more interested in getting something up and running as quickly as possible, rather than putting in the extra work to fine-tune these kinds of UX details, and so the option wouldn't get as much usage as we'd like.) Ideally, Wagtail should handle these sorts of decisions as invisibly as possible.
What if we set up the chooser to open at the deepest level that encloses all of the pages of type X (or, once #2401 is implemented, encloses all of the pages of type X that the user has 'choose' permission for)? For example, if all BlogPost pages are direct children of /blog/, open it up there; if they are contained within /blogs/bob/ and /blogs/mary/, open it up at /blogs/.

I certainly like the idea of automatically choosing a better starting point based the queryset, but It's still valuable as a developer to be able to have that extra level of control. Plus, the automated option still might not be optimal. For example:
Say you may want the editor to be able to pick an Article, but Articles are dotted around under numerous listing pages throughout the tree. It's probably of little importance to the editor where the article lives, so navigating through the tree might not make sense to them in that context. If using ModelAdmin (especially with exclude_from_explorer=True - #2771 ), they might not even be aware that articles are part of the tree.
There are other benefits to be gained also: such as getting rid of the (likely unselectable) parent page at the top, and even ditching the rightmost column (used to navigate to children) to give the listing more space. The warning too (that appears currently) can also be ditched, because they won't see any other types of page in that listing.

I fully support this. It does feel like an ideological question about the type of CMS Wagtail is though. From my perspective a CMS that supports large websites can't impose hierarchy on all content, some editors lac interest in where their small piece of content lives or indeed permission to specify its location. An irregular contributor that can only create events pages, that reference say, news pages doesn't care where either of these pieces of content 'live' in the tree amongst potentially thousands of pieces of content.
I like the concept that Craft CMS uses to get around this problem of having 'entries' that don't sit anywhere in a heretical structure, similar to how snippets behave, though potentially with a defined template.


We should not resample the ACF when computing SDRPs

https://github.com/ContactEngineering/SurfaceTopography/blob/9de21076977f3949dec43f140a852dbd1227a47e/SurfaceTopography/Generic/Curvature.py#L64

230213_negative_scale_dependent_curvatures.ipynb.zip
This notebook demonstrates that on the example of a synthesized profile, resampling leads to negative rms curvatures.
While using the original grid leads to more meaningful values.
I think that we should compute the slopes and curvatures on the original data and do eventual averaging / resampling/ interpolating that is necessary for the average curves in the container.
@pastewka what is your opinion ?

Currently the workaround for an individual topopography is to set the resampling method explicitely
t.scale_dependent_curvature_from_profile(resampling_method=None)

Note as well that it might be convenient to have perfectly periodic implementations of these functions sometimes.
that would be integrate_psd(fourier_fd_stencil(dx))


Changing the title according to the page!!

✨ Feature Request
Description of the Feature
This feature involves dynamically changing the browser tab's title based on the page the user is viewing. For example, when navigating between different sections like "Home," "About Us," or "Contact Us," the title of the page should reflect the current content.  Like Example : Station Saarthi | Notifications
Station Saarthi | Contact Us
Station Saarthi | Login or Register
Problem Statement
Currently, the browser tab shows a static title regardless of the page being viewed. This can lead to confusion and doesn't provide users with immediate context about the page they are on. Dynamic titles will enhance navigation and user experience by reflecting the content or section.
Proposed Solution
For single-page applications (SPAs), use the router to update the title on route change.

[x] Yes
[ ] No

great add @SrijaVuppala295


updated requirements

pymc3_ext was spelled wrong before (pymcs_ext)

I updated the install instructions to include a section on creating virtual environments.

Corrected minor spelling mistake.


Add example for object-oriented deferred cube

Here is the example I promised. Hope it's more useful than misleading...
Caveats:

I came from C# and don't really understand why every Rust project wants to stuff everything into one single .rs file as if it's a header-only library. So this example is C#-structured.
I do not speak English, and JetBrains' LanguageTool plugin doesn't work for Rust comments.
I have zero prior experience in 3D graphics other than have modeled some crappy animal characters in Blender.
I haven't proofread this thing. Not after fixing 100+ compiler errors in four hours and another hour of RenderDoc debugging... But it does match the ground-truth Blender render.

Sorry if my wording is inappropriate - I haven't slept well in the past few weeks and the lackluster Rust language support is driving me crazy...

I'm not sure if the C# style is really appropriate/idiomatic for Rust. Some of your files are quite small and maybe only contain one function. Rust is not object oriented by design, so perhaps this is a case of trying to make it into something it isn't?

Sorry... but where could I find a guide on idiomatic rust project structure? I'm really desperate because Rust is anything but intuitive, and the editing experience is horrible. All the articles I could find are about the details, and reading Rust projects didn't help...

Rust is not object oriented by design

Maybe the title is a bit misleading... I'm not using inheritance at all. I just separated the components by C#/Java's project structure convention.
Unrelated, but my personal reasoning on this style is navigating in the file browser is easier than trying to find a particular function in a file with 1000 lines, and splitting the editor isn't really an option:

(I know I could turn of inlay type hints, but then I would have even less information on whether my code compiles...)
And I'm making empty mod.rs because these also make navigation a nightmare:

For the files in question, scene/light.rs is meant to be extended by the user (this file only contains a point light model). The other two files in scene are probably too short, but um why are short files a bad thing? (I'm asking because I really don't know why)

Nevermind... Sorry for wasting everyone's time. I'll try to get better at Rust first.


Add Russian translation

This pull request adds Russian translation.

Looks good, I'll merge it.
Under what name would you like me to credit you? (For both your translations)

Looks good, I'll merge it.
Under what name would you like me to credit you? (For both your translations)

Same as on GitHub would be nice


Support for schemas (Postgres Oracle etc.)

Hello, great tool! Do you plan to support DB schemas as they exist in PostgreSQL for example?
BG

What do you mean exactly @vanthome - if we want to support existing databases that already have a schema? Then yes, we have an "Introspection" step that can be used to create a Prisma schema file from an existing database (currently MySQL, Postgres or SQLite) that then can be used to generate Photon.
Or did I misunderstand?

Here you can find docs on introspection: https://github.com/prisma/prisma2/blob/128be311af1a6e0fc47dd4d54e744a5042c43fb7/docs/introspection.md

Yes, you misunderstood. I'm not referring to the entirety of tables and other objects. I know the term is ambiguous and that's why I mentioned Postgres and Oracle. Please see here what a schema in Postgres is:
https://www.postgresql.org/docs/current/ddl-schemas.html

Oh, we do support Postgres schemas. We ask about them in our cli init flow:

Or you can add it to connection string like so:

Also, we don't currently support oracle. We support SQLite, MySQL and PostgreSQL

Sorry I didn't get your question in the first try, seemed to obvious to me as we really do support this for quite some time.
Does that answer you question @vanthome?
Or are there any aspects that @pantharshit00 did not touch on?

@janpio well kind of but I would assume you only support one schema at a time and not switching schemas at runtime, right?

Yes, we don't support querying across multiple schemas right now. Maybe you can open a new issue for that titled "Support for multiple schemas".

Closing in favour of https://github.com/prisma/prisma2/issues/1122


Fix untag without force while container running

With digests being added by default, all images have multiple references. The check for whether force is required to remove the reference should use the new check for single reference which accounts for digest references. This change restores pre-1.12 behavior and ensures images are not accidentally left dangling while a container is running.
Ping @aaronlehmann, thanks for catching this regression
I will look into adding an integration test for this case, I had thought the force flag tests was already covering this case.

This is a regression so I'm adding it to the 1.12 milestone. Go ahead and remove it if it can't make the release.

LGTM

We should probably add a test for this.

We should probably add a test for this.

Agree 👼
But LGTM 🐸

Feel free to followup


WIP: add client options.

fixes #1924

Since the edit of commit failed, we will try again.

Since the edit of commit failed, we will try again.


Crash

Mac: When spellchecker and font-manager appear in the same process, electron crash!!!
Windows system is ok.

@rensiu don't you have problem like this:

Module not found: Can't resolve 'font-manager'

i have installed font-manager and rebuild it(with some warning).
my node version is 8.9.0.

@robberfree your environment for example: browser?electron?webpack? and your configuration

@rensiu
i am creating a app use React and Electron.just use Create React App to manage the dependencies and other settings.

@robberfree if you run 'npm start' and your other node packages can't be resolved, you can add require('module').globalPaths.push(yourNodeModulesDir) into your index.html.
try this and tell me result.

@rensiu very sorry for replay lately.
Today I solved the problem with my colleague。

I install font-manager to devDependencies wrongly in old days.Now I install it to dependencies
I use electron-rebuild to rebuild font-manager after read this document:using-native-node-modules

then I can require font-manager and use it in main process.


Replace hardcoded error messages with error message pool

What we have
Error messages are hardcoded everywhere and it is hard to track and edit.
What we want
The goal is to combine them together in some type of the holder or pool.
How to do it
"ErrorMessagePool", "ErrorMessagesHolder" or something like this. Should be @Component or @Bean

Report
Messages pool
public enum ErrorMessage {
    USER_EXISTS("User exist!"),
    PASSWORD_IS_WEAK("The password is in the hacker's database!"),
    PASSWORDS_ARE_SAME("The passwords must be different!"),
    CANT_REMOVE_ADMINISTRATOR_ROLE("Can't remove ADMINISTRATOR role!"),
    USER_DOESNT_HAVE_THIS_ROLE("The user does not have a role!"),
    USER_HAS_NO_OTHER_ROLES("The user must have at least one role!"),
    ROLE_GROUPS_CONFLICT("The user cannot combine administrative and business roles!");

    public String stringValue() {
        return name;
    }

    ErrorMessage(String name) {
        this.name = name;
    }

    private final String name;
}

Pool usage
public class ValidationException extends RuntimeException {
    public ValidationException(ErrorMessage errorMessage) {
        super(errorMessage.stringValue());
    }
}


Can the btn event be triggered by code?

Hi,
Sometimes I need to trigger button events through code instead of keypad or touch，but I didn't find the "API".

@as564335sa Why not just call your callback directly, passing it the button object pointer?

@as564335sa I see. You could try using lv_task_create from another thread (making sure to use a mutex) and the function you pass to that would then be invoked on the context of the lvgl thread. Another option would be to add your own logic in the while(1) loop.
(Please note that I have not tested the above ideas but they should work.)


Split opening times into open and closed for JSON-LD

The JSON-LD is included in the page by the partial view schema.nunjucks has a property for opens and closes. Currently, both properties are the same value and contain both opening and closing time. The data needs to be split so these fields can be set correctly.
What to return when the surgery is closed needs to be considered.

Covered by #216


fix issue #93

footer social icons overlapping fix. #93

the issue has already been fixed in #88  by someone else. but some how changes are not reflected on the hosted website. the CSS was already working fine in local setup at my localhost:5173/contact there is nothing to change in CSS. code is fine I have checked all the code properly.
I guess there is problem with gh-pages or something with hosting platform that why changes are not reflected even after PR got merged.

I agree there is no significant change in my code but still I tried to refactor the code quality to some extinct. as the issue was already resolved but not reflected in website. i can't do any change from my end in the code to fix in hosted website as CSS is already fine. and working fine in local setup.

Got it @aniketkuma-r 👍
Thanks for clarification. Actually I haven't updated the build in the gh-pages as some bugs were found.
So, as this the issue is fixed. I'll close it then. Hope you find some more issues to work on :)


Add script(s) to build one or many or all

Add all-in-one script, single script builds all containers in local for daily builds to add with build automation and generate package diff file for change log.

Proposed steps to implement this issue ...

Create Makefile for single or multi build, steps can be called reused this way
Integrate buildx with docker, this will enable multi-arch builds possible
Add steps to extract rootfs.tar.gz from generated docker image
Add testing steps
Add necessary steps for CI/CD process and scheduled run

Above steps can be broken into multiple issues for better tracking

Below script works, might need bit different?
sudo ./build.sh -t default; \
sudo ./build.sh -t minimal; \
sudo ./build.sh -t micro; \
sudo ./build.sh -t base; \
sudo ./build.sh -t init


A full rewrite that uses MVT tiles generated by new scripts

This rewrite makes the whole tile generation done by the openmaptiles SQL scripts,
without doing any funky local math, or strange SQL manipulations.

SQL is generated by the new generate-sqltomvt scripts
(part of the openmaptiles-tools, uses prepared statement variant)
Simple to run with docker
Proper CLI documentation
Simplified PostgreSQL access

Do not merge this PR until https://github.com/openmaptiles/openmaptiles-tools/pull/34 is merged.
TODO: (will be done as separate PRs)

write a new tools script to generate a tilejson-spec JSON file from layers
Use the result of that script to turn postserve into a full blown tile server, so it can be used directly by the maputnik editor

I just research about folowing problem.
curl http://localhost:8090/tiles/0/0/0.pbf
curl http://localhost:8090/tiles/0/0/0.pbf
curl http://localhost:8090/tiles/0/0/0.pbf
curl http://localhost:8090/tiles/0/0/0.pbf
curl http://localhost:8090/tiles/0/0/0.pbf
curl http://localhost:8090/tiles/0/0/0.pbf # too slow

Your PRs solve this problem with postgis 2.5.1 & postgresql 11?

@smellman generating 0/0/0 is always very slow - in some cases it could be a few minutes.  My PR does not change the queries or the underlying data. It simply moves all of the MVT PBF generation logic to Postgres, without the need to use Mapnik or any other MVT processing software.  The postserve update simplifies usage of those queries.  P.S.  I posted a link to the OMT slack channel -- come discuss it there.

@smellman   postserve has been merged to https://github.com/openmaptiles/openmaptiles-tools#test-tiles -- we should close this repo.  I'm doing many tests on PG12 + Postgis3 now.


Is is possible to use custom syntax in TSX files with a custom plugin?

Description
Attempting build a plugin. Need to do the following: https://stackblitz.com/edit/vitejs-vite-tsvarv?file=myPlugin.mjs,myFile.tsx,main.js,vite.config.js&terminal=dev
The problems:

It throws an error about the syntax in the .tsx file. I think it eagerly parses it before transform. Disabling esbuild gives an output, but there is still an error in the logs about the syntax.
Is there a way to disable this eager parse?
Is there a way to prefix certain imported .tsx files to be processed by the transform-file transformer plugin?

Suggested solution
If a plugin needs to overwrite builtin syntax, maybe it could export overrideBuiltin(id): boolean ?
Alternative
No response
Additional context
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

The error is coming from the scanner that does a quick search to find dependencies. You can just ignore the error for now as it won't break anything.
I guess we can just change this error into a debug log.
@fi3ework @bluwy As you implemented/reviewed https://github.com/vitejs/vite/pull/11977, WDYT?

Awesome, as long there is a way to not make it surface to the user. The plugin can find imports so it would be nice if there was a way to optionally to delegate this scanning to a plugin

I don't think we should downgrade that to a debug. It's an error that would also cause stuff like unnecessary reloads otherwise, because the scanner didn't catch and crawl everything.
You can add an esbuild plugin to optimizeDeps.esbuildOptions.plugins to transform the custom syntax to something esbuild understands though.

You can add an esbuild plugin to optimizeDeps.esbuildOptions.plugins to transform the custom syntax to something esbuild understands though.

Ah this might be what I am looking for.
I am assuming this isn't something supported by unplugin? Are there any examples of using optimizeDeps.esbuildOptions.plugins in a plugin?

Interesting. Trying to integrate into my existing unbuild setup. If I create an esbuild plugin that maps the file, then add that esbuild plugin into vite. It doesn't seem like it transforms the content passed to Vite's transform?
Here's my reproduction for it: https://stackblitz.com/edit/vitejs-vite-tsvarv?file=myPlugin.mjs,myFile.tsx&terminal=dev
I want it build a file using a transform somewhere and still work when I uncomment the // some custom syntax here in myFile.tsx. If there is any way to do that it would be great!

Okay, updated the link.
Ignore the previous result thing, I thought your method was to share output between plugins. Good to know not to do that.
I have added a plugin for esbuild, it definitely runs as I see "esbuild" logged. So the problem specifically is:
I get an esbuild error for the syntax still. The transform is run and valid code is returned, but for some reason esbuild really wants to parse the original
Because of the error vite.transform never runs :(

That's because Vite's internal esbuild Vite plugin to handle JSX/TSX files by default runs before your plugin runs. You can make your plugin run earlier with enforce: 'pre' in the Vite plugin. That made the stackblitz repro run for me.

Ah awesome. I think these two solved it: registering an esbuild plugin for import scanning and enforce: 'pre'.
I think that means it has to parse it twice at the start, not a big issue tho


Pause on interruption

pause say when a call is received.
only on Android.
based off: https://gist.github.com/kuccello/5816882

Thanks, @cosmok ! Nice addition! That's indeed a very useful feature to the lib. Some comments:

It seems that the stop function is not working, probably because of this typo:

    private static final String CMD_STOP = "pause";

It seems that there is some commented out code on BroadcastReceiver that causes it to misbehave in my tests

I'd add an option to allow this behavior to be disabled; someone might want to implement a background music player or something. But certainly the new way should be the default.

I'd add an optional parameter to the constructor (on Dart):
    AudioPlayer({ bool runOnBackground: false }) { /* ... */ }

Save that as a field and pass it in the play method on the channel:
    Future<int> play(String url, {bool isLocal: false, double volume: 1.0}) =>
_channel.invokeMethod('play', {"playerId": playerId, "url": url, "isLocal": isLocal, 'volume': volume, 'runOnBackground': runOnBackground });

And then receive this on the Android end and use it appropriately. Or something along those lines.

It'd be nice to have it on iOS as well, but since it's not a breaking change, we can merge this up and even release and then wait for someone with macbooks and idevices to come and help us out.

Thanks again for your contribution!

Closing due to lack of response, please feel free to re-open or contact me anytime :))


Disable masking on Aarch64 without SVE support

Masking is a catch-all transformation that only requires vector sizes to be provided to the vectorizer. This patch makes sure that we don't provide vector sizes to the vectorizer when we don't want to explicitly enable vector masking (e.g., Aarch64 without SVE support, at least for now).
benchmarks: x86_64

Hey @pzread, it looks like the x86 benchmarks were executed successfully but the report wasn't posted. Android ones seem to be failing due to a cancelation signal after a timeout. I run them both multiple times. Anything going on?

Masking is a catch-all transformation that only requires vector sizes to be provided to the vectorizer. This patch makes sure that we don't provide vector sizes to the vectorizer when we don't want to explicitly enable vector masking (e.g., Aarch64 without SVE support, at least for now).


Issue: autorot abilities can trigger while mounted

Combined with auto dismount on action use, you basically cannot mount and fly anywhere if you have an autorot trying to use an out of combat ability (e.g. peloton)
side note: I don't know if ai use of abilities while mounted (i.e. for mounts in duties with abilities) would be handled be the duty module or the autorot module. If it's the former then I assume this behaviour is entirely unintentional and could be blocked at the framework level. If it's the latter then not sure

after discussing with xan this does just seem to be a module specific problem and wouldn't really be solvable at the framework level (i.e. out of combat triggering actions could be desirable with auto dismount for fates). I'll leave the issue up for now in case you have an idea about it, otherwise I assume xan will patch the peleton issue in the problematic utility rotation.


Daffodil 2322 2210 bidi base

Addresses Daffodil-2322 and Daffodil-2210

@tuxji
Regarding formatting, DAFFODIL-2133 discusses one option for using scalariform to check to make sure code is formatted properly, and I think it can also make the changes. We could enable this check on GithubActions and cause a failure if it finds code that doesn't meet the guidelines. That way people submitting pull requests will see the issues and hopefully fix them before things get to review. It does mean we need to fix the entire code base to be consistent, which might be a big task.


Standardize theme color data

@parithon please close if I'm incorrect, but I think the object we're saving for a theme is different if the theme is a plist vs json.
Let's define what we want that theme object to look like so we can standardize it from either. I think we'll need that before using ML on the dataset.

You're not wrong. I do believe the colors property will be available in both cases but I don't have enough knowledge on the other aspects. I'll attempt to do some research.

From my limited research, it appears we should collect the following information:

type
colors
tokenColors

If my understanding is correct, .tmTheme or TextMate themes should consist of token colors. Therefore, I suggest we populate the end object as:
{
   type: 'vs-dark',
   colors: { ... any colors provided by the .json theme }
   tokenColors: { ... any tokenColors provided by the .json theme or the results of the .tmTheme parser }
}

It is important to note that the tokenColors may point to a .tmTheme file (which we should parse) or be an object with the attributes inline.

I agree

After looking through the color options in the API I'm thinking about simplifying what we store to just a dozen colors.


kube-vip daemonset for controlplane with different vip_interface names

Describe the bug
I'm using k3s HA with kube-vip, which is supported as the daemonset to generate pods
on multiple k3s master nodes. One of the master node has 'eth0' as the interface name,
and the other has name of 'enp3s0'. Since the 1st master started with the manifest for
'vip_interface' with the name of 'eth0', the 2nd node kube-vip-ds pod keep crashing
with error: fatal msg="eth0 is not valid interface, reason: get eth0 failed, error: Link not found".
Since there is no way to guarantee all the controlplane nodes will have the same interface names,
I would consider this as a bug if there is no workaround.
To Reproduce
Generate the manifest for k3s on 1st server.

k3s server -tls-san $VIP --cluster-init
kubectl apply -f https://kube-vip.io/manifests/rbac.yaml
curl -sL kube-vip.io/k3s | vipAddress=$VIP vipInterface=eth0 sh | tee /var/lib/rancher/k3s/server/manifests/vip.yaml
kubectl apply -f  /var/lib/rancher/k3s/server/manifests/vip.yaml

On the 2nd k3s server:

curl -sfL https://get.k3s.io | K3S_TOKEN= sh -s - server --server https://:6443$VIP --tls-san $VIP

Expected behavior
I'm not sure how this suppose to work, but since the 2nd master has a different name of interface, we have no way of modifying it.
Screenshots
On 2nd k3s master, log the error:
time="2023-05-05T05:14:58Z" level=info msg="Starting kube-vip.io [v0.5.10]"
time="2023-05-05T05:14:58Z" level=info msg="namespace [kube-system], Mode: [ARP], Features(s): Control Plane:[true], Services:[false]"
time="2023-05-05T05:14:58Z" level=info msg="prometheus HTTP server started"
time="2023-05-05T05:14:58Z" level=fatal msg="eth0 is not valid interface, reason: get eth0 failed, error: Link not found"
Environment (please complete the following information):

OS/Distro: [16.04.1 LTS]
Kubernetes Version: [v1.26.4+k3s1]
Kube-vip Version: [0.5.10]

Kube-vip.yaml:
apiVersion: apps/v1
kind: DaemonSet
metadata:
creationTimestamp: null
name: kube-vip-ds
namespace: kube-system
spec:
selector:
matchLabels:
name: kube-vip-ds
template:
metadata:
creationTimestamp: null
labels:
name: kube-vip-ds
spec:
containers:
- args:
- manager
env:
- name: vip_arp
value: "true"
- name: vip_interface
value: eth0
- name: port
value: "6443"
- name: vip_cidr
value: "32"
- name: cp_enable
value: "true"
- name: cp_namespace
value: kube-system
- name: svc_enable
value: "false"
- name: vip_address
value: 192.168.x.y
image: ghcr.io/kube-vip/kube-vip:v0.5.11
imagePullPolicy: Always
name: kube-vip
resources: {}
securityContext:
capabilities:
add:
- NET_ADMIN
- NET_RAW
- SYS_TIME
hostNetwork: true
nodeSelector:
node-role.kubernetes.io/master: "true"
serviceAccountName: kube-vip
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/master
updateStrategy: {}
status:
currentNumberScheduled: 0
desiredNumberScheduled: 0
numberMisscheduled: 0
numberReady: 0
Additional context
Looking for a workaround.

Remove the interface from the configuration and it will auto-detect on each node.

Cool @thebsdbox , let me try that. Does the kube-vip uses the 'default route' as a hint without an interface?

ok, i see this, that's fine:
		if initConfig.Interface == "" {
			log.Infof("No interface is specified for VIP in config, auto-detecting default Interface")
			defaultIF, err := vip.GetDefaultGatewayInterface()


Hello, world with a mojo source file

Description
Added a Hello World program for mojo language.  PR#40
Please review and consider merging this pull request. Additionally, I kindly request the addition of the Hacktoberfest and Hacktoberfest-Accepted labels to this pull request.
Thank you!
@akashchaudhary-git

Thanks for your great contribution @akashchaudhary-git

Hey @trishan9 can you please assign hacktoberfest label.
Thankyou

Done @akashchaudhary-git


Minor: Add more support for ScalarValue::Float16

Which issue does this PR close?

Closes #11083
Rationale for this change

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

🚀


Documentation update

In returning to the project with relatively fresh eyes, I realized this is a good opportunity to update our documentation. The planned user study may bring new attention to the repository, and it is a good idea to have our documentation and startup process cleaned up.
This PR does the following:

[x] Split main Readme into two, one of which is in the dev folder and contains advanced instructions. The top-level Readme now explains the project at a high level
[x] Remove an unused template file
[x] Document the nuance of the pydantic version
[x] Make a management command to make a client Application object (this removes the startup pain of creating this object in the admin interface. It also allows us to use a dynamic client id rather than the hard-coded one we kept for a while).
[x] Update setup.py (Resolves #320)

@manthey Would you mind testing the Readme instructions from scratch during your review? I want to make sure there are no difficulties for a new user spinning up a local instance.


App crashes, wen searching with DigitalComicMuseum installed

Source information
DigitalComicMuseum
Source language
English
Steps to reproduce
I can searching in the pinned repo, but when i switch to all the App chrashes
Expected behavior
No crash
Actual behavior
App crashes
Mihon/Tachiyomi version
Beta R6647
Android version
13
Other details
App version: 0.16.5-6674 (standard, https://github.com/mihonapp/mihon/commit/dbcc4a7d714cf36b48a41d6074ef671f3c039823, 7, 2024-05-04T21:34:28Z)
Android version: 13 (SDK 33; build TKQ1.221013.002 test-keys)
Device brand: Xiaomi
Device manufacturer: Xiaomi
Device name: nabu (nabu_eea)
Device model: 21051182G
WebView: Android System WebView 124.0.6367.123
java.lang.Throwable: java.lang.NoSuchMethodError: No direct method (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V in class Lokhttp3/MultipartBody$Builder; or its super classes (declaration of 'okhttp3.MultipartBody$Builder' appears in base.apk!classes3.dex)
at eu.kanade.tachiyomi.extension.en.digitalcomicmuseum.DigitalComicMuseum.searchMangaRequest(DigitalComicMuseum.kt:72)
at eu.kanade.tachiyomi.source.online.HttpSource$$ExternalSyntheticLambda5.call(Unknown Source:27)
at rx.internal.operators.OnSubscribeDefer.call(SourceFile:2)
at rx.internal.operators.OnSubscribeDefer.call(SourceFile:1)
at rx.Observable.unsafeSubscribe(Unknown Source:9)
at rx.internal.operators.OnSubscribeMap.call(SourceFile:4)
at rx.internal.operators.OnSubscribeMap.call(SourceFile:1)
at rx.internal.operators.OnSubscribeLift.call(SourceFile:4)
at rx.internal.operators.OnSubscribeLift.call(SourceFile:1)
at rx.Observable.subscribe(SourceFile:24)
at tachiyomi.core.common.util.lang.RxCoroutineBridgeKt.awaitSingle(Unknown Source:27)
at eu.kanade.tachiyomi.source.online.HttpSource.getSearchManga(Unknown Source:4)
at eu.kanade.tachiyomi.ui.browse.source.globalsearch.SearchScreenModel$search$3$1$1$page$1.invokeSuspend(Unknown Source:34)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:11)
at kotlinx.coroutines.DispatchedTask.run(Unknown Source:110)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [CoroutineName(Screen#691dc89e-b45b-491a-b3a8-1477f83eb89e:eu.kanade.tachiyomi.ui.browse.source.globalsearch.GlobalSearchScreenModel:default), StandaloneCoroutine{Cancelling}@762db04, Dispatchers.IO]
--------- beginning of system
05-10 14:20:14.075 27703 27703 E MiuiMultiWindowUtils: initFreeFormResolutionArgs failed, device is nabu
05-10 14:20:37.747 27711 27711 E MiuiMultiWindowUtils: initFreeFormResolutionArgs failed, device is nabu
--------- beginning of main
05-10 15:39:08.884 27711 27711 E FileUtils: err write to mi_exception_log
05-10 15:39:09.047 27711 27711 E FileUtils: err write to mi_exception_log
05-10 15:39:09.087 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.119 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.160 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.178 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.193 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.201 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.209 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.221 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.229 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.235 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.244 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.253 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.261 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.269 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.276 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.287 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.293 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.303 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.310 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.320 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.328 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.335 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.345 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.354 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.361 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.369 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.379 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.387 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:09.393 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
05-10 15:39:11.577 27711 27711 E FileUtils: err write to mi_exception_log
05-10 15:39:11.668 27711 27711 E FileUtils: err write to mi_exception_log
05-10 15:39:11.692 27711 21351 E FrameEvents: updateAcquireFence: Did not find frame.
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I have updated the app to version 0.15.3.
[X] I have updated all installed extensions.
[X] I have tried the troubleshooting guide.
[X] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I will fill out all of the requested information in this form.

This is known and limited to the Beta of that app, and there is already a fix that has been merged, will be in the next beta release

Tank you!

already fixed in beta r6685


Plugin Yaml Contract to be supported by optimus

As part of this new yaml contract Optimus expects questions for cli interface to the user to be pulled out of the optimus server and provided as Yaml.
Extra information of the plugin captured in the plugin info like Executor Image, Plugin Version will be maintained outside of plugin server in a yaml (metadata) file.
Out of Scope

Changes on the transformer artifacts.

Ref RFC - Simplify Plugins

This is already covered as part of other stories


Build Failing

Build is failing because of link https://www.scruminc.com/velocity/ that requires a password.
We should probably remove it or replace it for a definition of velocity.

It's very odd, even the base site now requests a pwd... Seems like something gone wrong, not just a paywall thing... :thinking:

Problem is fixed this morning


Binary releases are missing licenses

The main LICENSE file of the source stipulates:

Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

But I can't find the LICENSE within the binary archives released on github
(e.g. https://github.com/sbt/sbt/releases/tag/v1.1.6)
Also I guess the licenses under the licenses directory should also be included.

Duplicate of #1722. We should try to fix this in the next release.


MOVE destination not parsed correctly

When renaming using a Windows client (explorer) the MOVE method doesn't work.
The log shows the following:
515 client sent invalid "Destination" header: "https?://.*/test/

The origin lies here:
https://github.com/dgraziotin/docker-nginx-webdav-nononsense/blob/d6ba5d687a4872b1416715529712e2f6db3208e9/nginx.conf#L109
Is this a documentation error, or should it be working like that?

Forgive me my ignorance, but why not doing something simple like this:
      if ($parse ~ ^MDR(.*[^/])$) {
        set $destination "${destination}/";
        more_set_input_headers "Destination: $destination";
      }

As far as I understand, by entering the if block, all checks are done and all you want to do is just append a trailing slash to the destination.

Hi, and thank you for reporting the issue. No ignorance at all, in fact, I delegated the config file to the one proposed by Rob Peck here. I have not tested this under Windows. But, let's try to fix it.
Your suggestion makes sense to me. As you are using Windows (apparently), could you try to run the image again using the modified nginx.conf and report here if it works? If it does, I will try it under Linux and macOS.

I'm using both windows and Linux, that's the reason I set up Webdav on my home server.
The Rob Peck config has the server uri hardcoded:
if ($parse ~ ^MDR(.*[^/])$) {
    set $mvpath $1;
    set $destination "https://dav.example.com/${mvpath}/";
    more_set_input_headers "Destination: $destination";
}

In your config the rewrite says set $destination "https?://.*/${mvpath}/"; but I guess you copied .* from the regex to the rewrite. Using my modification it works.
(You're still missing PROPPATCH which causes a lot of issues in windows but that is a different issue which I'm still trying to solve, I'll keep you updated.)

This one is working for me, on Windows and Ubuntu.
Mind that I don't use SSL nor authentication (serving webdav only on the home LAN). Furthermore, I'm using rootless Podman on a Debian base image.
# nginx run using USER directive in Containerfile
#user webdavuser webdavuser;

worker_processes 4;
pid /webdav/nginx.pid;

events {
  worker_connections  1024;
}

http {
  # running with unprivileged user so I have no access to this file
  #include    /etc/nginx/mime.types;
  dav_ext_lock_zone zone=openfileshare:10m;

  send_timeout 3600;
  client_body_timeout 3600;
  keepalive_timeout 3600;
  lingering_timeout 3600;
  client_max_body_size 10G;

  server {
    #server_name localhost;
    listen 8080;
    root /share;

    if ($request_method = MKCOL) {
      rewrite ^(.*[^/])$ $1/ break;
    }

    if (-d $request_filename) {
      rewrite ^(.*[^/])$ $1/ break;
    }

    location ~ \.(_.*|DS_Store|Spotlight-V100|TemporaryItems|Trashes|hidden|localized)$ {
      access_log  off;
      if ($request_method = PUT) {
        return 403;
      }
      return 404;
    }

    location ~ \.metadata_never_index$ {
      return 200 "Don't index this drive, Finder!";
    }

    location / {
      # Not using authentication
      #auth_basic "Restricted";
      #auth_basic_user_file htpasswd;

      dav_methods PUT DELETE MKCOL COPY MOVE;
      dav_ext_methods PROPFIND OPTIONS LOCK UNLOCK; # don't include PROPPATCH, we only added fake support so it isn't recognized
      dav_access user:rw group:rw all:rw;
      dav_ext_lock zone=openfileshare;
      create_full_put_path on;

      fancyindex on;
      fancyindex_exact_size off;
      fancyindex_localtime on;
      fancyindex_name_length 255;

      # CORS, from https://github.com/fraoustin/webdav
      add_header 'Access-Control-Allow-Origin' '*' always;
      add_header 'Access-Control-Allow-Credentials' 'true' always;
      add_header 'Access-Control-Allow-Methods' 'GET, HEAD, POST, PUT, OPTIONS, MOVE, DELETE, COPY, LOCK, UNLOCK' always;
      add_header 'Access-Control-Allow-Headers' 'Authorization,DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Accept-Charset,X-Accept,origin,accept,if-match,destinatio$      add_header 'Access-Control-Expose-Headers' 'ETag' always;
      add_header 'Access-Control-Max-Age' 1728000 always;

      if ($request_method = 'OPTIONS') {
        add_header 'Content-Type' 'text/plain charset=UTF-8';
        add_header 'Content-Length' 0;
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' 'GET, HEAD, POST, PUT, OPTIONS, MOVE, DELETE, COPY, LOCK, UNLOCK';
        add_header 'Access-Control-Allow-Headers' 'Authorization,DNT,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Accept-Charset,X-Accept,origin,accept,if-match,destinat$        add_header 'Access-Control-Expose-Headers' 'ETag';
        add_header 'Access-Control-Max-Age' 1728000;
        return 204;
      }

      set $destination $http_destination;
      set $parse "";

      if ($request_method = PROPPATCH) { # unsupported but adds fake support to keep Windows happy
        add_header Content-type 'text/html';
        return 207 '<?xml version="1.0"?><a:multistatus xmlns:a="DAV:"><a:response><a:propstat><a:status>HTTP/1.1 200 OK</a:status></a:propstat></a:response></a:multistatus>';
      }

      if ($request_method = MOVE) {
        set $parse "${parse}M";
      }

      if ($request_method = COPY) {
        set $parse "${parse}M";
      }

      if (-d $request_filename) {
        rewrite ^(.*[^/])$ $1/ break;
        set $parse "${parse}D";
      }

      if ($destination ~ ^https?://.*/(.*)$) {
        set $ob $1;
        set $parse "${parse}R${ob}";
      }

      if ($parse ~ ^MDR(.*[^/])$) {
        #set $mvpath $1;
        #set $destination "https?://.*/${mvpath}/";
        set $destination "${destination}/";
        more_set_input_headers "Destination: $destination";
      }
    }
  }
}

@bertmelis apologies for the delay. Could you test branch move-5 on your Windows systems? Alternatively, I pushed dgraziotin/nginx-webdav-nononsense:move-5 on the Docker Hub, same codebase.

Even with dgraziotin/nginx-webdav-nononsense:move-5 I am unable to Move Files.

@Akjo4712 thank you! I guess it's time for me to virtualize Windows and look at it.

Fixed in 77a4c45 but wait for a fix for #15 before using.


wyebadblock: new package at git-version

Description of package
Wyebadblock is a adblock extension for webkit2gtk based browsers.
See github page for documentation.
Installed manifest of package
/var/db/kiss/installed/wyebadblock/version
/var/db/kiss/installed/wyebadblock/sources
/var/db/kiss/installed/wyebadblock/post-install
/var/db/kiss/installed/wyebadblock/manifest
/var/db/kiss/installed/wyebadblock/depends
/var/db/kiss/installed/wyebadblock/checksums
/var/db/kiss/installed/wyebadblock/build
/var/db/kiss/installed/wyebadblock/
/var/db/kiss/installed/
/var/db/kiss/
/var/db/
/var/
/usr/lib/wyebrowser/adblock.so
/usr/lib/wyebrowser/
/usr/lib/
/usr/bin/wyebab
/usr/bin/
/usr/

New package

[x] Latest upstream version.
[x] I agree to maintain this package.
[x] I agree to notify @dylanaraps if I can no longer maintain this package.

Existing package

[ ] I am the maintainer of this package.

updated

:+1:


endpoint: Support hashing C headers with very long lines

Avoid hashing failures due to very long lines, which resulted in
those warning log messages:
... level=warning msg="Unable to hash header file" ... error="bufio.Scanner: token too long"

Fixes: a5d98cc5eb0117f748b45a9f1a39199c240d8256
Signed-off-by: Romain Lenglet<EMAIL_ADDRESS>

test-me-please

be aware the BASE64 line can reach 4000 characters or more

Yes, I've been hitting iobuf.Scanner's buffer limits. That's why I'm moving to iobuf.ReadString, which doesn't have any limits.

Green build: https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-Validated/2517/
Will move to a more memory-efficient approach using ReadLine instead of ReadString. ReadLine uses 4KiB buffers, instead of reading whole lines into memory.

test-me-please

Green build with the more memory-efficient implementation: https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-Validated/2520/
$ grep -r 'Unable to hash header file' test_results | wc -l
       0

$ grep -r 'BPF header file unchanged' test_results | wc -l
      13

Added a unit test.

test-me-please

05:07:35 ... obtained string = ""
05:07:35 ... expected string = ""

nginx

@tgraf I believe you mean ngnix ?

test-me-please

The test got interrupted for some reason. All Jenkins steps were interrupted at the same time. There was no failure in any step.
https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-Validated/2528/flowGraphTable/

test-me-please

Last CI build is in a weird state:
https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-Validated/2530/flowGraphTable/
Jenkins steps are not finishing.
07:53:27 Cannot contact jenkins-workspace-0: java.lang.InterruptedException

@rlenglet  was due some work in Jenkins. Trigger again please ;-)

test-me-please


Added hello world text

Ticket:
xyz
Purpose of this PR:

Added a 'Hello World' component as an example of a simple React Component
Also using this PR to demonstrate how to raise a PR, review it, and merge code.

xxx


Make luigi package more flake8 compliant

Motivation of this PR was to make flake8 checks as strict as possible.
Before:
commands = flake8 --max-line-length=384 --exclude=doc,test,luigi/six.py
  flake8 --max-line-length=100 --ignore=E265 doc
  flake8 --max-line-length=252 --ignore=F401,F841 test

After:
commands = flake8 --max-line-length=160 --exclude=doc,luigi/six.py
   flake8 --max-line-length=100 --ignore=E265 doc

This will protect luigi package from govnokod.
In future max-line-length should be less then 120 chars for better readability.

Awesome progress, for future reference, this a continuation of #1174.

Thanks so much for caring about the code quality of luigi! :)

What's "govnokod" by the way? I only found results in Russian. :)

Thanks so much for caring about the code quality of luigi! :)
We use luigi and loved it. I wish bright future for project. You are welcome.

What's "govnokod" by the way?
Well.. It is very specific term. Usually govnokod generated by anything but not developers head. It is like monkey code but a little bit different.

Talk is cheap. I show you the code: http://govnokod.ru :-))

This is so awesome! Thanks :)


The changeLanguage will cause rerender

Describe the bug
My Application Page will save the language type in the localStorage when the user switch language.The purpose of this feature is to ensure that users do not need to switch languages again the next time they enter the page after switching languages.I do the changelanguage in _app.js
// pages/_app.js
componentDidMount() {
    const language = localStorage.getItem('language')
    if (language) i18n.changeLanguage(language)
  }

But it will cause the page Rerender and fetch Data.how can i fix it ?
Occurs in next-i18next version
"next": "^9.0.5",
"next-i18next": "^1.1.2",

I suggest you look through the documentation here instead of trying to create your own implementation.

Sorry, I can't understand you. Should I use the options written in the documentation you provided to pass into the config of the next-i18next constructor

Yes, exactly.


hasty.attribute.Attribute.edit() - Project ID is None + Optional parameters required

When trying to use the function to edit an attribute I ran into two issues.
Issues:

The two optional arguments description and norder are actually required
TypeError: edit() missing 2 required positional arguments: 'description' and 'norder'

Running the function will give you an error 500 due to the project id being None
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: https://api.hasty.ai/v1/projects/None/attributes/9883afc3-2a5d-44b5-abd0-c83e7f37bc40

Solutions:

Use Optional from typing to make the two parameters optional:
description: Optional[str] = None, norder: Optional[float] = None
You could also do in two other ways: description: str = None or even description: Union[str, None]
It comes down to just a preference at the end, just think the Optional makes the code clear. :)
It would be good to apply this everywhere anything is optional as I noticed the issue in other functions in the API.
More than happy to submit a pull request if you'd like.

My quick fix was to add the project id as a required argument, but this is just a temporary workaround.
You would need to look into this as this issue might be present in other functions in the API.

hi @DevGlitch! Thank you for rising these issues. Let me find someone who can help you with and we'll prioritize for the next releases.


"local" loading of the app fails because of the CORS policy attributes in

When running the diceware js application locally via the browser (file://....), the loading of the CSS and JS files fails with the following CORS policy errors (recorded on Chrome latest version, but FF also fails)

Removing both the integrity="sha384-...." and crossorigin="anonymous" tags on all JS and CSS fixes the issue.

I assume these need to be rehashed.

for those of you who are trying to do what garz is saying, it works, I just did it. Just open up index.html, search for integrity, and you will see 26 matches, each something like this, but each differing:
integrity="sha384-mXQoED/lFIuocc//nss8aJOIrz7X7XruhR6bO+sGceiSyMELoVdZkN7F0oYwcFH+" crossorigin="anonymous"
Just delete those and save the file and you are good to go!
Thanks so much garz, how did you figure that out just by seeing that error on the CORS policy?

I can confirm that locally hosted page is completely broken in Chrome & Chromium unless these integrity tags are removed. However, it worked okay in Firefox.

I've fixed the improper integrity hashes (fbc65912a14324d03a530362cec3c08afa82c9c9). I am looking into the issue with Chrome throwing CORS related errors.
The proper workaround for this is not to remove the integrity hashes, but to run the local clone of the repo in a tiny webserver from the cloned directory. For example if your system has Python installed (many do by default) you should be able to do python -m SimpleHTTPServer 8080 and then visit http://localhost:8080 in your local browser which will automatically serve the index.html file. Another great alternative is https://caddyserver.com/

Cross origin requests are required to validate the integrity hashes. This precludes running this application from a file:/// URL. It should therefore be run under a small local web server process as I described above. Removing the integrity checks removes an important safety factor.
I've added instructions to the README for running it this way (c5f1619edfd15a62a203620a8b90a2008aa880f0).
See:
https://stackoverflow.com/questions/41965066/access-to-image-from-origin-null-has-been-blocked-by-cors-policy
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script
https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes

This makes total sense! and having python installed is a given nowadays so this this not a real issue.
Thank you


added line tool

cool :) I'll try this out soon! Sorry for the delay :D

Thanks @sreevardhanreddi !!

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Cask request: Cura

Cask details
Name: Cura 3D printing slicing software (GUI)
Homepage: https://ultimaker.com/en/products/cura-software
Download URL: https://ultimaker.com/en/products/cura-software/download-request/134
Description: Convert 3D models into Gcode for a 3D printer to print

Cura

Yes, I just found out. Sorry about that.
I typed
brew search cura
I guess it didn't search the cask section.
Ignore this issue please. Thanks

Ignore this issue please. Thanks

No problem. You can close the issue yourself using the button below. ⬇


API to grab keystrokes before they are entered in editor

In VS Pro you can grab the keystrokes before they are entered in editor, this is useful to make changes in the behavior of them.
In my case I want to port my extension "Smart Semicolon", that is based in the function that exists in Eclipse IDE.
When you press semicolon it is put in the end of line without changing the caret position.
If this API exists, sorry, but I have searched without finding a thing.

Internally everything is command driven and the command is called type. So, if you register that and make it call default:type then you can intercept and trigger typing in the editor. You can take a look at the VIM extension that uses this.
Alternatively, esp. as intercepting all typing is dangerous, you can register the ; as keybinding to an arbitrary command


[pycodestyle] Implement redundant-backslash (E502)

Summary
Implements the redundant-backslash rule (E502) from pycodestyle.
Test Plan
New fixture has been added
Part of #2402

One more step towards https://github.com/astral-sh/ruff/discussions/9057 🎉


Joy Example: A row of circles

With Joy.Shape, create a row of four circles equally spaced with the previous one. There's a similar example with plain graphics that needs to be ported to joy.

Hi @Sudha247 , I would like to work on this.

Sure, please go ahead.

Merged: https://github.com/Sudha247/ocaml-joy/pull/33


to_string, to_channel: add option to output XML declaration

I'd like to write an XML document using Ezxmlm that includes the XML declaration. I've realized that Ezxmlm currently always passed ~decl:false to Xmlm.make_output, so this PR adds an optional parameter to Ezxmlm.to_string and Ezxmlm.to_channel that allows one to set decl to true.
This optional parameter defaults to false, so this probably will not break existing code. I'm happy to change the way this is passed through to Xmlm in this PR, we only need a way of setting decl to true.
Signed-off-by: Gabor Igloi<EMAIL_ADDRESS>

Thank you for this PR! Releasing it shortly.


chore: ignore stories from coverage

Pull Request Test Coverage Report for Build<PHONE_NUMBER>4
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 85.828%

Totals

Change from base Build<PHONE_NUMBER>0:
0.2%

Covered Lines:
13420

Relevant Lines:
15431

💛  - Coveralls


Why my CocoaPods icon is orange？

:question: Question

Why my CocoaPods icon is orange？I observed that other people's icon was blue.
I have wrote this in README
[![Version](https://img.shields.io/cocoapods/v/ZYDebugo.svg?style=flat)](https://cocoapods.org/pods/ZYDebugo)

You can check it on this website.

@chris48s OK, I see. Thank you very much. 🙏


Doesn't work type checking for function arguments

TypeScript Version:  1.8.0 / nightly (2.0.0-dev.201xxxxx)
Code
function fn(options: { a?: number, b?: boolean }) {
	return options.a || 1;
}

fn('foo');

Expected behavior:
Must be an error in
fn('foo');

Actual behavior:
No errors, TS compiler say "OK".

I guess what's happening here: since a and b are optional, the resulting type is similar to {}. Now {} in TypeScript is a type with no members whatsoever, so anything will cast to it.
Indeed it's possible to write:
'foo' as {}; // ok

As @nippur72 points out, this is a consequence of function argument bivariance.
In this case, the type string satisfies the requirements of {a?: number, b?: boolean}, since no particular properties are required to do so. Thus due to bivariance, it's valid to pass a string as the options argument.
There are issues out there where this is being discussed, such as #1394 and #10717.

An interface with all optional arguments is just like one that is empty. an empty interface matches anything, including strings. see https://github.com/Microsoft/TypeScript/wiki/FAQ#why-are-all-types-assignable-to-empty-interfaces for details.

It is not intuitive behavior. Flowjs works as expected https://flowtype.org/try/#0GYVwdgxgLglg9mABMMAKOAHWCDOAuRAb0QEMB+AsEAWwCMBTAJwBpFaK244AbekpAL4BKIgChG9KCEZJM2MDgB0JRAB9ViAIwBuRKIGjRKVAHJgXE0O1A

@mhegazy you right, however at the same time TS disallows "extra" properties:
function fn(options: { a?: number, b?: boolean }) {
    return options.a || 1;
}

fn('foo'); // ok
fn({ c: 1; }); // error even though { c: number; } is assignable to { a?: number; b?: boolean; }

the reason you do this is to catch common errors, right? so must be done here.


XML report output is missing for client tests

Example app
https://github.com/imajus/meteor-browser-tests-issue
Reproduction steps
meteor npm install
meteor npm test

Expected result
Tests must fail for both server and client runs, a folder called test-results must be created and contain exactly two files: server.xml and client.xml.
Actual result
Folder test-results is created but contains only server.xml file, and client.xml is missing.

Do you have a work around for this bug?


Bug: TradingEnvironment increments action_space with object action_scheme

When a trading environment is created with a string action scheme like action_scheme='simple', the size of its action_space remains the same when it is recreated (cell rerun). But when an object is used instead, that value increments through cell reruns. Recreating the trading environment is plausible whether in notebooks or scripts so this behavior could lead to unexpected results. To reproduce the error, post the following code in 4 notebook cells and follow comments.
# CELL 1
from tensortrade.actions import SimpleOrders
from tensortrade.environments import TradingEnvironment
from tensortrade.instruments import USD, BTC
from tensortrade.wallets import Wallet, Portfolio
from tensortrade.data import Stream
from tensortrade.exchanges import Exchange
from tensortrade.exchanges.services.execution.simulated import execute_order

action_scheme = SimpleOrders()
exchange = Exchange('exchange', service=execute_order)(
    Stream('USD-BTC', range(100))
)
portfolio = Portfolio(USD, [
    Wallet(exchange, 300 * USD),
    Wallet(exchange, 0 * BTC)
])

print('Number of Actions:', len(action_scheme.actions))

# CELL 2 (Case 1): Action_scheme is string
# Run this cell multiple times and observe the printed values.
env = TradingEnvironment(
    portfolio=portfolio,
    exchanges=[Exchange(name='Exchange', service=execute_order)],
    action_scheme='simple',
    reward_scheme='simple',
)
print('env > action_space:', env.action_space)
print('env > action_scheme > action_space:', env.action_scheme.action_space)

# CELL 3 (Case 2): Action_scheme is an object
# Run this cell multiple times and observe the printed values.
env = TradingEnvironment(
    portfolio=portfolio,
    exchanges=[Exchange(name='Exchange', service=execute_order)],
    action_scheme=action_scheme,
    reward_scheme='simple',
)
print('env > action_space:', env.action_space)
print('env > action_scheme > action_space:', env.action_scheme.action_space)

# CELL 4
print('Number of Actions:', len(action_scheme.actions))  # result different from 1st cell

Fixed in commit b60e22eeb30dc064c44b3e0b4413b76dd0c8c14d.


Install composer as a container dependency?

To minimize the requirements for getting setup with Docker and development at Venveo, we should consider adding support for composer inside of the containers where PHP will be running.
Thoughts @Mosnar and @carlolaitano?

I fully support this. I've seen people straight up commit composer files into repos, and it's not clean, but it's super convenient.

I'm for whatever will be easier to set up for most developers. The more straight-forward our environment setups are, the more we can all concentrate on producing quality code :). I say yes
Carlo Laitano
Lead Designer
<EMAIL_ADDRESS>http://www.venveo.com/
On Sun, Nov 13, 2016 at 1:41 PM Ransom
<
mailto:Ransom<EMAIL_ADDRESS>
wrote:

a, pre, code, a:link, body { word-wrap: break-word !important; }
I fully support this. I've seen people straight up commit composer files into repos, and it's not clean, but it's super convenient.
—
You are receiving this because you were mentioned.
Reply to this email directly,
https://github.com/venveo/docker-baseimage/issues/8#issuecomment-260207238
, or
https://github.com/notifications/unsubscribe-auth/AANQebbriaSUS9JrK0cCF_uNxgtnbn04ks5q92fggaJpZM4KuM4H
.

Lets do it! These containers are not meant to be used in production, so the xdebug (in 8a9be0399c5b54f630df12629e6247039ac2d983) that @Mosnar added would work well with having composer in the container.