[FEATURE REQUEST] Add a dark mode feature

Description
Is your feature request related to a problem? Please describe.
A clear and concise description of the problem or limitation that the requested feature would address.
It will deal with eye stress problem by enabling the dark mode
Describe the solution you'd like
A clear and concise description of the feature or enhancement you would like to see implemented.
Adding a dark mode toggle button on navbar
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional Information
Context
Provide any additional context or information that helps explain the feature request.
Reduce eye  stress
Potential Implementation (optional)
If you have any ideas or suggestions on how the feature could be implemented, please share them here.
Screenshots or Mockups (optional)
If applicable, include any screenshots, mockups, or visual representations of the requested feature.
Priority (optional)
Please indicate the priority level of this feature request (e.g., High, Medium, Low).
Additional Notes (optional)
Add any other notes or comments about the feature request here.

@ankitjt, @Shivam250702 I would like to contribute to this issue
Please allow me to.

Hi!! I am Anshdeep singh, contributor in GSSoC'24. I would like to address this issue and make the respective changes.

hey its not required in the website


Introduce htmx and use it to avoid full page load on Subscribe and Follow

This change introduces htmx with the hope we could use it to make Gitea more reactive while keeping our "HTML rendered on the server" approach.

Add htmx.js that imports htmx.org and initializes error toasts
Place hx-headers='{"x-csrf-token": "{{.CsrfToken}}"}' on the <body> tag so every request that htmx sends is authenticated
Place hx-swap="outerHTML" on the <body> tag so the response of each htmx request replaces the tag it targets (as opposed to its inner content)
Place hx-push-url="false" on the <body> tag so no changes to the URL happen in <form> tags
Add the is-loading class during request

Error toasts in action

Don't do a full page load when clicking the subscribe button

Refactor the form around the subscribe button into its own template
Use htmx to perform the form submission

hx-boost="true" to prevent the default form submission behavior of a full page load
hx-sync="this:replace" to replace the current request (in case the button is clicked again before the response is returned)
hx-target="this" to replace the form tag with the new form tag
hx-push-url="false" to disable a change to the URL

Change the backend response to return a <form> tag instead of a redirect to the issue page

Before

After

Don't do a full page load when clicking the follow button

Use htmx to perform the button request

hx-post="{{.ContextUser.HomeLink}}?action=follow" to send a POST request to follow the user
hx-target="#profile-avatar-card" to target the card div for replacement

Change the backend response to return a <div> tag (the card) instead of a redirect to the user page

Before

After

How to update multiple divs on one htmx request?

How to update multiple divs on one htmx request?

https://htmx.org/attributes/hx-sync/

Looks like a pretty promising approach. Would there be a way to use htmx with websockets / sse for features like https://github.com/go-gitea/gitea/issues/2287 (https://github.com/go-gitea/gitea/issues/25661). If not would it mean that gitea would use htmx for rest updating actions, Vue for complex UI elements and jQuery for updating html parts triggered via websocket / sse?

@jolheiser is anything else needed to remove your block?

( https://github.com/go-gitea/gitea/pull/28908#event-11620772249 )


Can't change download directory

Hi, when I add a download via AriaNg, either if is a link or a torrent, the download directory field is grayed out. Is it supposed to be editable?
If not, couldn't it be an useful feature?
IMHO it would be great if I can also specify some predefined path and chose between them, or input another custom path in case it isn't available.
Here is the grayed out field:

Hi, you can edit download path and file name in new task page. Although aria2 supports modifying download path and file name when task is running, the task whould be restarted and the old file would be kept after modifying those, and therefore AriaNg does not support edit download path and file name when task was created.

Now I find the setting: you can change the position where the file will be downloaded in the tab "Options", available before you upload the torrent.
I think that making the option available also after selecting the torrent file could be an usefull feature, mostly in scenarios like:

I download a lot of torrent files, which some of them are named "<totally_unsignificant_characters>.torrent";
I completely forgot what each torrent downloads and I would like to decide on a file-basis where to download them;
I download all of them in the same directory, messing up all my library.

I live there a picture of the editable download directory field for reference.

Thanks for your suggestion. I think this may be better, after uploaded torrent file, the options tab would show, instead of directly downloading.

Done in AriaNg 0.1.0


Could not resolve "@raycast/utils"

Description
I've been building my first Raycast extension (a companion to the Timing App, using its REST API), and have hit a wall:
entry points [src/start-task-tracking.tsx src/stop-task-tracking.tsx src/list-projects.tsx]
build failed (src/list-projects.tsx:2:25 import { useFetch } from "@raycast/utils";): Could not resolve "@raycast/utils"

I then tried to fork existing extensions using raycast/utils to see if the problem was isolated to my extension, but it wasn't. Same exact problem with, e.g., the Mullvad and Porkbun extensions.
Reinstalling raycast/utils, and uninstalling NPM, rebooting, then reinstalling have not fixed it.
Steps To Reproduce
On macOS 14.3.1 (23D60), brew install npm, npm install && npm run dev in any extension that relies on @raycast/utils
Current Behaviour
build failed (src/list-projects.tsx:2:25 import { useFetch } from "@raycast/utils";): Could not resolve "@raycast/utils"
Expected Behaviour
Functioning extension

Can you try running npm ls @raycast/utils? What does it return?


[Google Workspace] ...

Extension
https://www.raycast.com/raycast/google-workspace
Description
I want to be able to show the found file in enclosed folder. Similar to "Show file location" in the Google Drive web app :-)
You could achieve this as a separate command or using ⌘ K
Who will benefit from this feature?
All users of the plugin
Anything else?

🔥


support Workload Identity Federation

Hi, I have GitHub Action CI workloads which authenticate to GCP using 'Workload Identity Federation through a Service Account' following the configuration in the linked google-authored action.
I have enabled the external-account feature in google-cloud-auth.
When using google-cloud-storage in this CI environment authentication fails with Error: external account error : Unsupported Subject Token Source.
I believe this is expected behavior based on a TODO in the codebase: https://github.com/yoshidan/google-cloud-rust/blob/main/foundation/auth/src/token_source/external_account_source/mod.rs#L107-L108, but I wanted to file an issue to track progress and see if there are any workarounds, particularly in a GitHub Actions environment.

This is possibly a dupe of #171, but I couldn't tell for sure.

Currently we only support AWS for workload identity federation.
I have not yet investigated the details of how to work with github actions, but referring to the Go source, the credential source should be either FILE, URL, or Executable in this case.
https://github.com/golang/oauth2/blob/ebe81ad83719fe3426335b22e40a1e3a76fa45c0/google/internal/externalaccount/basecredentials.go#L147
I will check what the credential source will actually be.

I've run into the same issue and am currently investigating it.
Seems the credential source is URL type. Here's the credential I got on GitHub Actions (partially masked) 👇
{"type":"external_account","audience":"//iam.googleapis.com/***","subject_token_type":"urn:ietf:params:oauth:token-type:jwt","token_url":"https://sts.googleapis.com/v1/token","credential_source":{"url":"***","headers":{"Authorization":"***"},"format":{"type":"json","subject_token_field_name":"value"}},"service_account_impersonation_url":"https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/***:generateAccessToken"}

As far as I've investigated the URL type implementation in Go, it does not seem to be that complicated:
https://github.com/golang/oauth2/blob/ebe81ad83719fe3426335b22e40a1e3a76fa45c0/google/internal/externalaccount/urlcredsource.go

I see this was merged a couple of weeks ago. Any chance you'll publish a new release with it soon?

@theoribeiro  Now I published google-cloud-auth v0.13.2

Unfortunately I'm still getting unsupported account external_account when using Workload Identity Federation on Github Actions. Any idea why?

Ah, never mind! This is behind a feature gate that I didn't know. I added external-account and it's now solved and working in the CI.


OpenFASOC may be able to depends on klayout-pypi rather the klayout CLI

klayout-pypi expose a subset of klayout Python API (klayout.db, klayout.tl and klayout.rdb) packaged as a standalone python module distributed on https://pypi.org/project/klayout/.
Depending on it (even optionally) rather than the CLI, could simplify the process of install dependencies for OpenFASOC, we should explore if the subset of klayout functionality used by the generators can be provided by the bare python API.

Thanks @proppy. That sounds interesting. Let me check.

Not sure how good the idea is to replace that with a python package

I was suggesting this in case the python generators need to call klayout directly.


add a minimal appveyor recipie

This just ensure that things keep building. No bells and whistles yet.

The result of this can be previewed here.

Caching premake seems to actually make things a tiny bit slower. So yeah, I dropped that part.

Looks great, cheers! :) I'd also like to get our converter tests running in here, but we'll worry about that in a separate patch.


MassTransit.SeriLogIntegration reference case mismatch, causing failure on Mono.

I get the exception below during startup when running in mono on linux while using the MassTransit.SeriLogIntegration package.
In the exception message, note the casing difference MassTransit.SerilogIntegration vs MassTransit.SeriLogIntegration. I'm not sure where this is coming from, but if I can find the problem, I'll add a note here.
Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly 'MassTransit.SerilogIntegration' or one of its dependencies
File name: 'MassTransit.SerilogIntegration'
  at System.AppDomain.Load (System.Reflection.AssemblyName assemblyRef, System.Security.Policy.Evidence assemblySecurity) [0x00088] in <8f2c484307284b51944a1a13a14c0266>:0
  at (wrapper remoting-invoke-with-check) System.AppDomain:Load (System.Reflection.AssemblyName,System.Security.Policy.Evidence)
  at System.AppDomain.Load (System.Reflection.AssemblyName assemblyRef) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0
  at (wrapper remoting-invoke-with-check) System.AppDomain:Load (System.Reflection.AssemblyName)
  at System.Reflection.Assembly.Load (System.Reflection.AssemblyName assemblyRef) [0x00005] in <8f2c484307284b51944a1a13a14c0266>:0
  at Serilog.Settings.Configuration.ConfigurationReader.LoadConfigurationAssemblies () [0x000a8] in <9290ab5cfb844e6d87419e6e490a0286>:0
  at Serilog.Settings.Configuration.ConfigurationReader.Configure (Serilog.LoggerConfiguration loggerConfiguration) [0x00000] in <9290ab5cfb844e6d87419e6e490a0286>:0
  at Serilog.Configuration.LoggerSettingsConfiguration.Settings (Serilog.Configuration.ILoggerSettings settings) [0x0000e] in <6c227ca3e8dc478284b6f4bd278905d1>:0
  at Serilog.ConfigurationLoggerConfigurationExtensions.ConfigurationSection (Serilog.Configuration.LoggerSettingsConfiguration settingConfiguration, Microsoft.Extensions.Configuration.IConfigurationSection configuration, Microsoft.Extensions.DependencyModel.DependencyContext dependencyContext) [0x0002d] in <9290ab5cfb844e6d87419e6e490a0286>:0
  at Serilog.ConfigurationLoggerConfigurationExtensions.Configuration (Serilog.Configuration.LoggerSettingsConfiguration settingConfiguration, Microsoft.Extensions.Configuration.IConfiguration configuration, Microsoft.Extensions.DependencyModel.DependencyContext dependencyContext) [0x0001a] in <9290ab5cfb844e6d87419e6e490a0286>:0

I think that I have confirmed that the casing of the MassTransit.SeriLogIntegration.dll at runtime is the problem here.
I worked around this, successfully, by creating a symbolic link to the MassTransit.SerilogIntegration.dll name. This was picked up correctly at runtime, and I see logs as expected.
Not yet sure where in MT's project/build system the issue is hidden.

Is it in MT, or is it in your reference in your project? MassTransit doesn't reference SeriLog directly.

I pulled in a dependency on the MassTransit.SerilogIntegration nuget package. It uses the MassTransit namespace, so nothing else was required in order to call the IBusFactoryConfigurator extension method UsSerilog.
I'm not sure that answers your question, though.


Latest commit breaks the component

https://github.com/waoai/react-image-annotate/pull/31
This seems to break images completely. I only started looking at the codebase today, so please take this with a pinch of salt.
If videoTime is 0, which it is by default, then === undefined will not by true and the video tag will always render instead of the img tag.

yep this is fixed now

more specifically fixed here: https://github.com/waoai/react-image-annotate/commit/62bbb395b77b1b7bb4250a5c503b78e15bc5d73e and released as 0.2.3, thanks for reporting!


corrections after refactoring

IMHO differentiation between project field and issue field is needed here.
These are my first steps with RoR and redmine plugins, so maybe it's an inelegant approach.
I haven't found any naming conventions or guidelines for redmine(-plugins ) so please correct my code if it's bad!

Fixed.


Design an external circuit for indication.

What has to be done
Its shows the functionality of the ventilator i) power indication ii) functionality indication iii) bettary low/high indication.
.
How do you know it has to be done
We get feedback from some medical experts and also we refer iso standards.
Hardware pointers
We put 5 pin connector to the next revision pcb and make an external board with leds for indication.

Actually ignore that, going to make it a lot bigger just for the text: the text should be at least 10 mm high (4x the size) to be readable when your face isn't right up against the front panel.

Ok this should be better, as long as there's room for it:

Ooops, I just saw this having asked for similar in the PR.
So, the display panel mounts with M2.5 -- maybe we could use the same for this one? They are less obtrusive and would look more consistent.
Height - the (protruding part of the) touch screen is 100mm tall. We could try to match that for consistency?
Width - the total space available is 340, screen takes up 165. So We are left with potentially up to 175, other than mounting.
However, maybe we do want to leave some open acrylic to peek through, so we shouldn't hog as much as we can. Smaller might be fine? This is a kind of debug device, and the clinician will likely focus their attention on the screen most of the time. How about using some compact icons to indicate the functions?

Ok, was only using M4 because it was the "preferred default" for fasteners so M2.5 sounds even better here for such a small board, will change that!
Smaller outline definitely makes sense for looking @ LEDs etc. on the main board - wasn't sure of the exact use case for these LEDs, but if it's to be used mostly for debug then don't have to worry about spelling things out completely.  I can't think of any intuitive icons that would fit "UI computer" and "cycle controller", but can start with the first layout above (the smaller one) and shrink things a bit more with just "UI" and "CC" labels (plus the smaller holes).

Yes, you are correct that M4 is our "most preferred" fastener, but just a bit below that is also M2.5 A few spots where those have been unavoidable, so we are in the M4+M2.5 regime (mostly).
"UI" and "CC" seems reasonable.  I suppose cycle could be something like a circle with arrows. Not sure what UI might be...

Yeah I had the same thoughts with the power symbol - see what you think about this, nice and compact now (bonus standards-compliance: the vertical LED arrangement matches a traffic light):

Cool! This looks pretty good. Are the LEDs intended to protrude or stay behind the glass? If there isn't anything to physically interact with, I wonder if  it could even be mounted somehow without through-holes at all... @gokcemay ideas?

Stay behind the glass: the idea (to keep things simple) was just to use the same SMT LEDs that we use as status indicators on the main board already, and take advantage of the clear acrylic.  We could always do light pipes or something in the future if there's a need for an opaque and "polished-looking" front panel.
Best I can think of for the icons is a chip for the cycle controller (to symbolize the internal operation) and a screen for the UI (10-second sketch below).  Still don't like that very much for the cycle controller though.

Anyways I'll go ahead and update the branch.  No idea what's up with the code coverage test.


Any recommendation on how to stop the stream?

Hi! First of all, thank you for this is amazing. I was wondering if there was any easy way to stop the data transmission, I'm trying to not consume data while not really using the images but don't manage to do it.

Hi @MikelDB. Right now there's now way to stop the stream, other than ending the node process completely.
Internally this library is built on https://github.com/binocarlos/raspivid, which also has no way to stop the stream, that's the main problem.
I'd be happy to merge a PR to do this though, if you like. You'd need to:

Get a PR into that node raspivid library (or fork it) adding stop functionality
Update this library to use the new versoin.
Attach a .stop() function to the stream we return here.
When stop is called, reset liveStream and headerData, so that later calls start the stream from scratch again.


cargo-apk: Use min_sdk_version to select compiler target

Fixes #193, cc @hrydgard
According to 1 minSdkVersion is used to determine the compiler target and ultimately limit what API is available at compile-time.  This is most likely because using/linking newer API will result in runtime linker errors on these older platforms.

I think we still have a couple things to do here:

Now that min_sdk_version is mandatory (see the unwrap), perhaps we should default it to the minimum SDK level available in the NDK (the min() of default_platform())?;
(obviously reword the defaults in the cargo-apk docs);
Remove the "arbitrary" default of minimum version 23?  Does anyone recall why this was chosen?  NDK r24 beta still ships with support for SDK level 21, which would then be the lowest;
Is targetSdkVersion still mandatory?  If so, does it still make sense to set it to the max available in the SDK?;
when we have these defaults, should we remove the arbitrary overrides in ndk-examples?

targetSdkVersion is very important to be able to set separately from the others, because Android uses it to decide behavior at times. For example, the new Scoped Storage restrictions have completely different behavior in Android 11 depending on if you're targeting sdk version <= 29 or >= 30.
minSdkVersion just restricts which devices you can install on. I think just for ease of maintenance something like 23 makes perfect sense, older devices are not really relevant anymore.

targetSdkVersion is very important to be able to set separately from the others

Yes, merely checking if it still makes sense to set a default here, and if so, what. Not planning to remove/disallow the ability to override it from metadata in any way :wink:

just for ease of maintenance

Here I have a hunch it's easier to use the minimum available in the NDK, as 23 will probably get removed from a future NDK at some point. On the other hand, this could cause minor variations in compilation depending on the environment. However, that's not an issue as long as it compiles fine (minSdkVersion should only have an effect on what's available during compile-time).
Not so much for targetSdkVersion which currently is dependent on the environment (only the default, though) and has the ability to cause much more havoc at runtime.
In other words, I think it should be safe to:

Default minSdkVersion to whatever is at least available in the NDK (perhaps with a lower bound of 23, to not break existing builds);
Default targetSdkVersion to the least required by Google Play as of writing, instead of being dependent on the maximum platform shipped with the SDK combined with what's in Android/Sdk/platforms/android-xx.

@hrydgard This is ready now. I'll open a separate PR for target_sdk_version, which is a different issue that needs its own documentation. Thanks for bringing this all to my attention!

Awesome, thanks for taking care of this!


[python-package] Early Stopping does not work as expected

Description

I found that when early stopping is enabled and there're multiple validation sets in valid_sets, the LightGBM might won't save the best model as we expected.
Reproducible example

np.random.seed(2022)
toy_pd = pd.DataFrame({'feature1':np.random.randn(1000),'feature2':np.random.randn(1000),'label':np.concatenate((np.ones(500), np.zeros(500)))})
feats = [f for f in toy_pd if f not in ['label']]
print(feats)

params = {
    'learning_rate': 0.07,
    'boosting_type': 'gbdt',
    'objective': 'binary',
    'metric': ['auc'],
    'is_unbalance': False,
    'lambda_l1':0.5,
    'lambda_l2':10,
    'num_leaves':32,
    'max_depth':-1,
    'min_child_samples': 15,
    'verbose': -1,
    'seed': 42,
    'n_jobs': 8,
}

fold_num = 5
kf = KFold(n_splits=fold_num, shuffle=True, random_state=42)
for fold, (train_idx, val_idx) in enumerate(kf.split(toy_pd[feats], toy_pd['label'])):
    print('-----------', fold, '-----------')
    train = lgb.Dataset(toy_pd.loc[train_idx, feats],
                        toy_pd.loc[train_idx,'label'])
    val = lgb.Dataset(toy_pd.loc[val_idx, feats],
                      toy_pd.loc[val_idx, 'label'])
    model = lgb.train(params, train, valid_sets=[train, val], num_boost_round=4,
                      callbacks=[lgb.early_stopping(2), lgb.log_evaluation(1)])

output:
----------- 0 -----------
[1]	training's auc: 0.63893	valid_1's auc: 0.582732
Training until validation scores don't improve for 2 rounds
[2]	training's auc: 0.639539	valid_1's auc: 0.580629
[3]	training's auc: 0.652984	valid_1's auc: 0.588742
[4]	training's auc: 0.678193	valid_1's auc: 0.570563
Did not meet early stopping. Best iteration is:
[4]	training's auc: 0.678193	valid_1's auc: 0.570563
...
----------- 3 -----------
[1]	training's auc: 0.649097	valid_1's auc: 0.575294
Training until validation scores don't improve for 2 rounds
[2]	training's auc: 0.657224	valid_1's auc: 0.566957
[3]	training's auc: 0.666932	valid_1's auc: 0.565524
Early stopping, best iteration is:
[1]	training's auc: 0.649097	valid_1's auc: 0.575294

As you can see, I clearly hope lgb could save the model that has the best auc on val because val is the last one in valid_sets list. However, in this example, it sometimes returns model which has the best performance on valid_sets[0], sometimes valid_sets[-1].
It seems that when it does not meet early stopping, something would go wrong.
I'm very confused about this. I fixed all random seeds so you can easily reproduce it.
Environment info
LightGBM version or commit hash:
'3.3.2'
Command(s) you used to install LightGBM
pip install lightgbm

Additional Comments

Hi @ZhiZhongWan, thanks for raising this and for the excellent example. I confirm this isn't working as expected. The problem is that even though the documentation says that the training set is ignored it actually isn't. The scores are saved here: https://github.com/microsoft/LightGBM/blob/44fe591a60d7427d64997c37b22768a92c97c47b/python-package/lightgbm/callback.py#L334-L337
And the training set is always the first one in the validation sets:
https://github.com/microsoft/LightGBM/blob/44fe591a60d7427d64997c37b22768a92c97c47b/python-package/lightgbm/engine.py#L247-L250
So on the final iteration check the training set is checked first:
https://github.com/microsoft/LightGBM/blob/44fe591a60d7427d64997c37b22768a92c97c47b/python-package/lightgbm/callback.py#L342-L344
This means that if the training score improved on the last iteration it will be saved as the best one, even if the validation score didn't.
I'll try to come up with a fix for this. One possible fix I see is actually ignoring the training set by removing this line: https://github.com/microsoft/LightGBM/blob/44fe591a60d7427d64997c37b22768a92c97c47b/python-package/lightgbm/callback.py#L344

Maybe this old discussion can help: https://github.com/microsoft/LightGBM/issues/2371#issuecomment-527101218.


Update Person.php

proper change as requested
https://github.com/fzaninotto/Faker/issues/1357#issuecomment-345616709

Thanks!

thank you !! great project, i might put some more work in to what i can
some day ;)
On 30 November 2017 at 23:28, Francois Zaninotto<EMAIL_ADDRESS>wrote:

Thanks!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/fzaninotto/Faker/pull/1364#issuecomment-348326231,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEe3a3i7jRfHukrN8acqHVJpJ8WNF7Wkks5s7x3ogaJpZM4QrtlW
.

--
Jamie
www.earthling.za.org


Induction Cooktop Support

Would love to see support for the Cafe induction cooktop!
I have one and am happy to install a dev version of this custom integration to test.

Hey, that would be great if you could contribute.  The first step is to head over to https://github.com/simbaja/gehome so we can get the low-level library stuff sorted out, and then it should be pretty straightforward to add into HA.

I have the cafe induction cooktop and I would love to contribute. IT professional and Linux administrator let me know what you need and we can start to associate the bindings.
Side question -- any plans to get the custom component into HACS?

Ill do this tonight and post back

About to spin up a docker to run this, which example you need the output of?

websocket_example.py

xmpp_example.py

1, 2 or both?

The websocket is probably better.  I haven't used the other in a long time (HA uses websocket)

Awesome where you want the output here? or in the other repo?

Here's fine I think - no need to create another issue.  I suspect that this
will be pretty quick to do anyway (it should be mostly there I think).
On Wed, Jun 8, 2022 at 11:24 AM mikekay1 @.***> wrote:

Awesome where you want the output here? or in the other repo?
—
Reply to this email directly, view it on GitHub
https://github.com/simbaja/ha_gehome/issues/70#issuecomment-1150064862,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOEHFXEKN7Y4A7Q5H5VGAJLVOC3JVANCNFSM5PF4E4NA
.
 Haven't had time to help with this! Thanks, @mikekay1 !! Excited to see this update!

