vite: workaround no longer needed

Environment

Operating System: Linux
Node Version:     v16.15.1
Nuxt Version:     2.16.0-27720022.54e852f
Nitro Version:    0.6.1
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      bridge, serverHandlers, devServerHandlers, typescript, buildModules
Runtime Modules:  -
Build Modules<EMAIL_ADDRESS>

Reproduction
https://stackblitz.com/github/AndreyYolkin/latest-bridge-vite-workaround-issue
https://github.com/AndreyYolkin/latest-bridge-vite-workaround-issue
Describe the bug
Nuxt bridge with fresh dependencies uses vite which causes 404 errors for assets. Fast search in source code returned workaround for vite, which no longer needed as far as I concerned. Removing this 3 lines helps to run dev server without errors.

Additional context
https://github.com/nuxt/bridge/blob/0fb6cfcd17971ebefdaed3dece5af57a726921a6/src/vite/client.ts#L113-L115
Logs
ERROR  6:08:55 PM [vite] Internal server error: ENOENT: no such file or directory, open '/__url/.nuxt/components/nuxt-error.vue'                                                                                18:08:55
      at Object.openSync (node:fs:585:3)
      at Object.readFileSync (node:fs:453:35)
      at getDescriptor (file:///home/user/family/latest-bridge/node_modules/@vitejs/plugin-vue2/dist/index.mjs:2225:66)
      at Context.load (file:///home/user/family/latest-bridge/node_modules/@vitejs/plugin-vue2/dist/index.mjs:3210:28)
      at Object.load (file:///home/user/family/latest-bridge/node_modules/vite/dist/node/chunks/dep-67e7f8ab.js:40201:46)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async loadAndTransform (file:///home/user/family/latest-bridge/node_modules/vite/dist/node/chunks/dep-67e7f8ab.js:36553:24)

 ERROR  6:08:55 PM [vite] Internal server error: ENOENT: no such file or directory, open '/__url/.nuxt/components/nuxt-loading.vue'                                                                                18:08:55
      at Object.openSync (node:fs:585:3)
      at Object.readFileSync (node:fs:453:35)
      at getDescriptor (file:///home/user/family/latest-bridge/node_modules/@vitejs/plugin-vue2/dist/index.mjs:2225:66)
      at Context.load (file:///home/user/family/latest-bridge/node_modules/@vitejs/plugin-vue2/dist/index.mjs:3210:28)
      at Object.load (file:///home/user/family/latest-bridge/node_modules/vite/dist/node/chunks/dep-67e7f8ab.js:40201:46)
      at processTicksAndRejections (node:internal/process/task_queues:96:5)
      at async loadAndTransform (file:///home/user/family/latest-bridge/node_modules/vite/dist/node/chunks/dep-67e7f8ab.js:36553:24)

Yes, I found this lines in your PR. Great job!


Report this instagram account

Please report this instagram account @thekkatha_freakamaru
It's full of hate speeches

Please report this acoount on instagram..
@i.shamsjerin.  Please help....

This is not an issue either


Unable to sum across dimensions in the front end

For some variables, I am unable to find the sum across all regions or technologies in the front end. The 'Agg?' tickbox remains greyed out and unclickable.

Oddly enough, this works fine for some other variables.

The current version of the frontend determines if a variable is aggregatable based on the unit of the variable. If the unit is either % or has / in the unit, it is assumed the variable is a rate that cannot be aggregated. Some variables in FTT currently have odd units like FTT-Heat Capacity Additions is GW/y rather than just GW.
A better option for this which I have used in other frontends is to have a column to flag if a variable should be aggregatable so it does not have to be inferred by the unit


sync cache every 30s

@anguslees I think it's helpful to sync the informer cache periodically for missing events or failed actions might have. I found it's configured in several k8s internal controllers. How do you think ?

Unless you can think of a specific example of something that we would currently miss, no I don't think this is useful.

@anguslees i would like revive this PR and get this change in. See #494, #496. Its just first step to add status fo the function. But i would imagine many other details to follow (like pod count, stats etc). For controller to be source of truth any time, it needs to have a full sync periodically. Like @ngtuna mentioned many controllers do this.

Naturally I'd rather we watched objects rather than polled repeatedly for status updates.  But if we have to poll the list of functions, then yes we should do it here through the sync loop.
A typical value here is 5-20 minutes (to give some perspective) - since it is normally used for retries rather than status updates.  I think using polling will be either too expensive (in nontrivial clusters) or too slow for status updates.

A typical value here is 5-20 minutes (to give some perspective) - since it is normally used for retries rather than status updates.

Let me emphasise that control loop is still for checking desired state == actual state, if not do the reconciliation. Status is just representation of state of the fact. Not sure what you mean it is normally used for retries rather than status updates. But updating the status is critical part and controllers do that. For instance deployment controller does syncDeploymentStatus as part of syncDeployment
Typical value i have seen being used for controllers are less than a minute

I think using polling will be either too expensive (in nontrivial clusters) or too slow for status updates.

I would not necessarily think it as polling. Architecture of Kubernetes implies all the components except Kube-api server are stateless, and they rely on kube-api server as data store to retrieve necessary information.  Every controller will put load on the API server. Not all controller just act up on the watch updates from API server. For e.g. Kube-proxy does full-sync every 30s (default value) reading all services and endpoint info. As long as controller has valid reasons to access api server i think api server can scaled horizontally and should not be a concern.

Naturally I'd rather we watched objects rather than polled repeatedly for status updates.

Again its not just for status updates. It's for reconciliation.

What if there were out of band accidental changes resulting in deletion of pod, deployment, service etc used by Function.
What if pods got destroyed for whatever reasons and new pods never got created (lack of capacity etc). Least controller can do is reflect the status of the function.

I only see need for it growing. How do Kubeless controller reflect current count of running pods for a function, stats etc in the function status if it's not periodically updating.
IMO this is the direction (having a periodic sync) we should go for various use-cases.
But we want status-quo, then least that could be done for #494 it to watch for pod updates, then infer corrsponding function and update the status.

Actually just to clarify, we dont necessarily have to update the cache. Many requirements can be easily met with periodic sync loop that reads from the local cache (not necessarily the latest) and update desired state and reflect the status.
Let me open a differnt PR, than not leveraging cache update as way to do periodic sync.

I don't want to stand in the way based on a largely theoretical concern, if this is the direction you want to go.  Realistically, the kubeless controller is only one of many API clients, and apiserver load depends on the aggregate behaviour, not the behaviour of any specific controller.
However, I suggest reading some of the discussion around https://github.com/kubernetes/kubernetes/issues/23394, and following through the use of --min-resync-period (aka MinResyncPeriod) in the upstream k8s controllers, which defaults to 12h.
I think we're talking about two different things here:  There's the frequency with which an Informer re-fetches information from the apiserver (what this PR affects), and how often a particular controller might perform a periodic recalculation of the world based on an internally cached snapshot.  Note the former causes apiserver requests, and the latter does not (except perhaps pushing the results of the recalculation).
The resourcequota controller is a good simple example of this - it has a long periodic resync (12h, thanks to MinResyncPeriod) of the actual Informer cache, then a separate goroutine (enqueueAll) that runs much more frequently (5mins) and recalculates the current quota usage of everything, based on reading the current cached snapshot in the ListWatcher.    Note that resourcequota has that latter loop because it fundamentally does something "global".  I don't think we have that use case in kubeless, hence my pushback on using a frequent-global-loop as an architecture.
Again, I suggest we use Informers (ListWatchers) with long resync periods to efficiently maintain an internal cache of anything we want to know about, and then if we want to loop over that cached information frequently (rather than use an edge-triggered approach), then go nuts - we're only affecting our own CPU use at that point, and not the shared apiserver.

how often a particular controller might perform a periodic recalculation of the world based on an internally cached snapshot.

Yes, as my last commnet mentioned that is all i wanted at this point. Closing the PR i will open a different one.


[WIP] Reconnect orchestration stack with its template at post-provisioning

This is a follow-up PR for #11203. For some providers like Azure and vApp there might be no linkage between an orchestration stack and its template. We can however link them if the stack is provisioned through manageiq catalog service. At post-provisioning step we will reassure this linkage is still there, otherwise relink them.
This PR has a dependency on #11598 because of the refactoring of the spec test.
/cc @gmcculloug

@miq-bot add_label wip

@Ladas please review

@bzwei just one bigger concern, otherwise it's awesome :-)

@bzwei looks great to me :+1:

@miq-bot remove_label wip

Euwe Backport details:
$ git log
commit 1840d45bc70142efd952e41db930fa3bd79d47ff
Author: Greg McCullough<EMAIL_ADDRESS>Date:   Thu Oct 6 15:37:38 2016 -0400

    Merge pull request #11617 from bzwei/service_stack_template

    Reconnect orchestration stack with its template at post-provisioning
    (cherry picked from commit ad54db05fadbf51432e3b11acfc6ee03674666c1)


Is their any in-built method for creating TextField with suggesions?

For many application if input text can generate suggestions (not hint_text) it will be very helpful for users. Is there any method in Flet for this?

Yes really need this either in TextField or in Dropdown

Dup of #791


Character Mapper Takes String

https://github.com/PostgreSQLCopyHelper/PostgreSQLCopyHelper/blob/51b433f9c27383a9ca661ab20c8d12648e805f88/src/PostgreSQLCopyHelper/Extensions/CharacterTypeExtensions.cs#L15-L18
I noticed this code and thought it should rather take a Char instead of a String type. Is this intentional? Am I missing something?

Maybe I am mistaken, but doesn't a char(n) data type refer to fixed -width strings? It wouldn't feel good to also put a char[] in there, this often means a lot of conversions in upper layer code.

Yea you are probably right, just thinking through it.

We could overload the method of course, to allow passing a char or a char[] to the method.


Add v1.0.1 CSV/CRDs and update release-v1 channel

@eriknelson @dymurray From my brief bit of testing this is all it takes to automatically update existing v1.0.0 operators. I saw the pod restarted with the env changes in place as expected as well.


Expand Python test versions

It may be time to expand the versions of python on which we test the package to include 3.8 and 3.9 and more generally to support what ever the open force field toolkit supports to ensure we are consistent.

closed in #101


API Return Status should be json format

The current returns from API hits to the bot server return true or false. We understand this is something the team should have worked from start but nevertheless changes have to be made so the server returns JSON with proper status codes and all the services consuming those apis should be able to accommodate those changes.

So basically, the need is to change all the api with return type as Boolean into a json return type,
and handle wherever needed on its internal calls.
Shall i take this up ?

Yes sure. Fork the project and go ahead with your changes. We would be happy to see your PR on the project.

Thanks @adarshtri . As said,
So basically, the need is to change all the api with return type as Boolean into a json return type, and handle wherever needed on its internal calls.
I shall try doing it ..


Fix MGLOfflineStorageTests

This invalidates MGLOfflinePack properly

It should be able to pass now, so we can turn it back on. Where is it disabled?

It's not disabled, but manually run via the scheme iosapp.

@birkskyum, "It should be able to pass now, so we can turn it back on to run automatically. Where is it disabled?"

From what I can tell it's running just fine now


Testing aiohttp as a library

I apologize if an issue is an inappropriate way to discuss this, but the only discussion location I could find on aiohttp was the discus forum which was conspicuously empty.
I'm creating a project using aiohttp to make HTTP requests to remote servers. I'd like to test this project. This means I need a way to essentially mock out HTTP requests during testing so I don't actually attempt to talk to these remote servers. I've used HTTPretty in the past, which I'm very fond of. It does not work with asyncio and there's non-trivial work to get it to work. I see that aiohttp has a test suite for itself, but I have not been able to find any tools for writing tests that mock/patch aiohttp itself so I can assert that the correct requests will be made to the expected locations or that errors are properly handled. Does such tooling exist? If not, would it be appropriate to add something like a FakeTransport/FakeConnector into aiohttp that could be used to capture requests and supply pre-canned responses? I may be interesting in writing it, if so, but I want to make sure that would be something reasonable and get ideas for a good approach as I'm just getting started reading the code.

See also #423

Thanks.


I had this working before, but today I wanted to add this to 2 more cameras and I'm getting these errors below, ending in Broken Pipe....
Can someone tell me what could be the issue with this?

Nevermind, it's working now, I didn't change anything anywhere but decided to give it a again and now it worked.

Working now

I get this sometimes and the fix for me typically is to power cycle the camera.


Webstorm can't get svelte configuration information

Hi
I'm tring to integrate melt-ui into my project, which uses svelte-sequential-preprocessor as preprocess. However, there's a problem with my IDE Webstorm that the configuration in svelte.config.js can't be read and some special path like '$lib' can't be recognized with 'Svelte: Cannot find module  $lib  or its corresponding type declarations.' error.
Hope to get your help

I don't use Webstorm and I haven't tried meta-ui, but I can try to help. Can you provide a minimal reproducible example?
I searched around a bit and found this issue. It's a similar issue with vscode. I don't know if any of the suggestions will help you.
https://github.com/sveltejs/language-tools/issues/1459#issuecomment-1207128240


Allow creation of custom quality profiles based on yaml configs

The 'Detekt way' default profile is now based on default-detekt-config.yml.
Creating custom quality profile based on yaml is not necessary as we can create and configure quality profiles in the sonar web interface.


Ethernet - esp_at_eth_cmd_regist takes a lot of time to execute

I have a WROOM32 board with a LAN8720 phy chip. It works well with the ethernet commands. Just the start-up time is much longer with ethernet (approximately 4 seconds). The log level is "error"
I see the function "esp_at_eth_cmd_regist" takes exactly this 4 seconds to execute (called in app_main.c). I can't debug deeper since the code is in the AT-Core library. Do you have any idea why it takes so long or if I can do something to make it faster? Is it normal that it will take such a long time?
Below are the logs in verbose level between the ethernet initialization:
Ethernet cmd regist start
D (3268) nvs: nvs_open_from_partition NVM_011 0
V (3268) esp_netif_objects: esp_netif_next_unsafe 0
D (3268) esp_netif_lwip: check: remote, if=0x3ffbd7d0 fn=0x40149d9c
D (3275) esp_netif_lwip: esp_netif_dhcpc_stop_api esp_netif:0x3ffbd7d0
D (3281) esp_netif_lwip: dhcp client stop successfully
D (3287) esp_netif_lwip: call api in lwip: ret=0x0, give sem
V (3292) esp_netif_objects: esp_netif_next_unsafe 0
D (3297) nvs: nvs_open_from_partition NVM_010 0
D (3302) nvs: nvs_open_from_partition NVM_006 0
V (3306) esp_netif_objects: esp_netif_next_unsafe 0
D (3311) esp_netif_lwip: check: remote, if=0x3ffbd7d0 fn=0x40149e68
D (3318) esp_netif_lwip: esp_netif_dhcpc_start_api esp_netif:0x3ffbd7d0
D (3324) esp_netif_lwip: dhcp client re init
D (3329) esp_netif_lwip: call api in lwip: ret=0x0, give sem
V (3335) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): checking args
V (3341) intr_alloc: esp_intr_alloc_intrstatus (cpu 0): Args okay. Resulting flags 0xE
D (3349) intr_alloc: Connected src 38 to int 17 (cpu 0)
V (3394) esp_netif_objects: esp_netif_next_unsafe 0
<27>[0;32mI (3394) esp_eth.netif.glue: 4c:11:ae:ad:a0:03
<27>[0;32mI (3394) esp_eth.netif.glue: ethernet attached to netif
D (7399) event: running post ETH_EVENT:0 with handler 0x40149534 and context 0x3ffbd9cc on loop 0x3ffb7df0
D (7399) esp_netif_handlers: esp_netif action has started with netif0x3ffbd7d0 from event_id=0
D (7406) esp_netif_lwip: check: remote, if=0x3ffbd7d0 fn=0x4014b294
D (7413) esp_netif_lwip: esp_netif_start_api 0x3ffbd7d0
D (7418) esp_netif_lwip: esp_netif_get_hostname esp_netif:0x3ffbd7d0
D (7424) esp_netif_lwip: check: local, if=0x3ffbd7d0 fn=0x4014ad64
D (7431) esp_netif_lwip: esp_netif_update_default_netif_lwip 0x3ffbd7d0
V (7437) esp_netif_objects: esp_netif_next_unsafe 0
V (7442) esp_netif_objects: esp_netif_next_unsafe 0x3ffbd7d0
V (7448) esp_netif_lwip: esp_netif_is_netif_up esp_netif:0x3ffbd5e8
V (7454) esp_netif_lwip: esp_netif_is_netif_up esp_netif:0x3ffbd7d0
D (7460) esp_netif_lwip: call api in lwip: ret=0x0, give sem
D (7466) event: running post ETH_EVENT:0 with handler 0x400e63cc and context 0x3ffb5b94 on loop 0x3ffb7df0
ethernet init done
Many thanks for your help / and information.

@ubichsel esp_at_eth_cmd_regitst() called the following possible time-consuming APIs, could you please add more debug info into their implement, see what happened.

esp_event_handler_instance_register
esp_eth_driver_install
esp_netif_attach
esp_eth_new_netif_glue
esp_eth_start
esp-at/components/at/src/at_eth_init.c

May I know if there is any update? If the issue still exists, please let us know.

Sorry I had other projects in the meantime.
At the end it was in the function esp_eth_start->phy->negotiate(phy) -> lan8720_negotiate -> autonego_timeout_ms. This timeout seems to be used only there at startup to wait for a connection (and default is 4 seconds). I set the phy_config.autonego_timeout_ms = 0; in at_eth_init.c to 0. In this case it starts-up immediately. If you see any problems with this solution please let me know. Otherways it is solved for me.

We assume this worked for you, and will close it. If that's not the case, please open another github issue.


Check travis

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@5ea276f). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #27   +/-   ##
=========================================
  Coverage          ?   58.29%
=========================================
  Files             ?       26
  Lines             ?     1573
  Branches          ?      279
=========================================
  Hits              ?      917
  Misses            ?      634
  Partials          ?       22

Continue to review full report at Codecov.

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


Code folding hint cursor "sticks" if you click on the hint

Fold a region, hover the '...' then click the hint that then happens.
The cursors stays as the question mark.

Fixed.


Make Database a trait

For https://github.com/gnosis/gp-v2-services/pull/741 it has been suggested to make the database a trait so that we wrap it with with a version that collects the query metrics.
The trait also has the advantage that consumers of the Database can now mock it if they want to.
It has the disadvantage that we are using Arc instead of just Database in these places. When we introduced the database struct I was against this but now I think it is a slight advantage again. I also don't like repeating a bunch of function signatures several times to implement Database, MinFeeStoring, etc.
Test Plan
existing tests still work

Based on feedback I have split the big trait into several specialized traits. We now have
MinFeeStoring, EventUpdating, OrderStoring, TradeRetrieving.


fix FileSystemCacheKey are always different in overload equals

Proposed changes
Fixed Bugs introduced from #33937

FileSystemCacheKey.equals() compares properties by ==, resulting in creating new file system in each partition
dfsFileSystem is not synchronized, resulting in creating more file systems than need.
jobConf.iterator() will produce more than 2000 pairs of key-value

run buildall

run buildall

run buildall


Detect cycles between jobs due to passed constraints.

If a pipeline has a dependency cycle between jobs due to passed constraints (for example, job b depends on job a, job c depends on job b, and job a depends on job c), then the configuration is invalid. Also, the browser hits an infinite loop trying to render it. This patch detects passed cycles and errors on validation if any cycles are found.
Figured this out with @wjwoodson.

If passed cycles are actually useful, and if they work aside from the UI, then maybe we should fix the UI instead of making this change. I don't know when I would use them, and I find them a little hard to reason about, but that's just me.
I'm happy to switch this to a warning, or file a feature request for the UI to support cycles (I don't know elm well enough to write that patch yet).

@jmcarp Actually, we happen to be working on a new pipeline UI already as part of the spaces work (concourse/concourse#1707). I suspect the new UI will work fine, since we're removing the complicated line-drawing logic, so I'm going to just close this so we're not spending effort on the old UI.
Thanks again!


Fix Nacos empty ticket not work

What is the purpose of the change
Brief changelog
Verifying this change

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Add some description to dubbo-website project if you are requesting to add a feature.
[ ] GitHub Actions works fine on your own branch.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #11213 (eb3f6b5) into 3.1 (98c2f39) will decrease coverage by 5.09%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##                3.1   #11213      +/-   ##
============================================
- Coverage     69.45%   64.36%   -5.10%
+ Complexity      128       14     -114
============================================
  Files          1503     1422      -81
  Lines         79374    59325   -20049
  Branches      13986     8723    -5263
============================================
- Hits          55132    38186   -16946
+ Misses        19484    17089    -2395
+ Partials       4758     4050     -708

Impacted Files
Coverage Δ

...ubbo/metadata/store/nacos/NacosMetadataReport.java
0.00% <0.00%> (ø)

...luster/router/script/ScriptStateRouterFactory.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...he/dubbo/test/common/impl/GreetingServiceImpl.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...zookeeper/curator/CuratorZookeeperTransporter.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...nfigure/DubboRelaxedBinding2AutoConfiguration.java
0.00% <0.00%> (-100.00%)
:arrow_down:

.../apache/dubbo/test/spring/SpringXmlConfigTest.java
0.00% <0.00%> (-96.16%)
:arrow_down:

...egistrycenter/context/ZookeeperWindowsContext.java
0.00% <0.00%> (-81.82%)
:arrow_down:

...istrycenter/processor/FindPidWindowsProcessor.java
5.40% <0.00%> (-81.09%)
:arrow_down:

...pc/cluster/router/file/FileStateRouterFactory.java
0.00% <0.00%> (-80.96%)
:arrow_down:

...ycenter/processor/KillProcessWindowsProcessor.java
10.00% <0.00%> (-80.00%)
:arrow_down:

... and 511 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Add ERC721_only_token_owner for burn

This PR proposes the inclusion of ERC721_only_token_owner in  ERC721_base. This method checks that the caller is the tokenId owner. Further, this method is meant to be imported into the contract (formerly 'frontend contract') and used within the exposed burn method. Finally, this resolves #157.

Thanks!


PR check failed by license

Currently, the PR check failed by the license check:
com.google.protobuf-protobuf-java-3.11.4.jar unaccounted for in LICENSE
com.google.protobuf-protobuf-java-util-3.11.4.jar unaccounted for in LICENSE
com.google.protobuf-protobuf-java-3.5.1.jar mentioned in LICENSE, but not bundled
com.google.protobuf-protobuf-java-util-3.5.1.jar mentioned in LICENSE, but not bundled
protobuf-java-3.11.4.jar unaccounted for in lib/presto/LICENSE
protobuf-java-util-3.11.4.jar unaccounted for in lib/presto/LICENSE
protobuf-java-3.5.1.jar mentioned in lib/presto/LICENSE, but not bundled
protobuf-java-util-3.5.1.jar mentioned in lib/presto/LICENSE, but not bundled

It looks like there are issues with the LICENSE/NOTICE.
##[error]Process completed with exit code 2.

It's might cause by the PR https://github.com/apache/pulsar/pull/7998.
And I see when changing the pom file, the CI is not running to check the PR.

found the same root cause. need to also fix the "change docs only" script, because it is not worked right for only pom.xml change.

Issue resolved.


[ci] release

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
<EMAIL_ADDRESS>Patch Changes

#1976 5a61f73c Thanks @jsparkdev! - Updates Korean UI translations

size-limit report 📦

Path
Size

/index.html
5.79 KB (0%)

/_astro/*.js
21.95 KB (0%)

/_astro/*.css
13.62 KB (0%)


Leaky ReLUs

Just thought I'd pitch in again and do my bit for this fantastic repo 😄
Implemented some snazzy leaky ReLUs w/ unit tests.

Great!!
I think there is some missing references in the vs2015 solution. If you can fix it, that would be great. Otherwise I will do it this weekend.

closes #63


Open Lapce here not working on Windows 10

Lapce Version
0.2.0
System information
Edition: Windows 10 Pro x64
Version: 21H2
OS Compilation: 19044.1889
Experience: Windows Feature Experience Pack 120.2212.4180.0
Describe the bug
Open Lapce here not working on Windows 10

Fixed in https://github.com/lapce/lapce/pull/1158


Add check to URL in function enqueue in case prefix "http://" is missing

Just a note: we want to add the check directly in the __init__: https://github.com/Lookyloo/PyLookyloo/blob/main/pylookyloo/api.py#L22

Fixed by https://github.com/Lookyloo/PyLookyloo/commit/8914871a48f6f4d8ac2655f1a5871e6ccbe85cab

Hello there,
I would like to report a similar "bug".
I recently discovered in one of my workflow, that I was submitting bogus URL to pylookyloo, by prefixing a single-quote by a double-quote, and pylookyloo accepted it anyway, leading to bogus scan.
Example of my bogus workflow :
$ lookyloo --listing --query "'http://google.fr'"
https://lookyloo.circl.lu/tree/18f658c0-48b3-47ae-8b5d-35b3bd4c7fc1

But if you look at the lookyloo scan, it does not work as the URL was not correctly formatted.
Hence, could you improve the URL argument parsing in order to prevent bogus results ?
For instance by removing all potential quotes around the URL, and also by ensuring that the URL is correctly structured (using this lib ?)
Cheers, and keep up the good work, CIRCL tools are awesome !


Self hosted Build Agent taking too much time to run Job successfully

Our self-hosted build agent fails on publishing the test results to Azure DevOps (MS Cloud, not on-premise) sometimes.
We configured the agent according to the documentation on https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/proxy?view=azure-devops&tabs=windows by passing the proxy settings in the config.cmd.
We have the following task description:

In most cases the build agent takes round about 15minutes to run the "Publish Test Results */junit.xml" job. (Pipeline in Azure DevOps).
Since it sometimes took less time (only 6 seconds) i am thinking that something goes wrong in this task. Really shouldn't take that much time for this task.
Agent is running behind proxy server! Configured like described in here https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/proxy?view=azure-devops&tabs=windows
Task returns following warning:
##[warning]Failed to upload file junit.xml to Blob Transfer exception with errorcode Unknown, exception message Microsoft.Azure.Storage.DataMovement.TransferException: The transfer failed. ---> Microsoft.Azure.Storage.StorageException: Fehler beim Senden der Anforderung. ---> System.Net.Http.HttpRequestException: Fehler beim Senden der Anforderung. ---> System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (407) Proxyauthentifizierung erforderlich.
Sorry for the warning message being in German! Can try to get in English if necessary.
Does somebody know where the error/warning comes from? Grateful for any help, and sorry if this issue is not being created in perfection, i promise i will do better next time. I am learning!
For those who suggest using evironment variables - unfortunately this is not an option.
Thanks in advance!

The firewall acts like a proxy. The running authentication mode is Active Directory SSO. Could that be a problem?

@fra-kuk
The task retries if there are transfer exceptions. hence it will be taking long time. Can you check if your firewall settings are whitelisting the necessary URLs that's needed by agent, the list is in the below doc.
https://docs.microsoft.com/en-us/azure/devops/organizations/security/allow-list-ip-url?view=azure-devops#additional-urls-for-signing-into-azure-devops-and-azure
PTR task especially uses this https://*.vstmrblob.vsassets.io

@navin22 Thanks for your comment! In fact, the problem was that there were some URLs that needed to be whitelisted. The firewall blocked them before.
It is working fine now.

Thanks for the confirmation!


'DiscreteField' object has no attribute 'reshape'

This leads to confusing behavior in forms.
def some_functional():
    def _form(w):
        # arrays are shaped to group by facet, but we don't care for that here so reshape(2,-1)
        ii = w['ind_p0'].reshape(2,-1).T
        gg = grad(w['ind_p1']).reshape(2,-1).T
        pp = w.x.reshape(2,-1).T
        nn = w.n.reshape(2,-1).T
        ...
        return w.x[0] # must return *something* of the right shape
    return skfem.Functional(_form)

skfem.asm(
    some_functional(),
    skfem.InteriorFacetBasis(mesh, skfem.ElementTriP1(), side=0),
    ind_p1=ind_p1,
    ind_p0=basis_p1.project(basis_p0.interpolate(ind_p0)),
)

gg, pp, nn all work, but ii returns 'DiscreteField' object has no attribute 'reshape'.
The "work around" or maybe the intended usage appears to be
ii = w['ind_p0'].value.reshape(2,-1).T

and this might be okay, except that
gg = grad(w['ind_p1']).reshape(2,-1).T

strongly implies (imo) that w['ind_p1'] is the "value". Moreover w[ind_p0]**2 works, and returns (w[ind_p0].value)**2 making me think maybe  w[ind_p0] supports any ufunc.
I think reshape should work.

You have it correct, the idea has been to have DiscreteField behave like DiscreteField.value, mainly for convenience. Would it be reasonable to simply add DiscreteField.reshape which returns reshape applied to the value?

That works, but there might be other ndarray methods that come up. Is duck typing DiscreteField so it acts like an ndarray the best implementation? Or should it also subclass ndarray. What is the difference between the return value form solve and a DiscreteField?
What's the difference between skfem.helpers.grad(w['thing']) and w['thing'].grad? Is w['thing'].grad a lazy evaluation (i.e. not created until it is used somewhere?
I think there is a common abstraction that could tie interpolate, project, solve, and Functional all together in a really intuitive way.  Conceptually, aren't all these things discrete fields? If DiscreteField subclassed ndarray, could it keep its existing functionality, and add its basis as a property? Does that make it easier to fix project/interpolate?

DiscreteField is a tuple so I'm not sure what you mean by subclassing ndarray. Everything is precomputed and DiscreteField.grad == grad(DiscreteField). DiscreteField is a function evaluated at quadrature points and it does not necessarily have any connection to a Basis.

We used to define forms like this:
def laplace(u, ux, uy, uz, v, vx, vy, vz):
     return ux * vx + uy * vy + uz * vz

So I invented DiscreteField to group all those starting with u into a single object.

Then after making U = (u, ux, uy, uz) we had the form definition
def laplace(U, V):
    ...

but then I had to figure out how to access u so that it doesn't look like U[0]. So I made U a special tuple with U.toarray().

This might be some gap in my skfem / fem in general understanding then...

DiscreteField represents a function

That idea, of a function somehow represented in FEM space, I thought was very closely coupled to the idea of a Basis. Are you saying that the return value of solve very much has a connection to a Basis, but that DiscreteField is literally just collection of evaluations at fixed (xyz) tuples (the quadrature points)?
Or maybe another way of saying it is DiscreteField samples a function at discrete points and stores those samples in an ndarray whereas solve, basis.zeros, project all give you back a more abstract array containing (the coefficients of?) a function represented by the given Basis?
What is the intended way to move back and forth between DiscreteField and basis.zeros? Does basis.zeros have a name? Is it a Projection? (I know that class doesn't actually exist in skfem, just conceptually.)

DiscreteField is a tuple of ndarrays so I'm not sure what you mean by subclassing ndarray.

I meant that when you do
x = DiscreteField()

what you get back is a child of ndarray. The .value property goes away... x literally is the .value. The other properties, e.g. .grad remain basically as is. Most of the methods on the class would go away because they are already implemented in numpy using this approach.
Essentially DiscreteField is a ndarray with some extra data attached. I think this was essentially what you built using the NamedTuple and I think what I am suggesting is transparent to user code, so long as we support backward compatibility with a @property to return self when value is accessed.
This issue is very similar to https://github.com/kinnala/scikit-fem/issues/846 and perhaps the two should be merged.

Ok, now I see what you mean. I'll experiment with your idea of subclassing ndarray to see if it works. It might even simplify the implementation of DiscreteField.

I'm doing that now, I'll have a PR for you in a few.

https://github.com/kinnala/scikit-fem/blob/84ef5ad81e4d4fd7228f829de8b721c7e648b6c6/skfem/element/discrete_field.py#L81-L89
Is not exactly how zeros_like works. I think this might be a break in backward compatibility, but... I think you shouldn't override zeros_like and should accept the standard numpy behavior. Thoughts?

https://github.com/kinnala/scikit-fem/blob/84ef5ad81e4d4fd7228f829de8b721c7e648b6c6/skfem/element/discrete_field.py#L71-L75
What's the goal of this? Is the idea when you slice a DiscreteField you want to slice all of the derived arrays as well? Basically that
x = DiscreteField(...)
x[10:20,:,:-5].grad

should work as expected?

No no, there is something known as ElementComposite which will complicate matters

So
for a in DiscreteField():
    ...

should iterate over the properties in the order they're listed in the NamedTuple? Which would obviously be painfully confusing :(
Because anyone would be expecting that to iterate over the elements of .value

Unless you want to redo Basis.interpolate and all those split thingies.

It certainly seems like the way to go... but I think DiscreteField(np.ndarray) is going to be a breaking change for this reason. Because its unexpected to the extreme for an ndarray to iterate over something other than its values. But that is the current implementation.
I guess its somewhat semantics, but you were trying to make w['thing'] act like w['thing'].value (and I like that abstraction a lot) but in the current implementation .reshape didn't work and if I had tried for a in w['thing'] I would have been even more confused. So I think the current implementation is a little too inconsistent and something should be done?

I can try it out. This is very core part of the lib so it requires some careful consideration to not break too many things.

Possible alternative to deriving DiscreteField from ndarray:  define its __getattr__ method so that when someone tries to call a method that isn't thete, e.g. reshape, it returns the result of calling that merhod on the .value attribute. This is a popular pattern in OOP:  delegation.

@gdmcbain delegation isn't going to fix what I think is the more fundamental issue.

Whether inherit or delegate, I think f should adopt a single abstraction, and my vote is that f always act like the ndarray f.value. I say this not arbitrarily, but because that's how w.x and w.n work, so it seems like a consistent pattern if w.my_df behaves the same way. And certainly
for df, x in zip(w.my_df, w.x):

shouldn't trick me the way it does now.
Re: delegate vs inherit, I have a personal preference for inherit, but I also think this is a semantic/syntactic debate. One of the trickier parts of implementation I think is supporting something like f[1:2].grad or perhaps f.reshape().grad. And this will eventually come up because someone will pass a reshaped or sliced DiscreteField in to some function that accesses .grad and there's no real reason that can't work. Maybe choose delegate vs inherit on whichever makes that easier to implement.

Also, after delegation, .zeros_like and .ones_like do two different things under certain circumstances. I'm not sure what other sneaky bugs are lurking here.

Yes I see. Anyway i've published a draft branch in #847 to experiment with in case. It's only two lines and probably backwards compatible.

Egads, w.my_df and w['my_df'] aren't the same thing!!

After https://github.com/kinnala/scikit-fem/issues/847 len(w['my_df']) and w['my_df'].shape are confusing since len() returns length of the tuple and .shape gets delegated. I think ideally len() would act on .value and return whatever.

Then again many examples given in this thread are really confusing to me. Why would you want to reshape a DiscreteField? Why would you want to know it's length?
It's really about defining forms conveniently and if you don't need those things inside a form definition then we can forget about it. No need to make such drastic changes for no benefit.

Re: delegate vs inherit, I have a personal preference for inherit, but I also think this is a semantic/syntactic debate. One of the trickier parts of implementation I think is supporting something like f[1:2].grad or perhaps f.reshape().grad. And this will eventually come up because someone will pass a reshaped or sliced DiscreteField in to some function that accesses .grad and there's no real reason that can't work. Maybe choose delegate vs inherit on whichever makes that easier to implement.

Slicing and then taking grad cannot work. In general, value and grad have different shapes. So after slicing grad would need to be dropped.

Re: delegate vs inherit, I have a personal preference for inherit, but I also think this is a semantic/syntactic debate. One of the trickier parts of implementation I think is supporting something like f[1:2].grad or perhaps f.reshape().grad. And this will eventually come up because someone will pass a reshaped or sliced DiscreteField in to some function that accesses .grad and there's no real reason that can't work. Maybe choose delegate vs inherit on whichever makes that easier to implement.

Slicing and then taking grad cannot work. In general, value and grad have different shapes. So after slicing grad would need to be dropped. This is true for most of the operations here.

My try on this: #849

I went as far as I could in #849. Waiting for you to try out the branch and give feedback.

Then again many examples given in this thread are really confusing to me. Why would you want to know it's length?

I admit I got a little distracted by the computer sciency aspects yesterday. I don't have good use cases for the examples I gave. I was more pointing out how the DiscreteField was not behaving like a consistent abstraction.

Why would you want to reshape a DiscreteField?

Well, that's how I got here. I was still abusing the Functional to make interesting plots while I worked on making a "current source" boundary condition in skfem. My main argument of these examples is that if you're going to tamper with DiscreteField, might as well make it as well behaved as possible, which I think means making it act as much like an ordinary ndarray as possible.

My main argument of these examples is that if you're going to tamper with DiscreteField, might as well make it as well behaved as possible, which I think means making it act as much like an ordinary ndarray as possible.

Fair enough. I think #849 somehow makes sense and seems to solve some minor pains we had with the existing implementation such as

inability to do w.fun.grad
sometimes in complicated forms I still had to go for u.value for some reasons I don't fully understand

If you agree it is a reasonable approach I think I will continue by

making a nice __repr__ for DiscreteField
fixing .value to return ndarray and not DiscreteField
removing uses of .value under skfem
adding a separate test module for DiscreteField
thinking about the slicing; can we somehow consistently slice over all fields at once? it would somehow make sense, e.g., to slice over -2 dimension to restrict to a subset of elements.

I like your plan. Here are my thoughts.

fixing .value to return ndarray and not DiscreteField

I looked around at what other packages do. Both pandas and xarray use .to_numpy() to get from their respective data types to a bare array. I think that's what skfem should do too, and .value should just be a deprecated way to call .to_numpy(). I think pandas in particular is popular enough that it can form a sort of standard calling convention.

removing uses of .value under skfem
adding a separate test module for DiscreteField
I have the tendency of leaving around deprecated stuff so that I remember the state of affairs and support those as long as it's reasonable.

Test case for .value! :)

making a nice repr for DiscreteField

pandas and xarray and even numpy itself point the way. Let the repr show, for each property that isn't None, a subset of the values with ... in between. Dont bother including anything about the attributes that are None.

thinking about the slicing;

One brute force approach I had is that then you slice, re-compute the derived attributes. This would probably work a lot better if things were lazy evaluated, but maybe it is still worth considering some version of this idea.

While we're talking about all this, what are your thoughts on adding class Projection(np.ndarray). It would be returned by Basis.zeros and Basis.project. (and others maybe?) It would be very analogous to what you're doing with DiscreteField. Its extra attribute would be its basis.

I forgot to add, since the projection is currently an ndarray, making class Projection(np.ndarray) should be 100% backward compatible, fully compatible with scipy, and current skfem users could just ignore the extra properties on the object. At least, this is how I was picturing the idea I was trying to describe.

pandas and xarray and even numpy itself point the way. Let the repr show, for each property that isn't None, a subset of the values with ... in between. Dont bother including anything about the attributes that are None.

But there is something important about DiscreteField that I want to message.

The last dimension of the numpy array is always over elementwise quadrature points
The second to last dimension of the numpy array is always over elements
The remaining dimensions, if they exist, are related to the spatial dimension of the problem

So somehow I want to transfer this information through __repr__.

thinking about the slicing;

One brute force approach I had is that then you slice, re-compute the derived attributes. This would probably work a lot better if things were lazy evaluated, but maybe it is still worth considering some version of this idea.

This is not exactly how you can think about it. Even though mathematically grad is derived from value, it is not the case here. Both are separately defined and computed inside Element classes.

x = skfem.DiscreteField(np.arange(10*11*12*3).reshape((10,11,12,3)))
print(x)

DiscreteField([[[[0, 1, 2, 3, ..., 17157, 17158, 17159]]]])

Quadrature points per element: 3
Elements: 12
Spatial Dimensions: (10, 11)
Available Attributes: grad, hess, grad3

print(x.shape)

(10, 11, 12, 3)

Ok so this is contrived and I don't have any code. But it's pretty :)

I forgot to add, since the projection is currently an ndarray, making class Projection(np.ndarray) should be 100% backward compatible, fully compatible with scipy, and current skfem users could just ignore the extra properties on the object. At least, this is how I was picturing the idea I was trying to describe.

I still need to think about it but in other codes this seems to be typically called GridFunction:

MFEM: https://mfem.github.io/doxygen/html/classmfem_1_1GridFunction.html
NGSolve: https://ngsolve.org/forum/ngspy-forum/1456-gridfunction-to-numpy-array-to-new-gridfunction
Bem++: http://bempp.com/handbook/api/grid_functions.html

I forgot to add, since the projection is currently an ndarray, making class Projection(np.ndarray) should be 100% backward compatible, fully compatible with scipy, and current skfem users could just ignore the extra properties on the object. At least, this is how I was picturing the idea I was trying to describe.

How would this work in solve? Because those matrices and load vectors don't have any info about Basis. Should they also be subclasses?

Re: slicing... what if you didn't actually slice anything. Suppose you just recorded the start, stop, and stride.
Then when you do
a = DiscreteField(...)
s = slice(...)
b = a[s]

b is ... I'm hand waving a bit here, but b is a "view" into a that saved the slice info as a property. Then when you do
b.grad

you can access that slice info to properly slice grad, hess, or whatever, in a way that make sense in the context. This would require changing .grad and friends to be @property though so you can make functions to work with that slice property and the underlying ._grad  ndarray.

I forgot to add, since the projection is currently an ndarray, making class Projection(np.ndarray) should be 100% backward compatible, fully compatible with scipy, and current skfem users could just ignore the extra properties on the object. At least, this is how I was picturing the idea I was trying to describe.

How would this work in solve? Because those matrices and load vectors don't have any info about Basis. Should they also be subclasses?

Since this library is really about "finite element assembly" I sometimes even think if having solve is really too much. There are plenty of other libraries for that purpose. That's why it's inside utils.

In Bempp, data on a given grid is represented as a grid function object. A grid function consists of a set of basis function coefficients and a corresponding function space.

This does sound exactly like what we're talking about. However, they subclassed object
https://github.com/bempp/bempp-cl/blob/0eb59db86baecb16239337200a489333710b0bbe/bempp/api/assembly/grid_function.py#L107
You said you like the way skfem doesn't use such opaque objects, relying instead on ndarrays and scipy. I agree with you about that.

Since this library is really about "finite element assembly" I sometimes even think if having solve is really too much. There are plenty of other libraries for that purpose. That's why it's inside utils.

I agree with that too. I am happy... more happy, in fact, to import scipy and use that solver. Keeping skfem data objects compatible with scipy makes them easier to understand.
I don't think solve (the utils one or the scipy one) needs to know about the extra functionality of Projection (or GridFunction if you want). Since it subclassed ndarray, if it is coded properly it will act exactly like an ndarray. The gain comes in other places. Particularly, when you get an incompatible grid function, you can say A LOT more about it than IndexError or some generic numpy nonsense. I think it also allows syntax like
x_in_p1 = x_in_p0.project(basis_p1)
x_discrete_field = x_in_p0.interpolate(basis_p1.quadrature_points)

which feels intuitive and readable to me.


Using .so file in python project breaks Intellisense

Environment data

VS Code version: 1.40.1
Extension version (available under the Extensions sidebar):2019.11.49689
OS and version: macOS Catalina
Python version (& distribution if applicable, e.g. Anaconda): 3.7.4
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): virtualenv and virtualenvwrapper
Jedi or Language Server? (i.e. what is "python.jediEnabled" set to; more info #3977): nope

Expected behaviour
Intellisense & autocomplete should work normally
Actual behaviour
Modules that import .so libraries do not have intellisense/autocomplete working
Steps to reproduce:
I am using pyrealsense2 to demo this:

build pyrealsense2 from source
drag .so files to python main project root
pip install -e .
create new module test.py and at top import pyrealsense2
autocomplete no longer works

closing issue, the solution that works for me is to add export PYTHONPATH=$PYTHONPATH:/usr/local/lib to my .bashrc file so I can import the library from anywhere on the system.

Reopening, intellisense in modules importing built libraries from .so files don't work


Chrome headless mode does not experiencing redirect.

Bug report

Node Version: 6.11.2
Protractor Version: 5.1.2
Angular Version: 1.x
Browser(s): Google Chrome Version 60.0.3112.101 (Official Build) (64-bit)
Operating System and Version: Arch Linux 4.12.6-1-ARCH #1 SMP PREEMPT Sat Aug 12 09:16:22 CEST 2017 x86_64 GNU/Linux
Your protractor configuration file

exports.config = {
  framework: 'jasmine',
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['app/**/*.spec.js', 'qa-tests/**/*.spec.js'],
  multiCapabilities: [
    {
      browserName: 'chrome',
      chromeOptions: {
        args: [ '--headless', '--disable-gpu']
      }
    }
  ]
}

A relevant example test

 browser.get('http://<IP_ADDRESS>')
    expect(browser.getCurrentUrl()).toEqual('');

Output from running the test

Steps to reproduce the bug

Attempt to navigate the headless browser to the url

The URL you are running your tests against (if relevant)
N/A

Hi @larrydewey
With this config
exports.config = {
    // Capabilities to be passed to the webdriver instance.
    seleniumAddress: 'http://localhost:4444/wd/hub/',

    capabilities: {
        'browserName': 'chrome',
        // headless
        chromeOptions: {
            args: [ '--headless', '--disable-gpu']
        }
    },

    // Framework to use. Jasmine is recommended.
    framework: 'jasmine',

    // Spec patterns are relative to the current working directory when
    // protractor is called.
    specs: ['example_spec.js'],

    // Options to be passed to Jasmine.
    jasmineNodeOpts: {
        defaultTimeoutInterval: 30000
    },
    allScriptsTimeout: 30000,
};

and this config
    // default
    capabilities: {
        'browserName': 'chrome'
    },

and this spec
describe('Chrome headless mode does not experiencing redirect', () => {
    it('test1', () => {
        browser.waitForAngularEnabled(false);
        browser.get('http://<IP_ADDRESS>');
        expect(browser.getCurrentUrl()).toEqual('');
    });
});

I get the same output, see below
✘  ~/contributions/protractor   examples ●  npm run test.example

><EMAIL_ADDRESS>test.example /Users/wswebcreation/contributions/protractor
> node ./bin/protractor example/conf.js

[22:15:33] I/launcher - Running 1 instances of WebDriver
[22:15:33] I/hosted - Using the selenium server at http://localhost:4444/wd/hub/
Started
F

Failures:
1) Chrome headless mode does not experiencing redirect test1
  Message:
    Expected 'https://www.google.at/?gfe_rd=cr&ei=Z4WgWaRRgsRelre0wAE&gws_rd=ssl' to equal ''.
  Stack:
    Error: Failed expectation

Can you tell what you expect, because this is expected (I'm currently in Austria ;-))

@larrydewey
Is this still valid? As said without your information it looks like it is working as expected. @ then end of the week I'm going to close this issue if there is still no activity on it.

I'm going to go ahead and close this. Thanks all!


Added possibility to throw a custom error from the resolver

Currently it is not possible to use custom error class that extends GraphQL\Error to control the format of errors. The GraphQL specifications allow errors to have extra fields has stated here https://facebook.github.io/graphql/#sec-Errors

GraphQL servers may provide additional entries to error as they choose to produce more helpful or machine‐readable errors, however future versions of the spec may describe additional entries to errors.

This pull request is a proposition that allow custom error to be thrown from the resolve method and use custom format. By this, I mean throwing a class that extends GraphQL\Error and modify the formatError method so it returns extra fields.
There is 2 modifications to allow this.
If you throw a custom error from the resolve method, it will go through the Error::createLocatedError method and it will be converted to a GraphQL\Error. The first modification is to reuse the same error class as the original (instead of using only GraphQL\Error) when creating the located error.
The second modification is to allow ExecutionResult to use the formatError method of the current $error class instead of always using GraphQL\Error::formatError
This feature would be really helpful to implements custom validation and error reporting.

Hey, thanks for contributing!
However, I think it is possible to use custom formatting of output without code changes. Every GraphQL\Error references previous exception (say the one thrown in your resolve method).
And GraphQL Executor returns instance of ExecutionResult, which you can format as you wish in your code.
Here is an example of how this can be achieved:
function myFormatError(GraphQL\Error $error) {
    $formatted = GraphQL\Error::formatError($error);
    if ($error->getPrevious() instanceof MyResolverException) {
        $formatted += $error->getPrevious()->myCustomErrorFields;
    }
    return $formatted;
}

function myGraphQLExecute(GraphQL\Schema $schema, $requestString, $rootValue = null, $variableValues = null, $operationName = null) {
    try {
        $source = new Source($requestString ?: '', 'GraphQL request');
        $documentAST = Parser::parse($source);
        $validationErrors = DocumentValidator::validate($schema, $documentAST);

        if (!empty($validationErrors)) {
            return ['errors' => array_map('myFormatError', $validationErrors)];
        } else {
            $result = Executor::execute($schema, $documentAST, $rootValue, $variableValues, $operationName);
            return ['data' => $result->data, 'errors' => array_map('myFormatError', $result->errors)]
        }
    } catch (Error $e) {
        return ['errors' => [myFormatError($e)]];
    }
}

Please let me know if that helped.

Actually I just refactored library facade to simplify custom formatting. From now on you can use:
$executionResult = GraphQL\GraphQL::executeAndReturnResult($query);

$data = [
    'data' => $executionResult->data,
    'errors' => array_map('myFormatError', $executionResult->errors)
];

That was my problem, I didn't see how I could modify the output without overwriting one method. Everything is so encapsulated in GraphQL. I knew I could use the getPrevious method but there was no way "to reach" it.
Your solution works better, thanks a lot!


[BUG] - Wrong error raised when an invalid provider is given

Describe the bug
The provider field is defined in schema.Main, but there is a root_validator that uses provider in another Model.
https://github.com/nebari-dev/nebari/blob/056b420059d5121898cfbf3db6c8da23241f333c/src/_nebari/stages/infrastructure/__init__.py#L515-L520
When an invalid value for provider is given, it won't be set when this root_validator is called. So, instead of seeing a validation error on the given value. We see a key error from the root_validator.
A simple demo:
def test_provider_validation_demo():
    from typing import Optional

    from pydantic import BaseModel, root_validator

    from nebari.schema import ProviderEnum

    class Model1(BaseModel):
        provider: ProviderEnum

    class Model2(BaseModel):
        variable1: Optional[str]

        @root_validator
        @classmethod
        def _validate_provider(cls, values):
            assert "provider" in values, "provider is not set"
            return values

    class Model3(BaseModel):
        variable2: Optional[int]

    config_schema = type("ConfigSchema", (Model1, Model2, Model3), {})
    config_dict = {
        "provider": "fake",
    }
    config = config_schema(**config_dict)
    print(config)

In the output of this demo, we can actually see both errors:
pydantic.error_wrappers.ValidationError: 2 validation errors for ConfigSchema
provider
  value is not a valid enumeration member; permitted: 'local', 'existing', 'do', 'aws', 'gcp', 'azure' (type=type_error.enum; enum_values=[<ProviderEnum.local: 'local'>, <ProviderEnum.existing: 'existing'>, <ProviderEnum.do: 'do'>, <ProviderEnum.aws: 'aws'>, <ProviderEnum.gcp: 'gcp'>, <ProviderEnum.azure: 'azure'>])
__root__
  provider is not set
assert 'provider' in {'variable1': None, 'variable2': None} (type=assertion_error)

But in Nebari, we only see this:
  File "/Users/fangchenli/Workspace/nebari/src/_nebari/stages/infrastructure/__init__.py", line 528, in check_provider
    values["provider"] == schema.ProviderEnum.local
KeyError: 'provider'

A test affected by this is test_cli_upgrade.py::test_cli_upgrade_fail_invalid_file. It's not testing the expected behavior.
Expected behavior
When an invalid value for provider is given, we should see an appropriate error message.
OS and architecture in which you are running Nebari
macOS M1
How to Reproduce the problem?
from nebari.plugins import nebari_plugin_manager

@pytest.fixture
def config_schema():
    return nebari_plugin_manager.config_schema

def test_provider_validation(config_schema):
    config_dict = {
        "project_name": "test",
        "provider": "fake",
    }
    config = config_schema(**config_dict)

Command output
No response
Versions and dependencies used.
conda --version
conda 23.9.0

kubectl version
Client Version: v1.28.2
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3

Compute environment
None
Integrations
No response
Anything else?
We also see this in #1928

Thanks for the thorough issue description. I ran your snippets and got back what you've shown.


Add ext.feign-okhttp3 package

ext.feign-okhttp3 is a copy of feign.okhttp.OkHttpClient in the feign.okhttp3 package.
This constructions allows clients compiled against Feign <= 8.16 (with OkHttp2) to be used
alongside clients compiled against Feign 8.17 (with OkHttp3).
This should be considered a temporary work-around and be removed as soon as Feign
sorts out their back-compat story.

FYI, @j-baker

Okay, so if a project is using old Feign, and therefor old OkHttp, and we force new Feign and new OkHttp, doesn't this still break that project?

Let's take an example:
// Project A
compile 'com.netflix.feign:feign-okhttp:8.10.0'

// Project B
compile 'projectA'  // and thus also com.netflix.feign:feign-okhttp:8.10.0
compile "com.palantir.remoting:http-clients:${versionAfterThisPrMerged}"
  // and thus transitively:
  // com.netflix.feign:feign-okhttp:8.17.0
  // com.palantir.remoting.ext:feign-okhttp3
  // okhttp3
  // but NOT: com.netflix.feign:feign-okhttp:8.17.0

So on the classpath of Project B will be:

feign-core 8.17
feign-okhttp2
com.palantir.remoting.ext:feign-okhttp3
okhttp2
okhttp3

feign-okhttp2 and com.palantir.remoting.ext:feign-okhttp3 are compatible since their respective OkHttpClient classes are in different packages. Similar for okhttp2 and okhttp3.
Further, the test verifies that Feign 8.17 works with a feign-okhttp:8.10 and okhttp2...

Does this depend on classpath ordering, then, since feign-okhttp:8.10.0 and feign-okhttp:8.17.0 both define feign.okhttp?

We never depend on feign-okhttp:8.17.0 (unless I screwed up):
$ f build.gradle | xargs grep feign-okhttp
./ext/feign-okhttp3-compat-test/build.gradle:    testCompile project(':ext:feign-okhttp3')
./ext/feign-okhttp3-compat-test/build.gradle:    testCompile 'com.netflix.feign:feign-okhttp:8.10.0'
./http-clients/build.gradle:    compile project(':ext:feign-okhttp3')
./service-config/build.gradle:    testCompile project(':ext:feign-okhttp3')
./ssl-config/build.gradle:    testCompile project(':ext:feign-okhttp3')

Ok, thanks, now I understand.
Thoughts on making it so we do not to depend on feign-okhttp:8.10.0 at all, and instead also add ext.feign-okhttp2?

Well, this is really something projectA has to do, cannot control that in
http-remoting.
On Mon, Jul 11, 2016 at 11:58 AM Mark Elliot<EMAIL_ADDRESS>wrote:

Ok, thanks, now I understand.
Thoughts on making it so we do not to depend on feign-okhttp:8.10.0 at
all, and instead also add ext.feign-okhttp2?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/palantir/http-remoting/pull/157#issuecomment-231830843,
or mute the thread
https://github.com/notifications/unsubscribe/AGOdwb-zJSyjQNZtuc-NCFGESNaT4o13ks5qUpJKgaJpZM4JJo9v
.

Dropping feign-okhttp:8.10.0 from our dep forces people to make this choice, right?

Don't follow -- http-remoting only depends on feign-okhttp:8.10.0 in the
(unpublished) testCompile configuration of ext/feign-okhttp3-compat-test
On Mon, Jul 11, 2016 at 12:06 PM Mark Elliot<EMAIL_ADDRESS>wrote:

Dropping feign-okhttp:8.10.0 from our dep forces people to make this
choice, right?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/palantir/http-remoting/pull/157#issuecomment-231833014,
or mute the thread
https://github.com/notifications/unsubscribe/AGOdwbmMnZlQWh7dsszzipGxOqgfV473ks5qUpRBgaJpZM4JJo9v
.


MetaMask signing of NFTAttestation looks weird

This is the back-end sister issue from the alchemyNFT repo.

Appropriate changes still need be made to the JS code when it becomes needed @oleggrib.
However, the Java code is ready. See https://github.com/TokenScript/attestation/pull/210 for detail.

This has laster been fixed in Authenticator. So I am closing this issue.


Experiment: Proxy requests in fixed time

Branch is based on #4 for the eslint support
Work still in progress on this; the idea is to ensure all requests to synapse take 'the same' amount of time reguardless of how long the actual request took. This would mean we could have a stable performance on the server side (within tolerances) so client timing issues could be directly investigated.
We keep track of how long we had to insert into the responses as well as if we ever aimed to wait less than the actual amount of time to return data.
no idea if this will actually function as we intend; worse case it might be useful for introducing delays into processing of certain requests (as a different form of "blocking" requests - eg force operations to always be slow.)

(Honestly not sure if this is where we should go; it works (in that it makes everything fixed time) but
a) includes a new dependency that can vary the time
b) doesn't work if the server is way too slow
c) doesn't work for sync requests (unless everything should return after the full delay each time)
So for my use case it's not useful. However, it might be useful after some more work to be able to slow down specific endpoints if we wanted that (eg, make federation lookups slow)


[#141943157]Question: implement __contains__

Story https://www.pivotaltracker.com/story/show/141943157
It's useful to be able to properly test whether a key is present in the _data - .get() doesn't allow you to distinguish between an absent key and a present key with a None value.

Nice :+1:


keepdims=True for xarray reductions

For operations where arrays are aggregated but then combined, the keepdims=True option for NumPy aggregations is convenient.
We should consider supporting this in xarray as well. Aggregating a DataArray/Dataset with keepdims=True (or maybe keep_dims=True) would remove all original coordinates along aggregated dimensions and return a result with a dimension of size 1 without any coordinates, e.g.,
>>> array = xr.DataArray([1, 2, 3], dims='x', coords={'x': ['a', 'b', 'c']})
>>> array.mean(keepdims=True)
<xarray.DataArray (x: 1)>
array([2.])
Dimensions without coordinates: x

In case, array.mean(keepdims=True() is equivalent to array.mean().expand_dims('x') but in general this equivalent does not hold, because the location of the original dimension is lost.
Implementation-wise, we have two options:

Pass on keepdims=True to NumPy functions like numpy.mean(), or
Implement keepdims=True ourselves, in Variable.reduce().

I think I like option 2 a little better, because it places fewer requirements on aggregation functions. For example, functions like bottleneck.nanmean() don't accept a keepdims argument.

I second this request.
The following may not be optimal, but seems to work for me as a keepdims=True version of reduce():
    def dim_preserving_reduce(self, func, dim=None, axis=None, label=None, keep_attrs=False, **kwargs):
        if axis is not None:
            dim = np.take(self._obj.dims, axis, mode='wrap')
        dims = dim if isinstance(dim, (list, tuple)) else [dim]
        dims_coords = {dim: [lab] for dim, lab in zip(dims, (label if isinstance(label, list) else [label]))}
        return self._obj.reduce(func, dim=dims, keep_attrs=keep_attrs, **kwargs). \
            expand_dims(dims, axis=[self._obj.dims.index(dim) for dim in dims]). \
            assign_coords(**dims_coords)

Please!
It's really painful in some cases where keepdims option is not available, tons of unneeded boilerplate required to mimic the same thing.

Pull requests would be very welcome here.


Add Simulator

I've updated Figma with designs for the simulation.
There's a new option in the wallet dropdown with the action.

This triggers a popup

Once they confirm, the block number now shows it's a simulation

And they can stop by clicking the option in the dropdown again

@blokku-chan nice preparation on that, we should start focusing on it after the launch of the new synths.


How can I test multi plugins from my APP?

If I miss this, please let me. Thanks.
@janpio advised me to open an issue. So I ask here. I wonder if I have multi plugins and I need test them in my app? How should I do that? I have to test them one by one? or Just test them all at the same time?

In general the plugin test framework is built to test 1 plugin. Automation to test on different devices then happens via https://github.com/apache/cordova-paramedic.
https://github.com/apache/cordova-mobile-spec on the other hand is a tool to create an app that can run tests for multiple plugins. The README should give pointers on how to use it, although I am not sure how good the support for custom (vs. Cordova core) plugins is.


[HOLD for payment 2024-08-01] [$250]  Close account - Unable to close unverified account

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.86-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4652683
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: Applause - Internal Team
Action Performed:

Sign up with a new account
Go to Settings > Security > Close account
Enter default email > click 'Close account'

Expected Result:
Account should be closed
Actual Result:
Account is not closed
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/b5f791f2-1678-4d12-ba37-8c7e46b66070
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01e5a38773a3b72e10
Upwork Job ID:<PHONE_NUMBER>948615973
Last Price Increase: 2024-07-13
Automatic offers:

mkhutornyi | Reviewer | 103155489

Issue OwnerCurrent Issue Owner: @kevinksullivan / @isabelastisser

@isabelastisser  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

Proposal
Please re-state the problem that we are trying to solve in this issue.
Unable to close unverified account. The request completes but the user isn't logged out.
What is the root cause of that problem?
When the request is completed, there is already a clear onyx command to clear the onyx so the user is logged out. However, when we receive the response, doesClientNeedToBeUpdated returns true which will call OnyxUpdates.saveUpdateInformation which triggers GetMissingOnyxMessages but fails because the account is already closed, so the response onyx data is never applied.
https://github.com/Expensify/App/blob/633e708dfe3d2aba47dbb2091ba1f0f8683bfaaf/src/libs/Middleware/SaveResponseInOnyx.ts#L28-L33
The reason doesClientNeedToBeUpdated returns true is because the lastUpdateIDAppliedToClient is smaller than the previousUpdateID response from CloseAccount.
https://github.com/Expensify/App/blob/633e708dfe3d2aba47dbb2091ba1f0f8683bfaaf/src/libs/actions/OnyxUpdates.ts#L162-L169
You can see that previousUpdateID is the lastUpdateID of the previous request.

But for the CloseAccount response, the previousUpdateID is bigger than the previous request lastUpdateID, so the app detected there is missing onyx data.

What changes do you think we should make in order to solve the problem?

Fix it on the BE so the correct previousUpdateID is returned or if we want to fix this on the FE, we can add CloseAccount request to the requestsToIgnoreLastUpdateID list because we don't care if there is missing data when closing an account.
https://github.com/Expensify/App/blob/633e708dfe3d2aba47dbb2091ba1f0f8683bfaaf/src/libs/Middleware/SaveResponseInOnyx.ts#L6-L8

@mkhutornyi please review the proposals above when you have a chance. Thanks!

Is this bug is still open or assigned to someone else ?

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/jasham4ryou

Is this bug is still open or assigned to someone else ?

@mkhutornyi, please review the proposals above!
@jasham, this is still open.

@mkhutornyi I DM'd you for visibility. Thanks!

Bump @AndrewGable. Thanks!

@isabelastisser - Did you confirm we do want to allow closing of unverified accounts?

@AndrewGable, nope! I will post this to BZ now. Thanks!

Asked [here.](For this issue, do we want to allow the closing of unverified accounts?)

Asking in product:
https://expensify.slack.com/archives/C03U7DCU4/p1720453236924149

Bump @AndrewGable. Thanks!

I agree with Jenna 👍

Thanks, @AndrewGable ! Should I keep this external? Unsure based on @mkhutornyi's comment:
https://github.com/Expensify/App/issues/44114#issuecomment-2190003156

Bump @AndrewGable
https://github.com/Expensify/App/issues/44114#issuecomment-2221845948

Sure we can keep external, I am OOO for the next week and a half so let's find someone else to push this along. Thanks!

@mkhutornyi, we are keeping this external so let's pick a proposal! Thanks!

Bump @mkhutornyi, please provide an update! I DM'd you for visibility. Thanks!

PR is ready
cc: @mkhutornyi

I will be OOO tomorrow and next week, so I am reassigning this until I return on July 29. Thanks, @kevinksullivan!
Status: Waiting for PR to merge.

I'm back and taking this back! Thanks, @kevinksullivan!

Hey @mkhutornyi, please complete the BZ list above. Thanks!

Requested in ND.

Payment summary:
@bernhardoj requires payment through NewDot Manual Requests $250 / Contributor PENDING
@mkhutornyi requires payment automatic offer $250 (Reviewer) C+  PAID

@mkhutornyi, please complete the BZ list. I will DM you for visibility. Thanks!

$250 approved for @bernhardoj

All set! Closing.


Assertion issue while running the sample video .

I tried to run the code with hr_pose in the following way in the videopose.py file
  inference_video('outputs/dance.mp4', 'hr_pose')
Error message
outputs/dance.mp4 --- elapsed time: 3.2093143170004623 s
Traceback (most recent call last):
  File "videopose.py", line 164, in <module>
    inference_video('outputs/dance.mp4', 'hr_pose')
  File "videopose.py", line 160, in inference_video
    main(args)
  File "videopose.py", line 79, in main
    keypoints = normalize_screen_coordinates(keypoints[..., :2], w=1000, h=1002)
  File "/home/viz/test/visualization/video-to-pose3D/common/camera.py", line 16, in normalize_screen_coordinates
    assert X.shape[-1] == 2
AssertionError

The outputs/dance.mp4 is not provided in the outputs folder. Try to replace it with outputs/kunkun_cut.mp4.
I've updated the default value in my nearest commit.

Thanks for the reply. I seem to have pulled your latest commit but , there is another issue with regards to uplifting from 2d to 3d . I get the following error , tried on another set of videos
Loading YOLO network.....
Network successfully loaded
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 360/360 [01:24<00:00,  4.26it/s]
-------------- load data spends 87.80 seconds
Loading checkpoint checkpoint/pretrained_h36m_detectron_coco.bin
-------------- load 3D model spends 0.03 seconds
Rendering...
-------------- generate reconstruction 3D data spends 0.05 seconds
===========================> This video get 360 frames in total.
  1%|▉                                                                                | 2/360 [00:00<00:21, 16.56it/s]outputs/cut_test_squat.mp4 --- elapsed time: 89.57218216099864 s
Traceback (most recent call last):
  File "videopose.py", line 164, in <module>
    inference_video('outputs/cut_test_squat.mp4', 'hr_pose')
  File "videopose.py", line 160, in inference_video
    main(args)
  File "videopose.py", line 133, in main
    input_video_skip=args.viz_skip)
  File "/home/viz/test/visualization/video-to-pose3D/common/visualization.py", line 187, in render_animation
    anim.save(output, writer=writer)
  File "/home/viz/sw/yes/lib/python3.7/site-packages/matplotlib/animation.py", line 1174, in save
    writer.grab_frame(**savefig_kwargs)
  File "/home/viz/sw/yes/lib/python3.7/contextlib.py", line 130, in __exit__
    self.gen.throw(type, value, traceback)
  File "/home/viz/sw/yes/lib/python3.7/site-packages/matplotlib/animation.py", line 232, in saving
    self.finish()
  File "/home/viz/sw/yes/lib/python3.7/site-packages/matplotlib/animation.py", line 358, in finish
    self.cleanup()
  File "/home/viz/sw/yes/lib/python3.7/site-packages/matplotlib/animation.py", line 395, in cleanup
    out, err = self._proc.communicate()
  File "/home/viz/sw/yes/lib/python3.7/subprocess.py", line 939, in communicate
    stdout, stderr = self._communicate(input, endtime, timeout)
  File "/home/viz/sw/yes/lib/python3.7/subprocess.py", line 1672, in _communicate
    selector.register(self.stdout, selectors.EVENT_READ)
  File "/home/viz/sw/yes/lib/python3.7/selectors.py", line 352, in register
    key = super().register(fileobj, events, data)
  File "/home/viz/sw/yes/lib/python3.7/selectors.py", line 238, in register
    key = SelectorKey(fileobj, self._fileobj_lookup(fileobj), events, data)
  File "/home/viz/sw/yes/lib/python3.7/selectors.py", line 225, in _fileobj_lookup
    return _fileobj_to_fd(fileobj)
  File "/home/viz/sw/yes/lib/python3.7/selectors.py", line 40, in _fileobj_to_fd
    "{!r}".format(fileobj)) from None
ValueError: Invalid file object: <_io.BufferedReader name=31>
  1%|█▍
```'

Is it because of some dependencies or missing modules ?

Issue solved install again ffmeg
conda install -c conda-forge ffmpeg


⚠ ClamAV has degraded performance

In 9eae7b8, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 79 ms

Resolved: ClamAV performance has improved in 887cd2c.


Run Angular Unit Tests in Container & Pipeline

Requires #27
There is some ng test --chrome headless running around, the only thing is to get it into the build container properly and understandable.

#9 is related

(manually) check after #85


File name as H1 (FR)

Hi, as the title says: It would be nice to have an option to copy the filename (page title) as H1 above the content!

This is actually a duplicate of !38, and is already available as an option. In the options, activate "Include filename as header" and you should be good.


[Enhancement] Any template to submit a PR?

2 quick questions:

Do you have any specific template to submit a PR?
Should be target main/master or dev?

I added one more animation subtype for fade and should be good for the community too.
Regards

I just noticed that the "dev" branch it's only on my forked repository hehe. Closing this.


Automated update for image history [skip ci]

Automated update for image history [skip ci]

stop or I will report you to the police, Your location is already confirmed
Get Outlook for iOShttps://aka.ms/o0ukef

From: Samruddhi Khandale @.>
Sent: Tuesday, May 2, 2023 1:31:53 AM
To: devcontainers/images @.>
Cc: Subscribed @.***>
Subject: [devcontainers/images] Automated update for image history [skip ci] (PR #552)
Automated update for image history [skip ci]

You can view, comment on, or merge this pull request online at:
https://github.com/devcontainers/images/pull/552
Commit Summary

4d76419https://github.com/devcontainers/images/pull/552/commits/4d7641970d1e57a003e6359431d90de7019b0d8f Automated update for image history [skip ci]

File Changes
(19 fileshttps://github.com/devcontainers/images/pull/552/files)

M cgmanifest.jsonhttps://github.com/devcontainers/images/pull/552/files#diff-45a0a38d395bf4427d0291d9c72bd99b57fa43e14b00e059ae170d657949f1f2 (82)
M src/anaconda/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-e9a37d04cd29958b1e20aed60ea62400a9fc0c59bca503a2eb9b58f3fefa63c2 (14)
M src/base-alpine/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-c8a43922db47ced74e2d186b5925e9c1249ede168bf136490fcbfb22ad58399b (24)
M src/base-debian/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-cf3e95f7547c439c05ec7716ca52d648934c5fd2172ba21cc1a412fb0cc9d445 (18)
M src/base-ubuntu/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-be393aca868a550a56aa0de793eab059369988adf2a840da45f82f9fac04eef7 (30)
M src/cpp/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-7057f6287b33551762ae24a9c3add682fa744077920d73d72e38d7230dbaa067 (58)
M src/dotnet/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-a171d3a75bf5c722056411a2296b3c1682219e1a3e5cdeec6028a4b132e7de1f (46)
M src/go/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-3d251209b7960838e236af5df37d8ae277ec661ffeb3f4e39423b708fadd4214 (40)
M src/java-8/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-a445ff7b40f799bb2b2204e6a937fcd84872c692be30c0e1759a0751926fcf75 (22)
M src/java/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-4ab226edd44e945e1486b0f5767d52c61ae2b0262fac936d64a9adc19ba37b19 (36)
M src/javascript-node/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-886beec97c6266c29ed3f1a96c2bec17b19e215caf6b42ef8ea53e0a54d39405 (88)
M src/jekyll/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-9c7b4bd671d416aef383ff2aea6edaf822f00722d896c7dabdecf2945c1805dd (22)
M src/miniconda/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-81cb297ab955ae65ce3523e7b2892118341e874187142752adce7fb0eed0a9bc (14)
M src/php/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-8f5da8fc6291a53c5bbe0dd55e18f0473a25cf3a5aaf5fb717828c495836f015 (54)
M src/python/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-ac2bf6b2027b8c2b48189f63a5d7a72a82b80795cd7c63dd267e144fb73c9fb7 (150)
M src/ruby/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-729b576ac0f14a0b7e9aa7dd327a3ce60a5724cdc3e5f4624254a0e4936b259c (88)
M src/rust/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-717dd15954420c5e37628cc3c832012a993d7295f320bf247ce2bc7da13544fb (20)
M src/typescript-node/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-e7bfaa5356930b0649b3e4ac276bb0e2fffbcaa8d9b4e825f76cd962eb2824d2 (252)
M src/universal/history/dev.mdhttps://github.com/devcontainers/images/pull/552/files#diff-dd1e63701c65447d6ad769929357102900436e7c30b76d59c9612c26ba9a6f7a (30)

Patch Links:

https://github.com/devcontainers/images/pull/552.patch
https://github.com/devcontainers/images/pull/552.diff

—
Reply to this email directly, view it on GitHubhttps://github.com/devcontainers/images/pull/552, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A6XS67WESFBIMD3KHNXTQOTXEATUTANCNFSM6AAAAAAXSGWPKI.
You are receiving this because you are subscribed to this thread.Message ID: @.***>


Out of source directory build fails for manual

Download Ninja 1.7.2, extract it to /dev/shm/bee-joey/ninja/ninja-1.7.2-0/source, and create a directory /dev/shm/bee-joey/ninja/ninja-1.7.2-0/build.
$ cd /dev/shm/bee-joey/ninja/ninja-1.7.2-0/build
$ ../source/configure.py --bootstrap
$ ./ninja manual
[2/2] XSLTPROC /dev/shm/bee-joey/ninja/ninja-1.7.2-0/source/doc/manual.html
FAILED: /dev/shm/bee-joey/ninja/ninja-1.7.2-0/source/doc/manual.html
xsltproc --nonet doc/docbook.xsl build/manual.xml > /dev/shm/bee-joey/ninja/ninja-1.7.2-0/source/doc/manual.html
warning: failed to load external entity "doc/docbook.xsl"
cannot parse doc/docbook.xsl
ninja: build stopped: subcommand failed.

So maybe the absolute path for doc/docbook.xsl should be used, or the directory doc/ also copied to the build directory.

Out-of-tree builds were contributed by someone in #979, they probably didn't test building the manual. I do in-tree builds usually. Patches accepted :-)

Just for the record, this is still an issue with Ninja 1.8.2.

@paulmenzel  Ninja 1.10.0 now supports building with CMake. Does that satisfy your need?


(Easy) French FAQ translation update / change

On this page: https://creativecommons.org/faq/fr/ at the very bottom is says: "Support for this French translation was provided by Open Data Institute as part of the OD4D program. Translation by Dr Pierre El Khoury (CC Lebanon Legal Lead)."
@Juliabrungs and @peterspdx would like this line of text to be deleted. I'm unable to do it myself because the page is not on Wordpress.
Thanks!

Hum. Who and where is that page hosted? The URI says it's our website.
Second point would be, why wouldn't it be hosted on Word Press?
Third point, the FAQs are going to change in the not-too-distant future. If we control it, then what if we just hide it for now. We'll be developing some plan at some point in the future for translations of website pages. To my knowledge, this translation isn't accessed much -- it was a project funded to an affiliate at the time, and he's no longer active. Nor has he kept up the translation to match changes to the FAQs. Perhaps we just archive it for now?

I don't know why certain pages aren't on Wordpress. None of the license pages are on Wordpress either. It's always been this way. Yes, it's our website. But it's not on the same publishing system as other content. Which makes changes to these pages a tech project instead of an Eric project.

The FAQ content is hosted in this repo: https://github.com/creativecommons/faq/
It is on our roadmap to move these to WordPress but we probably won't be able to get to that in 2020.

We will, however, make this change to the FAQs :)


Subscribe div getting consume by the background above when in large screen size

https://www.zesty.io/blog/
https://www.zesty.io/news/
https://www.zesty.io/mindshare/customer-stories/
screencast-www.zesty.io-2022.11.08-23_25_12.webm

https://github.com/zesty-io/website/pull/1349


Add a welcome message

I rule and have completed some work on Case Manager that's ready for review!
Added a welcome message!
It relates to the following issue #s:

#884

also @lomky did circleci fix the test results thing????

:scream: It looks like it! :crossed_fingers:


Frictionless Fridays experiment - e.g. 3pm CET

Organize Frictionless Fridays office hours on Discord where community members can ask the core team questions about FD.
Acceptance Criteria

[x] we have done two sessions of this.

Tasks

[x] Announce on discord with date and time
[x] Hold at least two sessions

@lauragift21 can you fill this in with description, acceptance, tasks etc (remember this is for the "experiment" e.g. first 2 sessions).
Also can you put a comment update on how last friday went e.g. did people come, was it useful etc.

Recap from our first Frictionless Fridays session
We had questions from two community members and Lilly and I was available on chat to help answer these question. It was useful because we had the chance to hear from our users and their pain points and we also helped them clarify some of the questions.

Second time running Frictionless Fridays sessions
We did not have any questions or community members with any inquiries.

My opinion after doing 2 sessions is that I like this format & am happy to continue. I predict that we will sometimes have lots of questions and sometimes have no questions, and I think that is fine. What do others think?

Yes, I do too and I think we should continue.

FIXED. Frictionless Fridays was a great idea! we will continue having it.

Hey @rufuspollock & @lauragift21 I think we should open this again to have a discussion. The way Frictionless Fridays was done today is not the way we agreed to do it/have done it in the past. I think it works well how it was originally agreed upon (that is - office hours where users can come & ask questions) works really well. I don't think it makes sense to add in a call where people are tasked with work to do. If you want to have a coworking hour, I think it should happen at a different time and not take over Frictionless Fridays. What do y'all think?

@lwinfree can you say more about the issue for you?
The logic of this at my end (for myself and datopian folks) was that if we are around to answer any questions that come up during Q&A we may as well do some coworking - and it's a great chance to do that and have some activity. I'm not sure it will happen every time - but when people are around we may as well do it for the people who want to ...
I also think it unlikely that we have the resource / energy to have 2 times atm.

@rufuspollock the logic is that we agreed to do 1 thing, and all decided it was working, and then you did something totally different and pressured people to join the new task. I am fine with coworking, but it should not overwhelm the initial event (which is what happened). One of the great things about #FF (as we agreed to do it) is that Gift & I are the only ones that need be present - so you and the other team members that want to cowork can cowork another time, so you won't be stretched to do 2 things a week.

@lwinfree i kind of object to saying people were pressured ... I discussed this with Monika, Gift and Monika previous week and carles and jen-thomas specifically said they wanted to join in.
I don't see this as totally different: it is people hanging out during that time and answering questions if people are there and some of those people (who agreed to it) doing some co-working.
I suggest we get on a short call to get this flat 😄


Add possibility not to render template

Removed overwriting 'options' variable in javascript plugin initialization file, so that now it's possible to actually pass the params to Blue Imp Gallery Plugin. Also added property to prevent rendering template of Gallery for multiple galleries per page.

@firstsano really apologize for such a long answer. Will add your pr to an updated commit. Thank you for your help.

re https://github.com/2amigos/yii2-gallery-widget/commit/178b9f71feef8638af977c19be50808402ca6518


fix #1017 spilt project core

Current coverage is 66.78%

Merging #1036 into master will change coverage by +5.24% by 5201de0

Coverage Diff
@@            master   #1036   diff @@
======================================
  Files          225     226     +1
  Stmts         5687    5701    +14
  Branches       453     443    -10
  Methods          0       0
======================================
+ Hit           3500    3807   +307
  Partial          0       0
+ Missed        2187    1894   -293

Uncovered Suggestions

+0.24% via ...ne/PipeLineDSL.scala#78...91
+0.24% via ...rt/QueryServer.scala#127...140
+0.24% via ...stock/Analyzer.scala#126...139
See 7 more...

Powered by Codecov

+1

This pull request just split the project core, next step is to split the lib folder.

This will likely impact scalajs integration, we'll rebase the scalajs branch.


Vcpkg Binary Cache Cleanup

Set expiration time
Clean up condition for running Set-VcpkgWriteModeCache.ps1 which takes a long time to run on account of Install-Module
Clean up warning

Example core run -- https://dev.azure.com/azure-sdk/internal/_build/results?buildId=1465280&view=results

ty

/azp run cpp - core

@weshaggard -- PTAL


Font size is miscalculated because of line-height

In function getRealFontSize you are creating an em-block (
M
) and measuring it's height to get a scaling factor. However the height of that block is affected by the CSS line-height property. In our application we set line-height to 1.5 and so all the subtitles appear smaller than they should be.
We have made a workaround by setting line-height to 1.2 in the container element. We think however that this is better done inside the ASS-fix-font-size class in your code.

line-height is not a specific value with different font-size and font-family, set it to 1.2 will cause more inconsistent.

Oh, I should set line-height: normal; inside ASS-fix-font-size

@weizhenye Thanks for addressing this! You're right, line-height: normal is the correct approach.
But the problem is not completely solved: the lines of the subtitles themselves are displayed with the wrong line height. Could you also add line-height: normal to the subtitles themselves?


Use varWord encoding to make serialisation more efficient

https://github.com/concert/hs-varword allows us to use git's compact variable-length word encodings easily in Haskell. We should use those encodings instead of fixed length encodings for some of the data CLAPI sends. E.g.:

Enums
List lengths
Word32/Word64 values
(Potentially) Int32/Int64

Particularly useful for length encodings (where the numbers are likely to be small), which we use for lists and stuff in various places.

:trophy: