100-continue is not supported

Colossus does not seem to support the "Expect: 100-continue" http header for post and put requests, causing high latency for clients that use this header, as sending of the request body from the client side is delayed by up to half a second while waiting for the 100 response from the server.
For details look here:
https://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3

The quick fix is for clients to not use the Expect header (or force it to be blank):
curl -v -X POST --header 'Expect:' 'localhost:8888/bla'

It would be nice if colossus handled this automatically, but previous discussions lead us not to add this functionality. However, I think we should discuss it again and investigate the changes required.

we discussed this and do not immediately plan on handling the Expect header because of the changes required to the http response writer / http server request handler API. as previously mentioned, using an empty field value is a fix. in the specific case where we send a POST/PUT with no Body to a route that expects a Body, the request handler can immediately return a "400 Bad Request" final status code (e.g. HttpResponseBuilding#badRequest(…)), and the client can retry the request with an included Body
closing this for now. please re-open if this continues to be a pain point


latest build requires meson 0.56 which is not available with ubuntu-latest on github actions

Github actions run on 'ubuntu-latest' which is pretty old 20.04. We can either wait a few months for 22.04 to become available on github. Or we can spin up a docker of ubuntu:21.04, or we could run an install script that uses pip install meson, because that is always newer than the 'apt install meson' version.

What feature do you need from 0.56? Using docker just for meson is overkill.  We can get the latest from some other channel, ie. PyPi.

we need the dependency.as_link_whole()
Can you update the script so it uses pip install to get meson instead?

which function are you in your mind?
Does #308 help?

Or use both_librarries() and let Meson choose the right lib.

It is specific to the usage of weak linked functions from,  inside of a library. The only way that can work when using static linking is by using the link-whole statement. Dynamic linking is not the solution.
I am in doubt if the weak function are the correct way in general. See hooks.md in the docs folder for an overview of the hooks we currently have. Two of them, the print and the clock get have default implementations within the library.
The callbacks for system reboot example is also the wrong method.
The final method is using preprocessor macros, which can quickly get messy when there are a lot of overrides.

Actually there is another method that I am considering.
And that is to remove the weak part of the linking, and always require the user to implement the hooks. And then have default implementations within contrib for various platforms.
A further optimization of this is to have macros like HAVE_INPUT_HOOK = y to remove calls to non implemented hooks.
This is the approach that FreeRTOS uses btw.

Just as described here.
https://www.freertos.org/a00016.html

Please don't.  Why do we have to go back to '80s when our compiler and the elf format provide better and smart way to do?

I went for the weak linked functions :)
And removed the weak from the declarations and added the always defined weak functions for all hooks.


Can chrome run on centos7

@zx1992147
I am not sure if CEF supports CentOS officially, but it looks like there are developers using CEF on CentOS.
So, sure you can try.
Ensure you have the right CentOS version supported by .NET Core:
https://github.com/dotnet/core/blob/main/release-notes/3.0/3.0-supported-os.md
https://github.com/dotnet/core/blob/main/release-notes/5.0/5.0-supported-os.md
For Chromely you can start with Readme and  CrossPlatDemo.


⚠ Bofrost.be has degraded performance

In c6c9488, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 3338 ms

Resolved: Bofrost.be performance has improved in 33dd1a4.


adding Readme.md in hindi language for multilingual users

@Mr-Sunglasses Sir please assign me this issue if you liked it and please give it a tag of iwoc and medium. 😊


[Fix][CI] Add remove jar from  /tmp/seatunnel-dependencies before run

If this directory is not cleared , the inspection results will be inaccurate when run checkLicense.sh in local.

Why the Integration Test error? @CalvinKirs

Why the Integration Test error? @CalvinKirs
Download jar timed out, you can check it by log. Not related to this PR, so I merged.


Add unreplicate()

We need a method to stop any active replication streams on hypercores.

I'll create a PR this evening.