2022-06-08 15:42:13,156 DEBUG    Getting OAuth2 token
2022-06-08 15:42:13,163 DEBUG    Client changed state: GeClientState.INITIALIZING to GeClientState.AUTHORIZING_OAUTH
2022-06-08 15:42:14,784 DEBUG    Getting WS credentials
2022-06-08 15:42:14,786 DEBUG    Client changed state: GeClientState.AUTHORIZING_OAUTH to GeClientState.AUTHORIZING_CLIENT
2022-06-08 15:42:15,148 INFO     Starting GE Appliances client
2022-06-08 15:42:15,187 DEBUG    Client changed state: GeClientState.AUTHORIZING_CLIENT to GeClientState.CONNECTING
2022-06-08 15:42:15,329 DEBUG    = connection is CONNECTING
2022-06-08 15:42:15,483 DEBUG    > GET /?access_token=uw2cpco871utgrtyqxd2o1n0nf8n3kok HTTP/1.1
2022-06-08 15:42:15,483 DEBUG    > Host: ws-us-west-2.brillion.geappliances.com
2022-06-08 15:42:15,484 DEBUG    > Upgrade: websocket
2022-06-08 15:42:15,484 DEBUG    > Connection: Upgrade
2022-06-08 15:42:15,486 DEBUG    > Sec-WebSocket-Key: gxW/rMJPF6XId/Bi+FWvqQ==
2022-06-08 15:42:15,488 DEBUG    > Sec-WebSocket-Version: 13
2022-06-08 15:42:15,488 DEBUG    > User-Agent: Python/3.10 websockets/10.3
2022-06-08 15:42:15,732 DEBUG    < HTTP/1.1 101 Switching Protocols
2022-06-08 15:42:15,733 DEBUG    < Date: Wed, 08 Jun 2022 15:42:15 GMT
2022-06-08 15:42:15,733 DEBUG    < Connection: upgrade
2022-06-08 15:42:15,734 DEBUG    < upgrade: websocket
2022-06-08 15:42:15,735 DEBUG    < sec-websocket-accept: 8uEoZ/sIQO7X0zav5dp3DWtiw9Y=
2022-06-08 15:42:15,736 DEBUG    = connection is OPEN
2022-06-08 15:42:15,739 DEBUG    > TEXT '{"kind": "websocket#subscribe", "action": "subs...["/appliance/*/erd/*"]}' [91 bytes]
2022-06-08 15:42:15,740 DEBUG    > TEXT '{"kind": "websocket#api", "action": "api", "hos...id": "List-appliances"}' [150 bytes]
2022-06-08 15:42:15,741 DEBUG    Client changed state: GeClientState.CONNECTING to GeClientState.CONNECTED
2022-06-08 15:42:15,882 DEBUG    < TEXT '{"kind":"websocket#subscribe","success":true}' [45 bytes]
2022-06-08 15:42:15,907 DEBUG    < TEXT '{"kind":"websocket#api","id":"List-appliances",...siz68yoiu","items":[]}}' [242 bytes]
2022-06-08 15:42:16,302 DEBUG    < TEXT '{"kind":"websocket#connect","success":true}' [43 bytes]
2022-06-08 15:42:16,445 DEBUG    < TEXT '{"resource":"/appliance/*/erd/*","kind":"websoc...:true,"change":"ADDED"}' [97 bytes]
2022-06-08 15:42:35,743 DEBUG    % sending keepalive ping
2022-06-08 15:42:35,744 DEBUG    > PING a7 68 7d 90 [binary, 4 bytes]
2022-06-08 15:42:35,814 DEBUG    < PONG a7 68 7d 90 [binary, 4 bytes]
2022-06-08 15:42:35,816 DEBUG    % received keepalive pong
2022-06-08 15:42:45,742 DEBUG    Sending keepalive ping
2022-06-08 15:42:45,742 DEBUG    > TEXT '{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}' [68 bytes]
2022-06-08 15:42:45,829 DEBUG    < TEXT '{"kind":"websocket#pong","id":"keepalive-ping"}' [47 bytes]
2022-06-08 15:42:55,826 DEBUG    % sending keepalive ping
2022-06-08 15:42:55,827 DEBUG    > PING 4d 5f 92 ff [binary, 4 bytes]
2022-06-08 15:42:55,897 DEBUG    < PONG 4d 5f 92 ff [binary, 4 bytes]
2022-06-08 15:42:55,898 DEBUG    % received keepalive pong
2022-06-08 15:43:15,764 DEBUG    Sending keepalive ping
2022-06-08 15:43:15,764 DEBUG    > TEXT '{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}' [68 bytes]
2022-06-08 15:43:15,849 DEBUG    < TEXT '{"kind":"websocket#pong","id":"keepalive-ping"}' [47 bytes]
2022-06-08 15:43:15,899 DEBUG    % sending keepalive ping
2022-06-08 15:43:15,899 DEBUG    > PING b3 ce c3 ac [binary, 4 bytes]
2022-06-08 15:43:15,970 DEBUG    < PONG b3 ce c3 ac [binary, 4 bytes]

