Turn devenv into a library

This is a small example of how to turn the devenv binary into both a library and a binary. The reason this works is that the devenv/Cargo.toml file would allow you to specify one or more binaries, and only a single library. However, because we are using the default values for everything, we do not need to explicitly define these sections. The library entry point will be devenv/src/lib.rs.
In the lib.rs file, we specify that we also want to use the log module. So we define and export this module. So now anything that imports the devenv package can just use devenv::log::* in order to access the pieces defined inside of that module.
There is a problem including the command module since main.rs defines an App struct, and then the command module defines an implementation of that struct. The problem here being that lib.rs does not define the App struct, so when the command module has use crate::App, it is not defined as it is in the case of the devenv binary.

I assume the next step is we split the cli stuff and App?

Yes, we will need to restructure the existing code so that we can bring in the different pieces that you are looking to use within the run tests project.
Is he more than happy to help with this effort as well.
On Mon, May 27, 2024, at 5:45 PM, Domen Kožar wrote:

I assume the next step is we split the cli stuff and App?
—
Reply to this email directly, view it on GitHub https://github.com/cachix/devenv/pull/1235#issuecomment-2134074842, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFXJQWPXWKMMSREPZQWHYDZEOSOPAVCNFSM6AAAAABILYD6NKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZUGA3TIOBUGI.
You are receiving this because you authored the thread.Message ID: @.***>


DMiner example is broken on linux

drawCustomOpenGLScene is called for non-OpenGL DrawBuf

OpenGL seems to be generally broken for Linux


Separate Analytic results

These changes are related to issue #37 which aims at Separate analytic results out from json files.

@mahaalbashir
1: Looking through the notebook, the formative the regression reports are presented in there is different to how they appear in the first thejson, then in turn ther csv files.
Could we fix those please.
2: You've got three cases covered by try/except blocks for when you check whether the outputs directory

exists
doesn't;t exist but can be created
Doesn't;t exist and can't be created

In the last case, should we output a warning to that effect and saying "outputs wil be written to current directory instead" then rest the path accordingly

It would be better to use the logger to send messages as warnings to the user (and get stored in a log file) than to just use print() statements which can easily get lost.


Update private-clusters.md

" >" is included at the end of Button text of the actual UI.
-Before-
Next: Resource
-After-
Next: Resource >
FYI   https://learn.microsoft.com/en-us/azure/azure-monitor/logs/media/private-link-security/create-private-endpoint-basics.png
-Before-
Next: Virtual Network
-After-
Next: Virtual Network >
FYI   https://learn.microsoft.com/en-us/azure/azure-monitor/logs/media/private-link-security/create-private-endpoint-resource.png
-Before-
Next: DNS
-After-
Next: DNS >
FYI   https://learn.microsoft.com/en-us/azure/azure-monitor/logs/media/private-link-security/create-private-endpoint-virtual-network.png
-Before-
Next: Tags
-After-
Next: Tags >
FYI   https://learn.microsoft.com/en-us/azure/azure-monitor/logs/media/private-link-security/create-private-endpoint-dns.png

@schaffererin
Can you review the proposed changes?
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Hi, @shigeooooooooooo! Thanks for your commitment to maintaining high quality AKS documentation.
The right-angle brackets are to help abbreviate simple sequences (for example: "Select Accounts > Other accounts > Add an account"). Including them in both places might look a bit messy and redundant, and I do think the documentation still clearly outlines the selections for customers.
I'm going to close this PR. Thanks again!
#please-close


Database Error with user_pseudo_id on 4.0.0

Hi, thanks for developing the package.
After upgrading to 4.0.0, I started having errors related to user_pseudo_ids. I could confirm the issue doesn't happen with 3.2.1.
I am using frequency daily with static_incremental_days set to 3.
Error log:
02:35:18  Database Error in model fct_ga4__pages (models\marts\core\fct_ga4__pages.sql)
02:35:18    Unrecognized name: distinct_user_pseudo_ids at [87:98]
02:35:18    compiled Code at target\run\ga4\models\marts\core\fct_ga4__pages.sql
02:35:18
02:35:18  Database Error in model fct_ga4__sessions_daily (models\marts\core\fct_ga4__sessions_daily.sql)
02:35:18    Unrecognized name: user_pseudo_id at [82:10]
02:35:18    compiled Code at target\run\ga4\models\marts\core\fct_ga4__sessions_daily.sql
02:35:18
02:35:18  Database Error in model stg_ga4__sessions_traffic_sources_last_non_direct_daily (models\staging\stg_ga4__sessions_traffic_sources_last_non_direct_daily.sql)
02:35:18    Unrecognized name: client_key at [23:5]
02:35:18    compiled Code at target\run\ga4\models\staging\stg_ga4__sessions_traffic_sources_last_non_direct_daily.sql

The models you mentioned are incremental. Can you try rebuilding them with a full refresh to see if that fixes the issue?

Thank you! The issue is resolved by setting +full_refresh: true to all models under ga4.


1.36 broke custom Tasks to run on split terminal if no terminal is active

Hi
I have been using a custom task to group some tasks that I run daily on a split terminal. This was possible since version 1.31.1 introduced the "group" attribute on presentation.
Update: I usually kill any terminal before running this, and today with update 1.36 this stopped working, tasks run on dedicated terminal and VSCode shows a tooltip with "No enough space to split terminal" (which is totally nonsense as I have a 2560px display), and when I kill the terminals an error "Should never try to resolve undefined" appears and also on DevTools.
If I already have a terminal open and run my custom Task, then it works fine as before!
This is my tasks config:
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "DW Utils Watch",
            "type": "shell",
            "command": "dw-utils watch",
            "problemMatcher": [],
            "presentation": {
                "echo": true,
                "reveal": "always",
                "focus": false,
                "panel": "dedicated",
                "showReuseMessage": true,
                "clear": false,
                "group": "GroupA"
            }
        },
        {
            "label": "Watch-Vue",
            "type": "shell",
            "command": "gulp watch2",
            "problemMatcher": [],
            "presentation": {
                "echo": true,
                "reveal": "always",
                "focus": false,
                "panel": "dedicated",
                "showReuseMessage": true,
                "clear": false,
                "group": "GroupA"
            }
        },
        {
            "label": "Watchers",
            "type": "shell",
            "problemMatcher": [],
            "dependsOn": [
                "DW Utils Watch",
                "Watch-Vue"
            ]
        }
    ]
}

VSCode Version: 1.36.0 (user setup)
OS: Windows_NT x64 10.0.18362

Does this issue occur when all extensions are disabled?:
Yes
Any ideas??
Thanks

@Tyriar this appears to be a timing issue. At the time that tasks gets the terminal instance, it hasn't actually been finished being created yet.

The "Should never try to resolve undefined" is unrelated to the split terminal, but should also be fixed.

@Tyriar it's a little hacky, but as a simple fix for the terminal splitting I can waitForTitle on the first terminal. It seems that be the time it has a title it also has a height and width.

To verify kill all your integrated terminals then run task three:
        {
            "label": "one",
            "command": "sleep 11",
            "type": "shell",
            "problemMatcher": [],
            "presentation": {
                "group": "one"
            }
        },
        {
            "label": "two",
            "command": "sleep 12",
            "type": "shell",
            "problemMatcher": [],
            "presentation": {
                "group": "one"
            }
        },
        {
            "label": "three",
            "type": "shell",
            "problemMatcher": [],
            "dependsOn": [
                "one",
                "two"
            ]
        },

Verify that you see tasks one and two in split terminals next to each other and that there are no task related errors in the console.

Verified on Linux.


introduce All

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 12 (0.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.2%) to 14.324%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

hi.go
0
12
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.2%

Covered Lines:
162

Relevant Lines:
1131

💛  - Coveralls


Can I use it? because it is not working now..

I am not sure it is available or not now because there are some errors to make a clone for "cnn" and also it is impossible to get the codes as a public user.
Thanks!

It looks working
The reason why it was not working is that the submodule of "cnn" have changed to "dynet"
So I tried to download old-version of "cnn" which can download in this link (https://github.com/clab/dynet/tree/6b4b841a481a459a10633e92ff0abe760ba79403)
So if you want to use this code. Do not follow the first part of guide (installing "cnn" by git submodule)
Just install "cnn" by in the link. and then try again.

Sorry for not responding to this sooner! Somehow, I didn't receive an email notification.
Graham Neubig has kindly contributed a fix for this. Please let me know if this is still a problem.

It has been solved by changing cnn to dynet. Thanks for Ammar and Graham Neubig :)


JFXDialogLayout setBody, setActions, setXXX, is it a bug?

Hi there,
In implementing JFXDialogLayout.setBody, why don't you call getChildren().setAll instead of getChildren().addAll? Or why did you name the method as setBody rather than addBody?
I know you are using StackPane and I know what it does when you add children to it, however, in my opinion, the method names are misleading anyway:
public void setBody(Node... body) {
    this.body.getChildren().addAll(
}

yeah, you are right the method addAll must be replaced with setAll


how to redirect url if add '/' to same state in ui router

Actually state url is http://localhost:3001/admin-login#/app/dashboard
new url : http://localhost:3001/admin-login#/app/dashboard/
if i add '/' to the url it has to redirect to same old url
how to redirect in ui router

I think you are looking for strictMode
http://angular-ui.github.io/ui-router/site/#/api/ui.router.util.$urlMatcherFactory
http://bit.ly/UIR-SOF

Thank you so much


Error: Model "Customer" uses unknown mixin: ChangeHistory

loopback version: 3.28
Configration is OK
{
"_meta": {
"sources": [
"loopback/common/models",
"loopback/server/models",
"../common/models",
"./models"
],
"mixins": [
"loopback/common/mixins",
"../node_modules/loopback-changes-history-mixin",
"../common/mixins"
]
}
}
{
"name": "Person",
"properties": {
"name": "string",
"email": "string",
"status": "string",
"description": "string"
},
"mixins": {
"ChangeHistory": true
}
}
BUT
Error: Model "Person" uses unknown mixin: ChangeHistory     at MixinProvider.applyMixin (/Users/Desktop/backend/node_modules/loopback-datasource-juggler/lib/mixins.js:50:13)     at ModelBuilder.defineClass [as define] (/Users/Desktop/backend/node_modules/loopback-datasource-juggler/lib/model-builder.js:649:27)     at Function.ModelClass.extend (/Users/Desktop/backend/node_modules/loopback-datasource-juggler/lib/model-builder.js:447:35)     at Registry.createModel (/Users/Desktop/backend/node_modules/loopback/lib/registry.js:122:27)     at /Users/Desktop/backend/node_modules/loopback-boot/lib/executor.js:245:24     at Array.forEach (<anonymous>)     at defineModels (/Users/Desktop/backend/node_modules/loopback-boot/lib/executor.js:229:23)     at setupModels (/Users/Desktop/backend/node_modules/loopback-boot/lib/executor.js:197:3)     at execute (/Users/Desktop/backend/node_modules/loopback-boot/lib/executor.js:40:3)     at bootLoopBackApp (/Users/Desktop/backend/node_modules/loopback-boot/index.js:154:3)     at Object.<anonymous> (/Users/Desktop/backend/app.js:34:1)     at Module._compile (internal/modules/cjs/loader.js:1063:30)     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)     at Module.load (internal/modules/cjs/loader.js:928:32)     at Function.Module._load (internal/modules/cjs/loader.js:769:14)     at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. Waiting for the debugger to disconnect...