I'll need some help from @mafintosh here. It looks to me like the only place the active streams are tracked are in the connection stream itself (?). But I'm very unclear about how the replication stream gets connected to the right sockets. :(

@pfrazee when replicating it creates an internal peer object to track replication state. it is added to the feed being replicated here, https://github.com/mafintosh/hypercore/blob/master/lib/replicate.js#L96
when unreplicating you basically just need to call the onend method that is being called on disconnect as well, https://github.com/mafintosh/hypercore/blob/master/lib/replicate.js#L231-L242
to find the correct peer, iterate the .peers list on the feed and look for the correct stream
for (var i = 0; i < feed.peers.length; i++) {
  if (feed.peers[i].stream === stream) {
    // assuming you expose the internal onend method on the peer as .disconnect or something
    feed.peers[i].disconnect()
  }
}

Hope this helps. Otherwise ping me again. Can do a hangout as well if you want.


Fix uint64 truncation issue in dqlite

Is a little confusing reviewing, the terms cluster ID and node ID seem to be used interchangeably in this code.


Fix message ("Unused variable" -> "Unused function" for function identifier)

Fixed message for function identifer.
Sample script
function! s:foo()
endfunction

Before
vint test.vim
test.vim:1:11: Unused variable: s:foo (see :help E738)

After
vint test.vim
test.vim:1:11: Unused function: s:foo (see :help E738)

Coverage remained the same at ?% when pulling ba13d34978f43571bc50508c9d44c2428ccf2471 on tyru:unused-function into e44dedfd5b770da4adc6b6772858a3e56d469a02 on Kuniwak:master.

@Kuniwak @blueyed I forgot about true_value if condition else false_value because I don't write python so much.
Should I rewrite with it?

@Kuniwak @blueyed I forgot about true_value if condition else false_value because I don't write python so much.
Should I rewrite with it?

I think it's fine - and actually makes it clearer for code coverage.

Maybe this should be split into a separate ProhibitUnusedFunction instead?


Install instructions don't mention how to get 'grpc'

See original issue on GitLab
In GitLab by [Gitlab user @samthursfield] on Jul 20, 2018, 23:13
Running latest bst (1.3.0+14.gb662f175) fails for me with:
ModuleNotFoundError: No module named 'grpc'

I presume I need to install a new package, but the install instructions don't seem to mention this new package anywhere.

In GitLab by [Gitlab user @juergbi] on Jul 21, 2018, 06:18
grpcio should automatically get pulled in as a dependency by pip. If you've installed BuildStream with an older version from git using pip -e you have to rerun pip to get the new dependencies.

In GitLab by [Gitlab user @samthursfield] on Jul 21, 2018, 11:50
Right, that worked!
Thanks.

In GitLab by [Gitlab user @samthursfield] on Jul 21, 2018, 11:50
closed


✨ success/failure state spinner buttons

refs https://github.com/TryGhost/Ghost/issues/7515

changes to gh-task-button:

can take buttonText (default: "Save"), runningText ("Saving"), successText ("Saved"), and failureText ("Retry") params
positional param for buttonText
default button display can be overridden by passing in a block, in that scenario the component will yield a hash containing all states to be used in this fashion:{{#gh-task-button task=myTask as |task|}}
    {{if task.isIdle "Save me"}}
    {{if task.isRunning "Saving"}}
    {{if task.isSuccess "Thank you!"}}
    {{if task.isFailure "Nooooooo!"}}
{{/gh-task-button}}

update existing uses of gh-task-button to match new component signature

This PR only introduces the basics so that initial testing can be done and further ember-concurrency refactors can be made against the almost-final state.

To be added in later PRs:

proper styling and icons
improvements to fixed width handling

Coverage increased (+0.04%) to 75.26% when pulling 73fcb8586f35fa75671886dae1d756fa96fc235e on kevinansfield:did-that-save-or-not into dafd5109b43343bc06bc07e20042f06b6063f77f on TryGhost:master.


Add support for basic authentication to HTTP export client

Other export client implementations already allow authentication and I was thinking it would be interesting to add support for basic authentication in the HTTP client as well.
I'll submit a PR to address this.

Which clients and where?

@drasko for example, MQTT, XMPP, IoTCore, or InfluxDB export distro services support authentication.

Needs spec and configurable implementation.

ok, I'll work on it and update the PR.

This issue should also be discussed and worked through Security WG.  Please connect with @Ferriera

Closing due to inactivity


On website, ReferenceError: umami is not defined

Describe the Bug
On occasion, something causes Umami to fail to send an event. The script loads  via a 304 Not Modified HTTP code and, assumingly gets loaded into the site, however an event tracked ends up resulting in an undefined reference error.
Relevant code:
Root

Route
        try {
          umami.track('loadQuery', { type: 'storage' })
        } catch (error) {
          console.debug('Umami error: ', error)
        }

Results in an error.
Database
MySQL
Relevant log output
Uncaught (in promise) ReferenceError: umami is not defined
    at k (_index-DxOjFC2I.js:55:69117)
    at _index-DxOjFC2I.js:55:68450
    at sl (index-B6Ifai2I.js:40:24177)
    at Gn (index-B6Ifai2I.js:40:42061)
    at Fi (index-B6Ifai2I.js:40:36399)
    at mn (index-B6Ifai2I.js:38:3258)
    at yd (index-B6Ifai2I.js:40:40969)
    at gn (index-B6Ifai2I.js:40:39976)
    at Ba (index-B6Ifai2I.js:40:35511)
    at E (index-B6Ifai2I.js:25:1562)

Which Umami version are you using? (if relevant)
Self-Hosted
Which browser are you using? (if relevant)
Chrome
How are you deploying your application? (if relevant)
AWS

Closing this issue
After further review, the issue is not with umami itself, however, by following the documentation and including the defer directive in the

...content after scripts...


this not highlighted inside brackets

local first = "hello";

{
  second: "world",
  out: "%s %s!" % [first, this.second],
}

For this example I would expect this to be highlighted the same as if it was not inside [].
Just adding a ticket for this I'll try to take a look at it later.

It's because it's self not this :)

doh. thanks!


Update link to #fileID documentation that has moved to the stdlib.

#fileID is no longer a literal but is now a macro in the stdlib, so its documentation has moved. Update our documentation to match.

@swift-ci please test

Seems fine but I wonder if we could avoid it by phrasing as "…in the documentation for #fileID in the standard…"

Got an alternative? :)

This is a comments-only change. Merging.


Create User and Role Management

I want to help in this module. But i have issue in with mobx Version 3.15 module. Am using VS 2015.
Is there a different version that can work.

Hi, yeah. Want to give it a shot? Feel free to ask questions.
Thanks,
Marvin
On Tue, Oct 16, 2018, 4:27 PM vivencio2<EMAIL_ADDRESS>wrote:

Hi Is this still up for grabs?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/AccountGo/accountgo/issues/1#issuecomment-430167413,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKMkY3205XKb_8Wr0-btLVHWQZQK7CTRks5ulaZ9gaJpZM4DW3TC
.

Alright sure! Will ask questions in a while.

Hi @vivencio2 , I just made a PR to your fork of the latest from master. I just want you to see some initial work with regards to modular and plugin feature. I saw you are looking at OrcharCore which is modular and extensible. I may use some help as well on making AccountGo modular and extensible. Please look at Infrastructure project and Module.Tests project

Hi Marvin,
I saw your PR and already merged it. It's good that your doing this modular approach, I have some experience on this using MEF for dll versioning and also have seen this in NopCommerce as well. I'm just ramping up my setup and will definitely help you on this.

Awesome! We could use NopCommerce, DotNetCorePlugins and SimplCommerce as our guide.

Hi Marvin, I'm done with my setup and successfully build and run the both API and Web. So what's your plan on this user and role management? I noticed you are already started using ASPNET Identity/Membership, I can continue on that as well but I just want to know what are the plan roles you want ? Do you also want to enable social login providers ?

Yeah, we will add social login later on but low priority. The reason for
this is because we will put this accountgo to some marketplace e.g.
AppDirect and user can subscribe using email and maybe social login. Once
subscribe it iwll automatically setup a company for them.
For authentication/autherization aspnet membership still fine. But we will
extend a permission management to another table.
On Wed, Oct 17, 2018, 1:17 AM vivencio2<EMAIL_ADDRESS>wrote:

Hi Marvin, I'm done with my setup and successfully build and run the both
API and Web. So what's your plan on this user and role management? I
noticed you are already started using ASPNET Identity/Membership, I can
continue on that as well but I just want to know what are the plan roles
you want ? Do you also want to enable social login providers ?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/AccountGo/accountgo/issues/1#issuecomment-430341701,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKMkY6IVH6FfG5KsSLCzfaGXdHuA0mrTks5uliLOgaJpZM4DW3TC
.

The way I see it, permissions are hardcoded or added by script on the
back-end. Because this permission are going to be use in the code. Roles
can be created from the UI and permissions can be assign to a role. Roles
are groups of permissions. I'm open for ideas.
On Wed, Oct 17, 2018, 7:59 AM Mvp Solution<EMAIL_ADDRESS>wrote:

Yeah, we will add social login later on but low priority. The reason for
this is because we will put this accountgo to some marketplace e.g.
AppDirect and user can subscribe using email and maybe social login. Once
subscribe it iwll automatically setup a company for them.
For authentication/autherization aspnet membership still fine. But we will
extend a permission management to another table.
On Wed, Oct 17, 2018, 1:17 AM vivencio2<EMAIL_ADDRESS>wrote:

Hi Marvin, I'm done with my setup and successfully build and run the both
API and Web. So what's your plan on this user and role management? I
noticed you are already started using ASPNET Identity/Membership, I can
continue on that as well but I just want to know what are the plan roles
you want ? Do you also want to enable social login providers ?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/AccountGo/accountgo/issues/1#issuecomment-430341701,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AKMkY6IVH6FfG5KsSLCzfaGXdHuA0mrTks5uliLOgaJpZM4DW3TC
.

@codemvp okay got you. I will try to implement something and will discuss with you once staged to my fork.


Cross compile to StandardML

Hello -
Is it possible to compile SML# into StandardML? I find SML#'s type system amazing, but I am working with a set of tools that operate on StandardML.
How difficult would this be to have an optional mode, where StandardML is the target language?

Thanks for being interested in SML#!
Almost seven years have passed since the last comment but I'd like to answer the first question, which was asked eight years ago.
It is impossible to translate ML with record polymorphism into Standard ML. Record polymorphism is not just an extension of type system but a new feature that needs to be compiled into machine code by a type-directed compilation technique. This is one of reasons why the SML# compiler project was started.
The core feature of SML# is not only type system but interoperability with operating systems and databases. We have been applying record polymorphism and its compilation technique to realize the interoperability. The latest SML# compiler generates LLVM IR and works with the latest LLVM toolchains. It is equipped with concurrent and parallel garbage collector and exhibits good scalability on multicore processors. These are unique features of SML#, which cannot be achieved if we didn't write our own compiler.


Add matchers for LWRPs

NoMethodErrors were received when attempting to test notifications from
LWRPs provided by this cookbook. Investigation showed the resource matchers
for the LWRPs are missing. This adds them.

This was merged as e6acbc20513b238d15617f1310c5d7791a944f5e. Thanks!


fix: delete sim_main in __init__ all

caused it never use since sim_main had been deteled

Thanks! Do you mind add a regression test in test_cmdline.py to test from viztracer import *?

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

Project coverage is 99.95%. Comparing base (49a1dcf) to head (a9db97f).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@             Coverage Diff             @@
##            master     #413      +/-   ##
===========================================
- Coverage   100.00%   99.95%   -0.05%
===========================================
  Files           21       21
  Lines         2308     2308
===========================================
- Hits          2308     2307       -1
- Misses           0        1       +1

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

Thanks! Do you mind add a regression test in test_cmdline.py to test from viztracer import *?

will do that today

Thanks! Do you mind add a regression test in test_cmdline.py to test from viztracer import *?

Done

Thank you for noticing this!


[dkr] add db-bootstrapper to tools

Motivation
add db-bootstrapper to tools
Have you read the Contributing Guidelines on pull requests?
(Write your answer here.)
Test Plan
(Share your test plan here. If you changed code, please provide us with clear instructions for verifying that your changes work.)
Related PRs
(If this PR adds or changes functionality, please take some time to update the docs at https://github.com/libra/website, and link to your PR here.)

@bors-libra r=mgorven

:pushpin: Commit cc7c9ef has been approved by mgorven

:hourglass: Testing commit cc7c9ef3e01ad8c25d101efa849b822fbff040a7 with merge 69daa67596d5a0a8e73a962d1d4d3a87ab767fb1...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: mgorven
Pushing 69daa67596d5a0a8e73a962d1d4d3a87ab767fb1 to master...


Allow to solve for vector valued matrix products

This pull request is inspired by wanting to solve matrix equations that are like
A x = b
When x and b are vectors of points in R^n. This is a first pass to get basic functionality, but there might be more places in the library where vector spaces could be used like this. Do you have anywhere else you think this could be useful?

Hello, thanks for the PR.
While I agree that solving multiple right hand sides is a nice-to-have feature, there are a few issues with your current implementation:

it's unlikely that a vector of right hand sides will be actually indexable to yield the values of similar rows.
the copy bound on M is probably never achievable.
even if the above points were to work, this would result in an API with lots of implicit copying

I think it's better to follow Rust's tendance to prefer explicit over implicit, and implement the multiple rhs feature as a dedicate fn solve_multiple() method, probably with a IntoIterator<Item=V> bound, that allocates the result once when starting the function, and the calls solve repeatedly on views of the input and the result.

I'm closing this PR to open it as issue #88 as it's a more general issue that needs dedicated abstraction to be properly handled.
Thanks for the input!


Underlying Token Address not being set

I'm reviewing the Data structure and noticed that in src/hooks/DAO/loaders/useGovernanceContracts.ts:
let underlyingTokenAddress: Address | undefined;

is not being used yet is being passed into the payload on line 125

This is probably leftover from the wrap functionality


feat: add doc for full_refresh option to on_schema_change

Contributions

[ ] I am a PM or subject matter expert at dbt who is responsible for this feature.

Where does this content belong?
I created the PR #6412 on dbt-core to add the full_refresh option to on_schema_change config of incremental models. This will allow the user to define that, when a schema change occurs on an incremental model, dbt needs to do a full refresh of this model. If there is no change in the model, then the full_refresh will not be activated.
This option need to be added to the section "What if the columns of my incremental model change?" of the incremental model page.
Link to source material
No source material

hey @pol-defont-reaulx thanks for opening this docs issue! I'm going to add an icebox label as it seems the original core pr https://github.com/dbt-labs/dbt-core/pull/6412 was closed due to the decoupling. we can reopen this again once it goes through. really appreciate you opening this up!


We can not upload file successfully from Android

We can upload file from local computer using Postman to our server.
So I think there is no problems with my bankend.
This is HTTP request using postman.
[Header]
Content-Type multipart/form-data
[Body]
fileName XXX
file           (local filename)
This is response from backend,and I checked the uploaded file on my server.
"succ": true,
"ts":<PHONE_NUMBER>792,
"data": {
    "fileName": "XXX.png",
    "filePath": "uploadDir"
},
"code": null,
"msg": null

But we can not upload file from Android smartphone using Fuel HTTP.
This is our source code of frontend.
val url = "http://[our server IP address]:12345/file/upload"
url.httpUpload(method = Method.POST, parameters = params)
    .add(FileDataPart(file, "fileName", fileName))
    .response { request, response, result ->
        println(request)
        println(response)
        println(result)
    }

}
This is our HTTP request from Fuel.
POST http://[our server IP address]:12345/file/upload
Body : (830 bytes of multipart/form-data)
Headers : (1)
Content-Type : multipart/form-data; boundary="57e6b93b-5068-4acb-b1c4-e7e5b5c24792"

Is your server expecting PUT or POST? Is it possible that you are using the wrong HTTP verb here?

I hava a similar problem. The problem of mine is the multipart form has content-type, then the server can't handle it.
Failed form(by fuel
key                     |  content-type                        |   value
path                   | text/plain; charset="UTF-8" |  /homes/youhuajie/testFs
create_parents | text/plain; charset="UTF-8" |   | true
file                      | application/octet-stream     |   111.log
Success form(by postman
key                     |  content-type                        |   value
path                   |                                                 |  /homes/youhuajie/testFs
create_parents |                                                 |  true
file                      | application/octet-stream     |   111.log
I didn't get a solution now.


Add sym/cmp/pkg/dev for ESP-12S module

Datasheet: https://www.elecrow.com/download/ESP-12S_User_Manual.pdf
One of the more widely used ESP modules, e.g. by Adafruit: https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/overview

On the bottom there's a pad that looks like it could be soldered:

However, the datasheet doesn't mention any dimensions, so I can't add it.

I'm still not sure how we should handle the name of manufacturer specific library elements... Maybe sym/cmp/dev should be named "Ai-Thinker ESP-12S" and the package "AI-THINKER_ESP-12S" or something like that? But actually the IPC7351 naming convention for manufacturer-specific packages doesn't make much sense IMHO. I mean, why should we use uppercase letters and underscores instead of spaces if our EDA tool has no issues with spaces or other special characters?
Apart from that, I saw that the device is in another category than the component, which doesn't make sense IMO.

I mean, why should we use uppercase letters and underscores instead of spaces if our EDA tool has no issues with spaces or other special characters?

Not sure, probably for consistency with other tools. Also, practically all generic packages (e.g. SOIC, DFN, BGA etc) have capitalized abbreviations, so it might look more consistent within the parts list as well if everything's capitalized.
I'd be open to replace underscores with spaces though, might be easier to read.


Modify compaction job queue size limit to be memory based

Is your feature request related to a problem? Please describe.
Currently the compaction job configuration is based on a range of entries.  An individual entry in the queue can vary in size based on the number files in the tablet and the number of files in the compaction job.  So it is hard to reason about entires.  The goal of limiting the size is to limit memory usage.
Describe the solution you'd like
Have a single configuration that is a memory upper limit for compaction job queues.  For example the configuration would allow the queue to use up to 50M of memory.  This would be much easier to understand and would work much better at limiting memory used by the queue.  The current configuration based on a range of entries sizes (like the queue can range from 10 to 10000) entries does not control memory usage in a predictable way.

How do you envision computing the memory for the compaction job? Caffeine has a nice Weigher API for computing the weight of an entry to control max size based on memory instead of total count if the memory footprint for each entry can vary so maybe we can do something similar here.

How do you envision computing the memory for the compaction job? Caffeine has a nice Weigher API for computing the weight of an entry to control max size based on memory instead of total count if the memory footprint for each entry can vary so maybe we can do something similar here.

Would write some custom code to compute a data size estimate of the object similar to what would be done in the implementation of a Weigher

Should #5188 be implemented first before we do this? The MetaJob object stores both the CompactionJob and TabletMetadata now so if we drop the TabletMetadata thenthere will be some refactoring and will impact the code here. This issue also becomes a lot easier if we don't have to try and estimate the TabletMetadata size.

Should https://github.com/apache/accumulo/issues/5188 be implemented first before we do this? The MetaJob object stores both the CompactionJob and TabletMetadata now so if we drop the TabletMetadata thenthere will be some refactoring and will impact the code here. This issue also becomes a lot easier if we don't have to try and estimate the TabletMetadata size.

If this is done first should not expend much on effort on computing the tabletmetadata size. Could call TabletMetadata.toString().lenght() to estimate its size.  This is not efficient, but it is quick to write the code for something that will go away.


mitmproxy install issues

Hi All
I am trying to install mitmproxy but when I run it I get following errors
System details:
Mac: 10.10.4
Python version: 2.7.6
pip version: 7.1.0
mitmproxy: 0.13
Error Log:
Traceback (most recent call last):
  File "/usr/local/bin/mitmproxy", line 9, in <module>
    load_entry_point('mitmproxy==0.13', 'console_scripts', 'mitmproxy')()
  File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 558, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 2682, in load_entry_point
    return ep.load()
  File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 2355, in load
    return self.resolve()
  File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 2361, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/Library/Python/2.7/site-packages/libmproxy/main.py", line 7, in <module>
    from . import version, cmdline
  File "/Library/Python/2.7/site-packages/libmproxy/cmdline.py", line 5, in <module>
    from netlib import http
  File "/Library/Python/2.7/site-packages/netlib/http.py", line 7, in <module>
    from . import odict, utils, tcp, http_status
  File "/Library/Python/2.7/site-packages/netlib/tcp.py", line 26, in <module>
    'TLSv1.2': SSL.TLSv1_2_METHOD,
AttributeError: 'module' object has no attribute 'TLSv1_2_METHOD'

Install log:
sudo -H pip install mitmproxy                                                                                ◉ ◼◼◼◼◼◼◼◼◼◻
Collecting mitmproxy
/Library/Python/2.7/site-packages/pip-7.1.0-py2.7.egg/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Using cached mitmproxy-0.13.tar.gz
Requirement already satisfied (use --upgrade to upgrade): pyperclip>=1.5.8 in /Library/Python/2.7/site-packages (from mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): pyasn1>0.1.2 in /Library/Python/2.7/site-packages (from mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): tornado>=4.0.2 in /Library/Python/2.7/site-packages (from mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): lxml>=3.3.6 in /Library/Python/2.7/site-packages (from mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): netlib<0.14,>=0.13 in /Library/Python/2.7/site-packages (from mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): urwid>=1.3 in /Library/Python/2.7/site-packages (from mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): blinker>=1.3 in /Library/Python/2.7/site-packages (from mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): Pillow>=2.3.0 in /Library/Python/2.7/site-packages (from mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): pyparsing>=1.5.2 in /Library/Python/2.7/site-packages (from mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): configargparse>=0.9.3 in /Library/Python/2.7/site-packages (from mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): html2text>=2015.4.14 in /Library/Python/2.7/site-packages (from mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): backports.ssl-match-hostname in /Library/Python/2.7/site-packages (from tornado>=4.0.2->mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): certifi in /Library/Python/2.7/site-packages (from tornado>=4.0.2->mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): pyOpenSSL>=0.15.1 in /Library/Python/2.7/site-packages (from netlib<0.14,>=0.13->mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): cryptography>=0.9 in /Library/Python/2.7/site-packages (from netlib<0.14,>=0.13->mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): passlib>=1.6.2 in /Library/Python/2.7/site-packages (from netlib<0.14,>=0.13->mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): hpack>=1.0.1 in /Library/Python/2.7/site-packages (from netlib<0.14,>=0.13->mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): six>=1.5.2 in /Library/Python/2.7/site-packages (from pyOpenSSL>=0.15.1->netlib<0.14,>=0.13->mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): idna in /Library/Python/2.7/site-packages (from cryptography>=0.9->netlib<0.14,>=0.13->mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): setuptools in /Library/Python/2.7/site-packages (from cryptography>=0.9->netlib<0.14,>=0.13->mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): enum34 in /Library/Python/2.7/site-packages (from cryptography>=0.9->netlib<0.14,>=0.13->mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): ipaddress in /Library/Python/2.7/site-packages (from cryptography>=0.9->netlib<0.14,>=0.13->mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): cffi>=0.8 in /Library/Python/2.7/site-packages (from cryptography>=0.9->netlib<0.14,>=0.13->mitmproxy)
Requirement already satisfied (use --upgrade to upgrade): pycparser in /Library/Python/2.7/site-packages (from cffi>=0.8->cryptography>=0.9->netlib<0.14,>=0.13->mitmproxy)
Installing collected packages: mitmproxy
  Running setup.py install for mitmproxy
Successfully installed mitmproxy-0.13

What I already tried:

pip install mitmproxy -U
tried to uninstall and install mitmproxy again
restart my mac :)

Any suggestions?
--Many thanks

duplicate of #705

same here...and i'm running the latest openssl and cyrptography

just found a simple solution to similar problem I had, I renamed the default openSSL folder
sudo mv /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/OpenSSL /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_OpenSSL


Bug with Exercise 4

Dunno, seems to be working now - think it had something to do with a null fb signal


[BUG] nativescript/angular support

Description
appInsights does nothing after initialization in NativeScript app. does not send any requests or log smth to the console
Steps to Reproduce
Create new nativeScript/angular project with NativeScript CLI command ns create MyApp --template angular
add AI js sdk to app component
export class AppComponent implements OnInit {
    ngOnInit() {
        const appInsights = new ApplicationInsights({
            config: {
                instrumentationKey: "YOUR_INSTRUMENTATION_KEY_GOES_HERE",
                /* ...Other Configuration Options... */
            },
        });
        appInsights.loadAppInsights();
        appInsights.trackPageView();
    }
}

@xiao-lix  do you have any suggestion how I can run this package in nativescript/angular ?

@Nosfit @jitendraP-ashutec Sorry for the late reply, unfortunately, the application insights package does not support nativescript/angular yet.

@xiao-lix no problem for the late reply. the most important thing it was helpful

@Nosfit  @dmytro-gokun  @xiao-lix
I have made small changes in package ApplicationInsights-JS and created local package then it is working on Nativescript.
You can download this package from here: https://github.com/jitendraP-ashutec/ApplicationInsights-JS-package
and add this package into root folder of your project and run below command to install it.
npm install  microsoft-applicationinsights-channel-js-2.5.12.tgz
npm install microsoft-applicationinsights-common-2.5.12.tgz

and in config you have to pass one new config variable Like:
        config: {
            instrumentationKey: XXXXX
            // I have created new config variable  isHybridApp. If you pass it true then it will work on nativescript
            isHybridApp: true,
        }
    }); ```

Please check and let me know so if its work then I can create PR so any one can use this feature.

@jitendraP-ashutec if the app crashes, we are suppose to see it with this new package ?


Different bank holidays per departments

Hello,
Our company has offices in different countries (each office is defined as separate department), so bank holidays may be also different.
Would be great to have possibility to set bank holidays not global, but for selected departments.

@XFactorus thanks for suggestion.
This feature is very likely going to be implemented as part of #41
I am going to close current ticket as duplicated.


test-branch/execute-job/quoted-authorization/b088a748-b8fd-46cd-89cb-b6c52bc19375

PR for testing b783157dff3cfbaad3ee506efd062dfd41465746

/canonical/self-hosted-runners/run-workflows b783157dff3cfbaad3ee506efd062dfd41465746


Remove unnecessary %pip install statements from the notebooks

This PR removes unnecessary %pip install statements from adversarial_training.ipynb and cifar10_resnet.ipynb from examples.
Addressing issue https://github.com/google-deepmind/optax/issues/756

Thanks @JayJayleee ! This looks good to me.
Congrats on your first contribution to optax 🎉  🚀 !

Thanks @JayJayleee ! This looks good to me.
Congrats on your first contribution to optax 🎉  🚀 !

Thank you fabianq! :)

We're now just waiting for someone else from Google to approve the changes. Should be done by tomorrow or so


Help: sql preprocessing to convert to SemQL format to test IRNET  for wikisql

Hi All,
I am stuck at parsing sql query of wikisql to irnet sql format especially for "sql" key :
for instance,
WIKISQL ->     "sql":{"sel":5,"conds":[[3,0,"SOUTH AUSTRALIA"]],"agg":0}
IRNET SEMQL ->
"sql": {
"except": null,
"from": {
"conds": [],
"table_units": [
[
"table_unit",
1
]
]
},
"groupBy": [],
"having": [],
"intersect": null,
"limit": null,
"orderBy": [],
"select": [
false,
[
[
3,
[
0,
[
0,
0,
false
],
null
]
]
]
],
"union": null,
"where": []
}
}
Any help is appreciated.
Thanks
Anshu

Another Question, are the authors using TranX to parse sql to semQL format ?


FIFO support for memory with non-zero read latency

The current br_fifo_ctrl_1r1w implementation requires the read latency to be zero, which basically restricts us to flop-based storage. For SRAM-based storage, we'll need to extend the FIFO to support non-zero latencies. This will require either a staging FIFO or reorder buffer (depending on setting of EnableBypass=1) to absorb the read latency.

Yep. It'll be a substantial chunk of work to have it support all the planned variations (push/pop ready/credit combinations). We can start with ready/valid and push-credit/valid where the variants already exist

Fixed by #140


Bricked my whole device until restart

This bug occurred when i did the recommended settings in the tweaks page. I used laptop settings because i have laptop.. well, did restart, everything seemed right and nothing was off, well until i tried to search something in the windows search bar, or trying to open settings. 2 minutes after this discovery, the windows GUI [ start menu ] started flashing on and off, could not click anything, it was constantly highlighting random windows [ like steam, spotify, etc] so i tried to restart the explorer.exe. That didn't work either, because i got an error [ PICTURE ].
Steps to reproduce the behavior:

Go to 'Tweaks Page'
Click on 'Laptop'
Apply your tweaks
Restart the system

Expected behavior
To be fair, i just expected the system to be more snappy and a little bit faster.
Screenshots

Additional context
Its not hard to fix it back.. just open the power-shell app again and unload [ revert ] the changes and restart.

Unable to replicate error


Convert to typescript

This should help with #19

LGTM, w/ one question about the parse5 module

Hi guys,
You can use typedoc to automatically generate docs from typescript. It could resolve #19 with a little effort. I've recently used it for parse5 docs.

Nice! Those docs look pretty sweet


Adds good binary type descriptors

Description of changes:
Adds good files for each TL pair and a README that describes the files. As much as possible, I tried to make the representation to be made up of invalid TL pairs. That way even if the implementation is not trying to read the values, it should still fail if it is reading the length incorrectly. The README is intended to be a resource I would have liked to have when starting to understand the binary format.
I split the T7 (Symbol) file into two, for implementations that do not want to implement supporting really large VarUInts. (ion-c, ion-java, ion-js all have problems with T7-large.10n).
Below are the issues that I noticed when testing it with the various language implementations, the first three are the most important to take a look at:

ion-python differs on 5D, 5E in T5.10n compared to ion-c, ion-js, ion-java (but is fine on the other large numbers)
ion-python (Edit: originally this said ion-java) disagrees with ion-c, ion-js, and ion-java on the value of 62, 63, 64, and 65 in T6.10n. (0097-01T vs 0096-12T)
While creating these files, I noticed that ion-js seems to accept timestamps that it shouldn't (ones that other implementations don't accept and the issue seems to be around the hour and minute requirements). I will follow up on this and create an issue. (Edit: Issue https://github.com/amzn/ion-js/issues/534 created)
ion-c fails reading T6.10n (on the larger timestamps)
ion-c, ion-java, and ion-js fail reading T7-large.10n
ion-js does not support SID0 (Used in T7-small.10n and T7-large.10n)

If there is interest, I can create a set of bad files for the invalid types as well.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

I added a commit that addresses the comments.

I noticed while putting together the set of bad files that I had missed listing 1E as an invalid type descriptor. I added it with the latest commit.

Timestamp changes made, squashing and merging.


Implement specs

It looks like this linter does not currently have any specs written for it, adding it to the list being maintained here for tracking.
Specs do not need to be super detailed, as they should mainly test whether the package is properly running the linter plugin and parsing its messages. Leave testing of the linter functionality to the author of the linter.
If you need any help feel free to ask!

@Arcanemagus I've added a spec with some fixtures for "sanity check" of linter-swagger. If I need to add any CI config then I need help with that. Other than that, I guess it's done.

Awesome! That should help with the GreenKeeper PR spam :stuck_out_tongue:
It looks like @steelbrain already helped point you in the right direction for enabling CI, if you have any other questions though just ask!


Set dev as default branch on the repository

I noticed that the actively developed branch is dev instead of master. Can you set it as default branch? Then you always see the latest on github and by default it clones the right branch.
Another project that might be of interest for you: https://github.com/ParticularLabs/GitVersion

Done! And thank you for all your contributions!!! :+1:


Fix blank lines being required where they should not be. (#256)

This fixes #256. For people who add a blank line after every paragraph, they should see no change. This change is to support broader flexibility so that a blank line is no longer mandatory in situations where a block follows a paragraph.
Other implementations of GitHub flavor markdown do not depend on these blank lines, so I see no reason that markdown-to-jsx should. A more flexible implementation makes markdown easier to write with more reliable results.
This PR closes #266 as I moved it to its own branch.

Any chance of merging this?


@craigspaeth => Group genes by family

Incremental progress towards /categories2 …
This PR:

cleans up some cruft from the first PR
makes the Gene model and Genes collection aware of the GeneFamily relation
continues to rough in the layout for /categories2, this time adding a full list of genes, grouped by family

Sry for the delay, taking a look at this today.

👏 Well done Roop! I noted a point about Metaphysics—which is just something to keep in mind as you expand on this. If the fetching/orchestrating logic is simple like it is here I think it's preferable to just go to Gravity's API, but feel free to refactor to MP down the line if things get hairy.

Actually upon second review, the only addressable comments I have is the CSS namespacing dogma. Not a blocker IMO, but I'll let you decide if you want to address that now or merge and follow up. Overall very solid stuff 👍

Thanks for the review!
Good point about namespacing categories2 in the css. I'll push up some changes for that.
Re: Metaphysics, was unsure if the query logic would warrant it, but as we start fetching the needed OrderedSets and FeaturedLinks to flesh out this page it might very well make sense, so I will def have that in mind.


Duplicated httpRequest if Concise is false

Code:
package main

import (
	"net/http"

	"github.com/go-chi/chi/v5"
	"github.com/go-chi/httplog"
	"github.com/rs/zerolog/log"
)

func main() {
	r := chi.NewRouter()
	r.Use(httplog.RequestLogger(log.With().Str("service", "http").Logger()))
	r.Get("/", func(w http.ResponseWriter, r *http.Request) {
		w.Write([]byte(`oi`))
	})
	log.Info().Msg("Running on :3000")
	http.ListenAndServe(":3000", r)
}

Log when I request GET / using xh :3000:
❯ go run ./main.go
{"level":"info","time":"2022-01-10T08:43:25-03:00","message":"Running on :3000"}
{"level":"info","service":"http","httpRequest":{"proto":"HTTP/1.1","remoteIP":"[::1]:59744","requestID":"dell-rrsp/SaPMv1pZaJ-000001","requestMethod":"GET","requestPath":"/","requestURL":"http://localhost:3000/"},"httpRequest":{"header":{"accept":"*/*","accept-encoding":"gzip, deflate, br","connection":"keep-alive","user-agent":"xh/0.14.1"},"proto":"HTTP/1.1","remoteIP":"[::1]:59744","requestID":"dell-rrsp/SaPMv1pZaJ-000001","requestMethod":"GET","requestPath":"/","requestURL":"http://localhost:3000/","scheme":"http"},"time":"2022-01-10T08:43:28-03:00","message":"Request: GET /"}
{"level":"info","service":"http","httpRequest":{"proto":"HTTP/1.1","remoteIP":"[::1]:59744","requestID":"dell-rrsp/SaPMv1pZaJ-000001","requestMethod":"GET","requestPath":"/","requestURL":"http://localhost:3000/"},"httpResponse":{"bytes":2,"elapsed":0.011784,"status":200},"time":"2022-01-10T08:43:28-03:00","message":"Response: 200 OK"}

The go.mod file
module bug

go 1.17

require (
	github.com/go-chi/chi/v5 v5.0.7
	github.com/go-chi/httplog v0.2.1
	github.com/rs/zerolog v1.26.1
)

btw, this may seem confusing, but its actually a feature :P  .. we log when the request starts and when the request ends when not in concise mode. Perhaps I'll change this, or offer another config param too


Integrate DSViz into Keras WandbCallback

Description
The goal of this PR is to lower the barrier of entry for users to start using DSViz by integrating with the Keras Callback. We anticipate that this is mostly to get people started and as the complexity of their project increases, we expect users to begin using the Table/logging apis directly. In any case, this PR adds the following functionality (in the form of constructor paramters) to the WandbCallback:

log_validation (a boolean flag) has been repurposed. It is currently busted. Now, if True, we will automatically create the following tables:

validation_data is a table created with columns that map to the validation data used in the model.fit function. Depending on the other parameters provided, this Table may not be created if an existing table of validation data already exists. More on this later. The columns of this table are both dependent on the shape of the validation data as well as the provided processor functions. In the base case, it will contain one column called 'input' and one column called 'target' - assuming no processor inference, no provided processors, and the x/y data are simply list-like series of examples. If the validation inputs and/or targets are dictionaries, then the keys of the dictionaries will be used as column names. Furthermore, if processors are provided, or inferred, additional derivative columns will be included. The validation_data table is logged to its own artifact.
validation_predictions is a table created with one column that links back to the validation_data table, and at least one additional column for the output of the model, given the respective inputs. Again, the columns are dependent on other values. If the output of the model is a keyed dictionary, then the keys will be used as column names. If the user provides a prediction processor, or one is inferred, then additional columns will be provided. validation_predictions tables are logged directly to the run itself, once per epoch. This creates an underlying artifact per epoch and allows the user to explore the table using the Weave/DSViz Table Visualizer.

validation_indexes: An optional list of wandb.data_types._TableIndex which map validation data rows to an already logged Table. This is useful in the case that the user has a dataset already logged and just wants to map model predictions to this table, rather than logging the entire validation set every run.
validation_row_processor: A function to apply to the validation data, commonly used to visualize the data. The function will receive an ndx (int) and a row (dict). If your model has a single input, then row["input"] will be the input data for the row. Else, it will be keyed based on the name of the input slot. If your fit function takes a single target, then row["target"] will be the target data for the row. Else, it will be keyed based on the name of the output slots. For example, if your input data is a single ndarray, but you wish to visualize the data as an Image, then you can provide lambda ndx, row: {"img": wandb.Image(row["input"])} as the processor.
output_row_processor: same as validation_row_processor, but applied to the model's output. row["output"] will contain the results of the model output.
infer_missing_processors: Determines if validation_row_processor and output_row_processor should be inferred if missing. Defaults to True. If labels are provided, we will attempt to infer classification-type processors where appropriate.

Moreover, all of this functionality is exposed via a new class ValidationDataLogger internally which can be used in future library integrations to make the integration seamless and similar. See how thin the actual WandbCallback modifications are.
Now, a few examples (assume this is a notebook)
Let's say you run the following script:
Setup (Unrelated to this change)
import os
import random

import numpy as np
import pandas as pd
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras.datasets import cifar10
from sklearn.model_selection import train_test_split

import wandb
from wandb.keras import WandbCallback

project = "keras-integration_v3.15"

default_config = {  # and include hyperparameters and metadata
        "learning_rate": 0.005,
        "epochs": 3,
        "batch_size": 64,
        "loss_function": "sparse_categorical_crossentropy",
        "architecture": "CNN",
        "dataset": "CIFAR-10",
        "train_count": 500,
        "test_count": 10,
    }

CLASS_NAMES = [
    "airplane",
    "automobile",
    "bird",
    "cat",
    "deer",
    "dog",
    "frog",
    "horse",
    "ship",
    "truck",
]

def Model():
    inputs = keras.layers.Input(shape=(32, 32, 3))

    x = keras.layers.Conv2D(filters=32, kernel_size=(3, 3), activation="relu")(inputs)
    x = keras.layers.Conv2D(filters=32, kernel_size=(3, 3), activation="relu")(x)
    x = keras.layers.MaxPooling2D(pool_size=2)(x)

    x = keras.layers.Conv2D(filters=32, kernel_size=(3, 3), activation="relu")(x)
    x = keras.layers.Conv2D(filters=32, kernel_size=(3, 3), activation="relu")(x)

    x = keras.layers.GlobalAveragePooling2D()(x)

    x = keras.layers.Dense(128, activation="relu")(x)
    x = keras.layers.Dense(32, activation="relu")(x)

    outputs = keras.layers.Dense(len(CLASS_NAMES), activation="softmax")(x)

    return keras.models.Model(inputs=inputs, outputs=outputs)

Base Case
In this "cell" we will run 2 Runs which simply set log_evaluation to True. The reason 2 are run is to show how deduplication works. The only "special" line in this cell is log_evaluation=True - everything else is just normal model training script.

Run Result 1: https://wandb.ai/timssweeney/keras-integration_v3.15/runs/brl50x7d
Run Result 2: https://wandb.ai/timssweeney/keras-integration_v3.15/runs/ejymkoqj

for _ in range(2):
    with wandb.init(
        project=project,
        config=default_config,
    ) as run:
        config = wandb.config
        (x_train, y_train), (x_test, y_test) = cifar10.load_data()
        x_train, x_test = x_train[::5] / 255.0, x_test / 255.0
        y_train, y_test = y_train[::5], y_test[::5]
        (x_train, y_train) = (x_train[:config.train_count], y_train[:config.train_count])
        (x_test, y_test) = (x_test[:config.test_count], y_train[:config.test_count])

        model = Model()
        optimizer = tf.keras.optimizers.Adam(config.learning_rate)
        model.compile(optimizer, config.loss_function, metrics=["acc"])

        _ = model.fit(
            x_train,
            y_train,
            epochs=config.epochs,
            batch_size=config.batch_size,
            validation_data=(x_test, y_test),
            callbacks=[WandbCallback(
                log_evaluation=True,
            )],
        )

        run.finish()

Resulting Artifact Graph

Table Viz
Table Schema

Validation Data

Validation Predictions

With Class Labels
In this "cell" we will run 2 Runs which also set "labels" to an array of class labels. The inferred processors will use this to build class tables and links

Run Result 1: https://wandb.ai/timssweeney/keras-integration_v3.15/runs/1zi3smyc
Run Result 2: https://wandb.ai/timssweeney/keras-integration_v3.15/runs/2wv33ptq

for _ in range(2):
    with wandb.init(
        project=project,
        config=default_config,
    ) as run:
        config = wandb.config
        (x_train, y_train), (x_test, y_test) = cifar10.load_data()
        x_train, x_test = x_train[::5] / 255.0, x_test / 255.0
        y_train, y_test = y_train[::5], y_test[::5]
        (x_train, y_train) = (x_train[:config.train_count], y_train[:config.train_count])
        (x_test, y_test) = (x_test[:config.test_count], y_train[:config.test_count])

        model = Model()
        optimizer = tf.keras.optimizers.Adam(config.learning_rate)
        model.compile(optimizer, config.loss_function, metrics=["acc"])

        _ = model.fit(
            x_train,
            y_train,
            epochs=config.epochs,
            batch_size=config.batch_size,
            validation_data=(x_test, y_test),
            callbacks=[WandbCallback(
                labels=CLASS_NAMES,
                log_evaluation=True,
            )],
        )

        run.finish()

Resulting Artifact Graph

Table Viz
Table Schema

Validation Data

Validation Predictions

With Processors
In this "cell" we will run 2 Runs which specify user-provided processors

Run Result 1: https://wandb.ai/timssweeney/keras-integration_v3.15/runs/1oqsxok3
Run Result 2: https://wandb.ai/timssweeney/keras-integration_v3.15/runs/338kegjs

for _ in range(2):
    with wandb.init(
        project=project,
        config=default_config,
    ) as run:
        config = wandb.config
        (x_train, y_train), (x_test, y_test) = cifar10.load_data()
        x_train, x_test = x_train[::5] / 255.0, x_test / 255.0
        y_train, y_test = y_train[::5], y_test[::5]
        (x_train, y_train) = (x_train[:config.train_count], y_train[:config.train_count])
        (x_test, y_test) = (x_test[:config.test_count], y_train[:config.test_count])

        model = Model()
        optimizer = tf.keras.optimizers.Adam(config.learning_rate)
        model.compile(optimizer, config.loss_function, metrics=["acc"])
        class_table = wandb.Table(columns=[], data=[])
        class_table.add_column("name", CLASS_NAMES)

        _ = model.fit(
            x_train,
            y_train,
            epochs=config.epochs,
            batch_size=config.batch_size,
            validation_data=(x_test, y_test),
            callbacks=[WandbCallback(
                log_evaluation=True,
                validation_row_processor=lambda ndx, row: {
                    "input:image": wandb.Image(row["input"]),
                    "target:class": class_table.index_ref(row["target"])
                },
                prediction_row_processor=lambda ndx, row: {
                    "output:class": class_table.index_ref(np.argmax(row["output"])),
                    "output:logits": {class_name: value for (class_name, value) in zip(CLASS_NAMES, row["output"].tolist())}
                }
            )],
        )

        run.finish()

These results are very similar to the prior cell's
Create a Dataset
In this cell we simply create a dataset for use in the next cell

Run Page: https://wandb.ai/timssweeney/keras-integration_v3.15/runs/117459n7

with wandb.init(project=project) as run:
    (x_train, y_train), _ = cifar10.load_data()
    x_train = x_train[::5] / 255.0
    y_train = y_train[::5]
    p = np.random.permutation(len(x_train))
    (x_train, y_train) = x_train[p], y_train[p]
    (x_train, y_train) = (x_train[:5000], y_train[:5000])

    # Create the dataset
    ds = wandb.Artifact("cifar_dataset", "dataset")

    # Add the class table
    class_table = wandb.Table(columns=[], data=[])
    class_table.add_column("class_name", CLASS_NAMES)
    ds["class_table"] = class_table

    # Add the train table
    train_table = wandb.Table(columns=[], data=[])
    train_table.add_column("x_train", x_train)
    train_table.add_column("y_train", y_train)
    train_table.add_computed_columns(lambda ndx, row:{
        "x_train_img": wandb.Image(row["x_train"]),
        "y_train_cls": class_table.index_ref(row["y_train"])
    })
    ds["train_table"] = train_table

    # Save the dataset
    ds.save()

Using Index Links
In this "cell" we will run 2 Runs which specify validation_indexes based on the dataset created above

Run Result 1: https://wandb.ai/timssweeney/keras-integration_v3.15/runs/2lny9ueo
Run Result 2: https://wandb.ai/timssweeney/keras-integration_v3.15/runs/18k4w4py

for _ in range(2):
    with wandb.init(
        project=project,
        config=default_config,
    ) as run:
        config = wandb.config
        art = run.use_artifact("cifar_dataset:latest")
        train_table = art.get("train_table")
        class_table = art.get("class_table")
        x = train_table.get_column("x_train", convert_to="numpy")
        y = train_table.get_column("y_train", convert_to="numpy")
        ids = train_table.get_index()
        x_train, x_test, y_train, y_test, id_train, id_test = train_test_split(x, y, ids, test_size=0.33)

        model = Model()
        optimizer = tf.keras.optimizers.Adam(config.learning_rate)
        model.compile(optimizer, config.loss_function, metrics=["acc"])

        _ = model.fit(
            x_train,
            y_train,
            epochs=config.epochs,
            batch_size=config.batch_size,
            validation_data=(x_test, y_test),
            callbacks=[WandbCallback(
                log_evaluation=True,
                labels=class_table.get_column("class_name"),
                validation_indexes=id_test,
            )],
        )

        run.finish()

Here, the tables are nearly the same, but the cool part is the graph. Despite shuffling, we maintain a single dataset of truth.

Testing
How was this PR tested? Notebook usage and a giant unit test suite

FYI the data setup code for the examples has a small bug: the y_test subset is pulled from y_train instead of y_test. Notice that the val images labeled "frog"/"automobile" include things that are decidedly not frogs/autos.

I was only able to notice this bug because of DSViz!
The correct code is:
for _ in range(2):
    with wandb.init(
        project=project,
        config=default_config,
    ) as run:
        config = wandb.config
        (x_train, y_train), (x_test, y_test) = cifar10.load_data()
        x_train, x_test = x_train[::5] / 255.0, x_test / 255.0
        y_train, y_test = y_train[::5], y_test[::5]
        (x_train, y_train) = (x_train[:config.train_count], y_train[:config.train_count])
        (x_test, y_test) = (x_test[:config.test_count], y_test[:config.test_count])

Running regression now

Hold off on merging - found one potential issue in integration test


align django requirement specs & allow 1.9.x patch releases, remove u…

…nused tox envs

hmm, looks like travis-ci must have a hardcoded list of tox envs to run, since it's not happy about me nuking the unused ones.

Yeah you need to update .travis.yml too.

Current coverage is 66.29% (diff: 100%)

Merging #1753 into master will not change coverage

@@             master      #1753   diff @@
==========================================
  Files            54         54
  Lines          6195       6195
  Methods           0          0
  Messages          0          0
  Branches       1225       1225
==========================================
  Hits           4107       4107
  Misses         1868       1868
  Partials        220        220

Powered by Codecov. Last update 26c2de1...f5da029

@cbowman0 @SEJeff @brutasse Any concerns with removing these?

I was thinking we should, so no concerns from me.

@obfuscurity: my preference is to use Django~=1.9.0 as it is a bit more elegant. As to removing old unsupported and security problematic versions of Django, strong :+1:

@SEJeff thanks for the tip, I'll update the PR

@SEJeff Do you have a link to that versioning feature?

Yessir! It is in PEP-0440

~=1.9 matches 1.* whereas ~=1.9.0 matches 1.9.*. That is how the operator works. The pep was cowritten by the pip author as well.

Python, thank you for my fevered dreams tonight. 🤒

This breaks pip requirements for older (e.g. system pip on 14.04).
vagrant@vagrant:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 14.04.2 LTS
Release:	14.04
Codename:	trusty

vagrant@vagrant:~$ pip -V
pip 1.5.4 from /usr/lib/python2.7/dist-packages (python 2.7)

+ cd ../graphite-web
+ git checkout master
Already on 'master'
Your branch is up-to-date with 'origin/master'.
+ pip install -r requirements.txt
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 262, in run
    for req in parse_requirements(filename, finder=finder, options=options, session=session):
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1632, in parse_requirements
    req = InstallRequirement.from_line(line, comes_from, prereleases=getattr(options, "pre", None))
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 173, in from_line
    return cls(req, comes_from, url=url, prereleases=prereleases)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 71, in __init__
    req = pkg_resources.Requirement.parse(req)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2667, in parse
    reqs = list(parse_requirements(s))
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2605, in parse_requirements
    line, p, specs = scan_list(VERSION,LINE_END,line,p,(1,2),"version spec")
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2573, in scan_list
    raise ValueError("Expected "+item_name+" in",line,"at",line[p:])
ValueError: ('Expected version spec in', 'Django~=1.9.0', 'at', '~=1.9.0')

Storing debug log for failure in /home/vagrant/.pip/pip.log

Missing test coverage sucks


An heap overflow found in cmsStageAllocMatrix by fuzzing.

Hi,
we found a heap overflow happened in cmsStageAllocMatrix by using fuzzing.
The document has mentioned the 5-th parameter of cmsStageAllocMatrix should be a length of Cols.

Offset[]: Points to a vector of [Cols], NULL if no offset is to be applied

However, in the body of cmsStageAllocMatrix, it tries to read the Offset by Rows. If Rows is greater than Cols, the out-of-bound read heap overflow will happen.
if (Offset != NULL) {

        NewElem ->Offset = (cmsFloat64Number*) _cmsCalloc(ContextID, Rows, sizeof(cmsFloat64Number));
        if (NewElem->Offset == NULL) goto Error;

        for (i=0; i < Rows; i++) {
->                NewElem ->Offset[i] = Offset[i];
        }
    }

Thanks for reporting. This is a documentation error. Should state offset size is rows, not columns. Fixed in the documentation source.


MAINT: Switching to setuptools

origin PR https://github.com/networkx/nx-parallel/pull/67 (Now, PR#67 is for adding additional linting settings in the future)
This PR switches the nx-parallel's building tool from hatchling to setuptools as it is more widely used and it's better for bigger projects and we need to explicitly mention all the packages(unlike hatchling) so that ensures that all packages are being built.
pre-file-ignores under tool.ruff.lint section due to the following warning:
warning: The top-level linter settings are deprecated in favour of their counterparts in the `lint` section. Please update the following options in `pyproject.toml`:
  - 'select' -> 'lint.select'
  - 'per-file-ignores' -> 'lint.per-file-ignores'

Can you edit the OP in this PR to describe what this does now and how it relates to #67?
I think it would b hard for someone to come to this PR and figure out the current status of the change without more description here.
Thanks!

Let's go ahead and merge this -- we can update further if other issues arise.


Add support for password managers

This change is

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: DiegoCardoso:x: oluwasayoYou have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: DiegoCardoso:x: oluwasayoYou have signed the CLA already but the status is still pending? Let us recheck it.


Occasional errors with Entra Device function and export broken

Not super reliable, occasionally runs into some kind of error, assuming it's because of formatting and my lack of error handling built into the function. It's fine if some errors occour, but the output of those errors needs to stay out of the console output and just get logged.

Also the export is broken now? Again it was working completely fine at one point. Wonder if the two are related.

Peep that blank Enrollment type, I bet that's going to cause issues in the future...

Bigger picture of the console output, weird that it keeps saying 'No Data Found'? Pretty sure there is supposed to be a full entra device output as well, not just the simple one...

Bigger picture of the console output, weird that it keeps saying 'No Data Found'? Pretty sure there is supposed to be a full entra device output as well, not just the simple one...

This was due to the if ($investigatelog -ne $null) failing as it's an array so it technically doesnt return null. Fixed by using $investigatelog.count.

Not super reliable, occasionally runs into some kind of error, assuming it's because of formatting and my lack of error handling built into the function. It's fine if some errors occour, but the output of those errors needs to stay out of the console output and just get logged.

Would you believe this happened because I put $DeviceLog =+ $device1 instead of $DeviceLog += $device1 ???? omfg.
Still working on fixing output.

Output looks normal so guess in fixing the other issues that was fixed as well.


OpenAPI Example with multipart/form-data not showing up

Discussed in https://github.com/tiangolo/fastapi/discussions/10937

Originally posted by SeeRich January 11, 2024
First Check

[X] I added a very descriptive title here.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I searched the FastAPI documentation, with the integrated search.
[X] I already searched in Google "How to X in FastAPI" and didn't find any information.
[X] I already read and followed all the tutorial in the docs and didn't find an answer.
[X] I already checked if it is not related to FastAPI but to Pydantic.
[X] I already checked if it is not related to FastAPI but to Swagger UI.
[X] I already checked if it is not related to FastAPI but to ReDoc.

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
from typing import Annotated
from fastapi import FastAPI, UploadFile, Form, File

# Run using uvicorn main:app --reload
# Visit: http://<IP_ADDRESS>:8000/docs

app = FastAPI()

@app.post("/form-test")
async def form_test(
        str_data: Annotated[str, Form(examples=["HELLO"])],
        file: Annotated[UploadFile, File()]):
    return

Description
The HELLO example is not shown in the docs.

Operating System
Windows
Operating System Details
No response
FastAPI Version
0.108.0
Pydantic Version
2.5.3
Python Version
3.11.3
Additional Context
No response

@Kludex Alias in File(alias="someAlias") doesn't seem to work either, just ran into this in my codebase 🤔

@Kludex Alias in File(alias="someAlias") doesn't seem to work either, just ran into this in my codebase 🤔

https://github.com/tiangolo/fastapi/issues/10286

Seems like currently you can specify json_schema_extra={"alias": alias} as a workaround

If you use Forms the way you first did, it will end up in the **extra part of arguments, kwargs basically. But it is also stated in the code that this option is deprecated and also recommends to use json_schema_extra instead.

what you found might be an error because of that, so just stick to the recommended :)
if you want to see more about it, just go to the file param_functions.py

As stated in the swagger.io documentation, the examples field should be a list of dict containing a key name and a value. Currently it is rendered as list of values in the openapi.json file

source: https://swagger.io/docs/specification/adding-examples/


Tag 3.3.0-2 not found in repository docker.io/sameersbn/redmine

First of all, thanks for the great work.
Just installed following instructions, and getting the
Tag 3.3.0-2 not found in repository docker.io/sameersbn/redmine error.
Just checked https://hub.docker.com/r/sameersbn/redmine/tags/ and saw that the last version showing is 3.3.0-1
Is there something quick to make this work? Or i need to wait until https://hub.docker.com/r/sameersbn/redmine/tags/ get updated to 3.3.0-2 ?
Thanks,
Diego

My bad. I have triggered the missing builds. Thanks for reporting the issue
On Sunday 07 August 2016 02:01 AM, dsmalinsky wrote:

First of all, thanks for the great work.
Just installed following instructions, and getting the
Tag 3.3.0-2 not found in repository docker.io/sameersbn/redmine error.
Just checked https://hub.docker.com/r/sameersbn/redmine/tags/ and saw
that the last version showing is 3.3.0-1
Is there something quick to make this work? Or i need to wait until
https://hub.docker.com/r/sameersbn/redmine/tags/ get updated to 3.3.0-2 ?
Thanks,
Diego
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/sameersbn/docker-redmine/issues/214, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAZCI5HJEFL2K8-aD-NJclqrgopfsH1Fks5qdO89gaJpZM4JeW_e.

--
Sameer Naik
w: http://www.damagehead.com e<EMAIL_ADDRESS>


Forced to add compose runtime to jvmMain when using compose + ktor

The compileKotlinJvm task fails with:
androidx.compose.compiler.plugins.kotlin.IncompatibleComposeRuntimeVersionException: The Compose Compiler requires the Compose Runtime to be on the class path, but none could be found. The compose compiler plugin you are using (version 1.1.0-beta01) expects a minimum runtime version of 1.0.0.
Unless I add implementation(compose.runtime) to jvmMain.dependencies
But this feels weird since I'm only using compose for the js target.

Could you share you project? It looks like you also have jvm target in your mpp module.

web.zip
Theres a comment above the line including compose.runtime in jvm. If you comment out that line then the errors occurs.

The issue is that you have single module project and this module contains both server and Js code. You use Compose plugin in this module, so it is used for all sourceSets. Compose plugin forces usage of Compose Compiler plugin, that checks compose runtime presence. So your build scripts uses Compose for server side.
I would suggest to separate Server and JS code into separate modules.

Ok that makes sense. Although that is the project structure provided in the official sample project for frontend/backend kotlin! Are there any examples using separate modules that you can link to? I suppose you need a third library module to share the reusable parts between front and backend.
https://play.kotlinlang.org/hands-on/Full Stack Web App with Kotlin Multiplatform

@Artrosis have you split the code into two modules?

@akurasov No, I added "implementation(compose.runtime)". I have little experience to do this on my own. I have a Spring project that depends on the build artifacts of a Compose for web project. I would like to have an example application with different Spring and compose for web modules.

I would like to have an example application with different Spring and compose for web modules.

There is no such at the moment, but probably we should create one.

Hey there, I am facing the same issue. Any plan on creating a multi-module project example like mentioned above?
Is there maybe an existing project on GitHub I can check out?

I'm also struggling to make it work. I've managed to split demo project into three modules common, server (ktor) and web: https://github.com/a-blekot/jvm-js-fullstack  (main branch)
But applications run independently on different ports
server: localhost:8080   (:server:run)
web: localhost:8081   (:web:jsBrowserDevelopmentRun)
And I can't register task in the server module to copy webpack output from :web to :server. :web:jsBrowserDevelopmentWebpack
Please help))

@a-blekot
Hello!
Your project page is not available (https://github.com/a-blekot/jvm-js-fullstack)
Can you open your repository or make reproducible sample without security sensitive code?

@dima-avdeev-jb
Oh, sorry, I didn't notice that it is private.
I will update it tomorrow morning cause I'm writing from mobile now)

@dima-avdeev-jb
Oh, sorry, I didn't notice that it is private.

I will update it tomorrow morning cause I'm writing from mobile now)

@dima-avdeev-jb
done, now it's public
https://github.com/a-blekot/jvm-js-fullstack

@a-blekot Done in this PR:
https://github.com/a-blekot/jvm-js-fullstack/pull/1

@dima-avdeev-jb
Thank you!! It works perfectly now 🥳

@mgroth0 You can create a new Issue for your suggestion as a enhancment

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


New round of invites

We've got a bunch of new iOS folks ready for invites for the weekend.

@austin9350 Can you send out invites before this weekend? Fall for Greenville is this weekend and the trolley tracker app could get some good use.

Just sent out another round.

@austin9350 Can you send out another round of invites today? Fall for Greenville starts tonight and I'm going to send an email to everyone who's signed up so far letting them know they can use the TT for the weekend.

@austin9350 We've got a bunch of iOS folks signed up and ready for invites.


torch in tool.uv.source violate the pyproject.toml schema

Minimal Example (as in the official doc):
[project]
name = "project"
version = "0.1.0"
requires-python = ">=3.12.0"
dependencies = [
  "torch>=2.5.1",
  "torchvision>=0.20.1",
]

[tool.uv.sources]
torch = [
    { index = "pytorch-cpu", marker = "platform_system != 'Darwin'" },
]
torchvision = [
    { index = "pytorch-cpu", marker = "platform_system != 'Darwin'" },
]

[[tool.uv.index]]
name = "pytorch-cpu"
url = "https://download.pytorch.org/whl/cpu"
explicit = true

With this configuration and Even Better TOML extension in vscode, there are warnings that [{"index":"pytorch-cpu","marker":"platform_system != 'Darwin'"}] is not valid under any of the given schemas

uv version: 0.5.4
platform: macos

Sorry, I need to update SchemaStore.

(What you have there is correct; the schema on SchemaStore is just stale.)

See: https://github.com/SchemaStore/schemastore/pull/4224


Add ROCm 4.3 in duplicate detection

pfnCI, test this please.

Jenkins CI test (for commit 1e6bb7fc3821043dd001cd9ae6d4fe8518d5f9ae, target branch master) succeeded!

@kmaehashi Failed to backport automatically.

Not cleanly cherry-picked

No backport needed


Bump up Platoon version to 0.6.0

Good idea.
I think you could send an email to theano-dev and theano-user to tell it and make a PR to theano/doc/index.txt to add this information in the news.

Also, I think that issues should be updated. I will make an effort to see which issues are still meaningfully ongoing. Should we also generate doc files for Platoon? I would like to write user instructions somewhere in details. Finally, what is your opinion on my suggestions that I sent you?

Good idea to go over the current issues.
Which platoon doc do you talk about that you want to generate? I think the only doc is on github. Did I forget something? Or are you suggesting a different way to have platoon docs?
I saw your email. I just didn't got time to reply. There was much stuff to write about it!

I am suggesting if we should host a documentation site. :)

I like the idea. Do you propose to do it?
I think it would be better to just use something in the cloud, like
readthedocs or github pages. It would make maintenance easier. Suggestion?
Can you open an issue about this? Just to give it the right visibility.
On Thu, Aug 25, 2016 at 11:17 AM, Christos Tsirigotis <
<EMAIL_ADDRESS>wrote:

I am suggesting if we should host a documentation site. :)
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/mila-udem/platoon/pull/68#issuecomment-242425151, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AALC-2e2D6c7AJviin9PFmm5JnPV8lEMks5qjbH9gaJpZM4JrYK9
.


Add a new method to PageView, called when the page changes and scrolling event ends.

Description
What I have done?
Add a new method called pageDidChanged to PageView which will be called at the end of the page change animation.
Why did I do it?
There's always situation where people want to do something after the page changes completely.
For example, in #28096 he/she wants to make the pageView unscrollable after it changes to a specific page. But that is impossible in onPageChanged, because it is called in the middle of page changing, which makes the pageView die.That's why we need a new method like pageDidChange.
Related Issues
#28096
Tests
I added the following tests:
Page changes and scroll animation ends
in the file packages/flutter/lib/src/widgets/page_view.dart
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require Flutter developers to manually update their apps to accommodate your change?

[x] No, this is not a breaking change.

@goderbauer
Thanks for your awesome framework.
Would you please check this PR out?

Thanks for the instruction.All done @goderbauer

@Piinks You are welcome.I really appreciate your patience.

Sorry for the mess. I accidentally rebase my branch.😟

@tango5614 - based on the feedback here, it seems like it may be challenging to properly cover all the cases with a change to the framework for this.  There appear to be ways to resolve this without changing the API currently though.
Is there a way we could either capture that work around and still leave resolving the cases to the implementer?  Otherwise, it may be best to close this and document how to achieve this with the current API.

@chunhtai I've made a gif about the case in #28096

And the code:
          child: PageView(
            physics: _physics,
            onPageChanged: (int i) {
              if (i == 1) {
                setState(() {
                  _physics = NeverScrollableScrollPhysics();
                });
              }
            },
            children: <Widget>[
              Container(
                color: Colors.red,
              ),
              Container(
                color: Colors.blueAccent,
              ),
            ],
          ),

The pageView is stuck because onPageChanged is invoked in the middle of two pages.
@dnfield Yes, there is a workaround. Just warp the PageView with a NotificationListener,listen and handle notifications according to ones needs.In this case, handle the ScrollEndNotification.
But one may meet all the drawbacks we met here.We just hand the difficulty to framework users. In fact  I feel it odd to do something in the middle of two pages - in onPageChanged.
However if you think a new method is no necessary. I'll close this.

@chunhtai I've made a gif about the case in #28096

And the code:
          child: PageView(
            physics: _physics,
            onPageChanged: (int i) {
              if (i == 1) {
                setState(() {
                  _physics = NeverScrollableScrollPhysics();
                });
              }
            },
            children: <Widget>[
              Container(
                color: Colors.red,
              ),
              Container(
                color: Colors.blueAccent,
              ),
            ],
          ),

The pageView is stuck because onPageChanged is invoked in the middle of two pages.
@dnfield Yes, there is a workaround. Just warp the PageView with a NotificationListener,listen and handle notifications according to ones needs.In this case, handle the ScrollEndNotification.
But one may meet all the drawbacks we met here.We just hand the difficulty to framework users. In fact I feel it odd to do something in the middle of two pages - in onPageChanged.
However if you think a new method is no necessary. I'll close this.

I agree the behavior of onPageChanged does not solve all the use cases, and a didPageChanged might be more reasonable to add than onPageChanged, but I soon realized it might not be hard to image we will later on require more and more this type of call back such as pageStartedChanging, or pageScrolledAQuarter.... and so on to solve all kinds of use case, and it might start to complicates the pageview api.
That is why I start to think maybe we should let developer to implement their own, or we can provide a more generic callback something like.. onScroll(double page, ScrollNofitication notification).
@dnfield  what do you think?

It would probably be possible to implement all these kinds of callbacks in an external package that wraps PageView with a NotificationListener. Maybe such an external package would be a better solution to baking this into the framework?

You are right.Closed @goderbauer

Is there now an external package that provides a didPageChanged / pageDidChanged event? I need to know when the user has actually landed on a new page, whereas onPageChanged seems to be called when the PageView is halfway to changing, and even gets called twice if the user scrolls back to get to the original page.


webgl2 extension fix

one extensions name was wrong, the other extension is actually part of core in webgl2.

Codecov Report

Merging #5829 into dev will increase coverage by 0.17%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##              dev    #5829      +/-   ##
==========================================
+ Coverage   70.57%   70.75%   +0.17%
==========================================
  Files         205      205
  Lines       10396    10595     +199
==========================================
+ Hits         7337     7496     +159
- Misses       3059     3099      +40

Impacted Files
Coverage Δ

packages/core/src/context/ContextSystem.js
86.66% <ø> (ø)
:arrow_up:

...ackages/core/src/textures/resources/SVGResource.js
89.21% <0%> (-1.27%)
:arrow_down:

...ages/core/src/textures/resources/CanvasResource.js
83.33% <0%> (ø)
:arrow_up:

packages/utils/src/data/createIndicesForQuads.js
0% <0%> (ø)
:arrow_up:

packages/utils/src/browser/isWebGLSupported.js
89.28% <0%> (+1.05%)
:arrow_up:

packages/graphics/src/GraphicsGeometry.js
75.83% <0%> (+1.33%)
:arrow_up:

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 ccdfa1e...c88f486. Read the comment docs.


Input: Cached type in registry is not the type returned by type mapper

Hey,
I'm having a weird issue with input types where I get the exception in the title "Cached type in the registry is not the type returned by type mapper".
For some reason, the type stored in the cache is not the same as the one from the type mapper even if the input class they both reference is the same.
The mutation that I try to run only fails when I use variables to run the mutation, If I run the mutation without variables and provide the values directly it all works but this is not possible to do in the frontend since everything is automatically generated and requires the type to be provided.
Failing mutation
mutation CreateFacility($input: FacilityInput!) {
  createFacility(input: $input) {
    id
  }
}

Working mutation
mutation CreateFacility {
  createFacility(input: {
    name: "Facility"
    subdomain: "facility"
  }) {
    id
  }
}

Input type
#[Input]
class FacilityInput
{
    #[Field]
    public string $name;

    #[Field]
    public string $subdomain;
}

Controller/Resolver
class FacilityResolver
{
    public function __construct(
        private readonly CommandBus $commandBus,
    ) {
    }

    #[Mutation]
    #[Logged]
    public function createFacility(
        #[InjectUser] Employee $employee,
        FacilityInput $input
    ): Facility {
        /** @var Facility $facility */
        $facility = $this->commandBus->dispatch(new CreateFacilityCommand(
            (string) $employee->organizationId,
            $input->name,
            $input->subdomain,
        ));

        return $facility;
    }
}

The cached type
object(TheCodingMachine\GraphQLite\Types\TypeAnnotatedObjectType)[782]
  public 'name' => string 'FacilityInput' (length=13)
  public 'description' => null
  public 'astNode' => null
  public 'config' =>
    array (size=3)
      'name' => string 'FacilityInput' (length=13)
      'fields' =>
        object(Closure)[775]
          virtual 'closure' 'TheCodingMachine\GraphQLite\Types\TypeAnnotatedObjectType::TheCodingMachine\GraphQLite\Types\{closure}'
          public 'static' =>
            array (size=5)
              ...
      'interfaces' =>
        object(Closure)[842]
          virtual 'closure' 'TheCodingMachine\GraphQLite\Types\TypeAnnotatedObjectType::TheCodingMachine\GraphQLite\Types\{closure}'
          public 'static' =>
            array (size=3)
              ...
  public 'extensionASTNodes' =>
    array (size=0)
      empty
  private 'fields' (GraphQL\Type\Definition\TypeWithFields) => null
  public 'resolveFieldFn' => null
  private 'interfaces' (GraphQL\Type\Definition\ObjectType) => null
  private 'interfaceMap' (GraphQL\Type\Definition\ObjectType) => null
  private ?string 'status' (TheCodingMachine\GraphQLite\Types\MutableObjectType) => string 'frozen' (length=6)
  private array 'fieldsCallables' (TheCodingMachine\GraphQLite\Types\MutableObjectType) =>
    array (size=0)
      empty
  private ?array 'fields' (TheCodingMachine\GraphQLite\Types\MutableObjectType) => null
  private ?string 'className' (TheCodingMachine\GraphQLite\Types\MutableObjectType) => string 'App\API\Dashboard\Input\FacilityInput' (length=37)

The type from the type mapper
object(TheCodingMachine\GraphQLite\Types\InputType)[1057]
  public 'name' => string 'FacilityInput' (length=13)
  public 'description' => null
  public 'astNode' => null
  public 'config' =>
    array (size=3)
      'name' => string 'FacilityInput' (length=13)
      'description' => null
      'fields' =>
        object(Closure)[1063]
          virtual 'closure' '$this->TheCodingMachine\GraphQLite\Types\{closure}'
          public 'static' =>
            array (size=4)
              ...
          public 'this' =>
            &object(TheCodingMachine\GraphQLite\Types\InputType)[1057]
  public 'extensionASTNodes' => null
  private 'fields' (GraphQL\Type\Definition\InputObjectType) => null
  protected string 'status' => string 'pending' (length=7)
  protected array 'fieldsCallables' =>
    array (size=0)
      empty
  protected ?array 'finalFields' => null
  private array 'constructorInputFields' =>
    array (size=0)
      empty
  private array 'inputFields' =>
    array (size=0)
      empty
  private string 'className' => string 'App\API\Dashboard\Input\FacilityInput' (length=37)
  private ?TheCodingMachine\GraphQLite\Types\InputTypeValidatorInterface 'inputTypeValidator' => null

@NormySan what cache adapter are you using?  I'm not familiar with this error.  It looks like you're doing things correctly.

@oojacoboo I'm using a cache pool from Symfony. Only inputs causing this problem so far, all other types seems to be working properly.

From the cached type:

private ?string 'className' (TheCodingMachine\GraphQLite\Types\MutableObjectType) => string 'App\API\Dashboard\Input\FacilityInput' (length=37)

From the type mapper:

private string 'className' => string 'App\API\Dashboard\Input\FacilityInput' (length=37)

What's the stack-trace look like?  How is the comparison being made?

@oojacoboo This is the stack trace:
https://gist.github.com/NormySan/d505993a1817843f7c23aa2f5a39acc0
The exception is thrown here in the recursive type mapper:
https://github.com/thecodingmachine/graphqlite/blob/fed9ffe7d6f2e7df81d2cdf7f62de4115e87e292/src/Mappers/RecursiveTypeMapper.php#L406

@NormySan do you use this same input type in multiple mutations?

@oojacoboo Yeah, I'm using the input type in multiple mutations, one is for updating and one is for creating. I tried changing the comparison to just using != and I'm getting the same exception.

@NormySan if you're certain in your testing that it was changed and executed (not cached), and that comparison is failing, can you identify what's different about the two objects and what's causing it to fail that comparison?

Here is a simple reproduction of the exception in a simple Symfony application.
https://github.com/NormySan/graphqlite-input-error
It does not use the Symfony bundle but instead uses a custom implementation. The GraphQL request is handled by the App\GraphQL\RequestHandler class, this class is created through the App\GraphQL\RequestHandlerFactory.

So far I've narrowed it down to the following:

An attempt is made to load the FacilityInput type.
All type mappers are called where it ends up in the RecursiveTypeMapper in the mapNameToType method.
This method then calls the mapNameToType method on the type mapper.
This results in a TypeAnnotatedObjectType being returned and registered in the type registry.
Later on a call is made to the RecursiveTypeMapper to the mapClassToInputType method to get the input type.
This results in an InputType object being created instead by the type mapper which is not the same type of object that was cached earlier on.
Because the objects are not the same it crashes with the exception "Cached type in the registry is not the type returned by type mapper".

I'm not sure what the expected type in the cache should be but I'm guessing that it should be the InputType object and not the TypeAnnotatedObjectType object?

@NormySan so, I think the issue here is that you're using the same Input type for multiple operations.  I'm not going to assume this is an incorrect design decision on your part, although it very well could be.  It's mostly recommended to have a unique Input type per operation.  I know this is how our API is designed and likely the reason we haven't run into this error - same for most others.
That said, looking at the code, it seems clear that it's doing a direct comparison of a cached version of the Input type and the one currently being processed by the type mapper.
I don't have enough insight or feedback on the overall use of this.  But, it seems like a fresh look at this caching logic needs to be had.

What is cached and how is that used?
How much value are we getting out of the cache?
If the cache can't be used, do we need to throw an Exception, or can the non-cached version be returned?
What possible performance implications might be had from the design decision?

I don't have any answers to these questions, but it seems this is the path forward.  Then we can assess a refactor of the design and PR.

Tried using two different input types and I'm still getting the same error so must be something else. I did try to set up a very minimal test based on the no-framework instructions and having the same name for the input type worked well in this case so it must be something else in Symfony or my setup causing the problem.
If I can locate the underlying cause and if it's in this package I will try to make a PR.

Similar issue in EnumTypeMapper.php. Need to add $enumClass = ltrim($enumClass, '\\'); in mapByClassName(). Because of the slash does not find the class in the cache

@NormySan did you try ommiting the Input suffix on the PHP Class?
Its automatically added and i do remember having issues if i added it by accident.

@Lappihuan That solved it, I would really like my inputs to be named like that though since it creates a lot of ambiguity if the input is named the same as the entities. Going to have a look at what part of the library that might be causing that issue.

@NormySan I agree it can be confusing.  Have a look at this doc page for some insight into the type mapper
https://graphqlite.thecodingmachine.io/docs/internals
Also, regarding the Input name, have you tried using the following?
#[Input(name: 'FacilityInput')]
class FacilityInput

Yeah, I read the docs and it helped a bit to get started on where to look. Tried assigning a name to the input also but didn't work. I've come to the conclusion that none of the input types in my API are working.

we use input on entities, but that might now work for you

We just have our inputs separate from our domain, entirely, and within our GraphQL namespace along with our operations.

I do the same, everything related to the GraphQL API:s is separate from the rest of the code to create a clear boundary between API and "Domain".

I think I might have found something related to why the types are not the same:

The RecursiveTypeMapper makes a call to the mapNameToType method here:

https://github.com/thecodingmachine/graphqlite/blob/master/src/Mappers/RecursiveTypeMapper.php#L487

The result from the call is a TypeAnnotatedObjectType object that is created by the TypeGenerator when the mapAnnotatedObject method is called. This method is called from the AbstractTypeMapper in the mapNameToType method. It looks like the input is considered a regular type by this code so it never continues to the input part later on.

https://github.com/thecodingmachine/graphqlite/blob/master/src/TypeGenerator.php#L43
https://github.com/thecodingmachine/graphqlite/blob/master/src/Mappers/AbstractTypeMapper.php#L323

The TypeAnnotatedObjectType has now been created and returned to the RecursiveTypeMapper. Since the type has not been cached in the type registry the type is then cached by calling the registerType method on the TypeRegistry class.

Later in the code the mapClassToInputType method on the RecursiveTypeMapper is called. Here it attempts to find the type in the classToInputTypeCache but it's not there so a call is made to the mapClassToInputType method on the type mapper. This call results in an InputType object being created.

https://github.com/thecodingmachine/graphqlite/blob/master/src/Mappers/RecursiveTypeMapper.php#L393

The InputType type is this time created by the mapClassToInputType method in the AbstractTypeMapper class.

https://github.com/thecodingmachine/graphqlite/blob/master/src/Mappers/AbstractTypeMapper.php#L296

The RecursiveTypeMapper continues and checks if the type exists in the type registry which it does but the object that has been registered here is the TypeAnnotatedObjectType that was done previously when the mapNameToType method was called in the same class. But this time around an InputType is created instead so when a comparison is made on these objects they are not the same and the runtime exception is thrown.

My question here then is why do the mapNameToType and mapClassToInputType not generate the same end result. My expectations would be that they both return an InputType and that calling either of the methods result in an InputType being cached in the type registry.

A change to the mapNameToType method in the AbstractTypeMapper class where it attempts to map a factory or input first solves the issue for me. No tests are failing with this change.
https://github.com/NormySan/graphqlite/commit/4a3b9ce020d869fe1a7cd134338c253caec13826

@NormySan instead of re-ordering the operations.  I think we should focus on the checks that determine which type is being mapped where.
Are you using the Type attribute on your Input type?  Or just the Input attribute?

@oojacoboo I'm using the Input attribute.
Here is another example repo that uses no framework that also has the same problem with the inputs as the one I linked to previously.
https://github.com/NormySan/graphqlite-no-framework

@NormySan iirc there is semthing odd in nested input types i recently encountered which required me to "manualy" set inputType propery on Field/Input/Type attribute.
I did not have time to investigate the issue in depth but i suspect there is inconsitent name conversion for PHP->GQL.

Encountered this as well. And the issue was also mentioned in #249.

#532 has been merged.  Please confirm that this issue is now resolved.