Sorry about the multiple replies, but I signed up for GE Home SmartHQ a long time ago so it didn't link up correctly -- signed out of app, forgot network on my GE profile range -- and reconnected. It's listing online now. Below is the output from the example!
2022-06-08 16:10:23,202 DEBUG    Getting OAuth2 token
2022-06-08 16:10:23,208 DEBUG    Client changed state: GeClientState.INITIALIZING to GeClientState.AUTHORIZING_OAUTH
2022-06-08 16:10:25,010 DEBUG    Getting WS credentials
2022-06-08 16:10:25,012 DEBUG    Client changed state: GeClientState.AUTHORIZING_OAUTH to GeClientState.AUTHORIZING_CLIENT
2022-06-08 16:10:25,349 INFO     Starting GE Appliances client
2022-06-08 16:10:25,396 DEBUG    Client changed state: GeClientState.AUTHORIZING_CLIENT to GeClientState.CONNECTING
2022-06-08 16:10:25,542 DEBUG    = connection is CONNECTING
2022-06-08 16:10:25,695 DEBUG    > GET /?access_token=uw2cp6hmb4218u200s9dh5xv3gzob353 HTTP/1.1
2022-06-08 16:10:25,695 DEBUG    > Host: ws-us-west-2.brillion.geappliances.com
2022-06-08 16:10:25,695 DEBUG    > Upgrade: websocket
2022-06-08 16:10:25,696 DEBUG    > Connection: Upgrade
2022-06-08 16:10:25,696 DEBUG    > Sec-WebSocket-Key: NBG+8EK/fugoHPYWGfzTpQ==
2022-06-08 16:10:25,696 DEBUG    > Sec-WebSocket-Version: 13
2022-06-08 16:10:25,697 DEBUG    > User-Agent: Python/3.10 websockets/10.3
2022-06-08 16:10:25,965 DEBUG    < HTTP/1.1 101 Switching Protocols
2022-06-08 16:10:25,965 DEBUG    < Date: Wed, 08 Jun 2022 16:10:25 GMT
2022-06-08 16:10:25,965 DEBUG    < Connection: upgrade
2022-06-08 16:10:25,966 DEBUG    < upgrade: websocket
2022-06-08 16:10:25,966 DEBUG    < sec-websocket-accept: aeBlUKxfrI+N8sahkNrTK6N0/j8=
2022-06-08 16:10:25,967 DEBUG    = connection is OPEN
2022-06-08 16:10:25,969 DEBUG    > TEXT '{"kind": "websocket#subscribe", "action": "subs...["/appliance/*/erd/*"]}' [91 bytes]
2022-06-08 16:10:25,970 DEBUG    > TEXT '{"kind": "websocket#api", "action": "api", "hos...id": "List-appliances"}' [150 bytes]
2022-06-08 16:10:25,972 DEBUG    Client changed state: GeClientState.CONNECTING to GeClientState.CONNECTED
2022-06-08 16:10:26,079 DEBUG    < TEXT '{"kind":"websocket#connect","success":true}' [43 bytes]
2022-06-08 16:10:26,088 DEBUG    < TEXT '{"kind":"websocket#subscribe","success":true}' [45 bytes]
2022-06-08 16:10:26,204 DEBUG    < TEXT '{"kind":"websocket#api","id":"List-appliances",...6-08T16:07:11.234Z"}]}}' [417 bytes]
2022-06-08 16:10:26,205 DEBUG    D828C908116E marked available
2022-06-08 16:10:26,206 DEBUG    Adding appliance D828C908116E
2022-06-08 16:10:26,206 DEBUG    Requesting update for client D828C908116E
2022-06-08 16:10:26,206 DEBUG    > TEXT '{"kind": "websocket#api", "action": "api", "hos...  Treating as None.
2022-06-08 16:10:26,413 DEBUG    Setting ErdCode.UPPER_OVEN_DISPLAY_TEMPERATURE to 398
2022-06-08 16:10:26,414 DEBUG    Setting ErdCode.UPPER_OVEN_REMOTE_ENABLED to False
2022-06-08 16:10:26,416 DEBUG    Setting ErdCode.UPPER_OVEN_AVAILABLE_COOK_MODES to {<ErdOvenCookMode.BAKE_NOOPTION: 1>, <ErdOvenCookMode.CONVROAST_NOOPTION: 36>, <ErdOvenCookMode.CONVBAKE_N
OOPTION: 18>}
2022-06-08 16:10:26,417 DEBUG    Setting ErdCode.UPPER_OVEN_RAW_TEMPERATURE to 76
2022-06-08 16:10:26,418 DEBUG    Setting ErdCode.LOWER_OVEN_COOK_MODE to Off
2022-06-08 16:10:26,419 DEBUG    Setting ErdCode.LOWER_OVEN_CURRENT_STATE to Off
2022-06-08 16:10:26,420 DEBUG    Setting ErdCode.LOWER_OVEN_DELAY_TIME_REMAINING to 0:00:00
2022-06-08 16:10:26,421 DEBUG    Setting ErdCode.LOWER_OVEN_PROBE_DISPLAY_TEMP to 0
2022-06-08 16:10:26,422 DEBUG    Setting ErdCode.LOWER_OVEN_COOK_TIME_REMAINING to 0:00:00
2022-06-08 16:10:26,423 DEBUG    Setting ErdCode.LOWER_OVEN_KITCHEN_TIMER to 0:00:00
2022-06-08 16:10:26,423 DEBUG    Setting ErdCode.LOWER_OVEN_USER_TEMP_OFFSET to 0
2022-06-08 16:10:26,424 DEBUG    Setting ErdCode.LOWER_OVEN_PROBE_PRESENT to False
2022-06-08 16:10:26,425 DEBUG    Setting ErdCode.LOWER_OVEN_ELAPSED_COOK_TIME to 0:00:00
2022-06-08 16:10:26,425 DEBUG    Setting ErdCode.LOWER_OVEN_DISPLAY_TEMPERATURE to 0
2022-06-08 16:10:26,426 DEBUG    Setting ErdCode.LOWER_OVEN_REMOTE_ENABLED to False
2022-06-08 16:10:26,427 DEBUG    Setting ErdCode.LOWER_OVEN_AVAILABLE_COOK_MODES to set()
2022-06-08 16:10:26,428 DEBUG    Setting ErdCode.LOWER_OVEN_RAW_TEMPERATURE to 0
2022-06-08 16:10:26,428 DEBUG    Setting ErdCode.COOKTOP_CONFIG to ErdCooktopConfig.PRESENT
2022-06-08 16:10:26,429 DEBUG    Setting ErdCode.COOKTOP_STATUS to CooktopStatus(status=<ErdCooktopStatus.OFF: 0>, burners={'leftFront': <gehomesdk.erd.values.oven.burner.Burner object at 0x
7f78449a4730>, 'leftRear': <gehomesdk.erd.values.oven.burner.Burner object at 0x7f78449a4700>, 'centerFront': <gehomesdk.erd.values.oven.burner.Burner object at 0x7f78449a4760>, 'centerRear'
: <gehomesdk.erd.values.oven.burner.Burner object at 0x7f78449a4790>, 'rightFront': <gehomesdk.erd.values.oven.burner.Burner object at 0x7f78449a47c0>, 'rightRear': <gehomesdk.erd.values.ove
n.burner.Burner object at 0x7f78449a47f0>}, raw_value='000300030000FF050001000100')
2022-06-08 16:10:26,430 DEBUG    Setting ErdCode.PRECISION_COOKING_PROBE_CONTROL_MODE to ErdPrecisionCookingAppProbeControlMode.INACTIVE
2022-06-08 16:10:26,431 DEBUG    Setting ErdCode.PRECISION_COOKING_PROBE_STATUS to 0
2022-06-08 16:10:26,432 DEBUG    Setting ErdCode.PRECISION_COOKING_PROBE_TEMP_TARGET to 0
2022-06-08 16:10:26,432 DEBUG    Setting ErdCode.PRECISION_COOKING_PROBE_TEMP_CURRENT to 0
2022-06-08 16:10:26,432 DEBUG    Setting ErdCode.PRECISION_COOKING_PROBE_TIME_TARGET to 0:00:00
2022-06-08 16:10:26,433 DEBUG    Setting ErdCode.PRECISION_COOKING_START_SOUS_VIDE_TIMER_ACTIVE_STATUS to ErdPrecisionCookingStartSousVideTimerActiveStatus.INACTIVE
2022-06-08 16:10:26,433 DEBUG    Setting ErdCode.PRECISION_COOKING_PROBE_TIME_CURRENT to 0:00:00
2022-06-08 16:10:26,434 DEBUG    Setting ErdCode.PRECISION_COOKING_PROBE_TARGET_TIME_REACHED to ErdPrecisionCookingProbeTargetTimeReached.NO
2022-06-08 16:10:26,434 DEBUG    Setting ErdCode.PRECISION_COOKING_PROBE_BATTERY_STATUS to ErdPrecisionCookingProbeBatteryStatus.OK
2022-06-08 16:10:26,436 DEBUG    Got initial appliance type for GeAppliance(D828C908116E) (ErdApplianceType.OVEN)
2022-06-08 16:10:26,437 DEBUG    Appliance state change detected in GeAppliance(D828C908116E) (ErdApplianceType.OVEN). Updated keys: ErdCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.CLOC
K_FORMAT, ErdCode.TEMPERATURE_UNIT, ErdCode.APPLIANCE_TYPE, ErdCode.SABBATH_MODE, ErdCode.SOUND_LEVEL, ErdCode.WIFI_MODULE_UPDATING, ErdCode.WIFI_MODULE_SW_VERSION, ErdCode.WIFI_MODULE_SW_VE
RSION_AVAILABLE, ErdCode.ACM_UPDATING, ErdCode.APPLIANCE_SW_VERSION, ErdCode.APPLIANCE_SW_VERSION_AVAILABLE, ErdCode.APPLIANCE_UPDATING, ErdCode.HOUR_12_SHUTOFF_ENABLED, ErdCode.CONVECTION_C
ONVERSION, ErdCode.KEY_PRESSED, ErdCode.OVEN_CONFIGURATION, ErdCode.OVEN_MODE_MIN_MAX_TEMP, ErdCode.WARMING_DRAWER_STATE, ErdCode.UPPER_OVEN_COOK_MODE, ErdCode.UPPER_OVEN_CURRENT_STATE, ErdC
ode.UPPER_OVEN_DELAY_TIME_REMAINING, ErdCode.UPPER_OVEN_PROBE_DISPLAY_TEMP, ErdCode.UPPER_OVEN_COOK_TIME_REMAINING, ErdCode.UPPER_OVEN_KITCHEN_TIMER, ErdCode.UPPER_OVEN_USER_TEMP_OFFSET, Erd
Code.UPPER_OVEN_PROBE_PRESENT, ErdCode.UPPER_OVEN_DISPLAY_TEMPERATURE, ErdCode.UPPER_OVEN_REMOTE_ENABLED, ErdCode.UPPER_OVEN_AVAILABLE_COOK_MODES, ErdCode.UPPER_OVEN_RAW_TEMPERATURE, ErdCode
.LOWER_OVEN_COOK_MODE, ErdCode.LOWER_OVEN_CURRENT_STATE, ErdCode.LOWER_OVEN_DELAY_TIME_REMAINING, ErdCode.LOWER_OVEN_PROBE_DISPLAY_TEMP, ErdCode.LOWER_OVEN_COOK_TIME_REMAINING, ErdCode.LOWER
_OVEN_KITCHEN_TIMER, ErdCode.LOWER_OVEN_USER_TEMP_OFFSET, ErdCode.LOWER_OVEN_PROBE_PRESENT, ErdCode.LOWER_OVEN_ELAPSED_COOK_TIME, ErdCode.LOWER_OVEN_DISPLAY_TEMPERATURE, ErdCode.LOWER_OVEN_R
EMOTE_ENABLED, ErdCode.LOWER_OVEN_AVAILABLE_COOK_MODES, ErdCode.LOWER_OVEN_RAW_TEMPERATURE, ErdCode.COOKTOP_CONFIG, ErdCode.COOKTOP_STATUS, ErdCode.PRECISION_COOKING_PROBE_CONTROL_MODE, ErdC
ode.PRECISION_COOKING_PROBE_STATUS, ErdCode.PRECISION_COOKING_PROBE_TEMP_TARGET, ErdCode.PRECISION_COOKING_PROBE_TEMP_CURRENT, ErdCode.PRECISION_COOKING_PROBE_TIME_TARGET, ErdCode.PRECISION_
COOKING_START_SOUS_VIDE_TIMER_ACTIVE_STATUS, ErdCode.PRECISION_COOKING_PROBE_TIME_CURRENT, ErdCode.PRECISION_COOKING_PROBE_TARGET_TIME_REACHED, ErdCode.PRECISION_COOKING_PROBE_BATTERY_STATUS
2022-06-08 16:10:26,438 DEBUG    Appliance state change detected in GeAppliance(D828C908116E) (ErdApplianceType.OVEN)
2022-06-08 16:10:26,439 INFO     Turning on the oven!
2022-06-08 16:10:26,440 DEBUG    > TEXT '{"kind": "websocket#api", "action": "api", "hos...eout": 10, "delay": 0}}' [376 bytes]
2022-06-08 16:10:26,441 DEBUG    < TEXT '{"resource":"/appliance/*/erd/*","kind":"websoc...:true,"change":"ADDED"}' [97 bytes]
2022-06-08 16:10:26,442 INFO     Set the timer!
2022-06-08 16:10:26,443 DEBUG    > TEXT '{"kind": "websocket#api", "action": "api", "hos...eout": 10, "delay": 0}}' [354 bytes]
2022-06-08 16:10:27,904 DEBUG    < TEXT '{"kind":"websocket#api","id":"D828C908116E-setE...":{"status":"success"}}' [226 bytes]
2022-06-08 16:10:27,906 DEBUG
2022-06-08 16:10:27,907 DEBUG    Setting ErdCode.UPPER_OVEN_COOK_MODE to Bake (350°)
2022-06-08 16:10:27,908 DEBUG    Appliance state change detected in GeAppliance(D828C908116E) (ErdApplianceType.OVEN). Updated keys: ErdCode.UPPER_OVEN_COOK_MODE
2022-06-08 16:10:27,916 DEBUG    < TEXT '{"kind":"websocket#api","id":"D828C908116E-setE...":{"status":"success"}}' [226 bytes]
2022-06-08 16:10:27,917 DEBUG
2022-06-08 16:10:27,918 DEBUG    Setting ErdCode.UPPER_OVEN_KITCHEN_TIMER to 0:45:00
2022-06-08 16:10:27,918 DEBUG    Appliance state change detected in GeAppliance(D828C908116E) (ErdApplianceType.OVEN). Updated keys: ErdCode.UPPER_OVEN_KITCHEN_TIMER
2022-06-08 16:10:36,382 DEBUG    < TEXT '{"item":{"applianceId":"D828C908116E","erd":"0x...rId":"z950n1siz68yoiu"}' [199 bytes]
2022-06-08 16:10:45,976 DEBUG    % sending keepalive ping
2022-06-08 16:10:45,977 DEBUG    > PING 66 8a 8c 20 [binary, 4 bytes]
2022-06-08 16:10:46,048 DEBUG    < PONG 66 8a 8c 20 [binary, 4 bytes]
2022-06-08 16:10:46,049 DEBUG    % received keepalive pong
2022-06-08 16:10:55,971 DEBUG    Sending keepalive ping
2022-06-08 16:10:55,978 DEBUG    > TEXT '{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}' [68 bytes]
2022-06-08 16:10:56,181 DEBUG    < TEXT '{"kind":"websocket#pong","id":"keepalive-ping"}' [47 bytes]
2022-06-08 16:11:06,060 DEBUG    % sending keepalive ping
2022-06-08 16:11:06,061 DEBUG    > PING d0 f9 ca ab [binary, 4 bytes]
2022-06-08 16:11:06,131 DEBUG    < PONG d0 f9 ca ab [binary, 4 bytes]
2022-06-08 16:11:06,131 DEBUG    % received keepalive pong
2022-06-08 16:11:26,000 DEBUG    Sending keepalive ping
2022-06-08 16:11:26,001 DEBUG    > TEXT '{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}' [68 bytes]
2022-06-08 16:11:26,088 DEBUG    < TEXT '{"kind":"websocket#pong","id":"keepalive-ping"}' [47 bytes]
2022-06-08 16:11:26,133 DEBUG    % sending keepalive ping
2022-06-08 16:11:26,133 DEBUG    > PING e1 97 ff ea [binary, 4 bytes]
2022-06-08 16:11:26,203 DEBUG    < PONG e1 97 ff ea [binary, 4 bytes]
2022-06-08 16:11:26,204 DEBUG    % received keepalive pong
2022-06-08 16:11:26,209 DEBUG    Requesting update for GeAppliance(D828C908116E) (ErdApplianceType.OVEN)
2022-06-08 16:11:26,209 DEBUG    Requesting update for client D828C908116E
2022-06-08 16:11:26,209 DEBUG    > TEXT '{"kind": "websocket#api", "action": "api", "hos... "D828C908116E-allErd"}' [171 bytes]
2022-06-08 16:11:26,395 DEBUG    < TEXT '{"kind":"websocket#api","id":"D828C908116E-allE...0","time":"2022-06-08T1' [4096 bytes, continued]
2022-06-08 16:11:26,396 DEBUG    < CONT '6:09:30.759Z"},{"erd":"0x5677","value":"00","ti...6-08T16:09:47.467Z"}]}}' [text, 145 bytes]
2022-06-08 16:11:26,398 DEBUG    Setting ErdCode.UPPER_OVEN_COOK_MODE to Off
2022-06-08 16:11:26,399 DEBUG    Got timespan value of 65535. Treating as None.
2022-06-08 16:11:26,400 DEBUG    Setting ErdCode.COOKTOP_STATUS to CooktopStatus(status=<ErdCooktopStatus.OFF: 0>, burners={'leftFront': <gehomesdk.erd.values.oven.burner.Burner object at 0x
7f7844df46d0>, 'leftRear': <gehomesdk.erd.values.oven.burner.Burner object at 0x7f7844df4790>, 'centerFront': <gehomesdk.erd.values.oven.burner.Burner object at 0x7f7844df4970>, 'centerRear'
: <gehomesdk.erd.values.oven.burner.Burner object at 0x7f7844df4a60>, 'rightFront': <gehomesdk.erd.values.oven.burner.Burner object at 0x7f7844df4a30>, 'rightRear': <gehomesdk.erd.values.ove
n.burner.Burner object at 0x7f7844df4a00>}, raw_value='000300030000FF050001000100')
2022-06-08 16:11:26,401 DEBUG    Appliance state change detected in GeAppliance(D828C908116E) (ErdApplianceType.OVEN). Updated keys: ErdCode.UPPER_OVEN_COOK_MODE, ErdCode.COOKTOP_STATUS
2022-06-08 16:11:36,641 DEBUG    < TEXT '{"item":{"applianceId":"D828C908116E","erd":"0x...rId":"z950n1siz68yoiu"}' [199 bytes]
2022-06-08 16:11:36,642 DEBUG    Setting ErdCode.UPPER_OVEN_KITCHEN_TIMER to 0:44:00
2022-06-08 16:11:36,644 DEBUG    Appliance state change detected in GeAppliance(D828C908116E) (ErdApplianceType.OVEN). Updated keys: ErdCode.UPPER_OVEN_KITCHEN_TIMER
2022-06-08 16:11:46,214 DEBUG    % sending keepalive ping
2022-06-08 16:11:46,214 DEBUG    > PING d6 35 17 d2 [binary, 4 bytes]
2022-06-08 16:11:46,284 DEBUG    < PONG d6 35 17 d2 [binary, 4 bytes]
2022-06-08 16:11:46,284 DEBUG    % received keepalive pong
2022-06-08 16:11:56,012 DEBUG    Sending keepalive ping
2022-06-08 16:11:56,014 DEBUG    > TEXT '{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}' [68 bytes]
2022-06-08 16:11:56,098 DEBUG    < TEXT '{"kind":"websocket#pong","id":"keepalive-ping"}' [47 bytes]
2022-06-08 16:12:06,293 DEBUG    % sending keepalive ping
2022-06-08 16:12:06,293 DEBUG    > PING ff 31 46 6a [binary, 4 bytes]
2022-06-08 16:12:06,365 DEBUG    < PONG ff 31 46 6a [binary, 4 bytes]
2022-06-08 16:12:06,365 DEBUG    % received keepalive pong
2022-06-08 16:12:26,033 DEBUG    Sending keepalive ping
2022-06-08 16:12:26,034 DEBUG    > TEXT '{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}' [68 bytes]
2022-06-08 16:12:26,120 DEBUG    < TEXT '{"kind":"websocket#pong","id":"keepalive-ping"}' [47 bytes]
2022-06-08 16:12:26,211 DEBUG    Requesting update for GeAppliance(D828C908116E) (ErdApplianceType.OVEN)
2022-06-08 16:12:26,211 DEBUG    Requesting update for client D828C908116E
2022-06-08 16:12:26,211 DEBUG    > TEXT '{"kind": "websocket#api", "action": "api", "hos... "D828C908116E-allErd"}' [171 bytes]
2022-06-08 16:12:26,366 DEBUG    % sending keepalive ping
2022-06-08 16:12:26,366 DEBUG    > PING 6c ca 5e 25 [binary, 4 bytes]
2022-06-08 16:12:26,392 DEBUG    < TEXT '{"kind":"websocket#api","id":"D828C908116E-allE...0","time":"2022-06-08T1' [4096 bytes, continued]
2022-06-08 16:12:26,392 DEBUG    < CONT '6:09:30.759Z"},{"erd":"0x5677","value":"00","ti...6-08T16:09:47.467Z"}]}}' [text, 145 bytes]
2022-06-08 16:12:26,394 DEBUG    Got timespan value of 65535. Treating as None.
2022-06-08 16:12:26,396 DEBUG    Setting ErdCode.COOKTOP_STATUS to CooktopStatus(status=<ErdCooktopStatus.OFF: 0>, burners={'leftFront': <gehomesdk.erd.values.oven.burner.Burner object at 0x
7f7844df4670>, 'leftRear': <gehomesdk.erd.values.oven.burner.Burner object at 0x7f7844df45e0>, 'centerFront': <gehomesdk.erd.values.oven.burner.Burner object at 0x7f7844df4580>, 'centerRear'
: <gehomesdk.erd.values.oven.burner.Burner object at 0x7f7844df4e20>, 'rightFront': <gehomesdk.erd.values.oven.burner.Burner object at 0x7f7844df4ca0>, 'rightRear': <gehomesdk.erd.values.ove
n.burner.Burner object at 0x7f7844df4d30>}, raw_value='000300030000FF050001000100')
2022-06-08 16:12:26,397 DEBUG    Appliance state change detected in GeAppliance(D828C908116E) (ErdApplianceType.OVEN). Updated keys: ErdCode.COOKTOP_STATUS
2022-06-08 16:12:26,436 DEBUG    < PONG 6c ca 5e 25 [binary, 4 bytes]
2022-06-08 16:12:26,438 DEBUG    % received keepalive pong
2022-06-08 16:12:36,867 DEBUG    < TEXT '{"item":{"applianceId":"D828C908116E","erd":"0x...rId":"z950n1siz68yoiu"}' [199 bytes]
2022-06-08 16:12:36,870 DEBUG    Setting ErdCode.UPPER_OVEN_KITCHEN_TIMER to 0:43:00
2022-06-08 16:12:36,871 DEBUG    Appliance state change detected in GeAppliance(D828C908116E) (ErdApplianceType.OVEN). Updated keys: ErdCode.UPPER_OVEN_KITCHEN_TIMER
2022-06-08 16:12:46,447 DEBUG    % sending keepalive ping
2022-06-08 16:12:46,447 DEBUG    > PING 5b 03 89 93 [binary, 4 bytes]
2022-06-08 16:12:46,517 DEBUG    < PONG 5b 03 89 93 [binary, 4 bytes]
2022-06-08 16:12:46,518 DEBUG    % received keepalive pong
2022-06-08 16:12:56,045 DEBUG    Sending keepalive ping
2022-06-08 16:12:56,046 DEBUG    > TEXT '{"kind": "websocket#ping", "id": "keepalive-ping", "action": "ping"}' [68 bytes]