Hi,
There was a mistake in the readme with the name of the mixin. The right mixin name is "ChangesHistory".
{
  "name": "Person",
  "properties": {
  "name": "string",
  "email": "string",
  "status": "string",
  "description": "string"
  },
  "mixins": {
    "ChangeHistory": true // <<<< Change for "ChangesHistory": true
  }
}

Regards.


[New game]: Basketball Shooter Game

🎮 Game Request
In the basketball shooter game, basketballs fall from above, and the user shoots them using controls. Each successful shot increases the player's score, while missing a shot results in an immediate game over.
Point down the features
It contains several features like:

Score gets incremented on each subsequent shots
Missing a shot leads to game termination

Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @Explorer003 !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

Hey @Explorer003!
We are already having a similar game request in #4681 👀
Make sure you come up with a cool unique idea 😀
Waiting for your new game idea 💗.

Hey @Explorer003 ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


Enable/check SSL certificates

Self-signed SSL certificates for BIT for the data services is not working.

Check what httpx library needs to use/respect self-signed certs.


Higress requests for too many resources for start

Why do you need it?
Is your feature request related to a problem? Please describe in details
I'm trying higress in my demo cluster which don't have many resources. I see higress request for "2 CPU and 2 Gi memory" for start in helm chart, it costs too much that I can't start the pods.
Why higress need so many resources for start?
How could it be?
A clear and concise description of what you want to happen. You can explain more about input of the feature, and output of it.
I hope we can set the request to be lower, e.g. "0.5 cpu and 0.5 Gi mem".
Other related information
Add any other context or screenshots about the feature request here.

The default resource configuration 2c2g*2 is to cover the resource requirements of QPS in most business scenarios. We are worried that configuring too small resource requirements (or only the request part) will cause some users who are not familiar with k8s to ignore resource restrictions, and then step on the pit (competing for resources with business pods, etc.). We will provide operator CRD in the future to facilitate users to do more clear resource operation and maintenance.


I think the solution to 3.2-3 is not right.

The left part is bigger than the right one which is equal to 1/2.

\forall c>0,\exists n_0 >0,\ make \space \forall n \ge n_0 ,\ \therefore \exists 0\le  n!\le cn^n \ \therefore n!=\omega(n^n)\ \ \ \forall c>0,\exists n_0 >0,\ make \space \forall n \ge n_0 ,\ \therefore \exists 0\le c2^n <n! \ \therefore n!=\omega(2^n) \ \ \ \because n!=\sqrt{2\pi n}(\frac n e)^n(1+\Theta(\frac1 n))\ \therefore lgn!=lg\sqrt{2\pi n}+lg((\frac1 en)^n)+lg(1+\Theta(\frac 1 n)) \ \therefore lgn!=\Theta(lgn^{\frac 1 2})+\Theta(nlgn)+ \Theta(lgn^{-1}) 此时将其他值转成常量不再关注 \ \therefore lgn!=\Theta(lgn)+\Theta(nlgn)-\Theta(lgn) 将指数的符号取到外面抵消 \ \therefore lgn!=\Theta(nlgn)

It might be the right one.
I find it from :https://blog.csdn.net/qq_31046447/article/details/76219964


DatabaseClosedError Database has been closed

I monitored the project through the monitoring system and reported the following errors in the production environment: DatabaseClosedError Database has been closed, I checked the official documentation about this error, it said: The database connection has been closed explicitly, by calling db.close(), or it was opened with option {autoOpen: false} and db.open() was not yet called upon. I checked the code and did not call db.close() manually. I don’t know what caused this problem. Can you help me?
Below is my code:

It's hard to tell why the database was closed. It could be anything of the following reasons:

A user refreshed the page, forcing a close of the database
A user entered devtools and deleted the database
A newer version of your app was loaded in another tab that needed to perform a database upgrade (newer version of the db). This would make the old version tab close its database automatically to make the new tab be able to proceed upgrading.


Trying to silence an alert results in CORS error

Bug Description
Posting the silence towards alertmanager results in CORS error on the browser:

We need to be able to add to the charm config:
  cors:
    allowedOrigins: list of strings

To Reproduce
juju deploy karma-k8s
try to silence an alert on alertmanager
Environment
edge
Relevant log output
N/A

Additional context
No response

@dparv would you be able to add to the issue description:

output of juju status --relations
contents of the karma config file you attempted

Are you using proxy: true in the karma config file? I wonder if it could help.

workaround this by a nginx server in the middle between cos and customer endpoint:
	location /cos-alertmanager-customer {
	    proxy_set_header Host $host;
	    proxy_set_header X-Real-IP $remote_addr;
	    add_header 'Access-Control-Allow-Origin' '*';
	    proxy_pass http://IP:PORT/cos-alertmanager;
	}

Is customer alertmanager a juju relation?
If not, check out https://github.com/canonical/karma-alertmanager-proxy-k8s-operator/

We are already using the karma-alertmanager-proxy-k8s to relate customer alertmanagers to karma, which works. The problem is, that Karma posting to silence on the customer alertmanager hits CORS error, so we are using an nginx on :8080 that serves:

karma trough the service IP on microk8s for karma pod
customer remote alertmanager

so that both are on the same FQDN and the silence works.

In the docs it says:

An empty list means all origins are allowed.

and the the default is an empty list.

Karma v0.114 doesn't accept cors under listen.
- Start service "karma" (cannot start service: exited quickly with code 1)
----- Logs from task 0 -----
2023-07-27T20:55:22Z INFO Service "karma" has never been started.
----- Logs from task 1 -----
2023-07-27T20:55:22Z INFO Most recent service output:
    level=fatal msg="Execution failed" error="failed to parse configuration file \"/srv/karma.yaml\": yaml: unmarshal errors:\n  line 7: field cors not found in type struct { Address string; Timeout struct { Read time.Duration; Write time.Duration }; TLS struct { Cert string; Key string }; Port int; Prefix string }"

Will play with proxy: true next.


[BUG]: Column widths/alignments of the Observables table are broken in the Model operator when the math expression is too long

Describe the bug
The widths of the Observables table in the Model operator is broken when the sympy math expression is really long, causing a horizontal scrollbar to appear.
To Reproduce
Steps to reproduce the behavior:

Go to https://app.staging.terarium.ai/projects/80bfb79e-808c-45bc-a96e-7addeef46557/workflow/641e25b2-e62d-4f20-8fb9-ac32d88db8e0?operator=81a97aa9-a6e0-4e03-9735-4f53aa56cb0c

Expected behavior
The R0 | R0 | Unit [Add a unit] ... stuff should not slide around and should stay aligned with the other rows.
Screenshots

help explain your problem.

probably should move away from css grid


Add flags for destroy cluster powervs command

What this PR does / why we need it:
This PR trying to address this bug https://issues.redhat.com/browse/MULTIARCH-2692 for not handling the flags for destroy cluster powervs command.
Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
Fixes #
Checklist

[x] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

/lgtm


MWPW-141047 CI/CD for Akamai edge worker code

The workflow for deploying an edge worker is .github/workflows/deploy-edgeworker.yml
The code bundles for edge workers are in the directory edgewokers
The unit tests for edge workers are in the directory test/edgeworkers
GitHub Action Deploy Akamai Edgeworkers is used for deploying to Akamai. This GHA requires scripts other than main.js in the utils folder.
The mocks for unit tests are from Akamai EdgeWorkers Test Mocks with some modification
To run the edge worker unit tests onlynpm run ewtest

The edge worker unit tests are included and the coverage report is generated when running the existing command npm test and npm run jest.
To build the edge worker code for the deployment bundle.npm run ewbuild

It run the script edgeworkers/scripts/build.js, which copies the dependency files to the bundle directory.
To build the deployment bundle for the stage edge worker.npm run ewprod2stg

It run the script edgeworkers/scripts/prod2stg.js, which copies the prod edge worker directory to the stage one and modify some flags for the stage environment.
To do: Need a script to increment to the version in bundle.json
To do: The code coverage is high, but it may need more unit tests.

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

Comparison is base (648b2a4) 99.02% compared to head (916d854) 99.27%.
Report is 24 commits behind head on stage.

Additional details and impacted files
@@            Coverage Diff             @@
##            stage     #532      +/-   ##
==========================================
+ Coverage   99.02%   99.27%   +0.25%
==========================================
  Files          26       32       +6
  Lines        2961     3856     +895
==========================================
+ Hits         2932     3828     +896
+ Misses         29       28       -1

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


Run tests directly in Typescript (for correct line numbers in errors)

DONE -> in centralities branch -> merge expected within a few days


Custom pagination classes not applying

been setting paginationContainer, paginationInfo & paginationButtons, but none of them are applying, I'm using tailwind-css (flowbite), specifically tried applying this for the navigation buttons

Can you please provide more information? Maybe a REPL? I tried to apply the classes you linked and all seems to work just fine.
https://svelte.dev/repl/6fb0dfd0a0ee4627a33c6ab434e81b67?version=3.47.0

You can also use the pagination slot for more control, in my mind this often makes styling easier as you can move your pagination to a separate component. See this example
https://svelte.dev/repl/5cbe228d3cad47f18541c505c9e4b5de?version=3.47.0
More about it:
https://github.com/hurtigruten/svelte-table/blob/main/docs/pagination/index.md#custom-pagination-component
https://github.com/hurtigruten/svelte-table/blob/main/docs/slots/pagination.md


multi vs multiple

Documentation Feedback
Today I came across this minor not consistency. I was working with a mat-accordion and a mat-toggle-button-group. In both components I used the multi(mat-accordion) and the multiple (mat-toggle-button-group) attribute, which are on a perspective doing the same and I was just wondering why they are not named the same. Bit of picky here, but it might improve the workflow.
https://material.angular.io/components/expansion/api
https://material.angular.io/components/button-toggle/api

At least for mat-select it's called multi in order to align with the same property on the native select.

At least for mat-select it's called multi in order to align with the same property on the native select.

No it is called multiple -> https://material.angular.io/components/select/api


[datasets] Add data pipelines

Hello everybody 🎄
As said earlier we need to put together the data pipelines !
Currently what we have is the different training datasets attached to the release on Github.
The overall goal is to develop two data pipelines:

a scoring data pipeline: data from day D to D-7
a training data pipeline : TBD

As the first release model will be exposed for demonstration purposes, I think we can focus on the scoring data pipeline for now.
For the scoring data pipelines what I propose is to wrap the get_* functions* (raw FWI and ERA5 datasets) into a command line app and to use a makefile for the bash commands.
I will start working on this, @frgfm @miltminz @GHCamille @chloeskt let me know what you think !

Thanks for opening up the discussion!
Could you elaborate on what you have in mind for the CLI/makefile?
Perhaps I don't understand this well, but if the scoring pipeline is about producing the predictions, then we can only put up a proper  "models" submodule?
Then we'll just need to add the model checkpoint to a release and add a pretrained arg to the model function that would load up the trained model.
Wrapping everything with an exposed app would be another matter that we can deal using fastapi or django for instance!
Let me know if I misunderstood!

Yes,
I just drew of the production pipeline

I do agree with the steps you are proposing however for producing the daily predictions we need the pretrained model and to download each day the required features from the last 7 days. This is why I was mentioning a scoring data pipeline
What we have produced so far is

functions in the datasets/utils module for retrieving the datasets.
a module for each datatsets (datasets/ERA5) with a class that is initialized by passing the dataset file location (with the github release as a fall back) and does the preprocessing
scripts that merge the different datasets
training pipeline (coming soon)

Rather than doing all the step in one scripts I was thinking of each of those steps as a standalone script.
Thus the need for a Makefile for gluing the script together. However going for a python script first seems reasonable !
@chloeskt and @miltminz let me know I missed anything


Foundations to split DB bits into models, linted and cleaned up a few bits

/upload_url needs to be tested with an actual device before merging, tested in postman and works.

superseded


Add a button to reset position (move to center)

I find it a bit annoying that zooming out can put the image in some awkward corner.
Perhaps it's a good idea to prevent the image from going too far, e.g. ensure it's (1) always visible (so you can't scroll in a way which puts it off-screen) and (2) image edges snap to splitter if taken too much to the left or right.
So if the zoom or pan results in something like this:

...it would just snap to this:

FWIW, this happened with several CDS attendees that tried to use Squoosh for the first time while visiting our forum space booth.

CDS attendees that tried to use Squoosh for the first time

+1 same happened with our Pixelbook booth as well. People would get confused when they zoomed and panned the image and it disappeared somewhere.

Sometimes you might not want the handle to cover parts of the image.

True - maybe snap to image edge + some margin to account for handle?
Or maybe an easier / simpler to implement solution is to just:

Ensure minimum zoom level is such that picture always takes at least 10-20% of the viewport.
Ensure the picture is never fully outside viewport.
Maybe add something like "press space to re-center" or an option to lock the image to center (disable panning). IMO panning is not that useful since the splitter is movable.

Yeah, I talked to @mathiasbynens offline.
I think snapping to the handle is the wrong solution. Something like a minimum zoom-level so that an image occupies at least 10px by 10px or something.
I think we can do better by making it harder to lose the picture, but I don’t think we can reliably prevent it 100%.
I was wondering if we should add a double-tap gesture on the zoom percentage to reset zoom and position.

At meeting today, we discussed that there should be

one button to reset position (move to center)

Leaving this issue open & tagging as good first issue. We welcome contribution if someone want to take it!

Hi, everyone)
I see there's a work related to this issue in process. But this issue looks left behind.
So, I wondered is it ok for me to come up with a solution. It still needs to be improved in a few different ways))
https://github.com/GoogleChromeLabs/squoosh/pull/574


Collapsible & banner ads display above the content

Today I have decided to move from admob-plus to your awesome plugin. But in the implementation time, I was just check the banner ad only, it had the following issues.
I have tried the following code

In the above code, the adaptive banner ad is displayed and compared to the admob-plus plugin working very well. But it displays above the content, so it should be a problem, manually adjusting the CSS or HTML code is not a standard way.

collapsible ad also not showing

Documentation issue, one careless mistake is there, you have used "}" instead of ")"
console.log("AdUnitId: " + data.adUnitId};  =>   console.log("AdUnitId: " + data.adUnitId);

Please fix those problems, and kindly let me know.

@merbin2012
sorry it looks like the documentation I made was wrong, I will update it later, the correct example
const bannerConfig = {

   adUnitId: "ca-app-pub-3940256099942544/9214589741", //Banner_ID,
   position: "bottom-center",
   size: "responsive_adaptive", // autoResize: true (only responsive_adaptive)
   collapsible: "bottom", // position: top | bottom (disable, empty string)
   autoResize: true, // on.screen.rotated === orientation.portrait || on.screen.rotated === orientation.landscape
   autoShow: true, // boolean

}

cordova.plugins.emiAdmobPlugin.loadBannerAd(bannerConfig,
// (Optional)
(data) => {
    // this data will be displayed after showBannerAd() applies to all ad types
    console.log("Micros: " + data.micros);
    console.log("Currency: " + data.currency);
    console.log("Precision: " + data.precision);
    console.log("AdUnitId: " + data.adUnitId};

     },
    (error) => {

     console.error("Error: " + error);

    }

);

@EMI-INDO Please note, not only documentation issues, two more issues are mentioned. Also, "data.micros" and all of you mention properties are undefined.

@merbin2012
https://support.google.com/admob/answer/11322405
Turn on the setting for impression-level ad revenue in your AdMob account:
Sign in to your AdMob account at https://apps.admob.com.
Click Settings in the sidebar.
Click the Account tab.
In the Account controls section, click the Impression-level ad revenue toggle to turn on this setting.

Ooh, ok. Thanks for the information. Please let me know once all the issues are fixed.

@EMI-INDO Is there any updates regarding

In the above code, the adaptive banner ad is displayed and compared to the admob-plus plugin working very well. But it displays above the content, so it should be a problem, manually adjusting the CSS or HTML code is not a standard way.

Collapsible ad also not showing

@merbin2012

overlapping.
It's hard to handle this problem, because you didn't open the problem with the template, I don't know if you are using cordova or ioinc, whether it's capacitor I don't know, if you are using ioinc, when I test it in cordova it won't solve the problem.

Collapsible ad.
I tested it in ad sdk 23+ Collapsible ad does not display on android, it works in the old version of the plugin, is this an sdk problem or the responsive banner size code that I created.

while on ios it works on all ad sdk versions.

In admob plus overlapping is perfectly working.
I am using both Cordova and capacitor, in both I am only using Cordova admob plus plugin .
Please tell me can I use this or not!? I think without overlapping it should be waste.

@EMI-INDO Thank you. Please let me know, if you done in future.

Hi
This is a great plugin, the admob plus plugin is not working in my capacitor - iOS device, project, but worked in Capacitor - android. Also, I have tied other two capacitor admob plugin, but there app open ad and collapsible banner ad is not supported. BUT this plugin works in Capacitor - Android & Capacitor - iOS, the collapsible banner ad also working in iOS devices. Here in this plugin only major problem is the banner ad is displaying over the content but I have solved by using some mathematical calculation.
Currently, I have decided to use admob-plus in my Capacitor - Android project and emi-indo in my Capacitor-iOS project. Whenever the above two issues are fixed, I will completely move to this plugin.
Thank you very much.

@EMI-INDO
I have resolved the banner overlapping issue for the Android device
path: emi/indo/cordova/plugin/admob/emiAdmobPlugin.kt
I have just added "fixForBannerOverlapping()" method only.
        override fun onAdLoaded() {
            .......
            .......
            cWebView!!.loadUrl("javascript:cordova.fireDocumentEvent('on.banner.load');")

            fixForBannerOverlapping()     // <= This line added

            val eventData = String.format(
                "{\"collapsible\": \"%s\"}",
                if (bannerView!!.isCollapsible) "collapsible" else "not collapsible"
            )
            .......
            .......
        }

The method "fixForBannerOverlapping" definition is fixForBannerOverlapping
    private fun fixForBannerOverlapping() {
        if (bannerView != null && mActivity != null && cWebView != null) {
            mActivity!!.runOnUiThread {
                try {
                    val bannerHeightInPx = bannerView!!.height
                    val displayMetrics = DisplayMetrics()
                    mActivity!!.windowManager.defaultDisplay.getMetrics(displayMetrics)
                    val screenHeightInPx = displayMetrics.heightPixels

                    // Adjust the WebView height to account for the banner ad
                    val webViewHeight = screenHeightInPx - (adSize.height+5)
                    val layoutParams = cWebView!!.view.layoutParams
                    layoutParams.height = webViewHeight
                    cWebView!!.view.layoutParams = layoutParams

                    // Log for debugging
                    Log.d("BannerAdjustment", "Adjusted WebView height: $webViewHeight")
                } catch (e: Exception) {
                    Log.e("AdmobPlugin", "Error adjusting WebView for banner: ${e.message}")
                }
            }
        }
    }

Note:

I have added +5, in "(adSize.height+5)", this is just for avoid exact position, I think, good, if you are get the this value from the user. The default value should be 0.
Also, please add a option to enable overlapping or not.
I mean
if(userWantNoOverlapping)
fixForBannerOverlapping()
I have checked in my device "Redmi 11T pro", its working. Please check it from your side too.