Hmm, based on this, it looks like you have an induction range (oven), which should already be supported by this component.  Can you confirm that now that you've linked it in SmartHQ Home Assistant can pick it up?

i can confirm that what I did initially and nothing was picked up however I relinked it after setting that up so I will try again :)

Reloaded integration annnnddd it works! Awesome! Thanks dude!

Did anyone ever get it working for induction cooktops? I have the Cafe cooktop and a range hood, but the integration only finds the range hood. I can get logs as needed.

If you can head over to simbaja/gehome, clone, then run the example and post your log, I can work on getting the device added.

How much of the log do you need? Is it safe to post all there here on a public forum? I'd rather just send it directly to you if there's something in there that really shouldn't be out in the open.

I just grabbed the log. Just let me know where I can send it.

If you can head over to simbaja/gehome, clone, then run the example and post your log, I can work on getting the device added.

Where can I send the log?

You can redact the mac addresses if you so desire, but there's nothing else really in the log that matters.  There's an auth token that's generated on the websocket connection, but it's only valid for an hour, so expired by time it's posted.

You can redact the mac addresses if you so desire, but there's nothing else really in the log that matters. There's an auth token that's generated on the websocket connection, but it's only valid for an hour, so expired by time it's posted.

See if that does the trick for you.
websocket_log - includes induction top and hood - redacted.txt

Can you try 0.6.3-dev2 and see if the cooktop shows up?

Can you try 0.6.3-dev3 and see if the cooktop shows up?

That did the trick. It's showing up now. Awesome. I can finally automate the fan with the cooktop. Thank you so much.

Can you try 0.6.3-dev3 and see if the cooktop shows up?

That did the trick. It's showing up now. Awesome. I can finally automate the fan with the cooktop. Thank you so much.

Wow. Thank you so much for looking into this and helping get it solved! I was following it because I was curious but now it'll save my bacon!
I have the same cooktop on hold at my local store, waiting to put it in our new (under construction) home. We've loved chef connect on the range and hood in our current home (their bluetooth connection between the hood and range to which can turn on the fan automatically when I turn on a burner and back off when the burner goes off). I totally thought it had chef connect...


Add some guidelines about abtaining vote in case of absence

A discussion was started by @afshin about delegating/abstaining a vote in his absence.
Suggestion from @Ruv7 was:

I didn't do a ton of research (see attached questions to consider) but due to the timing what I believe would be a simpler approach would be for you to abstain from urgent voting during the specified time periods.

@afshin and several following the thread agreed. We should formalize this idea and include it in the governance document.

I think it's a good idea to provide a mechanism for people to "not vote". FWIW here's the section that has language about abstaining: https://www.python.org/dev/peps/pep-0013/#powers

@damianavila - to confirm we're on the same page, are you proposing an amendment of the current bylaws?

@damianavila - to confirm we're on the same page, are you proposing an amendment of the current bylaws?

Yep.