Really, I like your plugin very much, because always you are trying to keep the admob latest version.
Please let me know, this is ok or not and if you are published.
Thank you

@merbin2012
Good job, this is what I want for any problem.
I mean, any problem has to be solved together, but most people just blame and don't want to try to solve the problem, instead they put the problem on me who can't solve the problem, as if I don't have any other projects.

later I will add the desired function including the parameter
if(int){
(adSize.height+int)
......
}

@merbin2012
Good job, this is what I want for any problem. I mean, any problem has to be solved together, but most people just blame and don't want to try to solve the problem, instead they put the problem on me who can't solve the problem, as if I don't have any other projects.

Yeah, the community on Github is not always friendly to the devs who do all the work.
But I wanted to say also "thank you" because of your work.
I use the Admob (Plus) plugin for Cordova since about ten years now and at the moment I use the "community" version, because the original version is not really maintained.
But I am looking forward to migrate to your plug-in, once I think it's the time to do so (depending on my needs and active projects).
I am not very good in Java, but try to help others out where I can on Github. I also did fix some bugs in the Admob Plus plug-in, but no one cares.
https://github.com/EYALIN/community-admob-plus/issues/15#issuecomment-2468848447
I even created a Cordova plug-in to to check and fix for this particular bug, so when I migrate to your plug-in I will continue helping here.

https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob/commit/f188586ba7da0ae290809b17cbedf37dc445a770
https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob/blob/main/example/www/js/bannerAd.js
Thank you.

@merbin2012
Now it's just a matter of Collapsible banner ads not working on android.
I will fix it in the next 1 to 2 hours.

FIX

@EMI-INDO Thank you so much. I will completely check and close this issue in one day. I love your fast response

I have faced some new issue, for example while we hide the banner ad the webview height is not extended to full screen.
So we need to aware of the below three methods
cordova.plugins.emiAdmobPlugin.showBannerAd()   <= Already Fixed
cordova.plugins.emiAdmobPlugin.hideBannerAd()      <= When calling we need to adjust the webview height
cordova.plugins.emiAdmobPlugin.removeBannerAd() <= When calling we need to adjust the webview height
Kindly check the below code.
    private fun bannerOverlappingToZero() {
        if (bannerView != null && mActivity != null && cWebView != null) {
            mActivity!!.runOnUiThread {
                try {
                    val rootView = (cWebView!!.view.parent as View)
                    rootView.post {
                        // Get the total height of the parent view
                        val totalHeight = rootView.height

                        // Adjust WebView height to match parent height
                        val layoutParams = cWebView!!.view.layoutParams
                        layoutParams.height = totalHeight
                        cWebView!!.view.layoutParams = layoutParams

                        // Ensure no padding/margin in WebView or its parent
                        cWebView!!.view.setPadding(0, 0, 0, 0)
                        (cWebView!!.view.parent as? ViewGroup)?.setPadding(0, 0, 0, 0)

                        // Force layout update
                        cWebView!!.view.requestLayout()

                        Log.d("BannerAdjustment", "WebView set to full height: $totalHeight")
                    }
                } catch (e: Exception) {
                    Log.e("AdmobPlugin", "Error setting WebView to full height: ${e.message}")
                }
            }
        }
    }

We need to call this method in the following place
else if (action == "hideBannerAd") {
            if(mActivity != null) {
                mActivity!!.runOnUiThread {
                    if (isBannerShow) {
                        try {
                            bannerView!!.visibility = View.GONE
                            bannerView!!.pause()
                            isBannerLoad = false
                            isBannerPause = 1

                            bannerOverlappingToZero()   //<= New Line

                        } catch (e: Exception) {
                            callbackContext.error(e.toString())
                        }
                    }
                }
            }
            return true
        }

And
else if (action == "removeBannerAd") {
            if(mActivity != null) {
                mActivity!!.runOnUiThread {
                    try {
                        if (bannerViewLayout != null && bannerView != null) {
                            bannerViewLayout!!.removeView(bannerView)
                            bannerView!!.destroy()
                            bannerView = null
                            bannerViewLayout = null
                            isBannerLoad = false
                            isBannerShow = false
                            isBannerPause = 2
                            lock = true

                             bannerOverlappingToZero()   //<= New Line

                        }
                    } catch (e: Exception) {
                        PUBLIC_CALLBACKS!!.error("Error removing banner: " + e.message)
                    }
                }
            }
            return true
        }

Also, again we should need to adjust the webview, if the user show the banner ad.
else if (action == "showBannerAd") {
            if(mActivity != null) {
                mActivity!!.runOnUiThread {
                    if (isBannerPause == 0) {
                        isShowBannerAds
                    } else if (isBannerPause == 1) {
                        try {
                            bannerView!!.visibility = View.VISIBLE
                            bannerView!!.resume()

                            bannerOverlapping()    //<= New Line

                        } catch (e: Exception) {
                            callbackContext.error(e.toString())
                        }
                    }
                }
            }
            return true
        }

I am just checking, not tested fully, still in testing.

Yeah wait a minute I need to debug it before pushing it to production.
And it seems that when banner position: “top-center” the webview does not move downwards

@EMI-INDO In "on.banner.failed.load" event also we need to call the bannerOverlappingToZero.
Otherwise when we don't have any ads it will be display like this

I'm not a capacitor user, and I'm trying to create documentation for capacitors, is this wrong or not?
Documentation Capacitor example:

Fixed


Can't install package after cancelling installation with CTRL+C

Brief description of your issue
I was installing a package (Windows Terminal Preview) and had second thoughts, so I cancelled with ctrl + c at some point during the installation
$ winget install Microsoft.WindowsTerminal.Preview

Found Windows Terminal Preview [Microsoft.WindowsTerminal.Preview] Version 1.19.2831.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
This package requires the following dependencies:
  - Packages
      Microsoft.UI.Xaml.2.8 [>= 2.8.4]
(1/1) Found Microsoft.UI.Xaml [Microsoft.UI.Xaml.2.8] Version 8.2306.22001.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://github.com/microsoft/microsoft-ui-xaml/releases/download/v2.8.5/Microsoft.UI.Xaml.2.8.x64.appx
  ██████████████████████████████  4.88 MB / 4.88 MB
Successfully verified installer hash
Starting package install...
  ██████████████████████████████  100%
Successfully installed

Successfully verified installer hash
Starting package install...
  ▌                               2%
An unexpected error occurred while executing the command:
0x800704c7 : unknown error

I then decided to install it, after doing some unrelated stuff that I wanted to do before installing it, but now winget says that I have it already installed
winget install Microsoft.WindowsTerminal.Preview

Found Windows Terminal Preview [Microsoft.WindowsTerminal.Preview] Version 1.19.2831.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
This package requires the following dependencies:
  - Packages
      Microsoft.UI.Xaml.2.8 [>= 2.8.4]
(1/1) Found Microsoft.UI.Xaml [Microsoft.UI.Xaml.2.8] Version 8.2306.22001.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Successfully verified installer hash
Starting package install...
  ████████████████████████████▌   95%
A higher version of this application is already installed.
Installer failed with exit code: 0x80073d06 : unknown error

I tried with some options
winget install Microsoft.WindowsTerminal.Preview --uninstall-previous --verbose-logs --force --version 1.19.2831.0

But the output is the same. Windows terminal doesn't appear as installed
winget remove Microsoft.WindowsTerminal.Preview

No installed package found matching input criteria.

winget list Microsoft.WindowsTerminal.Preview

No installed package found matching input criteria.

I can see a wt.exe file in my computer, but it's for an older version (1.16, current is 1.19)
Steps to reproduce
Install a package
Cancel it at the later stages by pressing control + c
Reinstall the package
Expected behavior
The package installation is interrupted and Winget cleans its status
Actual behavior
Winget gets confused and marks the program as installed
Environment
Windows Package Manager (Preview) v1.7.3172-preview
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.22621.2715
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.22.3172.0

Winget Directories
-------------------------------------------------------------------------------------------------------------------------------
Logs                               %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
User Settings                      %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json
Portable Links Directory (User)    %LOCALAPPDATA%\Microsoft\WinGet\Links
Portable Links Directory (Machine) C:\Program Files\WinGet\Links
Portable Package Root (User)       %LOCALAPPDATA%\Microsoft\WinGet\Packages
Portable Package Root              C:\Program Files\WinGet\Packages
Portable Package Root (x86)        C:\Program Files (x86)\WinGet\Packages
Installer Downloads                %USERPROFILE%\Downloads

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

Admin Setting                             State
--------------------------------------------------
LocalManifestFiles                        Enabled
BypassCertificatePinningForMicrosoftStore Disabled
InstallerHashOverride                     Disabled
LocalArchiveMalwareScanOverride           Disabled

The install may have already started when the [ctrl]+[c] was submitted. You may need to try to install again with "--force".

Hey Denelon, thanks for the help.
Yeah, I tried that already
 winget install Microsoft.WindowsTerminal.Preview --force

Found Windows Terminal Preview [Microsoft.WindowsTerminal.Preview] Version 1.19.2831.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
This package requires the following dependencies:
  - Packages
      Microsoft.UI.Xaml.2.8 [>= 2.8.4]
(1/1) Found Microsoft.UI.Xaml [Microsoft.UI.Xaml.2.8] Version 8.2306.22001.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Successfully verified installer hash
Starting package install...
  ████████████████████████████▌   95%
A higher version of this application is already installed.
Installer failed with exit code: 0x80073d06 : unknown error

And specifying the version
winget install Microsoft.WindowsTerminal.Preview --force --version 1.19.2831.0

Found Windows Terminal Preview [Microsoft.WindowsTerminal.Preview] Version 1.19.2831.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
This package requires the following dependencies:
  - Packages
      Microsoft.UI.Xaml.2.8 [>= 2.8.4]
(1/1) Found Microsoft.UI.Xaml [Microsoft.UI.Xaml.2.8] Version 8.2306.22001.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Successfully verified installer hash
Starting package install...
  ████████████████████████████▌   95%
A higher version of this application is already installed.
Installer failed with exit code: 0x80073d06 : unknown error

And even installing a previous version and upgrading
winget install Microsoft.WindowsTerminal.Preview --force --version 1.17.10234.0 --uninstall-previous

Found Windows Terminal Preview [Microsoft.WindowsTerminal.Preview] Version 1.17.10234.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://github.com/microsoft/terminal/releases/download/v1.17.1023/Microsoft.WindowsTerminalPreview_Win10_1.17.10234.0_8wekyb3d8bbwe.msixbundle
  38.5 MB / 38.5 MB
Successfully verified installer hash
Starting package install...
  100%
Successfully installed

winget list Microsoft.WindowsTerminal.Preview

Name                     Id                                Version      Available   Source
------------------------------------------------------------------------------------------
Windows Terminal Preview Microsoft.WindowsTerminal.Preview 1.17.10234.0 1.19.2831.0 winget

winget upgrade Microsoft.WindowsTerminal.Preview

Found Windows Terminal Preview [Microsoft.WindowsTerminal.Preview] Version 1.19.2831.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
This package requires the following dependencies:
  - Packages
      Microsoft.UI.Xaml.2.8 [>= 2.8.4]
(1/1) Found Microsoft.UI.Xaml [Microsoft.UI.Xaml.2.8] Version 8.2306.22001.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Successfully verified installer hash
Starting package install...
  ████████████████████████████▌   95%
A higher version of this application is already installed.
Installer failed with exit code: 0x80073d06 : unknown error

Is there a database I can reset, reconstruct or straightaway delete? Otherwise it seems the best course of action seems to be waiting for the next release

@munodisco - It seems the issue may actually be with the Microsoft.UI.Xaml package dependency. Have you tried with --skip-dependencies ?

YES! That worked. Thanks!
On Tue, 21 Nov 2023 at 19:40, Kaleb Luedtke @.***>
wrote:

@munodisco - It seems the issue may actually be with the Microsoft.UI.Xaml
package dependency. Have you tried with --skip-dependencies ?
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/winget-cli/issues/3913#issuecomment-1821568605,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACADOEYSIE22453VKSOUIZDYFT7RHAVCNFSM6AAAAAA7SZRCWGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMRRGU3DQNRQGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hello!
I had the same issue (without ctrl + c cancelation) and skipping depedencies installation solved it.


add .babelrc to .npmignore

we are trying to use this project but .babelrc creating problem.
Please add .babelrc to .npmignore !
It will be a great help !

Also, please update https://github.com/lexich/shallow-equal-fuzzy
to version 0.0.2

Ok, today will be release.

I released a new version (0.5.2)


Merge upstream 2.2.4

Merges upstream changes up to the v2.2.4 release

Codecov Report
Attention: Patch coverage is 59.61538% with 42 lines in your changes are missing coverage. Please review.

:exclamation: No coverage uploaded for pull request base (main@9ba3a8a). Click here to learn what that means.

Files
Patch %
Lines

pkg/oci/static/file.go
53.84%
3 Missing and 3 partials :warning:

pkg/oci/mutate/signatures.go
63.63%
2 Missing and 2 partials :warning:

cmd/cosign/cli/signblob.go
0.00%
2 Missing and 1 partial :warning:

pkg/oci/mutate/options.go
0.00%
3 Missing :warning:

cmd/cosign/cli/fulcio/fulcio.go
0.00%
2 Missing :warning:

cmd/cosign/cli/options/fulcio.go
0.00%
2 Missing :warning:

cmd/cosign/cli/public_key.go
0.00%
1 Missing and 1 partial :warning:

cmd/cosign/cli/sign.go
60.00%
1 Missing and 1 partial :warning:

cmd/cosign/cli/verify/verify_blob_attestation.go
66.66%
1 Missing and 1 partial :warning:

internal/pkg/cosign/payload/size/errors.go
50.00%
2 Missing :warning:

... and 11 more

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #178   +/-   ##
=======================================
  Coverage        ?   42.26%
=======================================
  Files           ?      157
  Lines           ?     8076
  Branches        ?        0
=======================================
  Hits            ?     3413
  Misses          ?     4165
  Partials        ?      498

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

/retest

@tommyd450 I am closing this in favor of yours


Assets shouldn't be synced to aws

Why not?

Because there's a lot of them and we hope that they'll be run off of S3 soon


Expose "operations_research::RoutingSearchParameters" to Python

What language and solver does this apply to?
Python
Describe the problem you are trying to solve.
I want to use type hints for the RoutingSearchParameters object.
Describe the solution you'd like
Expose "operations_research::RoutingSearchParameters" to pywrapcp:
from ortools.constraint_solver.pywrapcp import RoutingSearchParameters

EDIT:
I want to use type hints:
from ortools.constraint_solver.pywrapcp import RoutingSearchParameters

def my_function(params: RoutingSearchParams):
    ...

@Mizux I want to use type hints. I edited my issue description above.

@Mizux it works for example for Assignment:
from ortools.constraint_solver.pywrapcp import Assignment

def myfunc(assignment: Assignment):
    ...

I think RoutingSearchParameters just needs to be "exposed" to Python like Assignment is.

Assignment is a C++ class while RoutingSearchParams is a proto message
see: https://github.com/google/or-tools/blob/c78f83e4d4a21059f6e0d6c616e267c5c70d0828/ortools/constraint_solver/routing_parameters.proto#L32-L39
So I would try
from ortools.constraint_solver.routing_parameters_pb2 import RoutingSearchParameters
def my_function(params: RoutingSearchParameters):
    ...


Computed property maybe a bug or my misunderstanding

Version
2.4.2
Reproduction link
https://github.com/sergeyMelentyev/Vue_Prime/blob/master/question.vue
Steps to reproduce
Hello!
Please check my small report, maybe it will be helpful.
I have a component, that receive an array of objects as a props.
I have two computed property (sortedByMetro and sortedByAvailable) in order to display two results to the user.
Inside each computed property I take this.stores from props and sort it.
As you can see in my example, I add "const temp" constant in order to make shallow copy of incoming props. In this case everything works great and I receive results I was looking for.
BUT if I take away "const temp" from each computed property and try to sort array of objects from props itself (this.stores.sort()) I end up with crush in vue dev tools and browser stop responding, no console error is visible.
vue 2.4.2.
Chrome Version 64.0.3282.24 (Official Build) beta (64-bit)
Maybe it will be usefull, maybe not.
Best regards.
What is expected?
Hello!
Please check my small report, maybe it will be helpful.
I have a component, that receive an array of objects as a props.
I have two computed property (sortedByMetro and sortedByAvailable) in order to display two results to the user.
Inside each computed property I take this.stores from props and sort it.
As you can see in my example, I add "const temp" constant in order to make shallow copy of incoming props. In this case everything works great and I receive results I was looking for.
BUT if I take away "const temp" from each computed property and try to sort array of objects from props itself (this.stores.sort()) I end up with crush in vue dev tools and browser stop responding, no console error is visible.
vue 2.4.2.
Chrome Version 64.0.3282.24 (Official Build) beta (64-bit)
Maybe it will be usefull, maybe not.
Best regards.
What is actually happening?
Hello!
Please check my small report, maybe it will be helpful.
I have a component, that receive an array of objects as a props.
I have two computed property (sortedByMetro and sortedByAvailable) in order to display two results to the user.
Inside each computed property I take this.stores from props and sort it.
As you can see in my example, I add "const temp" constant in order to make shallow copy of incoming props. In this case everything works great and I receive results I was looking for.
BUT if I take away "const temp" from each computed property and try to sort array of objects from props itself (this.stores.sort()) I end up with crush in vue dev tools and browser stop responding, no console error is visible.
vue 2.4.2.
Chrome Version 64.0.3282.24 (Official Build) beta (64-bit)
Maybe it will be usefull, maybe not.
Best regards.

I am deal with 200 objects inside incoming props array. Each object have about 10 keys and 3 steps deep at it maximum.

Props are not mutable, the recommended approach is to clone your props to your data when you need to change it. Far from that, I dont know what makes the browser crash, tbh I dont even know what is happening after that but in anyway it should just give an error in the console, and this should be a problaly a bug.

Hi, thanks for your interest but Github issues are for bug reports and feature requests only. You can ask questions on the forum, the Discord server, gitter or StackOverflow.

Hello, Diego! Thank you for your answer.
I know that props should stay untouched and I should not mutate it.
Until now I thought that Array.prototype.sort() is confirmed to pure function approach and will return new sorted array without mutating the first one.
My bad, because Array.prototype.sort() will mutate an input array.
And I dont know why, but two or more computed properties with Array.prototype.sort() method inside will crush you browser and vue dev tool.
As I sad before, no console error is given in this way, browser is just stop responsing.

System memory usage skyrocketed to almost 95% while trying to reproduce this issue, than browser crashed and memory is freed up. You can check blue line on my screen print.

This happen when the program run into an incoming infinite loop, pretty sure, happened to me sometimes

I wonder why this could happen?
As far as I can judge computed properties should act like everything is JS - run to completion. First of all one computed property should be evaluated, and then another one. Why do I have an infinite loop in my case, I can not figure it out.

No idea, put your computed into a method and test, its easier to debug, and also, return void 0 looks weird to me, isnt that causing it? Maybe return false would maybe be better, not sure

Check this out, will be helpful:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void

I rewrite my component logic using method calls for sorting data instead of computed props, and my result pass all tests, works great even if I stupidly trying to mutate props or if I wisely make a shallow copy of incoming array from props and sort the result.
Now I have to figeout why everyone using VUE.JS cannot use two or more computed property that mutate props and why it is trying to destroy all my system memory.

My first computed prop mutate props

You really shouldn't do that. Computed properties shouldn't have any side effects. There is an ESLint rule to help you prevent that from happening in your code.

I always was aware that props must be treated immutable from inside of child component point of view and make this exact case just by mistake.
From official docs "... you should not attempt to mutate a prop inside a child component. If you do, Vue will warn you in the console."
All I am trying to say is "Vue will warn" is not working if props are reference type (Array) and more to say your browser is going to crash from infitite looop with tons of memory leack if there are 2+ computed properties that depand on same props. Just maybe you should add more red warnings in docs for this case.

thanks to everyone for doing this great vue-job :)

Yeah, that's happening because V8 canno't say while compiling either while interpreting that a infinite loop is going to happen.