@damianavila apologies for the long delay here, November has somehow slipped away. There are two things to discuss, one is voting by proxy and the other is abstentions from a particular vote. As a best practice I would advise we stay away from allowing proxy votes. By default, because they're not explicitly allowed, I believe they are implicitly not allowed so I think the current bylaws are ok. We could spend some time making it more clear by specifically including language barring proxies but it's unclear to me if that would be of enough value to merit a vote. The second thing is abstaining from votes. I do think some work could be done on the language there. In practice explicitly abstaining favors the majority vote (whether that's a yes or a no) and simply not responding is essentially a no or con vote. We can't force folks to vote on a particular thing but we could set some guidelines for active participation, what sort of language or guidelines were you thinking of? I'm happy to provide feedback or to collaborate on this just let me know which direction you were thinking of going with it.

In the above link referenced above (the Python process) there is an interesting line:
"Every council member must either vote or explicitly abstain."
I think this is something interesting to adopt, as you said, we can not "force" folks to vote on a particular thing, but we (may?|should?) "force" them to take an action, even when that action is just the abstention? One of the responsibilities of an SC member is actually voting on these things, right?
Thoughts welcome.

hey all - just wanted to share that many of these conversations are also happening in the weekly governance refactoring meetings (https://discourse.jupyter.org/c/governance). It's more applicable to a "future" governing body as opposed to the current SC, but I think many of the same topics such as voting and expectations around it, still apply. I'll link to this thread in the meeting notes and also want to note it'd be great to hear your thoughts in one of the weekly governance meetings!


Handling Non-Latin Script

Hi, I'm trying to run fairseq on mainly Russian data in Cyrillic and am running fairseq preprocess on the proper files. Based on the percentage of tokens replaced by unknown (95%), it seems that the system may not be able to take in Cyrillic. If this is the case, should I transliterate my Cyrillic text and then pass it into fairseq preprocess or is there a way I could modify fairseq to take raw Cyrillic input?

Hi @danpechi, sorry for the delay here. Have you been able to solve this?

Hi Jonas! I was able to resolve this issue, but am now dealing with my train.tags.$lang.tok.en file being too long. When I run my bash script I get an error message at clean-corpus-n.perl. I tried resolving this by shortening my train.tags.$lang.$l file down to about 45000 sentences, but I'm still being told this is too long. When I run your prepare-iwslt14.sh, I'm told there is 174443 input sentences and 167497 output sentences, so I don't fully understand why my file is too long.
Potential confounds: my parallel-y aligned Russian train.tags.$lang.tok.ru file is about twice as large (not in sentence #, but size)
I also don't have a train.en file in my source directory, but I didn't see anything in prepare-iwslt14.sh that suggested I needed it
I'd hope to use as much data as possible, so if you have any suggestions, let me know!


Update Vulkan, SPIR-V, glslang and shaderc

Motivation for this change
Keeping master up to date with recent developments in upstream projects
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

closes #94247

the shaderc bump is causing some regressions, I now get:
builder for '/nix/store/86lrf5m4vy9r4hbwm6r95ljv6w0pwi4d-libplacebo-2.72.0.drv' failed with exit code 1; last 10 log lines:
  build flags: -j128 -l128
  [42/44] Compiling C++ object 'src/25a6634<EMAIL_ADDRESS>  FAILED: src/25a6634<EMAIL_ADDRESS>  g++ -Isrc/25a6634@@placebo@sha -Isrc -I../src -I../src/include -I../src/include/dummy -I../subprojects/xtalloc/include -I../subprojects/bstr/include -I/nix/store/81iy20n5rhvcm18ha289anygpgq5qyjc-lcms2-2.11-dev/include -I/nix/store/riw48ysh0rhkf2fck7m1iiany4rif2mv-vulkan-headers-<IP_ADDRESS>/include -I/nix/store/psda85jw38cxzqp6fa59vrdipz67h6bk-epoxy-1.5.4-dev/include -I/usr/include/glslang -I/nix/store/my4bdsgi308bq216gkhfwnwnk35yhszn-libplacebo-2.72.0/include/glslang -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c++11 -Wundef -Wshadow -Wparentheses -Wpointer-arith -fvisibility=hidden -fPIC -pthread -MD -MQ 'src/25a6634<EMAIL_ADDRESS>-MF 'src/25a6634<EMAIL_ADDRESS>-o 'src/25a6634<EMAIL_ADDRESS>-c ../src/glsl/glslang.cc
  ../src/glsl/glslang.cc:229:1: error: cannot convert '<brace-enclosed initializer list>' to 'int' in initialization
    229 | };
        | ^

I created an upstream issue https://code.videolan.org/videolan/libplacebo/-/issues/108

I see two solutions:

we drop the https://code.videolan.org/videolan/libplacebo/-/commit/82e3be1839379791b58e98eb049415b42888d5b0.patch from libplacebo
we update shaderc or glslang to newer versions: the header which is causing us trouble is in glslang, not shaderc. But for some reason #93604 broke on shaderc, maybe because the libplacebo got the header from shaderc's glaslang dependency?

I have also noticed that the shaderc-dev derivation has bundled the glslang headers, shouldn't they be in a separate derivation?

@CajuM shaderc is re-exporting all of the glslang headers it was built with. Easiest solution I found is just make shaderc the last dependency in buildInputs for libplacebo
$ git diff pkgs/
diff --git a/pkgs/development/libraries/libplacebo/default.nix b/pkgs/development/libraries/libplacebo/default.nix
index dc3e5e30c74..15b52c400df 100644
--- a/pkgs/development/libraries/libplacebo/default.nix
+++ b/pkgs/development/libraries/libplacebo/default.nix
@@ -47,10 +47,10 @@ stdenv.mkDerivation rec {
   buildInputs = [
     vulkan-headers
     vulkan-loader
-    shaderc
     glslang
     lcms2
     epoxy
+    shaderc
   ];

   mesonFlags = [

Not sure if this is intended behavior, and probably exists in the current package:
/nix/store/5prb4s19gv9l4xm71zwkad8yh6x5rz4v-shaderc-2020.2-dev/include/glslang/
├── build_info.h
├── HLSL
│   ├── hlslAttributes.h
│   ├── hlslGrammar.h
│   ├── hlslOpMap.h
│   ├── hlslParseables.h
│   ├── hlslParseHelper.h
│   ├── hlslScanContext.h
│   ├── hlslTokens.h
│   └── hlslTokenStream.h
├── Include
│   ├── arrays.h
│   ├── BaseTypes.h
│   ├── Common.h
│   ├── ConstantUnion.h
│   ├── glslang_c_interface.h
│   ├── glslang_c_shader_types.h
│   ├── InfoSink.h
│   ├── InitializeGlobals.h
│   ├── intermediate.h
│   ├── PoolAlloc.h
│   ├── ResourceLimits.h
│   ├── ShHandle.h
│   └── Types.h
├── MachineIndependent
│   ├── attribute.h
│   ├── glslang_tab.cpp.h
│   ├── gl_types.h
│   ├── Initialize.h
│   ├── iomapper.h
│   ├── LiveTraverser.h
│   ├── localintermediate.h
│   ├── ParseHelper.h
│   ├── parseVersions.h
│   ├── preprocessor
│   │   ├── PpContext.h
│   │   └── PpTokens.h
│   ├── propagateNoContraction.h
│   ├── reflection.h
│   ├── RemoveTree.h
│   ├── ScanContext.h
│   ├── Scan.h
│   ├── SymbolTable.h
│   └── Versions.h
├── Public
│   └── ShaderLang.h
└── SPIRV
    ├── bitutils.h
    ├── disassemble.h
    ├── doc.h
    ├── GlslangToSpv.h
    ├── GLSL.ext.AMD.h
    ├── GLSL.ext.EXT.h
    ├── GLSL.ext.KHR.h
    ├── GLSL.ext.NV.h
    ├── GLSL.std.450.h
    ├── hex_float.h
    ├── Logger.h
    ├── NonSemanticDebugPrintf.h
    ├── spirv.hpp
    ├── SpvBuilder.h
    ├── spvIR.h
    ├── SPVRemapper.h
    └── SpvTools.h

6 directories, 58 files

The situation here's a bit weird because various vulkan tooling packages all have different hardcoded revision dependencies on glslang, none of which are stable releases. If a package depends on both shaderc and glslang (why?) then it should probably try to use the same version of glslang that shaderc does. Maybe the explicit glslang dep should be removed from libplacebo entirely?

I made one more patch, on top of this PR, but I'm not sure if it's ok because I removed the custom versions for glslang, everything works now. I also updated vulkan tooling to newer versions, except shaderc which requires an unreleased version of glslang. I also had some problems with vkd3d and vkquake, but managed to fix them. Also about glslang, there are several workarounds available made by openSUSE, Fedora and Gentoo. Gentoo patched shaderc to support the older version of glslang. Fedora and openSUSE used unreleased versions in rawhide and factory
https://gist.github.com/CajuM/86b867aa73eb85ab997cca73c8b9416b

the shaderc bump is causing some regressions, I now get:
builder for '/nix/store/86lrf5m4vy9r4hbwm6r95ljv6w0pwi4d-libplacebo-2.72.0.drv' failed with exit code 1; last 10 log lines:
  build flags: -j128 -l128
  [42/44] Compiling C++ object 'src/25a6634<EMAIL_ADDRESS>  FAILED: src/25a6634<EMAIL_ADDRESS>  g++ -Isrc/25a6634@@placebo@sha -Isrc -I../src -I../src/include -I../src/include/dummy -I../subprojects/xtalloc/include -I../subprojects/bstr/include -I/nix/store/81iy20n5rhvcm18ha289anygpgq5qyjc-lcms2-2.11-dev/include -I/nix/store/riw48ysh0rhkf2fck7m1iiany4rif2mv-vulkan-headers-<IP_ADDRESS>/include -I/nix/store/psda85jw38cxzqp6fa59vrdipz67h6bk-epoxy-1.5.4-dev/include -I/usr/include/glslang -I/nix/store/my4bdsgi308bq216gkhfwnwnk35yhszn-libplacebo-2.72.0/include/glslang -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c++11 -Wundef -Wshadow -Wparentheses -Wpointer-arith -fvisibility=hidden -fPIC -pthread -MD -MQ 'src/25a6634<EMAIL_ADDRESS>-MF 'src/25a6634<EMAIL_ADDRESS>-o 'src/25a6634<EMAIL_ADDRESS>-c ../src/glsl/glslang.cc
  ../src/glsl/glslang.cc:229:1: error: cannot convert '<brace-enclosed initializer list>' to 'int' in initialization
    229 | };
        | ^

I still get this error. Reverting the shaderc bump fixes it for me.

:grimacing: Then this means vlc and mpv are broken now. I wish all of maintainers of those packages would have used actual releases.. Using latest libplacebo from master doesn't fix this issue.. I'm working on a local override for libplacebo to use the version(s) that were previously used before this PR.

grimacing Then this means vlc and mpv are broken now. I wish all of maintainers of those packages would have used actual releases.. Using latest libplacebo from master doesn't fix this issue.. I'm working on a local override for libplacebo to use the version(s) that were previously used before this PR.

It would seem that removing the https://code.videolan.org/videolan/libplacebo/-/commit/523056828ab86c2f17ea65f432424d48b6fdd389.patch patch fixes things

All of these packages are a mess (I'm not sure who is to blame). How come Arch Linux doesn't need such overrides? Perhaps they do need and use

https://github.com/archlinux/svntogit-packages/blob/packages/glslang/trunk/PKGBUILD
https://github.com/archlinux/svntogit-packages/blob/packages/shaderc/trunk/PKGBUILD
https://github.com/archlinux/svntogit-packages/blob/packages/spirv-tools/trunk/PKGBUILD
https://github.com/archlinux/svntogit-community/blob/packages/spirv-headers/trunk/PKGBUILD
https://github.com/archlinux/svntogit-packages/blob/packages/vulkan-headers/trunk/PKGBUILD

Maybe we shouldn't give to much attention to the known_good.json file - just because they have verified these versions work together, doesn't mean that any other combination of versions won't work. For instance Arch Linux even disables shaderc vendoring, somewhat similarly to us, but with the same glslang and spirv-tools versions as the normal packages:
https://github.com/archlinux/svntogit-packages/blob/2900077c8c054d2c9604780d3f189e889271ec6d/trunk/PKGBUILD#L18-L29
Since there are no shaderc maintainers, I'm reluctant into doing this.

grimacing Then this means vlc and mpv are broken now. I wish all of maintainers of those packages would have used actual releases.. Using latest libplacebo from master doesn't fix this issue.. I'm working on a local override for libplacebo to use the version(s) that were previously used before this PR.

It would seem that removing the code.videolan.org/videolan/libplacebo/-/commit/523056828ab86c2f17ea65f432424d48b6fdd389.patch patch fixes things

I removed https://code.videolan.org/videolan/libplacebo/-/commit/82e3be1839379791b58e98eb049415b42888d5b0.patch and it builds for me. Reverting shaderc also works https://github.com/NixOS/nixpkgs/pull/100818. Not sure what the right way is. Open for suggestions.

It would seem that removing the code.videolan.org/videolan/libplacebo/-/commit/523056828ab86c2f17ea65f432424d48b6fdd389.patch patch fixes things

I removed code.videolan.org/videolan/libplacebo/-/commit/82e3be1839379791b58e98eb049415b42888d5b0.patch and it builds for me.

I don't know what you did, but this sounds like a reasonable idea in comparison to #100818. I get:
  patching file src/glsl/glslang.cc
  Hunk #1 FAILED at 211.
  1 out of 1 hunk FAILED -- saving rejects to file src/glsl/glslang.cc.rej

With this change:
diff --git i/pkgs/development/libraries/libplacebo/default.nix w/pkgs/development/libraries/libplacebo/default.nix
index dc3e5e30c74..91de1f70fa7 100644
--- i/pkgs/development/libraries/libplacebo/default.nix
+++ w/pkgs/development/libraries/libplacebo/default.nix
@@ -27,10 +27,6 @@ stdenv.mkDerivation rec {

   patches = [
     # to work with latest glslang, remove on release >2.72.0
-    (fetchpatch {
-      url = "https://code.videolan.org/videolan/libplacebo/-/commit/523056828ab86c2f17ea65f432424d48b6fdd389.patch";
-      sha256 = "051vhd0l3yad1fzn5zayi08kqs9an9j8p7m63kgqyfv1ksnydpcs";
-    })
     (fetchpatch {
       url = "https://code.videolan.org/videolan/libplacebo/-/commit/82e3be1839379791b58e98eb049415b42888d5b0.patch";
       sha256 = "0nklj9gfiwkbbj6wfm1ck33hphaxrvzb84c4h2nfj88bapnlm90l";

My bad, it was 82e3be1839379791b58e98eb049415b42888d5b0.patch

Taking that patch out makes mpv and vlc build and work. Hence I prefer https://github.com/NixOS/nixpkgs/pull/100825 over https://github.com/NixOS/nixpkgs/pull/100818 .

Out of scope for the issue with libplacebo: All projects of KhronosGroup should not have local overrides, as according to my tests they are compatible with each other, as you'd expect since it's the same group that develops all of these tools - (glslang has local overrides).
To improve the situation of all ugly overrides, I think it'd be best to introduce an attribute set such as KhronosGroupPackages where it'd have it's own callPackage that will insure compatible versions are used in scope.
It should be also worth nagging upstream that their build process is not ideal for downstream package maintainers, considering the fact spirv-tools for instance needs to vendor it's libraries, and is uncapable of using distribution's builds directly.

Does anyone have any new thoughts on how to handle these upgrades? I packaged the tint shader compiler, but it needed newer spirv-tools. I'd be happy to PR tint to nixpkgs, but I don't want to break glslang dependents.

We can either add multiple versions of glslang (maybe 11.1 or 8.X?) or you add a local overwrite to your package if only the version changes and nothing else.

We can either add multiple versions of glslang (maybe 11.1 or 8.X?)

That sounds great to me - to remove all overrides inside packages' expressions, and have as many variants as needed of the same packages all declared in all-packages.nix.

Prominent consumers use distinct, specific, non-release revisions that must be updated in lockstep with the consumers. Moving that into a separate file sounds painful.


Remove reactions from users that aren't the OP for pagination and trash can.

Goal
When using pagination or the trash can symbol (the one used to delete embeds), it is set to only be able to use by the OP. It may help clean it up to delete reactions from people that aren't the OP.
Implementation Suggestion
Python already checks whether the person adding the reactions for pagination or the trash can is used by the OP, so it would be simple to use remove_reaction to get rid of the useless reactions.

Can I take this one?

Sure thing @ToxicKidz!

Is this just going to be changing bot/pagination.py?


Login and Signup information

Where do you store thoses Information?
Let s think about security, as you knows passwort and username  are private and should keep secret.

i store the information in the data base. The password is encrypted so as to keep it secret.

FINE!!!
We can close this issue


Swap ML to only linux tests

@annatisch @lmazuel I'd prefer sign off from at least one of you before I merge this.
@needuv here is the matrix as requested.

Closing this as @needuv and I ran down the hang on windows.


Make Button.View properties public so they can be modified using composition

Description
Make Button component open so subclasses can modify rendering
Why
For example in our case we want the title of a button to change every 5 seconds
In order to achieve this we can use object composition
private final class TickingButton: Renderable, HeightCustomizing {
        private let titles: SignalProducer<String, NoError>
        private let button: Component.Button

        init(
            button: Component.Button,
            titles: SignalProducer<String, NoError>) {
            self.button = button
            self.titles = titles
        }

        func height(forWidth width: CGFloat, inheritedMargins: UIEdgeInsets) -> CGFloat {
            return button.height(forWidth: width, inheritedMargins: inheritedMargins)
        }

        func estimatedHeight(forWidth width: CGFloat, inheritedMargins: UIEdgeInsets) -> CGFloat {
            return button.estimatedHeight(forWidth: width, inheritedMargins: inheritedMargins)
        }

        func render(in view: Component.Button.View) {
            button.render(in: view)
            view.disposable = view.button.reactive.title <~ titles
        }
    }

Why we do not want to re-render whole tree? Because it affects scroll position, so sometimes the content jumps when user scrolls and timer ticks.

Please update the PR's description.

I did


[gemspec] cleanup dependencies

rack, cuba, celluloid, ... are pulled from airplay gem
no need to lock their versions here
fixes:
$ gem install airplayer
ERROR:  While executing gem ... (Gem::DependencyError)
    Unable to resolve dependencies: airplayer requires reel (= 0.4.0), reel-rack (= 0.1.0), celluloid (= 0.15.2); airplay requires celluloid (>= 0.17.0), reel (~> 0.5.0), reel-rack (~> 0.2.2); celluloid-io requires celluloid (>= 0.15.0)

Unfortunately it looks like with newer celluloid it can't find my apple tv.
But the airplay gem does not work either.

Thanks.

Unfortunately it looks like with newer celluloid it can't find my apple tv.

I've got the same error on my environment.
Your branch:
$ git checkout -b mikz-dependencies master
$ git pull https://github.com/mikz/airplayer.git dependencies
$ bundle
$ bundle exec airplayer devices  # Can't find Apple TV

airplay-cli:
$ gem install airplay-cli  # This installs `air` command
$ air list                          # Can't find Apple TV

So, I'm going to investigate what caused this...

I think airplay's dependencies are broken. Hence I'd like to locking version of dependencies for a while.
Thus this PR is closing for now.

@Tomohiro then airplayer has to use gem to lock the correct versions before requiring them.
Because if there is no gem locking the version, it will just use the latest one installed, regardless what you have in the gemspec.


Small typos

Thanks!

Very glad to help! As soon as I have the time I will try to fix some real issues :)


Added minimum volume size validation on volume update

We can't shrink volume size.
Changed volume size validation. Now the user can't submit a smaller size than the current volume size.

@miq-bot add_label morphy/yes?


Trying to change external diff/merge tool

Hi, I wanted to change P4Merge (which just isn't for me) to another tool (VsCode for example).
But the current state in master appears to be broken. AcknowledgeableMessage is missing some stuff from VL.Elementa.Core:

Any hint on how to fix that?

Also tried this workflow instead but couldn't get it to work:
https://stackoverflow.com/questions/12356917/how-to-set-difftool-mergetool-for-a-specific-file-extension-in-git

Tried this and failed.
https://kaskavalci.com/configuring-multiple-git-difftool-and-mergetool-based-on-file-extension/#difftoolsh


Display series names and colors chart

It would be great if I could name a serie so if I have multiple series it will show the value and the name

Thats good, and add a chart info control to the project so you can bind series to it.

Is this live yet?

yes

I have 0.3.0 but I am not seeing where I can set this. Can you help?

This is not included yet, but is an easy one, I will try to commit this in a moment, it is an open source project, you can create pull request too to make this better :)

Closed with https://github.com/beto-rodriguez/Live-Charts/commit/dd6de35adbb5583fa9c250d4f49b47b5eebabea9, I included an example in the first charts on the wpf test project, it is a simple control.

How do I add legend in c# not in xaml? I trying to add it in winforms, any pointers how to do it?

What do you mean with a legend?

Your "SeriesViewer" is usually called a legend: http://www.mathworks.com/help/matlab/ref/legend.html#bt6ef_q-2_1
"SeriesViewer" really doesn't describe its function very well.

will rename, thanks


HttpCache last modified and seo implementations

Current realization is not applicaple for seo, because in behaviour we set LM header based on stored data changed time. But if we change seo stuff: title, h1, text we cannot tell crawlers to rescan page, because of 304 not modified header (data in DB did not change).

Aren't title, h1 and text are from DB as well?

In Yii2? No in doesn't. For example I change text in view "Pizza in NY" to "Pizza delivery in NY". I can change meta tags description/keywords or just seo text.

Well, you can specify where to get the time via lastModified callback.

Usually it could be solved by storing hash of page in DB along with date and do some logic with hash, hashDate and if-modified-since.
Is it possible calculate page hash based on content in that callback?

You could use etagSeed I guess:
'only' => ['view'],
'etagSeed' => function ($action, $params) {
   return Yii::$app-db->createCommand("
      SELECT CONCAT(title, '_', keywords, '_', update_time) FROM article
         WHERE id = :id
   ")->bindValues(['id' => $_GET['id'])->queryScalar();
}

If title, keywords or update_time changes in db, then etag changes too. Or you update update_time when somthing changes, then you can use lastModified instead.

@Bdiang yes. You can use filemtime on the view.

Thanks.


fix: change ComponentRunner start param to '&mut self'

Stack:

#289 ⬅
#265
#262
#261

⚠ Part of a stack created by spr. Do not merge manually using the UI - doing so may have unexpected results.

This change is

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

Project coverage is 73.02%. Comparing base (eaac21e) to head (f5b41ad).

Additional details and impacted files
@@                        Coverage Diff                         @@
##           pr/lev-starkware/lev_dev/bb128e01     #289   +/-   ##
==================================================================
  Coverage                              73.02%   73.02%
==================================================================
  Files                                     30       30
  Lines                                   1442     1442
  Branches                                1442     1442
==================================================================
  Hits                                    1053     1053
  Misses                                   331      331
  Partials                                  58       58

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


Close debug console when debugging is stopped

I believe this worked in a prior version. Now the debug console stays open even after stopping the debugger. It should automatically close. Also, if the debug console is closed manually it should not reopen when the debugger is restarted since it takes up valuable screen real estate if it is not needed.

This has been fixed and will be available in the march vscode release

Perfect!


Stability imporvements Android

Add BeforePlayTask (can be used e.g. to check if the file is already downloaded or in a local cache)
Don't shutdown the player after each song
correct wifilock handling
add possibilty to set custom icon by adding a drawable
add RemoteCallback & AlternateRemoteCallback

Dont really get your point by either duplicate code or wrong behavior? If i add this to the PlayNext i would need to create an overload which tells me if the user clicked it or the media just ended. Which can cause a wrong behavior. If it is done in this event we neither have duplicated code or a wronh behavior. Or did i got u wrong?

I do like a lot of those changes and fixes. One thing that would be good in your next pull requests is if you could try to split up changes in different PR's. It takes a long time for me to review this because so much has changed.
Thanks a lot for helping!


How to achieve Synchronous behaviour while extracting from Queue

I have a case, where I enqueue some messages using 'queue'. Now I want to extract these messages serially. I am using 'worker' but it fires all messages in async way calling my callbackfunction for each message at the same time. Is there a way I can control the worker to extract only a single message or call some de-queue message serially?
// Code enqueuing 3 messages...
var queue = new NR.queue({connection: connectionDetails});

 queue.enqueue(config.Redis.resquequeuename, config.Redis.resquequeuejob, {
    message_id: 1,
    message_payload: "this is a test body of my message"
});
queue.enqueue(config.Redis.resquequeuename, config.Redis.resquequeuejob, {
    message_id: 2,
    message_payload: "this is a test body of my message"
});
queue.enqueue(config.Redis.resquequeuename, config.Redis.resquequeuejob, {
    message_id: 3,
    message_payload: "this is a test body of my message"
});

// Code using worker to dequeue messages
var GetQueueMessage = function(appcallback){

  var job = {};
  job[config.Redis.resquequeuejob] = {
    plugins: [],
    pluginOptions: {},
    perform: function(compositemessage, callback){
      callback(null, appcallback(null, compositemessage));
    }
  };

  var workername = os.hostname() + ":" + process.pid;
  var worker = new NR.worker({connection: connectionDetails, queues: [config.Redis.resquequeuename], 'name': workername}, job);
  worker.connect(function(){
    worker.workerCleanup();

    console.log("Worker starting, Resque worker. Worker name: "+ workername);

    worker.start();
  });
 // different even handlers for worker here...
};

workerGetQueueMessage(function(err, pCompositeMessage){
    console.log("Composite Message returned from Worker: " + JSON.stringify(pCompositeMessage));
    console.log(new Date(dt.now()));
});

Workers work (pop) jobs from the queue serially.  Resque is a [FIFO]((https://en.wikipedia.org/wiki/FIFO_(computing_and_electronics)) queue. That said, if you have more than one worker, you have no idea which one will get each job.  Where does workerGetQueueMessage get used?  Shouldn't that be within your job's perform block?
If you want to simply pop a job from the queue yourself, you can see how the workers manage this at worker.poll()


TranslationListener onKernelRequest method update causes fatal error

With the newest repository version i got such error.
Fatal error: Call to undefined method Symfony\Component\HttpFoundation\Request::getLocale() in C:\projects\civittabase\vendor\bundles\Stof\DoctrineExtensionsBundle\Listener\TranslationListener.php on line 38
If i revert this file to earlier, everything works fine.

#70

you'll need to use the 1.0.0 tag of the bundle to make it work with the stable version of symfony.

As stated in the readme, you need to use the tag for the 2.0.x version of Symfony. the master branch of the bundle is in sync with the change done in the Symfony master branch.


Best way to trigger alarm when a number changes

Thanks for putting Kapacitor together, great job!
I want to trigger an alert when a certain number in a field changes. Lets say that the following query:
SELECT * from "elasticsearch"."default"."elasticsearch_cluster_health"
returns a bunch of entries from different ES clusters, each of them with a particular number of nodes (under the field number_of_nodes). The question is how do we trigger an alert when the number_of_nodes field changes in a certain ES cluster?
This should be fairly simple, but I haven't found a non-hackish way to define this alert yet. Thanks for the help!

Go to this solution:
var data = stream
    | from()
        .database('elasticsearch')
        .measurement('elasticsearch_cluster_health')
    | groupBy('name', 'number_of_nodes')

data
	|derivative('number_of_nodes')
		.as('number_of_nodes_diff')
    |alert()
        .id('Elasticsearch ::')
        .message('{{ .Level }} in task \'{{ .TaskName }}\': {{ index .Tags "name" }} number_of_nodes number changed (Derivative: {{ index .Fields "number_of_nodes_diff" }}) ')
        .warn(lambda: "number_of_nodes_diff" > 0)
        .crit(lambda: "number_of_nodes_diff" < 0)
		.pagerDuty()
		.log('/tmp/alarm_es_nodes_stream.log')

And still testing it.

@gpestana I was going to suggest a similar solution.
Using difference would probably make more sense as it doesn't care about elapsed time. But difference isn't supported yet.
Also note that alert levels are expected to be subsets of previous levels. See this for more details but essentially you need to change the warn and crit expressions to:
        .warn(lambda: "number_of_nodes_diff" != 0)
        .crit(lambda: "number_of_nodes_diff" < 0)

I have created an issue #827 for adding difference support. Closing this issue.


widget color changed

re: https://github.com/CartoDB/cartodb/issues/12394
adding widget_color_changed attribute to the widget definition model style, because otherwise when selecting the category in the widget, it prevails as the widget color is persisted
I didn't quite like the hardcoded color check but I've seen it in other parts of deep insights codebase. Another workaround would be running a migration in the widgets table to add the widget_color_changed when the widget color won't match the default color

the thing is, I really grinded my gears to try to pull that value from elsewhere (imagine we change it in the future), but I couldn't find an elegant way to pass it around from builder :/


Link generation for varargs methods is broken

To link to a varargs method, you have to use array syntax, but anchor tags for these methods use the ... syntax.
Check with javadoc to see what it allows for links and then fix this to do the same thing. I suspect we need to support both options for references, but only use varargs syntax in generated URLs.

javadoc allows both syntax options but always outputs links with ....


:chore replace secure site sdk url with reown reown secure site

Description
Replace old walletconnect secure site sdk url to reown secure site sdk
Type of change

[x] Chore (non-breaking change that addresses non-functional tasks, maintenance, or code quality improvements)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist

[ ] Code in this PR is covered by automated tests (Unit tests, E2E tests)
[x] My changes generate no new warnings
[x] I have reviewed my own code
[x] I have filled out all required sections
[ ] I have tested my changes on the preview link
[ ] Approver of this PR confirms that the changes are tested on the preview link

@svenvoskamp there are some other files that contain secure.walletconnect url

@svenvoskamp @tomiir Lets pause the work on this one for now.

@svenvoskamp Closing as we won't do this


Crypto assets and descriptions

What kind of PR is this?:

/kind chore
What this PR does / why we need it:
Crypto assets and descriptions
Which issue(s) does this PR fixes?:

Fixes #
Additional comments?:

Codecov Report

Merging #165 (7a91819) into main (c3bd546) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #165   +/-   ##
=======================================
  Coverage   76.81%   76.81%
=======================================
  Files          18       18
  Lines         220      220
  Branches       51       51
=======================================
  Hits          169      169
  Misses         47       47
  Partials        4        4

Impacted Files
Coverage Δ

content/prices/index.ts
100.00% <ø> (ø)

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 c3bd546...7a91819. Read the comment docs.


selectAllText & deselectAllText missing from most i18n files

I am successfully including i18n files when the user's language is not set to English, however there are some text options which are not specified in about half of these files, primarily the selectAllText, deselectAllText and doneButtonText.  For example, both the spanish and italian js files do not specify the translations for these texts.  Unfortunately I do not speak those languages so I do not know the translations in order to contribute.  Could these files be updated to include translations for all text properties?  Our end users would be very grateful!
Thank you.

Looks like the following files don't have the translation:

defaults-cs_CZ.js
defaults-es_CL.js
defaults-eu.js
defaults-it_IT.js
defaults-nl_NL.js
defaults-pl_PL.js
defaults-pt_BR.js
defaults-pt_PT.js
defaults-ro_RO.js
defaults-ru_RU.js
defaults-ua_UA.js
defaults-zh_CN.js

The "defaults-es_CL.js" file can also be used to es_ES "defaults-es_ES.js" as the translation is the same.

Attachment translation with the new translated var.
Language: "es_ES
"


[4pt]  - Display number of likes for each item on the Homepage - Student A

When the page loads, the webapp the Involvement API to show the item likes and combines them with the data from the base API.
Remember that your page should make only 2 requests:

one to the base API
and one to the Involvement API.

This task does not include displaying the likes button (heart icon on the wireframe) for each item.

Keep up the good work and happy coding.

I appreciate your feedback


Bug fix for #2780. player.options.startVolume overwritten by 0

Fixed issue that player.options.startVolume is overwritten with 0 when the video is muted setting flag muted=true / muted should be enough. When unmuting the default value should be restored

Coverage remained the same at 74.376% when pulling f6bb41bfa8f51a2be61fc75ee35b1765435faf1b on jaapmarcus:bugfix-#2780 into b9e74bd8c79d598ff23d94a384d8ae9afe180cc1 on mediaelement:master.

Very good, so now should we start testing on 4.2.16 version?

Very good, so now should we start testing on 4.2.16 version?

please test from here https://github.com/mediaelement/mediaelement/tree/4.2.17-rc1 (build/ is ready to use)

Is there any news about the testing of 4.2.17rc1 yet? Have used it for the last 2 weeks without any issue yet however haven't enough time to test all the different features / changes

Is there any news about the testing of 4.2.17rc1 yet? Have used it for the last 2 weeks without any issue yet however haven't enough time to test all the different features / changes

Still no feedback, I will publish 4.2.17rc2 including more bugfixes ... as an official GR release, might attract more testers. Hope this release process is acceptable for the time being.

Released with version 4.2.17: https://github.com/mediaelement/mediaelement/releases/tag/4.2.17
@jaapmarcus Thanks for the contribution.


ip subscription manager

It was a draft because it used bring things from ahead of master of ouroboros-network, since that's already merged we can merge it when the CI passes.

bors r+

bors r+

bors r+

bors r+


Error running ResNet50 - Release 0.2 - incorrect argument label in call (have 'logits:labels:', expected 'logits:oneHotLabels:')

simple fix will submit PR.
return softmaxCrossEntropy(logits: logits, labels: oneHotLabels) ->

return softmaxCrossEntropy(logits: logits, oneHotLabels: oneHotLabels)

Thanks for raising this issue, looking forward to your PR!

I applied the update, created an Xcode project but it actually just gets stuck building.  I’m on a 13 in MacBook Pro / mojave 10.14.4 beta / Xcode 10.1 /tensorflow release 0.2 / this is stuck in limbo.


Fix logic errors in ampi::splitPhase1

Fixes invalid population of ampiCommStruct indices vector during MPI_Comm_split, exposed by LAMMPS examples/balance.

Draft because I think ampi::splitPhaseInter needs the same changes, but I'm not sure what the distinguishes it from ampi::splitPhase1 other than the call to parentProxy[0].ExchangeProxy(lastAmpi);, which I don't understand how to apply to my fixed splitPhase1 code. Does anyone know the answer?

Draft because I think ampi::splitPhaseInter needs the same changes, but I'm not sure what distinguishes it from ampi::splitPhase1 other than the call to parentProxy[0].ExchangeProxy(lastAmpi);, which I don't understand how to apply to my fixed splitPhase1 code. Does anyone know the answer?

Intercommunicators in AMPI are composed of two ampi chare arrays. When an intercommunicator is passed into MPI_Comm_split, I believe we split both communicators that compose the original intercommunicator separately in order to create two new communicators with their own chare array proxies, then the root ranks of both must exchange chare array proxies in order to save them in ampi::remoteProxy for future use in intercommunicator communications. So I think your changes should be copied pretty much directly into splitPhaseInter, leaving the ExchangeProxy's call at the end. Does that not work?


Implement focal operation available in ToolRun endpoint

This will require clever caching because each tile will require access to its neighbors. Each tile will be used once as a focal tile and up to eight times as neighbor tile. CompositeTile should be used to avoid array re-allocation when assembling the neighborhood.
Because the re-use rate will be so high for focal operations its not clear that memcache will provide sufficient performance or if focal operation tiles should be cached in memory (albeit with low limit on number of tiles to avoid heap OOM problems).

[ ] Benchmark memcache vs memory cache for focal operations in TMS.

Hard for me to imagine how routing gets handled for this - how can we be sure that tile z/x/y is handled by the same machine as tile z/x+1/y+1?


Linked templates in Private Git Repo/Azure DevOps

Is it possible to access Linked templates from Private GIT Repo on Azure Devops, if yes - please advise on how to do the Authentication and Authorization with private GIT repo ?
I have tried to provide Personal Access token but seems to be not working from ARM perspective but works from browser because I am already logged in to the Azure Devops Organization.
Please provide inputs on how to achieve this and thanks in advance.

You may have already figured this out by now, but we were not able to use the private repos. We ended up having to copy them to Azure blob storage to get it to work.


Make navbar stylish

remove hover text underline

I could work on this issue. Please assign it to me.

Hey @mohityadav0903, can I work on this issue for GSoC 2022?

Hello @mohityadav0903. I am a participant in GSSoC 2022 and I would like to work on this issue. Can you assign it to me,please

hey @varisha-025 you can work ok this issue. i want navbar brand in starting with an logo image and all navitems on right side with cool hover effects
.

Sure sir

Where should the login and register button be ?

You can put them at last on right side @varisha-025

@mohityadav0903 I have raised the PR. Please review it

I have got lots of issues. Please assign it to someone else.

hey @HarshKumarChoudary can u work on it

Yes, I will work on it.

hey @HarshKumarChoudary any updates?

I was working on it. I will create PR by tommorrow.
Could you please tell me what styles or enhancements do you need in the navbar.
Like did you want gradient effects or transparency etc.

color is ok just take a note on enhancements that i mentioned above

ok

@mohityadav0903 Just please share the logo which you want at the leftmost side.

I created the PR please review and merge it. Thanks.

hey can I work on this issue under GSSoC?

I had submitted the PR for it. It's under review.

Hello @mohityadav0903. I would like to work on this issue. Can you assign this to me?


Separate package.json tasks.

Also, remove JSHint devDependency; use bin/jshint directly, instead.

Coverage remained the same at 96.34% when pulling b9c2176870372bfeb85721f081cac2b75b5cf334 on XhmikosR:seperate-package.json-tasks into dd768c243af2bd3a8beb5e47768eef3ec7ab2e5e on jshint:master.

Coverage remained the same at 96.34% when pulling b9c2176870372bfeb85721f081cac2b75b5cf334 on XhmikosR:seperate-package.json-tasks into dd768c243af2bd3a8beb5e47768eef3ec7ab2e5e on jshint:master.

Coverage remained the same at 96.36% when pulling 934fd7b5938310edc09b2086d9ec6c2816bf7dd1 on XhmikosR:seperate-package.json-tasks into b3b41c8555da07eaeacb0648cdc8cbbec62c2f59 on jshint:master.


Add basic Continuous Integration (GitHub Actions)

Adds basic CI by adding a GitHub Actions 'workflow' for running the unit
tests. The intention would be to extend this to build packages and
possible store the results as artifacts.

This has addressed #21.


Joshfischer/eco docs redeux

Try number 2
@kramasamy @lucperkins
This pull request is not ready for review.  I am only opening now in case of needing feedback based on my current code.  This pull request contains:

[x] Documentation on how use ECO to be viewed on the static site
[x] The ability to add component level ram and jvm configs
[x] Property Substitution, either by environment variables or properties files passed in via command line.

I will check tasks off as I have them completed.  ~This branch should pass as soon as master is fixed.~

@kramasamy @lucperkins Please pull this branch down and verify the docs make sense and they work as expected.  I think we are good to go here.

@kramasamy All whitespace removed.

@kramasamy I've noticed my build broke a few times over the past week or so because of something outside of my code.<PHONE_NUMBER>2137_IntegrationTest_StatefulWindowingTest_ab0c695b-5236-47c6-9083-1c768c2275ed [2018-02-08 04:35:26 +0000] [ERROR]: FAILURE: 1/24 tests failed: [2018-02-08 04:35:26 +0000] [ERROR]:   - [54s]   :<PHONE_NUMBER>2137_IntegrationTest_OneBoltMultiTasks_e3887c7c-d59c-4131-ae87-f8e4b4ebd7fa
Have you seen this test fail before?  I think this is the one that keeps failing randomly

@jerrypeng - why does this test fail?

It could be transient failure as well - let me kick off the build again.

On Feb 8, 2018, at 11:46 AM, Josh Fischer<EMAIL_ADDRESS>wrote:
@joshfischer1108 commented on this pull request.
In eco/src/java/com/twitter/heron/eco/parser/EcoParser.java https://github.com/twitter/heron/pull/2703#discussion_r167047602:

}

private EcoTopologyDefinition loadTopologyFromYaml(Yaml yaml, InputStream inputStream) {
return (EcoTopologyDefinition) yaml.load(inputStream);

private EcoTopologyDefinition loadTopologyFromYaml(Yaml yaml, InputStream inputStream,

                                                InputStream propsIn,

                                                boolean envFilter) throws IOException {

ByteArrayOutputStream bos = new ByteArrayOutputStream();
int b;
while ((b = inputStream.read()) != -1) {

 bos.write(b);

}

String yamlDefinitionStr = bos.toString();
// properties file substitution
if (propsIn != null) {

 LOG.info("Performing property substitution.");

@kramasamy https://github.com/kramasamy Ok I will end some high level logging for each one of the steps. I will do this after master comes back to a passing state.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/twitter/heron/pull/2703#discussion_r167047602, or mute the thread https://github.com/notifications/unsubscribe-auth/AAWcRPduePVYnh1gOPFJYQU9pjqO46KZks5tS08RgaJpZM4R1Abt.

@kramasamy This wont work.  I pulled in changes from master.  The master branch build is broke.  So then my build will break regardless

@kramasamy We are good to go


WIP V3 Extension Update

This is about completed. There are a few things to fix, add, and remove.

Hi @Raistlfiren,
Awesome stuff.
Is this for Bolt 3? If so, then I might make:

a master and a release/3.0 branch for Bolt 3.x.x
a release/2.2 branch for Bolt 2.2.x

I've merged the other pull request with a few fixes, do you think you can rebase that or do we need to try and fix some merge conflicts?

@xiaohutai
This is for Bolt 3. Sorry for not clarifying. A summary of what I have done is listed below -

Refactored the storage layer to use the new one in Bolt 3
Abstracted filters, contains, page[number], page[size], and includes into a ParamConverter
Changed invalid and not found errors to exceptions that are caught by the app and displayed as a response
Put Menu method into ContentController because content methods were overwriting menu methods
Refactored out $app['paths']['baseurl'] to $app['paths']['hosturl']

$app['paths']['baseurl'] doesn't add port

A few things to do are

[ ] Add tests
[ ] Remove unneeded methods in APIHelper that were factored out
[ ] Search works for SINGLE items, NOT multiple content types right now (There isn't a way to do that with the new storage layer yet.)

Maybe use legacy search

[ ] Pagination is also not supported with the current Bolt storage layer yet so all results are fetched and arrays are sliced.
[ ] Fetching single items does not show previous or next link for results
[ ] PSR-2 compliance
[ ] fields are not fetched in JSONAPIConverter(Param Converter)

Hello @Raistlfiren ,
I went ahead and merged the other pull request (Bolt 2.2 version). Does this pull request need to be applied on top of that, or should I have branched it off before that pull request #16 ?
Thanks again for you hard work!

@xiaohutai - OK, I think this is ready for V3 now. There are still a few more tasks that would be nice to get completed like testing, but that can be done over time. I did notice an issue with the total results being returned when running COUNT(*). I am looking into the issue. I think it has to do with excluding groupBy in the query.
This should also resolve some of the issues as well like #14 - all routes now use the JSONAPI parameters, #11 - I used hostUrl for the baseUrl and it carries the port # with it, and #8 - checks datetime types to see if they are null before trying to apply a format to the object.


⚠ Mobitopup has degraded performance

In 14f1b1e, Mobitopup (https://napcard.voz.tech) experienced degraded performance:

HTTP code: 200
Response time: 3641 ms

Resolved: Mobitopup performance has improved in ff9ce5e after 417 days, 20 hours, 39 minutes.