CPU hikes and won't come down on cloud-sql-proxy container, sometimes.

Bug Description
Have found that the side-car proxy container SOMETIMES starts hogging all the cpu resource provided for it and won't let go.

CPU hikes to the limit and stays there.
Memory usage stays very, very low.
no special activity in logs both in the proxy container or in the one that uses it.

These are what have tried :

Tried more CPU (from 500m to 1 vcpu).
Tried without http healthcheck. (does not seem to restart the container on this cpu hike with the http probe on. weird.)

It happens most when traffic starts going up after a long quite time.  (like 7 a.m. when users get up and start looking at our application before going to work. or 7 p.m. after users get off work, eat dinner.)
Example code (or command)
        - name: cloudsql-proxy
          image: gcr.io/cloudsql-docker/gce-proxy:1.33.0
          command: ["/cloud_sql_proxy",
                    # "-instances=project_id_hidden:asia-northeast3:cloudsql_id_hidden=tcp:3306,schoolbelle-ci:asia-southeast1:schoolbelle-singapore-cloudsql=tcp:3307",
                    "-instances=project_id_hidden:asia-northeast3:cloudsql_id_hidden=tcp:3306",
                    "-use_http_health_check",
                    "-term_timeout=30s",
                    "-credential_file=/secrets/cloud/google-service-account.json"]
          livenessProbe:
            httpGet:
              path: /liveness
              port: 8090
            initialDelaySeconds: 0
            periodSeconds: 10
            timeoutSeconds: 5
            failureThreshold: 1
          readinessProbe:
            httpGet:
              path: /readiness
              port: 8090
            initialDelaySeconds: 0
            periodSeconds: 10
            timeoutSeconds: 5
            successThreshold: 1
            failureThreshold: 1
          startupProbe:
            httpGet:
              path: /startup
              port: 8090
            periodSeconds: 1
            timeoutSeconds: 5
            failureThreshold: 20
          resources:
            limits:
              memory: "128Mi"
              cpu: "1"
          volumeMounts:
            - name: cloud-credentials
              mountPath: /secrets/cloud
              readOnly: true

Stacktrace
{"severity":"INFO","timestamp":"2022-11-17T17:16:18.000Z","caller":"proxy/client.go:239","message":"ephemeral certificate for instance project_id_hidden:asia-northeast3:cloudsql_id_hidden will expire soon, refreshing now."}
{"severity":"INFO","timestamp":"2022-11-17T17:16:18.002Z","caller":"proxy/client.go:203","message":"refreshing ephemeral certificate for instance project_id_hidden:asia-northeast3:cloudsql_id_hidden"}
{"severity":"INFO","timestamp":"2022-11-17T17:16:18.224Z","caller":"proxy/client.go:320","message":"Scheduling refresh of ephemeral certificate in 55m0s"}
{"severity":"INFO","timestamp":"2022-11-17T18:11:18.005Z","caller":"proxy/client.go:239","message":"ephemeral certificate for instance project_id_hidden:asia-northeast3:cloudsql_id_hidden will expire soon, refreshing now."}
{"severity":"INFO","timestamp":"2022-11-17T18:11:18.007Z","caller":"proxy/client.go:203","message":"refreshing ephemeral certificate for instance project_id_hidden:asia-northeast3:cloudsql_id_hidden"}
{"severity":"INFO","timestamp":"2022-11-17T18:11:18.400Z","caller":"proxy/client.go:320","message":"Scheduling refresh of ephemeral certificate in 55m0s"}
{"severity":"INFO","timestamp":"2022-11-17T19:06:18.005Z","caller":"proxy/client.go:239","message":"ephemeral certificate for instance project_id_hidden:asia-northeast3:cloudsql_id_hidden will expire soon, refreshing now."}
{"severity":"INFO","timestamp":"2022-11-17T19:06:18.007Z","caller":"proxy/client.go:203","message":"refreshing ephemeral certificate for instance project_id_hidden:asia-northeast3:cloudsql_id_hidden"}
{"severity":"INFO","timestamp":"2022-11-17T19:06:18.287Z","caller":"proxy/client.go:320","message":"Scheduling refresh of ephemeral certificate in 55m0s"}
{"severity":"INFO","timestamp":"2022-11-17T20:01:18.001Z","caller":"proxy/client.go:239","message":"ephemeral certificate for instance project_id_hidden:asia-northeast3:cloudsql_id_hidden will expire soon, refreshing now."}
{"severity":"INFO","timestamp":"2022-11-17T20:01:18.002Z","caller":"proxy/client.go:203","message":"refreshing ephemeral certificate for instance project_id_hidden:asia-northeast3:cloudsql_id_hidden"}
{"severity":"INFO","timestamp":"2022-11-17T20:01:18.338Z","caller":"proxy/client.go:320","message":"Scheduling refresh of ephemeral certificate in 55m0s"}
{"severity":"INFO","timestamp":"2022-11-17T20:56:18.004Z","caller":"proxy/client.go:239","message":"ephemeral certificate for instance project_id_hidden:asia-northeast3:cloudsql_id_hidden will expire soon, refreshing now."}
{"severity":"INFO","timestamp":"2022-11-17T20:56:18.006Z","caller":"proxy/client.go:203","message":"refreshing ephemeral certificate for instance project_id_hidden:asia-northeast3:cloudsql_id_hidden"}
{"severity":"INFO","timestamp":"2022-11-17T20:56:18.275Z","caller":"proxy/client.go:320","message":"Scheduling refresh of ephemeral certificate in 55m0s"}
{"severity":"INFO","timestamp":"2022-11-17T21:51:18.002Z","caller":"proxy/client.go:239","message":"ephemeral certificate for instance project_id_hidden:asia-northeast3:cloudsql_id_hidden will expire soon, refreshing now."}
{"severity":"INFO","timestamp":"2022-11-17T21:51:18.004Z","caller":"proxy/client.go:203","message":"refreshing ephemeral certificate for instance project_id_hidden:asia-northeast3:cloudsql_id_hidden"}
{"severity":"INFO","timestamp":"2022-11-17T21:51:18.298Z","caller":"proxy/client.go:320","message":"Scheduling refresh of ephemeral certificate in 55m0s"}

How to reproduce

deploy it as a sidecar
have active containers use it

Environment

OS type and version: Container-Optimized OS with containerd (cos_containerd) in gke version  of 1.23.10-gke.1000
Cloud SQL Proxy version (./cloud-sql-proxy --version): 1.33.0 and 1.33.1 (tried both)
Proxy invocation: "/cloud_sql_proxy",
"-instances=hiding_project_id:asia-northeast3:hiding_sql_id=tcp:3306",
"-use_http_health_check",
"-term_timeout=30s",
"-credential_file=/secrets/cloud/google-service-account.json"

Typically CPU usage is bound to the amount of IO between a client and the Cloud SQL instance. Have you tried to correlate this CPU hike with application activity? How many active connections do you have when you see this?
Also side note: https://github.com/GoogleCloudPlatform/cloud-sql-proxy/blob/main/examples/k8s-sidecar/proxy_with_workload_identity.yaml#L78-L87.

Typically CPU usage is bound to the amount of IO between a client and the Cloud SQL instance. Have you tried to correlate this CPU hike with application activity? How many active connections do you have when you see this?
Also side note: https://github.com/GoogleCloudPlatform/cloud-sql-proxy/blob/main/examples/k8s-sidecar/proxy_with_workload_identity.yaml#L78-L87.

If its about too many connections, shouldn't memory go up too as the note says?
We are using a connection pool approach with max connection limit set to 10 or 20(CPU in both show the same pattern) and log does not indicate any abnormal activity like creating a lot of connections at the moment of a CPU hike or within the range of time between CPU goes up and comes down (sometimes it comes down after about 1-2 hours on its own as the image below shows on the right. if it goes like that too long, I have been manually killing the pod - two drops on the left.)

Other observations are :

sql querying activities in application used to stop working( and we received huge complaints from clients..haha) around the CPU hike.
connections get reset every hour or so by cloudsql-proxy,  refreshing auth token.
setting "keep-alive" option on( pinging periodically against dead connections caused by the ressetting) did prevent the application from freezing, but does not prevent the proxy container's CPU usage  from going up.

I am suspecting sending queries thru a dead connection may be related.. my two cents.

I set up our sample app and ran ~2 million requests (a mix of reads and writes) through it using the Proxy across 10 hours, and for good measure did this experiment twice over the weekend. In both cases, the Proxy's CPU usage was entirely normal.
There's always the possibility of some obscure bug in the Proxy code, but I suspect either an application problem (something is doing network IO against the Proxy), or perhaps a resource issue.
Here's what I'd suggest checking:

Is this problem happening across applications? Or is it just one application?
Can you confirm if your application isn't using the database connection when you see these CPU spikes?
And trying v2 as @kurtisvg suggests.

I set up our sample app and ran ~2 million requests (a mix of reads and writes) through it using the Proxy across 10 hours, and for good measure did this experiment twice over the weekend. In both cases, the Proxy's CPU usage was entirely normal.
There's always the possibility of some obscure bug in the Proxy code, but I suspect either an application problem (something is doing network IO against the Proxy), or perhaps a resource issue.
Here's what I'd suggest checking:

Is this problem happening across applications? Or is it just one application?
Can you confirm if your application isn't using the database connection when you see these CPU spikes?
Bumping the CPU and memory resource requests to see if that helps resolve the issue.
And trying v2 as @kurtisvg suggests.

Its been shown over two applications, one using a connection pool(mysql2), the other not. the other comes down from max CPU pretty quick if it ever spikes. so I haven't looked closely. I will attach an image of it at the bottom.
Will add query counting, sending data and resulted data's size counting and watch until a spike appears.
Will. try bumping the CPU and memory x2 and x4 if the issue persists. (memory is barely under 10 mb though)
v2 will be tried last..hahah.
Thanks for the suggestion, @kurtisvg and @enocom  :)

during a pick time, 20-30 pods are spinned up. one or two jump up in CPU but down pretty quickly.

Can you confirm if your application isn't using the database connection when you see these CPU spikes?

I have decided to watch select queries only since "update" and "delete" will not send or receive much encrypted data at all. correct me if I'm wrong.
Select query counts per min for two pods:

returned data size per min(size by "JSON.stringify(rows).length") for two pods:

CPU usage for two pods:

As you can see, two pods send and receive almost identically, but only CPU in one pod spikes.
I have decided that bumping CPU limits won't do much good if it's not based on connection load.
I'm skipping to number 4!

And trying v2 as @kurtisvg suggests.

Found that v2 have not solved the issue.
Here is what I have done and observed.

switched cloudsql-proxy's version to 2.0.0-preview.3 at 2.15 PM.
CPU spikes between 9-10 PM in all the two pods at the same time(syncronized!!?).
Connection count and data size metrics between 9-10 PM do not seem much high compared to outher times.

So I'm out of answers. Any suggestions @enocom @kurtisvg  ?
What I might try :

roll back to old versions like 1.7.x, which I had used for a long time for other applications.
ditch mysql2's pool and go back to simple "create a connection for each query and kill it when done".

CPU spike between 9-10

Connection count metrics

data size metrics

@nurfgun Can you write a simple application that reproduces this behavior? As @enocom pointed out above, we're unable to replicate the same behavior, which points to something specific to your situation. If we can repro it, it's a bit easier for us to profile and identify the cause.

Separately, we should (and will) add pprof to v2.

@nurfgun Just added support for pprof in the latest commit. We'll be shipping a release soon and this will hopefully help understand what's happening here.
https://github.com/GoogleCloudPlatform/cloud-sql-proxy/pull/1564.

Since ditching pooling, servers have been running without a stop, or at least it looks so.
But we are spotting hikes in connection numbers in Google's cloud sql service since then.
So I'm thinking maybe

memory usage DOES NOT go up at all  or so negligible compared to CPU usage.
Our code is somewhere causing too many connections that go unused since there is no change in disk read/write operations.

Sorry for the late response. now that we have the urgent element of the issue removed by removing pooling, I had to tend to other less but still urgent matters.
I will try pprof and report back.
Thanks guys.

You'll definitely want to have pooling in place. But if removing it helps debug, then that's at least somewhat good.

@nurfgun any updates here?

I'm going to close this as stale. Feel free to re-open with any new information.


Update and rename domains/_github-pages-challenge-CsAjayS.ajay.is-coo…

…l.dev.json to _github-pages-challenge-Dev-Ajay-sahani.ajay.is-cool.dev.json

Requirements

[x] You have completed your website.
[x] The website is reachable.
[x] The CNAME record doesn't contain https:// or /.
[x] There is sufficient information at the owner field.
[x] Your website is not hosting on the following due to SSL issues: Vercel, Netlify

Description

Link to Website

will andrew sir merge the PR after the  review by Dibster ?

@andrewstech

CC: @andrewstech @DEV-DIBSTER

I'm not sure why you request Andrew review on this PR, but I've already finished my review.  My job for this PR is done.

CC: @andrewstech @DEV-DIBSTER

I'm not sure why you request Andrew review on this PR, but I've already finished my review.  My job for this PR is done.

It wasn't merged after the review and showing that the code owner has to merge it

I'm not sure why you request Andrew review on this PR, but I've already finished my review.  My job for this PR is done.

It wasn't merged after the review and showing that the code owner has to merge it

Yes, the reason it wasn't merged is because you requested a second reviewer. All the reviews need to be done in order for a PR to be merged.

I'm not sure why you request Andrew review on this PR, but I've already finished my review.  My job for this PR is done.

It wasn't merged after the review and showing that the code owner has to merge it

Yes, the reason it wasn't merged is because you requested a second reviewer. All the reviews need to be done in order for a PR to be merged.

My bad sir but earlier when you approved it  even after review check it is showing that it needs permission of code owner no worries i will wait for Andrew


New version: MLJBase v0.13.4

Registering package: MLJBase
Repository: https://github.com/alan-turing-institute/MLJBase.jl
Created by: @ablaom
Version: v0.13.4
Commit: 4735e34244dd8b9c53a4cd1d924bfc357c3aab93
Git reference: master
Release notes:

#280,  #281

Hold this PR please

Working on a missing compat update https://github.com/alan-turing-institute/MLJBase.jl/pull/288

All good to go, thanks.
cc @DilumAluthge

Thank you!


Diamond Shop songs get locked when using FuserSongLoader

removing winhttp.dll unlocks the diamond shop songs.
adding it back locks them.

Yeah, this is an issue with winhttp.dll being the file used to hook, although I'm not entirely sure why it disables all networking for the game. It used to sorta be a feature, since I didn't want to step on any toes with Harmonix. I'm sure another file could be used, but I don't know when I will revisit this codebase.

I found a kind of fix for this. Removing the dll and adding diamond shop songs to a crate then adding the dll back lets you use diamond shop songs.

someone fixed it https://github.com/NarrikSynthfox/FuserSongLoader/releases/tag/diamond_shop_fix


Make sure we have appropriate coverage report

This patch ensures that we have the following:
(1) Proper coverage report for all packages
(2) Build status and coverage percentage as part of README
(3) Add glide cache in travis.yml

Coverage increased (+43.5%) to 54.306% when pulling 3209e7a22368513a87a3d3243de03de9c048bda9 on cover_fix into f9f87ea89fd5e5a6c0d191fe8245fbabaff3314c on master.


Remove subscription to the application locale

I've been following @caridy's discussions on this topic in another thread where he makes the case that subscribing to locale changes to trigger a rerender of the component/helper is not a common pattern.
For example, if the users changes their locale at runtime, any helpers rendered after the change will receive the new locale change.  Anything rendered previously will stay rendered on the previous locale.  Handling this  really complicates the helper logic and there is overhead in subscribing to those changes for each and every helper.
The workaround would be recommending users to reload the view explicitly using a rerender where they need to immediately reflect the change.
Unfortunately, we cannot begin removing this yet because the application view is not able to rerender.   This is demonstrated here http://jsbin.com/ruzuho/1/edit?html,js,console,output (click rerender twice, observe the console while doing so).  So, until that bug is fixed within Ember we cannot resolve this issue.
/cc @caridy

When you mean workaround, you mean removing those listeners, and rely on some sort of best practice (doc) to explain that they should re-render manually?
Can you link to the corresponding ember issue?

When you mean workaround, you mean removing those listeners, and rely on some sort of best practice (doc) to explain that they should re-render manually?
Correct.  Remove the listeners and provide documentation for the < 80% use case.

The issue: https://github.com/emberjs/ember.js/issues/2267 looks like it was closed but has regressed if it was in fact fixed at some point.

Ok, :+1:

Spoke to Paul (@tchak13) and he currently does an app destroy and recreates to work around this issue.  We can implement the same pattern and document it as a work around for the 1% case where consumers want to change the locale at runtime.

Will keep this around now that the new Ember.Helper better supports the usecase.


Signal module import

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 16.04
TensorFlow installed from (source or binary): pip
TensorFlow version (use command below): 2.0.0
Python version: 3.6.8

Describe the current behavior
The signal module is not found  when doing from tensorflow.signal.
I have this error:
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-89a7b2fbc883> in <module>
----> 1 from tensorflow.signal import fft2d

ModuleNotFoundError: No module named 'tensorflow.signal'

Describe the expected behavior
I would like from tensorflow.signal to work.
Code to reproduce the issue
from tensorflow.signal import fft2d, ifft2d

Other info / logs
In version 1.14 this was working.
Also I can still do the following:
import tensorflow as tf
fft2d = tf.signal.fft2d
ifft2d = tf.signal.ifft2d

but it's obviously not very handy.

I was able to replicate the issue for TF-2.0,nightly and 2.1rc2 versions. Please find the gist of colab.

@zaccharieramzi
Importing modules in signal can be done in a way given below.
from tensorflow.python.ops.signal.fft_ops import fft2d, ifft2d
For more info please refer to the following link and also the following gist.
Closing this issue as it has been resolved. Thanks!

Sure, thanks!
I am satisfied with this answer which works in all the versions of tensorflow, but do you know why I need to use this heavy statement rather than tensorflow.signal?


Change the feature name for BuiltinTaskGroup.

The createTaskGroup builtin has changed its signature and now requires
a type metadata argument. Change the feature accordingly so that
compilers with the new and old versions have disjoint feature sets.
Fixes rdar://79561865.

@swift-ci please smoke test and merge

@swift-ci please smoke test macOS


Prevent clearing of the input field on re-initializing the instance

Expected Behavior

On reinitializing flatpickr, the input fields present in the DOM should not be cleared by the new instance. It should just pick the values set by the previous instance.
Current Behavior

On reinitializing the flatpickr, the input field is cleared. So the user has to re-enter the date/time through the new instance.
Possible Solution

There might already be a solution to this and I might be doing something quite silly.
Steps to Reproduce (for bugs)

Check this JSFiddle.
Context

I am actually cloning a form by the press of a button. This form has a flatpickr field. On cloning, I have to re-initialize flatpickr so the cloned date field comes with flatpickr. There might be a better approach to this, but I'm not quite finding it.
Your Environment

Version used: 2.4.3
Browser Name and version: Google Chrome 56
Operating System and version (desktop or mobile): Windows 10 Pro

Hello,

There might be a better approach to this, but I'm not quite finding it.

There definitely is. You need to apply flatpickr to the new cloned element directly.
See https://jsfiddle.net/svz0x1ce/

Hi Gregory!
I would like to add here that I was cloning the form using list rendering in Vue.js (v-for) and not using the jQuery clone() function.
It was a bit tricky, but I got it to work, thanks to your remark.


Importing wlroots.ffi_build from system installation fails

It seems the ffi.verify() call wants write access to neighbouring files, and so importing wlroots.ffi_build raises a PermissionError when a user does not havewrite permissions to /usr/lib. This is the stack trace:
>>> import wlroots.ffi_build
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.10/site-packages/wlroots/ffi_build.py", line 2408, in <module>
    check_version()
  File "/usr/lib/python3.10/site-packages/wlroots/ffi_build.py", line 44, in check_version
    wlroots_version = load_wlroots_version()
  File "/usr/lib/python3.10/site-packages/wlroots/ffi_build.py", line 36, in load_wlroots_version
    lib = ffi.verify("#include <wlr/version.h>")
  File "/usr/lib/python3.10/site-packages/cffi/api.py", line 468, in verify
    lib = self.verifier.load_library()
  File "/usr/lib/python3.10/site-packages/cffi/verifier.py", line 104, in load_library
    self._write_source()
  File "/usr/lib/python3.10/site-packages/cffi/verifier.py", line 193, in _write_source
    with open(self.sourcefilename, "w") as fp:
PermissionError: [Errno 13] Permission denied: '/usr/lib/python3.10/site-packages/wlroots/__pycache__/_cffi__x58fcf130xd9c61baf.c'

This is coming from the check_version(). Perhaps we can have some kind of flag to disable the check? The use-case here is not building pywlroots per se, but building another CFFI module that depends on it.

Thanks for the report here. I just pushed a change that should let us skip the check if that error is hit.

Brilliant, thanks!


Added sql code to empty file

MOAQ ONLINE

Updated file according to suggested changes

Updated file according to suggested changes

Updated file according to suggested changes

Updated the code according to suggested changes
P.S. Maybe hurried up)
In any case, it was an exciting journey


Ability to copy form fields (and annotations in general?) when copying pages

Let me start by thanking your for developing this app and library. I use it in a simple GUI for editing PDFs I'm developing, where QPDF is doing all of the actual work.
I couldn't find in the documentation any clear reference as to whether it's possible to copy a page from one file to another while preserving any form fields that are present. From crawling through the issue list and the source code it seems this isn't possible, but I'm not sure.

You could do it, but you'd have to do a lot of work. However, this is by far the most requested feature, and it's probably the next significant non-performance-related enhancement I will work on. I'm not sure exactly when I will get to it since qpdf is mostly a side project.
Right now, depending on the nature of what you're doing, it is possible to copy the entire AcroForm and Annotations dictionaries from one file to another, after forms will work on any page you copy, but this brings a lot of extra stuff around, and for large files, it is very inefficient. What I intend to do is to actually process the form and annotation information so that qpdf knows which ones are relevant for which pages, at which point I can do something intelligent. This is part of a general pattern of qpdf not preserving document-level structures when copying pages. There are several open issues here tagged with "pages". Most likely, when I get to this, I will close this issue as a duplicate, but right now I don't feel like spending the time to find which issue that would be . :-)
So, for now, the functionality is not there, but hopefully it will come in the not too terribly distant future.

By the way, I do occasionally get requests for a qpdf GUI, but it's not something I'm inclined to write. Depending on the nature of what you're doing, let me know if there are things the library can do to help you. I have made some modifications to the library to help people who are using it in particular ways, including supporting people who are calling qpdf from other languages.

(...) this is by far the most requested feature, and it's probably the next significant non-performance-related enhancement I will work on. I'm not sure exactly when I will get to it since qpdf is mostly a side project.

I'm glad to hear this, and I completely understand that this will get done "whenever it gets done".

Right now, depending on the nature of what you're doing, it is possible to copy the entire AcroForm and Annotations dictionaries from one file to another, after forms will work on any page you copy, but this brings a lot of extra stuff around, and for large files, it is very inefficient.

Thanks for explaining this option, since I'm not well versed in the PDF format. Even if it's inefficient, it's an available option.

Most likely, when I get to this, I will close this issue as a duplicate

I don't mind you closing this issue right now. If I could humbly request something, is making the fact that "a high-level interface for copying metadata and annotations between files is not provided at the moment" more apparent in the documentation.

Depending on the nature of what you're doing, let me know if there are things the library can do to help you. I have made some modifications to the library to help people who are using it in particular ways, including supporting people who are calling qpdf from other languages.

This is really generous of you, thanks! My app is written in C++, so there won't be any issues in that front. But if I'm finding myself wishing for some specific interface, I'll file another issue.

I'll leave this open as a reminder to make this clearer in the docs. That's a good suggestion. It's hiding in there, but not very clearly.
Thanks for the report and the feedback.

This is going into 10.2.

Closing as duplicate of #395.


Issue with Axis Titles

Deat Timvink,
I found an issue when trying to place the same Vega Lite graph in two separate Github Pages
The repository is https://github.com/infovote-io
When I create the plot margingrowtheval_hcon.json I can see it in the index page, however when I copy the same graph in the v2 page it does not display:
Index:

V2:

I included 2 examples more of this issue, the margingrowtheval_rep.json tries to achieve the same result but the repeat function does not allow me to display only one of the axis titles, it is either both together or only one for both. Finally, the margingrowtheval_sep.json includes the variable name instead of a title for the x-axis
To contrast this same behavior, the carterclinton.json graph is on both pages (index and v2) and it does not have this issue. It only appears when I want to copy margingrowtheval_hcon.json which uses more than one x-axis title.
Any help is greatly appreciated. Thank you :)

Actually this might have been fixed in the meantime (https://github.com/timvink/mkdocs-charts-plugin/releases/tag/v0.0.11). Can you try again?


Make slugurl template tag site-aware.

The slugurl tag does not currently take into account the current site - it simply returns the URL for the first page it finds in the database. This is not the behaviour you would expect - e.g., if there are two sites that both have pages with the same slug, you would expect that slugurl called from a given site will return the URL of the page on that site.
This patch adds filtering on the current site to slugurl. To preserve backward compatibility it falls back to the old behaviour (return any patching page) in the event that a page on the current site isn't found.
I have also tweaked some of the existing tests to directly test the output of slugurl rather than artificially rendering a template - this seems unecessary as we are interested in the output of slugurl rather than testing Django's template rendering.
Please let me know if any other changes/documentation is required!

I've just found https://github.com/wagtail/wagtail/pull/3123, which was essentially proposing the same thing. Hopefully this patch addresses all the comments on that PR.

@kaedroho thanks for the review - I have updated to address your comments.


Publish should be done on tags, not pushes to main

fixed here: https://github.com/Flagsmith/flagsmith-flutter-client/commit/8dde8ef7a2cd4915c6087ec72d2abf04a6b4d29b


Scopes + memory groundwork

Partially implements #269. This PR introduces some groundwork for future memory management changes, and introduces basic support for the 'scoped' memory management pattern (https://fluff.blog/2023/08/30/the-next-ten-years-beyond-maids.html, https://github.com/dphfox/scoped).

[x] Move all memory management utilities into a dedicated Memory folder
[x] Rename cleanup to doCleanup for consistency (#237)

[ ] Add developer-friendly warn when the old name is used - should point to discussion thread

[x] Add destroy methods to all objects

[x] Computed
[x] Value
[x] Observer
[x] ForKeys
[ ] ForPairs
[ ] ForValues
[x] Spring
[x] Tween
[ ] Add error when using after destroy
[ ] Add errpr on double destroy

[ ] Add type information for destroy methods on objects

[ ] Computed
[ ] Value
[ ] Observer
[ ] ForKeys
[ ] ForPairs
[ ] ForValues
[ ] Spring
[ ] Tween

[ ] Add cleanup tables as first parameters to all constructors

[x] Computed
[x] Value
[x] Observer
[x] ForKeys
[x] ForPairs
[x] ForValues
[x] Spring
[x] Tween
[ ] New
[ ] Hydrate
[ ] Add developer-friendly warn when this is omitted - should point to discussion thread

[x] Implement scoped() syntax sugar for cleanup tables w/ constructor methods
[ ] Ensure type checking passes for additions
[ ] Update unit tests

[x] Computed
[x] Value
[ ] Observer
[x] ForKeys
[ ] ForPairs
[ ] ForValues
[ ] Spring
[ ] Tween
[ ] New
[ ] Hydrate
[ ] doCleanup
[ ] scoped

[ ] Add to API reference

[x] Memory section
[x] cleanup -> doCleanup
[ ] Destroy methods
[ ] Type info
[ ] Cleanup table parameters
[x] scoped()

[ ] Update examples
[ ] Update tutorials

[ ] Write dedicated Memory section before introducing objects
[ ] Update all code examples to use scopes

I think it'd be useful to pull in concepts from #220 for the backend implementation of the For objects. This won't be exposed to users yet - and it probably wouldn't be the final implementation because of #205 - but it'll be useful for tidying up those rat's nests and ensuring they have consistent destruction and memory management.

Now disposing of unused processors at the right time :)

New For object implementations are now passing unit tests.

I'm running into issues with typechecking that seem hard to surmount. They might actually be bugs in Luau or the luau-lsp plugin.
I'm going to simply try and fix a decent amount of them that seem possible, and leave the rest in so that this can get out the door. I'll redistribute the type checking fixes to another issue/PR somewhere else.

Examples have now all been updated to use scope syntax, and also have more fully fleshed-out explanations to go along with it. Pleasantly, a lot of the code snippets are simpler now! That's partly thanks to scopes, but also a little bit thanks to improved coding conventions generally.

Since we're no longer pursuing additional API surface for the time being, this now fully closes #269.


Avoid double encoding for subscription name in pulsar-admin

Motivation
Right now, Pulsar-admin encodes sub name multiple times WebTargets
So, avoid multiple encoding.

rerun java8 tests

rerun integration tests

rerun java8 tests

rerun integration tests

rerun java8 tests

rerun integration tests

@rdhabalia It looks there is a test failure at AdminApiTest.persistentTopics
20:07:37.433 [pulsar-web-3570:org.eclipse.jetty.server.HttpChannel@585] WARN  org.eclipse.jetty.server.HttpChannel - /admin/v2/persistent/prop-xyz/ns1/topic_%2B%26*%25%7B%7D%28%29+%5C%24%40%23%5E%25/subscription/topic_%2B%26*%25%7B%7D%28%29+%5C%24%40%23%5E%25/position/1
javax.servlet.ServletException: javax.servlet.ServletException: java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "{}"

Long stale and conflict. I'm trying to pick it up at #18435.
The test failure reported at https://github.com/apache/pulsar/pull/2910#issuecomment-442637019 cannot reproduce locally.

Closed as invalid. See also https://github.com/apache/pulsar/pull/18435#issuecomment-1311718467:

Closed. It seems that other client module code depend on this double encoding behaviour - what a tech debt, lol.


Updated Contributing.md

Updated the document with few changes and to include a line - Steps to reproduce behavior.

@naveens239  please remove the npm-debug.log file. As @skyshader said to add it to '.gitignore.