Binaries cache

Share built binaries between several Hunter-ID directories. For now sharing implemented only for downloaded sources (${HUNTER_ROOT}/_Base/Download).
Need to check this idea is working:

Install package to package's specific location first => patch build schemes so they use HUNTER_PACKAGE_INSTALL_DIR instead of global HUNTER_INSTALL_PREFIX
Pack HUNTER_PACKAGE_INSTALL_DIR to *.tar.gz archive and move it to cache ${HUNTER_ROOT}/_Base/Cache
Save meta information using formula:

SHA1 of archive of sources +
SHA1 of cache *.tar.gz of dependencies +
SHA1 of toolchain.info +
SHA1 of args.cmake (build options, cmake_args) +
SHA1 of internal dependent files (like build scheme) (?) =
SHA1 of cache *.tar.gz

Unpack *.tar.gz archive from cache to HUNTER_INSTALL_PREFIX for each Hunter-ID build on cache hit (same meta information)

Some major problems to fix/implement:

Track dependencies for packages. In general we must track all dependencies transitively. Probably introduce some internal variable that holds information about currently building package and when hunter_download triggered use this variable to store info Foo depends on Boo.
Fix packages relocation problems. All packages must use CMake imported target format (like ZLIB::zlib). As far as I know this is the only sense way to make relocatable package that works nicely with transitive find_package commands with target usage requirement. Need to patch existing CMake builds + introduce imported version of Find* modules for non-CMake packages like Boost or OpenSSL

I'm testing this feature now. Code is in branch 'bin.cache'.
Release: https://github.com/ruslo/hunter/releases/tag/v0.10.0
As I've already mentioned not all the packages are relocatable by default.
Cache will be used only for packages that marked by hunter_cacheable command.
For now I've added some packages which I tested: TIFF, ZLIB and GTest.
I will add more so we can build GPUOpenCV from cache:

OpenCV (fix bug + dependent PNG)
Boost (fix bug)
cvmatio (can be cached already?)
GPUImage (can be cached already?)

and will close this bug, other packages will be added in future.
Some important changes which are visible by users:

successful build of cacheable package:

-- [hunter] Cache saved: /.../.hunter/_Base/Cache/raw/752c8b96f5613ee865c0cda5f3306d67e463a977.tar.bz2

successful cache look-up (reuse/unpacked from cache):

-- [hunter] Cache HIT: GTest

This is really cool.  I will take a look this weekend.

and will close this bug

This is technically more of a feature, isn't it?  Not that it matters.

hunter toolchain sharing

Question: Is it possible to specify identical polly toolchains that differ
only in use of the generator (same ABI, etc).  For example, I'd like to
make sure OpenCV and boost builds are generated 1x and shared between both
Unix Makefiles and Xcode CMake generator build trees for my current
project.  I haven't hunted around to see if this is already happening, and
have no idea what work is involved if it isn't happening.  Maybe that is a
messy feature, but if the config-id is the same it would seem to be
possible.
On Fri, May 1, 2015 at 11:40 AM, Ruslan Baratov<EMAIL_ADDRESS>wrote:

I'm testing this feature now. Code is in branch 'bin.cache'.
Release: https://github.com/ruslo/hunter/releases/tag/v0.10.0
As I've already mentioned not all the packages are relocatable by default.
Cache will be used only for packages that marked by hunter_cacheable
https://github.com/ruslo/hunter/wiki/dev.modules#hunter_cacheable
command.
For now I've added some packages which I tested: TIFF, ZLIB and GTest.
I will add more so we can build GPUOpenCV from cache:

OpenCV (fix bug https://github.com/ruslo/hunter/issues/81 +
dependent PNG https://github.com/ruslo/hunter/issues/114)
Boost (fix bug https://github.com/ruslo/hunter/issues/106)
cvmatio (can be cached already?)
GPUImage (can be cached already?)

and will close this bug, other packages will be added in future.
Some important changes which are visible by users:

successful build of cacheable package:

-- [hunter] Cache saved: /.../.hunter/_Base/Cache/raw/752c8b96f5613ee865c0cda5f3306d67e463a977.tar.bz2

successful cache look-up (reuse/unpacked from cache):

-- [hunter] Cache HIT: GTest
—
Reply to this email directly or view it on GitHub
https://github.com/ruslo/hunter/issues/74#issuecomment-98160611.

Question: Is it possible to specify identical polly toolchains that differ
only in use of the generator (same ABI, etc)

Well in general yes, but for now CMAKE_GENERATOR variable is part of the toolchain-id information. This is mainly because such generators like Visual Studio vs NMake and Makefile vs Xcode was building configurations (Release/Debug) differently. For now this is unified in one build scheme url_sha1_cmake. But there are some peculiarities I've noticed:

Seems that NMake doesn't work well with '/MP' (use all cores) option. Visual Studio generator use 100% of all available cores (from my experience)
Some packages is broken for Visual Studio, but works for NMake (see LLVM)

so what to choose exactly when you need to build Visual Studio/NMake ABI-compatible environment?
Probably same problems can occurs with Makefile vs Xcode, but in general if all other compatibility info  is the same I can just remove CMAKE_GENERATOR field from toolchain-id calculator and I expect it will work fine.

Version 0.10.7 has cacheable packages:

OpenCV (+ dependencies)
Boost (updated pkg.boost)
cvmatio
GPUImage

* Save meta information using formula:
    SHA1 of archive of sources +
    SHA1 of cache *.tar.gz of dependencies +
    SHA1 of toolchain.info +
    SHA1 of args.cmake (build options, cmake_args) +
    SHA1 of internal dependent files (like build scheme) (?) =
    SHA1 of cache *.tar.gz

SHA1 of internal dependent files (like build scheme) (?)

PACKAGE_INTERNAL_DEPS_ID added. See https://github.com/ruslo/hunter/issues/194.

It looks like this feature is only working for 1 dependency at a time


Consider alternatives to shell for e2e tests

Would like more reliable failure detection
Would like more portability
Robot framework? Pytest?
After change, how do we run jobs in parallel in ci?

I think we're happy enough with the shell scripts for now. If this comes up again organically, we can revisit it.


Add guidance on how to install NHS App Frontend

Similar to https://design.tax.service.gov.uk/hmrc-design-patterns/install-hmrc-frontend-in-your-prototype/

Guidance will need to be more like this https://design.tax.service.gov.uk/hmrc-design-patterns/updating-hmrc-frontend-in-your-prototype/


reorganise to allow simple passport integration

middleware has to introduced in the correct order to avoid freaking out Express
allow the database name to be used to store users to be supplied at runtime (allows multiple Envoy apps to run in the same Cloudant account)

+1


Compatibility request for Better With Mods

Better With Mods adds Soulforged Steel as an endgame (-ish) material. Requesting that hammers can be made using it.
https://minecraft.curseforge.com/projects/better-with-mods

This could happen yeah, will have some time to work on stuff this coming weekend.

Closed... after a long wait


Dreame Vacuum integration crash the home assistant core 2024.04

Core 2024.4.1
Supervisor 2024.03.1
Operating System 12.1
Dreame Vacuum v2.0.0b13
After the update, the HA integration crashed at the start of the cleaning process. I tried removing and adding the integration again, but the device still didn't work. I disabled all relevant automations and templates, but that didn't solve the problem either.
`2024-04-08 11:29:10.613 WARNING (SyncWorker_15) [custom_components.dreame_vacuum] Waiting render complete
2024-04-08 11:29:10.619 WARNING (SyncWorker_49) [custom_components.dreame_vacuum] Waiting render complete
2024-04-08 11:29:10.624 WARNING (SyncWorker_15) [custom_components.dreame_vacuum] Waiting render complete
2024-04-08 11:29:24.677 WARNING (Thread-1694) [custom_components.dreame_vacuum.dreame.map] Map update Failed: Traceback (most recent call last):
File "/config/custom_components/dreame_vacuum/dreame/map.py", line 1236, in update
if not self._request_map_from_cloud():
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/dreame_vacuum/dreame/map.py", line 272, in _request_map_from_cloud
self._add_cloud_map_data(partial_map_data, object_name, object_name_timestamp)
File "/config/custom_components/dreame_vacuum/dreame/map.py", line 655, in _add_cloud_map_data
return self._add_map_data(partial_map)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/dreame_vacuum/dreame/map.py", line 965, in _add_map_data
self._add_next_map_data()
File "/config/custom_components/dreame_vacuum/dreame/map.py", line 972, in _add_next_map_data
self._add_map_data(next_partial_map)
File "/config/custom_components/dreame_vacuum/dreame/map.py", line 781, in _add_map_data
map_data = DreameVacuumMapDecoder.decode_p_map_data_from_partial(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/dreame_vacuum/dreame/map.py", line 3660, in decode_p_map_data_from_partial
data[(combined_dimensions.width * (top_offset + y)) + left_offset + x] = current_map_data.data[
^^^^^^^^^^^^^^^^^^^^^^
IndexError: index out of range
2024-04-08 11:29:24.677 ERROR (Thread-1694) [custom_components.dreame_vacuum] Error requesting dreame_vacuum data: index out of range`

I think that's enough

@g470258 can you disable all notifications from the integration configuration to make sure this is related to that.

I can. And what will it do? Without them, there will be no trigger. Disabling automation. Notifications appear. The ha core works well.

I just had exactly the same.
I installed the latest beta version, added my Dreame and 2minutes later HA crashed. Unable to get it working again - instant crashes after reboot. I had to delete the Dreame-vacuum folder to restore HA.

Same problem with HA 2024.4.2

My HA crashes as well when i switch the floors. Sometimes at the first change. At the least at the second. It is reproduceable.I have a Dreame L20. Hopefully the next release will come soon.
Thanks to @Tasshack for this excellent integration.

I have the same problem, I was just working on my Home Assistant when it crashed the second i started my L20. It's reproduceable on my end here too.

I'm on 1.0.3. Crashing.

I ended up needing to disable the integration completely in order to update to 2024.5.0.  If I try to enable it on 2024.5.0, Home Assistant Core crashes.

I'm trying to pull logs, but attached is what I see in the console when it crashes.

I ended up needing to disable the integration completely in order to update to 2024.5.0.  If I try to enable it on 2024.5.0, Home Assistant Core crashes.

Same here, I posted issue, but it was closed as there's not enough information about bug...

I'm running Home Assistant OS with 8GB of RAM on x86.  Integration works fine on 2024.4.4

Proving or telling that your HA is not working with the integration is not enough for me understanding and fixing the underlying issue because I cannot reproduce it on my setup.

On the forums they write that the kernel is not being updated to 2024.5.0 when using integration 1.0.3.  When using the beta version this problem does not exist.


Slack Returning Error on Command

Describe the bug
When attempting to us a / command in slack associated with Dispatch I receive an error.
for example
/dispatch-assign-role failed with the error "http_client_error"
on the backend I get the following log error:
web_1        | INFO:     <scrubbed IP>:55234 - "POST /api/v1/events/slack/dispatch-update-incident HTTP/1.1" 404 Not Found web_1        | INFO:     <scrubbed IP>:64720 - "POST /api/v1/events/slack/dispatch-update-incident HTTP/1.1" 404 Not Found web_1        | INFO:     <scrubbed IP>:54206 - "POST /api/v1/events/slack/dispatch-update-incident HTTP/1.1" 404 Not Found web_1        | INFO:     <scrubbed IP>:64454 - "POST /api/v1/events/slack/dispatch-assign-role HTTP/1.1" 404 Not Found
I have been able to confirm that the Dispatch server is able to post to the channel when doing updates on incidents.
I have a suspicion that this may be because the document "INCIDENT_CONVERSATION_COMMANDS_REFERENCE_DOCUMENT_ID" that I point to is blank as there isn't a reference available in the documentation on expected syntax/config for it.
Any suggestions on where I might be missing something?
EDIT: Sorry I forgot to mention. I am running on the development branch with everything to the most recent version through docker.

Hi @alexa-kelley-vim, we use the same endpoint for all commands /api/v1/events/slack/command. Can you update the request url in all your commands and try again?

Thank you that seems to have done the trick for the /commands. Although now I'm noticing the following in the logs.
web_1        | Traceback (most recent call last):
web_1        |   File "/usr/local/lib/python3.8/site-packages/dispatch/decorators.py", line 35, in wrapper
web_1        |     result = func(*args, **kwargs)
web_1        |   File "/usr/local/lib/python3.8/site-packages/dispatch/incident/flows.py", line 874, in incident_update_flow
web_1        |     set_conversation_topic(incident)
web_1        |   File "/usr/local/lib/python3.8/site-packages/dispatch/incident/flows.py", line 400, in set_conversation_topic
web_1        |     convo_plugin.set_topic(incident.conversation.channel_id, conversation_topic)
web_1        | AttributeError: 'NoneType' object has no attribute 'channel_id'

actually it looks like that is part of a separate issue. I'm going to test further and create a separate issue on it. The core issue with the / slack commands has been resolved. Thank you.


[SUGGESTION] Allow/distribute differing levels of "starvation"

Currently, the mod tricks the game into thinking it is in normal mode. We could go a step further and trick the game into think it is any mode. From Peaceful (pointless) to hard (allowing starvation to kill the player). It's literally just a line change if someone wants to recompile the mod for this reason though.

I do like this idea, would definitely make the mod more complex though since I think this would require actual configs, and I'm not sure if you want the setting to be per-world or per-instance.
I can give it a shot whenever I find the time/motivation for it, though.

I actually started a fork using YACL but I've literally never coded in Java, let alone for Minecraft.


How to map with Plug?

Hi Folke,
Using which-key plugin that has being converted to lua was insane improvement to quick and slickness.
There is something I haven't gotten to work with this plugin.
let g:which_key_map['z'] = [ '<Plug>(zoom-toggle)'                                            , 'zoom' ]
This worked with the old plugin
When I tried to convert into lua , I haven't figured out why it doesnt seem to work at all.
vim.api.nvim_set_keymap("n", "<leader>z", "<Plug>(zoom-toggle)", {noremap = true, silent = true})
Any clue what I might be missing with this syntax?

noremap should be false, since what you want to achieve is literally remapping the <plug> key to another command ;)

You can also pass the plug to register to let WhichKey handle it. We automatically set noremap=false for <Plug> commands.

something like:
wk.register({
  ["<leader>z"] = { '<Plug>(zoom-toggle)' , 'zoom' }
})

:D Thanks, damn I was dull for not noticing that its remapping.
If I am not wrong the improvement with registers is actually giving ability to map without using leader key  and have a cheatsheet type of help.
Thats insanely cool.
Like I mapped to leader as I had now clue how to get the
z to work.
wk.register({
  ["<C-w>z"] = { '<Plug>(zoom-toggle)' , 'zoom' }
})

wk.register({
["z"] = { '(zoom-toggle)' , 'zoom' }
})
This worked perfectly! The improvement is insane!

Glad you like it 😄


feat: Export React component Props types

Feature Request
Ionic version:

[x] 4.x
Describe the Feature Request

I want to access the Prop types in TypeScript of the Ionic components. Use case: I have a component that wraps an IonButton and passes the props along to the button.
Describe Preferred Solution

The example is a bit contrived, but it shows you want gist of it:
import { IonButton, IonButtonProps } from '@ionic/react';
import React from 'react';

// Create a new type based on the IonButton props so I can pass all those to the button
type Props = Exclude<IonButtonProps, 'onClick'> & {
  onSomethingSpecial?: () => void;
}

const Thing: React.FC<Props> = (props) => {
  const btnProps: IonButtonProps = {...props};
  return <IonButton {...btnProps} onClick={(e) => onSomethingSpecial()}>{props.children}</IonButton>
}
export default Thing;

Describe Alternatives

None that I know of. On Slack, it was mentioned that type Props = typeof IonButton.arguments has type any.

There is a workaround via React.ComponentProps but it would still be nice for the prop and component types to be exported from the library:
import { IonButton } from '@ionic/react';
import React from 'react';

// *** Use React.ComponentProps to get the type of the props ***
type IonButtonProps = React.ComponentProps<typeof IonButton>;

// Create a new type based on the IonButton props so I can pass all those to the button
type Props = Exclude<IonButtonProps, 'onClick'> & {
  onSomethingSpecial?: () => void;
}

const Thing: React.FC<Props> = (props) => {
  const btnProps: IonButtonProps = {...props};
  return <IonButton {...btnProps} onClick={(e) => onSomethingSpecial()}>{props.children}</IonButton>
}
export default Thing;


Init the wallet on call without arguments if not already done

Description
I think it would make sense to also init the wallet if you just call ./wallet without arguments. Wdyt? Init could also be totally removed. But I don't like that idea...
Or show help if there is nothing initialized yet. But I prefer the first one that.
Motivation
Many people will just run the binary without arguments at first run.
Are you planning to do it yourself in a pull request?
Maybe.

We could check if the db folder exists and run the init method automatically if not

The whole team decided to keep the init command and not call it on ./wallet without arguments.


[uart/dv] Update uart baud rate and add coverage

Address #3599
Signed-off-by: Weicai Yang<EMAIL_ADDRESS>

@weicaiyang seems like this PR fell through the cracks. Can you rebase this PR and merge it?

@weicaiyang seems like this PR fell through the cracks. Can you rebase this PR and merge it?

thanks @imphil for reminding. This is actually blocked by #4263. Let me follow up that with Tim next week.


SortOrder not handled as Array

In iron-data-table sortOrder can be an array to allow multiple sort columns but in data-table-column-sort is handled as plain object. Also sort arrows are not accessible, why just not use paper-icon-button?
Here is a patch allowing configure the sort position in the sortOrder and change div by paper-icon-button to make #sortIcon accessible (only need to configure aria-label, need change iron-data-table also); also allow clear state up-down-newClick sequence -> direction must be reset and propagated to the UI:
Index: x-app-polymer/src/main/polymer-starter-kit-1.2.3/app/bower_components/iron-data-table/data-table-column-sort.html
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- x-app-polymer/src/main/polymer-starter-kit-1.2.3/app/bower_components/iron-data-table/data-table-column-sort.html	(revision )
+++ x-app-polymer/src/main/polymer-starter-kit-1.2.3/app/bower_components/iron-data-table/data-table-column-sort.html	(revision )
@@ -10,38 +10,43 @@
         margin: 4px;
       }

-      #sortIcon {
+      paper-icon-button {
-        position: relative;
+          position: relative;
-        width: 24px;
-        height: 24px;
+          opacity: .16;
       }

-      iron-icon {
-        fill: rgba(0, 0, 0, .16);
-        cursor: pointer;
-        padding: 0px;
+      paper-icon-button[active], paper-icon-button:hover, paper-icon-button[focused] {
+          opacity: .84;
+      }
+
+      paper-icon-button ::content iron-icon {
+        padding: 0;
         --iron-icon-width: 24px;
         --iron-icon-height: 24px;
         transition: all .2s;
       }

-      iron-icon[active], iron-icon:hover {
-        fill: rgba(0, 0, 0, .87);
+      paper-icon-button[direction='desc'][active] ::content iron-icon {
+        transform: rotate(-180deg);
       }

-      paper-ripple {
-        color: rgba(0, 0, 0, .54);
+      paper-icon-button[direction]:after {
+        content: attr(sort-order);
+        font-size: 9px;
+        font-weight: bold;
+        position: absolute;
+        right: 4px;
+        bottom: 8px;
       }
-
-      #sortIcon[direction='desc'] iron-icon[active] {
-        transform: rotate(-180deg);
-      }
     </style>

-    <div id="sortIcon" on-tap="_sort" hidden="[[hidden]]" direction$="[[direction]]">
-      <iron-icon active$="[[_isActive(path, sortOrder)]]" icon="arrow-upward"></iron-icon>
-      <paper-ripple class="circle" center></paper-ripple>
-    </div>
+    <paper-icon-button id="sortIcon"
+                       on-tap="_sort"
+                       hidden="[[hidden]]"
+                       icon="arrow-upward"
+                       active="[[_isActive(path, sortOrder)]]"
+                       direction$="[[direction]]"
+                       sort-order$="[[_computeSortOrder(path, sortOrder)]]"></paper-icon-button>

   </template>
   <script>
@@ -49,7 +54,10 @@
       is: 'data-table-column-sort',

       properties: {
-        direction: String,
+        direction: {
+            type: String,
+            notify: true
+        },
         hidden: Boolean,
         path: String,
         sortOrder: {
@@ -59,13 +67,45 @@
       },

       _isActive: function(path, sortOrder) {
+        if(Array.isArray(sortOrder)) {
+          return sortOrder.find(function(item) {
+            return item.path == path;
+          }) !== undefined;
+        }
         return path === sortOrder.path;
       },

       _sortOrderChanged: function(sortOrder) {
+        if(Array.isArray(sortOrder)) {
+          var path = this.path;
+          var sort = sortOrder.find(function(item) {
+            return item.path == path;
+          });
+          if(sort) {
+            this.direction = sort.direction;
+          } else {
+            this.direction = null;
+          }
+        } else {
-        if (sortOrder.path === this.path) {
-          this.direction = sortOrder.direction;
+          if (sortOrder.path === this.path) {
+            this.direction = sortOrder.direction;
+          } else {
+            this.direction = null;
-        }
+          }
+        }
+      },
+
+      _computeSortOrder: function(path, sortOrder) {
+        if(Array.isArray(sortOrder)) {
+          var sort = sortOrder.find(function(item) {
+            return item.path == path;
+          });
+          return sort && sort.order ? sort.order: null;
+        }
+        if (path === sortOrder.path) {
+          return sortOrder.order ? sortOrder.order : null;
+        }
+        return null;
       },

       _sort: function() {

Hi! Could you send this patch as a pull request? Thanks!

Multi-sort has been included on iron-data-table: see filtering.html in demo directory

Using shadow dom instead shady dom, the icon must be changed/rotated manually, I haven't found a way to access iron-icon inside paper-icon-button and rotate image via CSS.

Thanks for looking into this!
I did intentionally add the sortOrder property as an array to provide API for multi-column sorting in the future, but decided to post-pone the actual implementation because I wasn't sure how it should work from the users perspective.
I won't be unfortunately to look into your patch deeply before Tuesday, but I'll check it out asap.
So, if I understood correctly from your initial comment, sorting parameters will be persistent through filtering and sorting other columns, and will be reset by clicking on the sorting icon two or three times in a sequence? I must say it's an interesting idea, is there any reference implementation that works like this? Because I can't remember seeing this kind of behaviour anywhere.

Oh and, for the rotation, could we just rotate the whole paper-icon-button element?

Hi Sailus:
The logic to keep sortOrder is not present in iron-data-table, the logic resides in another element wrapping iron-data-table. I need this functionallity so I have done this manually (see filtering.html).
The sequence is clicking three times (on the same column): first time will sort asc (as single sorting), second time will sort desc (as single sorting) and the third click will remove the sorting (instead of sort asc again like single sort does). Once removed sorted column, if there is more than one column sorted, then the same criteria is applied; if only one sorted column, fallback to default sorting (see modified _sort function); in all cases, the sort action will propagate sortOrder object to iron-data-table. This function is not included in the logic, I must find a way to include it (see filtering.html) in iron-data-table.
About this behavior, I usually include a second "button" to remove the sorted column when aria-sorted attribute is present in thead.th. I'm working to include aria-* in data-table-column-sort and maybe I will try to include a new attribute to allow multi-sort, so the user will not need to include its own logic.
About the rotation: I rotate the paper-icon-button, but the sort-order is included as paper-icon-button:after decorator with its content as attr(sort-order), so all is rotated (also the number, so it will appear rotated/inverted on the left upper corner).

Bye.

About the persitence of the filter and the sortOrder: if the user press F5 both, filter and sortOrder, will be lost. I use in my logic an iron-localstorage to prevent lost this data, I only reset currentPage for pagination to 0 first time page is loaded. Maybe this can be also included in iron-data-table.

Rotation: apply transform(-180deg) when paper-icon-button[direction='desc']:after

I'd probably would bind the sort-order in a separate element outside paper-icon-button instead of using the :after

I have change the behavior and I have included clear sort button. This button also works on single sort. So, multi-sort works like single-sort with multiple columns (asc then desc and so on until click on clear button).

My pull request also include aria-sorted and aria-sort attributes to data-table-column-sort

I added my own version built on top of your first two commits - I liked more the original sorting behaviour without the clear icon.
Changed the sortOrder property to be an array always, so there is no need to add any custom logic by the user to enable multi-column sorting.
Didn't add the aria attributes at this point yet, let's do it in a separate patch, I have few questions regarding them which I'd like to discuss with you in the chat

ok

Finally, you must review template code, it is extremelly slow on mobile devices. On my Sony Xperia Z4 tablet (Android,3Gb, 64bit processor...), rendering 175 items with 5 columns takes more than 10s!!!. In my Sony Xperia Z3 Compact phone, takes more than 1 minute!!!!!!.
In fact, on desktop, this sample also freezes the transition of the SPA when entering the page that renders this iron-data-table (just a few hundred miliseconds, but the effect is visible: more than 100ms in render time is slow). You can see it opening chrome developer tools and activating timeline capture: press F5 on any sample page and analize the results.
This is why I can't use any **-data-table implementation, all are based on Templatizer, my projects require mobile support (android, ios, windows...). My x-table just take miliseconds, the template is rendered directly.

I'm actually testing continuously with an iPhone 5S and Surface Pro3 tablet – trying to take mobile devices seriously into account also, unfortunately don't have any Android devices right now.
Haven't bumped into major performance issues before, but after trying with 10-20 columns I can clearly see that there is a problem even on desktop devices. According to Chrome profiler the issue is the node distribution caused by having a <content> element injection separately for each cell.
Looks like I need to redesign the whole element tree structure.


"Promise<Response | undefined>" is not a valid POST return type

I am getting the follow error when deploying to vercel:
Failed to compile.
16:09:50.139 | src/app/api/webhooks/route.ts
16:09:50.140 | Type error: Route "src/app/api/webhooks/route.ts" has an invalid export:
16:09:50.140 | "Promise<Response | undefined>" is not a valid POST return type:
16:09:50.140 | Expected "Response | Promise", got "Promise<Response | undefined>".
16:09:50.140 | Expected "Promise", got "Promise<Response | undefined>".
16:09:50.140 | Expected "Response", got "Response | undefined".
16:09:50.140 | Expected "Response", got "undefined".
`
but I have not changed this file. Any one guess what is happening?

Same. I have not made any changes and now getting this error in build output.

In the webhook this line is the problem:
if (!sig || !webhookSecret) return
You actually need to throw an error here so that the error will be caught and a Response can be returned.
Like this:
if (!sig || !webhookSecret) throw new Error("Missing Stripe Signature or Webhook Secret!")

I'm facing the same issue,
I tried to replace ReturnType<MaybeField<TEntry, 'POST'>> with Response | Promise<Response>
but when I run npm run build it switch back to ReturnType<MaybeField<TEntry, 'POST'>>
error
Type '{ __tag__: "POST"; __return_type__: Promise<Response | undefined>; }' does not satisfy the constraint '{ __tag__: "POST"; __return_type__: Response | Promise<Response>; }'.
  Types of property '__return_type__' are incompatible.
    Type 'Promise<Response | undefined>' is not assignable to type 'Response | Promise<Response>'.
      Type 'Promise<Response | undefined>' is not assignable to type 'Promise<Response>'.
        Type 'Response | undefined' is not assignable to type 'Response'.
          Type 'undefined' is not assignable to type 'Response'.

Thanks @jonkurtis it solved the issue 👍

Opened a PR to fix this issue.

https://github.com/vercel/nextjs-subscription-payments/pull/278


Can we use Box<> + thread local instead of Arc<>

This would be pretty ugly, let's shelve it for now.


db and log-related bug fixes

in addition to this PR i updated the mongo conn string in Secrets (in Settings on the repo) to make sure it didnt have quotes. we were getting conn issues (only in docker,,, so clearly some version differences)
i also updated the Discord conn string because we asked joey to refresh it.


Matrix protocol

We now have the method matrix in a few classes (various linear combinations and pauli strings since #3096). We should define a protocol for this to make it easier to endow objects (especially the not-necessarily unitary ones) with matrix representations.
Then we can take advantage of it in protocols.unitary so that objects that have a matrix also have a unitary (as long as the returned matrix is_unitary). This would simplify classes that currently have both matrix and _unitary_.
Also, we should rename matrix to _matrix_.

Discussed on Cirq Cynq: Let's figure out where introduce this protocol would help reducing duplication.

@cduck pointed out that we should use the protocol if we have types that don't know their matrix, but conceptually have a matrix that can be computed via other properties (c.f. unitary computing unitary from decomposition etc).
This suggests that protocol may in fact be appropriate - it would infer matrix from unitary and so we would only need to add _matrix_ to types that don't have unitaries (a lot fewer than all objects that conceptually have a matrix). WDYT?

In addition to the first point, I think there should be some need for users to ask for the matrix of an arbitrary object without needing to know the object's type.  Do you have a case where you use gate.matrix instead of cirq.unitary(gate)?
In other words, what does mat = cirq.matrix(obj) mean?  What can I do with mat without inspecting the type of obj?


Copied D3 to submission folder

Aiden Hebert (25%) - contributed to section 1. (Also, worked on website's frontend.)
Cathy Ly (25%) - contributed to sections 1 and 2. (Also worked on website's frontend.)
Devin Jay (25%) - contributed to sections 1 and 2. (Also worked on website's backend.)
Faith Ononye (25%) - contributed to sections 1 and 2. (Also worked on website's backend.)


Set test to ignore failed MBean registration

This is also what I added to some other tests. I think we may need to annotate all tests this way.


[web]: RichText inconsistencies in Dark mode, TextSpan has black color in Web only

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce
Execute Code Sample below
Expected results
Show white text on dark background (for web only)
Actual results
Shows black text on dark background (for web only). All other platforms work fine. Also using Text.rich works as expected.
Code sample
Code sample
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'RichText Dark Demo',
      themeMode: ThemeMode.dark,
      theme: ThemeData.light(),
      darkTheme: ThemeData.dark(),
      home: Scaffold(
        appBar: AppBar(title: Text('RichText Dark Demo')),
        body: Center(
          child: Column(children: [
            Divider(),
            Text.rich(TextSpan(text: "Text.rich()")),
            Divider(),
            RichText(text: TextSpan(text: "RichText()")),
            Divider(),
          ]),
        ),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
Left: Web, Right: Linux

Logs
Logs
[Paste your logs here]

Flutter Doctor output
On stable, but also reproducible on latest master.
Doctor output
[✓] Flutter (Channel stable, 3.16.0, on Ubuntu 23.10 6.5.0-13-generic, locale en_US.UTF-8)
    • Flutter version 3.16.0 on channel stable at /opt/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision db7ef5bf9f (2 weeks ago), 2023-11-15 11:25:44 -0800
    • Engine revision 74d16627b9
    • Dart version 3.2.0
    • DevTools version 2.28.2

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /home/gustl/Android/Sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_SDK_ROOT = /home/gustl/Android/Sdk
    • Java binary at: /usr/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.9+9-Ubuntu-123.10)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • Ubuntu clang version 16.0.6 (15)
    • cmake version 3.27.4
    • ninja version 1.11.1
    • pkg-config version 1.8.1

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).

[✓] IntelliJ IDEA Ultimate Edition (version 2023.2)
    • IntelliJ at /opt/intellij-idea-ultimate
    • Flutter plugin version 76.3.4
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] Connected device (2 available)
    • Linux (desktop) • linux  • linux-x64      • Ubuntu 23.10 6.5.0-13-generic
    • Chrome (web)    • chrome • web-javascript • Google Chrome 119.0.6045.199

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

Thanks for the report @Gustl22
Although I do see the same behavior as reported specially on web, I cam across this comment which might be one of the reason as why the theme may not be applicable to RichText. Can you check the same and see if it helps further ?

One of the differences between Text.rich and RichText is that the former inherits default text styles from the app's theme, while the latter doesn't. The dark theme of your sample app has a white-ish color for text, and that is what's used for Text.rich().
RichText's style, on the other hand, has no color (because you didn't specify one, and it didn't inherit it from the theme). This means it'll use whatever color the underlying engine decides (if you pay close attention in your right screenshot, the color of RichText() is slightly "whiter" than Text.rich()).
By switching the themeMode to light instead of dark, I got this:

It turns out, if you don't specify a color, the text always defaults to black on the web, and white on other platforms.
The recommendation here is to always specify the style of your text. Either use Text.rich() so it inherits the styles from the theme, or if you use RichText you should specify any and all text styles that you care about.

Thanks for explaining. But it would be good to actively discourage developers from using RichText without styled components.

The recommendation here is to always specify the style of your text. Either use Text.rich() so it inherits the styles from the theme, or if you use RichText you should specify any and all text styles that you care about.

Wouldn't it make sense to add a mechanism, to drop a warning (either in the editor, or while compiling), if a TextSpan has no style? This would protect from unintended styling.
I can't imagine any use case where a developer wants that behavior.


Arnej/target num hits alias

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.
@bratseth please review
@geirst FYI

random aside: SelectParser code does (int) annotation.asDouble(), but I think it's better to do (int) annotation.asLong() since it's almost certainly a long internally.


cmd/go: go mod edit commands does not sort the resulting go.mod file with multiline replace block

follow-up on https://github.com/golang/go/issues/30897 regading go.mod sorting (after go mod edit)
What version of Go are you using (go version)?

$ go version
go version go1.12.5 darwin/amd64

Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
darwin

What did you do?
ran the following command with an existing go.mod file that include a multiline replace clause:
go mod edit<EMAIL_ADDRESS>What did you expect to see?
the new replacement added in the existing multiline replace ( [...] ) block in the sorted order
What did you see instead?
The following line appended at the end of the go.mod file - therefore not inside the existing replace block and not sorted with other entries:
replace github.com/google/go-github/v25 => git.myxyz.com/mirror-github/google--go-github/v25 v25.0.4

/cc @bcmills @jayconrod


Pilot OOM cause envoy return 503 NR

Bug description
In our scenes, we use envoy as gateway， pilot as the controller.
Recently，cause of ram pilot OOM. At the same time, envoy return 503 and the response flag is NR.
In envoy log ,we find no cluster

when pilot restarting , the route is ok, and return 200.
Expected behavior
How to avoid this scenes, when pilot OOM restart， not affect envoy route.
Steps to reproduce the bug
**Version **
we use istio: 1.4
envoy: 1.12
Additionally, please consider attaching a cluster state archive by attaching
the dump file to this issue.

Was the route that is 503ing actively changing? Ie a new service or virtual service or something is created then pilot OOM shortly after?

Was the route that is 503ing actively changing? Ie a new service or virtual service or something is created then pilot OOM shortly after?

Before pilot OOM, the route is ok.  But i found some ads pushing at the same time pilot OOM.

so it pushes some bad config then it crashes? can you provide. more info like logs and how much memory is used

Also please be aware of https://istio.io/latest/news/support/announcing-1.4-eol-final/

so it pushes some bad config then it crashes? can you provide. more info like logs and how much memory is used

Cause of endpoint changing，pilot OOM. At the same time, envoy return some 503 route. memory is 8G.
I can got crashing pilot logs,

Can you upgrade Istio? Even if we find a bug in Istio 1.4 we won't fix it, and we have made tons of performance optimizations since then

and see https://github.com/istio/istio/wiki/Analyzing-Istio-Performance

Hi, I'm colleague of @ethanhanjiahao . we have reproduced that pilot send bad config to envoy, it is similar to https://github.com/istio/istio/issues/20295 .
To make it easier to reproduce, we disable pilot GC to simulate OOM and set pilot replicas to 1, set initial readiness probe delay seconds to 60s .
The timeline is as following:
07:16:46 pilot OOM , config grpc closed , envoy first try to reconnect failed, envoy second try to connect failed
07:16:47 pilot container started
07:16:49 envoy reconnect success
07:16:51 pilot pod ip removed from iptables
07:18:23 pilot pod ready
There is a high latency between pilot pod crash and iptables update ( 07:16:46 ~ 07:16:51 , due to kube-proxy cpu throttle), so even if pilot is not ready, envoy can connect to pilot.
Istio version is 1.2 , there is an option to let grpc server start after cache synced, but it is not enabled in our deploy. So envoy can establish connection to pilot even if pilot is not ready.
My concern is pilot should not assume readiness probe is always reliable. seeing from master, there is no guarantee for that.
@howardjohn
following is packets captured during envoy reconnect

Thanks for the findings! @ramaraochavali I thought you had some code for  this, did it get lost?

No. There we have only handled the case for local Envoy by pushing https://github.com/istio/istio/blob/master/pilot/pkg/bootstrap/server.go#L362 and relying on readiness probes for other Envoys?
There are two issues I see here

In Istiod we do not have a check in readiness probe that validates caches have been synced. It is easy to add that.
Based on the above description, it looks like  even if add cache sync to readiness probe - Envoys still might connect. I think we should reconsider this PR https://github.com/istio/istio/pull/20296 (which we have reverted in-favour of relying on readiness probes) which rejects connections till caches have been synced.

WDYT?
If we agree with that approach, I can push a PR to cover both.

Yeah sounds reasonable to reject connections. Note: our syncing is still
broken a bit, see https://github.com/istio/istio/pull/24339
On Tue, Jul 21, 2020 at 7:13 AM Rama Chavali<EMAIL_ADDRESS>wrote:

No. There we have only handled the case for local Envoy by pushing
https://github.com/istio/istio/blob/master/pilot/pkg/bootstrap/server.go#L362
and relying on readiness probes for other Envoys?
There are two issues I see here

In Istiod we do not have a check in readiness probe that validates
caches have been synced. It is easy to add that.
Based on the above description, it looks like even if add cache sync
to readiness probe - Envoys still might connect. I think we should
reconsider this PR #20296 https://github.com/istio/istio/pull/20296
(which we have reverted in-favour of relying on readiness probes) which
rejects connections till caches have been synced.

WDYT?
If we agree with that approach, I can push a PR to cover both.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/issues/25495#issuecomment-661886670, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEYGXNN4PK55GUZA5DOUN3R4WPB5ANCNFSM4OZPQKIA
.

Ok. I will take a look and push a PR then

This https://github.com/istio/istio/pull/25733 should address this. Please let us know if there are any open issues. I am closing this issue.


Modify the ClassCode Feature

Curently the classcode generated is s a 6 digit number which needs to be corrected to an alphanumeric character.

The  problem is that the number is generated ina sequential manner and it is easy to guess which needs to be corrected.
IT can be made alphanumeric so that it can't be guessed directly


Client erroneously URL-encodes slashes in DOI

When calling the client method work with a DOI, the slashes in that DOI are URL-encoded by the client, which leads to a 404 - not found response. This seems like a mistake.
Example DOI 10.1093/nar/gkac331
Request made by client to https://api.crossref.org/works/10.1093%252Fnar%252Fgkac331.
Working request https://api.crossref.org/works/10.1093/nar/gkac331.

No problems. I have updated the code to no longer url-encode the "/" for the DOI and have added a test with your example. Everything is passing and the 1.0.2 has been published to NPM.
Thanks for raising the issue.

Appreciate the fast response, thank you!


Update C++SDK 2.4.1

Fixed issue where fail to join conference if the conference was created without rtcp_mode specified
Audio levels event now returns local participant audio level even if muted

@pczaj could you please approve this one so I can merge it. Thanks in advance.


Deploy new version on nuget

Hi,
Can you deploy a new version on nuget to fix some issues?
Last version was deployed on 2017-06-28.
Thanks!

I will, it is just a bit difficult, as I am about to go on a short vacation, and do not want to release it without testing across the board.

To not keep you waiting, I have uploaded a test version, it has the label "pre1" to allow for you to test it, and if it works out, I can rename it and make it final when I get back:
https://www.nuget.org/packages/TensorFlowSharp/1.3.0-pre1


Near-alignment of subsurfaces

TBD will process OpenStudio subsurfaces (e.g. doors, windows, skylights) to generate fenestration-related edges (e.g. heads, jambs, sills) as linear thermal bridges. Whenever individual subsurfaces share common edges (e.g. side-by-side windows, true corner windows or corner curtainwall vision sections), TBD ignores such common edges - the presumption is that these are similar to fenestration dividers - the derating effect of which is already factored in overall fenestration U-factor calculations/testing. Our general recommendation to modellers (when applicable): align model subsurfaces (along shared edges) - e.g. avoid leaving a 25-mm band between subsurfaces. Why not? TBD would label 2x nearly-aligned subsurface edges as 2x window jambs (for instance), when in reality there are likely none. TBD would in turn thermally derate parent surfaces (e.g. a host wall), when in fact it shouldn't. A similar situation occurs when subsurfaces are near (yet not aligned) with parent surface edges. While we consider this as bad input, we do recognize that many third-party packages generate such cases behind the scenes, that there are legacy models in circulation, etc. We suggest introducing a subsurface edge tolerance (e.g. 50 mm), whereby nearly-aligned subsurfaces (or near-corner subsurfaces) aren't unduly generating derating processes. Some may argue 100 mm is a more suitable threshold. In progress ...

I briefly looked through the TBD guide and I didn't see a section on sub surfaces, I would suggest adding one if it doesn't already exist.  Sub surface vertices should include the outer frame so I think two sub surfaces would have to be at least a 2'x4' apart (or two). I think this is where your 50 mm and 100 mm limits come from so both those limits make sense to me.

Completely agree. The Guide will be updated once the preferred solution is merged and TBD re-released.


Add form validation to contact form

Currently we don't have any kind of validation for the form present in the contact page.

@prajwalkulkarni could you like to take this up?

@padmajabhol Yeah, sure I can work on this.

can i work on this ?

@MoatazNasr thanks for offering, but let's give prajwal the chance to work on this :)


Cleanup Agent integration tests

Use github.com/stretchr/testify/assert assertions "correctly" to
reduce verbosity
Skip TestIPv6RoutesAndNeighbors when IPv6 is not supported - in
particular the test was failing on macOS when using 'make
docker-test-integration'

Codecov Report

Merging #1726 (a6bc74e) into master (9d3d10b) will decrease coverage by 22.88%.
The diff coverage is 37.19%.

@@             Coverage Diff             @@
##           master    #1726       +/-   ##
===========================================
- Coverage   63.31%   40.43%   -22.89%
===========================================
  Files         170      107       -63
  Lines       14250    13340      -910
===========================================
- Hits         9023     5394     -3629
- Misses       4292     7466     +3174
+ Partials      935      480      -455

Flag
Coverage Δ

kind-e2e-tests
?

unit-tests
40.43% <37.19%> (-0.85%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

cmd/antrea-agent/agent.go
0.00% <0.00%> (ø)

pkg/agent/agent.go
12.20% <0.00%> (-36.51%)
:arrow_down:

pkg/agent/agent_linux.go
0.00% <0.00%> (-100.00%)
:arrow_down:

...g/agent/cniserver/interface_configuration_linux.go
5.79% <0.00%> (-14.44%)
:arrow_down:

pkg/agent/cniserver/pod_configuration.go
34.52% <0.00%> (-19.24%)
:arrow_down:

pkg/agent/config/node_config.go
0.00% <0.00%> (-100.00%)
:arrow_down:

...gent/controller/noderoute/node_route_controller.go
32.57% <0.00%> (-13.90%)
:arrow_down:

...agent/controller/traceflow/traceflow_controller.go
0.00% <0.00%> (-82.70%)
:arrow_down:

pkg/agent/proxy/proxier_linux.go
0.00% <0.00%> (-25.00%)
:arrow_down:

pkg/agent/querier/querier.go
66.66% <0.00%> (-21.50%)
:arrow_down:

... and 169 more

Codecov Report

Merging #1726 (a6bc74e) into master (9d3d10b) will decrease coverage by 22.88%.
The diff coverage is 37.19%.

@@             Coverage Diff             @@
##           master    #1726       +/-   ##
===========================================
- Coverage   63.31%   40.43%   -22.89%
===========================================
  Files         170      107       -63
  Lines       14250    13340      -910
===========================================
- Hits         9023     5394     -3629
- Misses       4292     7466     +3174
+ Partials      935      480      -455

Flag
Coverage Δ

kind-e2e-tests
?

unit-tests
40.43% <37.19%> (-0.85%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

cmd/antrea-agent/agent.go
0.00% <0.00%> (ø)

pkg/agent/agent.go
12.20% <0.00%> (-36.51%)
:arrow_down:

pkg/agent/agent_linux.go
0.00% <0.00%> (-100.00%)
:arrow_down:

...g/agent/cniserver/interface_configuration_linux.go
5.79% <0.00%> (-14.44%)
:arrow_down:

pkg/agent/cniserver/pod_configuration.go
34.52% <0.00%> (-19.24%)
:arrow_down:

pkg/agent/config/node_config.go
0.00% <0.00%> (-100.00%)
:arrow_down:

...gent/controller/noderoute/node_route_controller.go
32.57% <0.00%> (-13.90%)
:arrow_down:

...agent/controller/traceflow/traceflow_controller.go
0.00% <0.00%> (-82.70%)
:arrow_down:

pkg/agent/proxy/proxier_linux.go
0.00% <0.00%> (-25.00%)
:arrow_down:

pkg/agent/querier/querier.go
66.66% <0.00%> (-21.50%)
:arrow_down:

... and 169 more

LGTM except that I have a few suggestions on error/log messages.

LGTM except that I have a few suggestions on error/log messages.

Thanks @lzhecheng, I think I have addressed all your comments

Thanks @lzhecheng, I think I have addressed all your comments

/skip-all

/skip-all


how to use put?

 Can you give me an example?

I needed patch instead of put to update an item....

I would like to get some example about put method. I have been tring all noon but right now I don't have success.

[UPDATE]
This working for me: firebase_app.put('/alertas', '1', data_firebase)
This not working for me: firebase_app.put(url='/alertas', name='1', data=data_firebase, connection=auth)


Fix input ANR in the Godot Android editor

Follow up to https://github.com/godotengine/godot/pull/76399 to fix input ANR in the Godot Android editor
3.x version

Thanks!

Cherry-picked for 4.0.3.


switch sample app to postgres

For https://github.com/Activiti/Activiti/issues/1368
Have verified that it's using postgres by querying the DB directly using dbVisualizer on jdbc:postgresql://localhost:5432/mydb

Great stuff! this is the way to go!


Use API v2 to load committee detail page.

This makes this page load lighter and faster, by requesting only the necessary fields from the API. For the list of committee meetings this makes a huge difference, as long textual content and linked items don't need to be loaded.
In the spirit of iteration, the V2 API only supports the content required for the cte detail page right now. We can build up the support for the other pages over time.
See #145

@smmbll


Log issue in convertProntoCode.js

Dear,
If I had used an Pronto HEX code for a IR code without a space for a . There was a problem like a below error message.
Maybe, The log hadn't used in convertProntoCode.js.

Homebrige's log
May 27 22:06:14 raspberrypi homebridge[31982]: (node:31982) UnhandledPromiseRejectionWarning: TypeError: log is not a function
May 27 22:06:14 raspberrypi homebridge[31982]:     at prontoToLIRC (/usr/lib/node_modules/homebridge-broadlink-rm/helpers/convertProntoCode.js:10:5)
May 27 22:06:14 raspberrypi homebridge[31982]:     at convertProntoToBroadlink (/usr/lib/node_modules/homebridge-broadlink-rm/helpers/convertProntoCode.js:68:22)
May 27 22:06:14 raspberrypi homebridge[31982]:     at module.exports (/usr/lib/node_modules/homebridge-broadlink-rm/helpers/sendData.js:12:15)
May 27 22:06:14 raspberrypi homebridge[31982]:     at SwitchAccessory.performSend (/usr/lib/node_modules/homebridge-broadlink-rm/accessories/accessory.js:45:7)
May 27 22:06:14 raspberrypi homebridge[31982]:     at SwitchAccessory.setSwitchState (/usr/lib/node_modules/homebridge-broadlink-rm/accessories/switch.js:90:29)
May 27 22:06:14 raspberrypi homebridge[31982]:     at SwitchAccessory.setCharacteristicValue (/usr/lib/node_modules/homebridge-broadlink-rm/node_modules/homebridge-platform-helper/accessory.js:139:10)
May 27 22:06:14 raspberrypi homebridge[31982]:     at emitMany (events.js:147:13)
May 27 22:06:14 raspberrypi homebridge[31982]:     at Characteristic.On.emit (events.js:224:7)
May 27 22:06:14 raspberrypi homebridge[31982]:     at Characteristic.On.Characteristic.setValue (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Characteristic.js:320:10)
May 27 22:06:14 raspberrypi homebridge[31982]:     at Bridge. (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:871:22)
May 27 22:06:14 raspberrypi homebridge[31982]:     at Array.forEach (:null:null)
May 27 22:06:14 raspberrypi homebridge[31982]:     at Bridge.Accessory._handleSetCharacteristics (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:811:8)
May 27 22:06:14 raspberrypi homebridge[31982]:     at emitMany (events.js:147:13)
May 27 22:06:14 raspberrypi homebridge[31982]:     at HAPServer.emit (events.js:224:7)
May 27 22:06:14 raspberrypi homebridge[31982]:     at HAPServer._handleCharacteristics (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:972:10)
May 27 22:06:14 raspberrypi homebridge[31982]:     at HAPServer. (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:209:39)
May 27 22:06:14 raspberrypi homebridge[31982]:     at emitNone (events.js:106:13)
May 27 22:06:14 raspberrypi homebridge[31982]:     at IncomingMessage.emit (events.js:208:7)
May 27 22:06:14 raspberrypi homebridge[31982]:     at endReadableNT (_stream_readable.js:1064:12)
May 27 22:06:14 raspberrypi homebridge[31982]:     at _combinedTickCallback (internal/process/next_tick.js:138:11)
May 27 22:06:14 raspberrypi homebridge[31982]:     at process._tickCallback (internal/process/next_tick.js:180:9)
May 27 22:06:14 raspberrypi homebridge[31982]: (node:31982) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 3)
May 27 22:06:14 raspberrypi homebridge[31982]: (node:31982) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Same for me. Code is:
0000007000000024000F000B0006000B000600170006000B0006001D000600170006000B0006000B0006000B0006000B0006001700060011000600170006000B0006000B0006001D0006000B00060D0F000F000B0006000B000600170006000B0006001D000600170006000B0006000B0006000B0006000B0006001700060011000600170006000B0006000B0006001D0006000B00060CEA

Same for me. Code is: ...

@chrjsthis is not a valid HEX code to me.
Sent with GitHawk

@cubilon, you're right is not correct. I figured out I need to enter the pronto code by putting a space after each 4 digits block. Doing this, the system seems work properly and the code is accepted. Anyhow seems there is still the bug related to the missing log() method declaration in case the code is not properly formatted.

I think that log() had been missed and have to add it to a below line.
hexData = convertProntoCode(hexData) -> hexData = convertProntoCode(hexData, log)
https://github.com/lprhodes/homebridge-broadlink-rm/blob/3939cf5c606a322897bd57a8b2d00d1efbfaa96f/helpers/sendData.js#L12

try this converted code:
260066006a350d0d0d0d0d270d0d0d270d0d0d0d0d0d0d270d270d0d0d0d0d0d0d270d270d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d270d270d0d0d0d0d0d0d0d0d270d0d0d270d270d0d0d0d0d0d0d0d0d270d0d0d0d0d0d0d270d0d0d0d0d0d0d0d0d0005810d05


Accept OpenCensus SpanContext on requests

Signed-off-by: Justin Terry (VM<EMAIL_ADDRESS>

Host side changes: https://github.com/microsoft/hcsshim/pull/662


Update jackson-annotations, jackson-core, ... to 2.17.0

About this PR
📦 Updates

com.fasterxml.jackson.core:jackson-annotations
com.fasterxml.jackson.core:jackson-core
com.fasterxml.jackson.core:jackson-databind

from 2.14.3 to 2.17.0
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.fasterxml.jackson.core" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.fasterxml.jackson.core" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #613.


Apply environ and path changes before other imports

In python 3.12 you need to modify the paths before the import happens or else the execution will fail complaining with the error ModuleNotFoundError: No module named 'train_network', as referenced in issue #101
In this PR I moved the environ and path changes to right after the os and sys imports. This makes the app launch successfully in python 3.12

Thank you, My bad!


Plasma widgets listed multiple times

The Plasma "Add Widgets" menu lists some widgets multiple times. The widgets are listed twice because of the new KDE wrapper system: one listing from the wrapper, and one listing for the profile-installed path. Either kpackage or plasma-framework should be patched to canonicalize paths and remove duplicate entries.
Affects Plasma 5.4.2 with Frameworks 5.15.
Waiting on #10731.

No longer an issue with Plasma 5.5.


Update README.md

Updating Twitter handler for clintrutkas

/azp run

Wouldn't it make more sense to link the GitHub handles?

Wouldn't it make more sense to link the GitHub handles?

It could be the 2 handlers. I was looking to follow people on the project and Twitter handlers were exactly what I was looking, and GitHub handles make sense since the project is in GitHub.

GitHub handlers added to the PR

need to close / reopen to get the checks to run with the new system.


adds Eliatra to partners page

Description
This change adds Eliatra to the partners page for OpenSearch. https://eliatra.com/company/
By submitting this pull request, I confirm that my contribution is made under the terms of the BSD-3-Clause License.


[Python] Mappings that implement __arrow_c_schema__ never have their method invoked

Describe the bug, including details regarding any error messages, version, and platform.
The implementation of pyarrow.schema doesn't allow objects that are Mappings to take advantage of __arrow_c_schema__ because Mapping is checked before __arrow_c_schema__ is checked.
This seems like a bug considering that custom schema objects naturally fit into the Mapping concept.
Would it make sense to swap the order here and first check for __arrow_c_schema__ and then check whether an object is a mapping?
Component(s)
Python

Good point, thanks for the issue!
I don't think there was a specific reason for this order in the code (added in https://github.com/apache/arrow/pull/37797, cc @wjones127). Will do a PR to switch the order.

-> https://github.com/apache/arrow/pull/43486

Issue resolved by pull request 43486
https://github.com/apache/arrow/pull/43486


refactor for CLI tool

PR chain note: follows https://github.com/Lay3rLabs/avs-toolkit/pull/25, is followed by https://github.com/Lay3rLabs/avs-toolkit/pull/29
this does not complete #2, but I figured it should be its own PR since it might look like a lot of changed files and would be easier to review without introducing any real logic changes on top of that
in reality the only thing it adds is an empty stub for "task queue" commands
a subsequent PR will build on this to actually add the command handling
this one refactors so that we have a much better base to build on for all kinds of CLI commands and subcommands that go beyond "deploy contracts", and cleans up some bad variable naming I introduced earlier ("args" vs. "cli args", creating clients inside of args, etc.)

merging this since it was approved and the only change was a simple rename, but happy to carry on the bigger discussions here or another venue!

Happy for you to make an issue (in CLI? in avs-tooling? elsewhere?) about building a better CLI, so we can track it. Maybe it gets pulled into "housekeeping"


Appinsights

This isn't relevant.  Please fork resourcehealth branch into your own repo and do a PR from your fork into the main resourcehealth branch.


Get invalid coverage report

I cloned this repo, and tried to run the spec/nested coverage report test using:
rm luacov.*
lua -lluacov test.lua
luacov

This generated a luacov.report.out that matched expected.out.
Then test.lua to be
local testlib = require "testlib"
local luacov = require "luacov.runner"

testlib.f1()

i.e. just include the testlib, call method f1 but don't run any tests. Re-running the luacoverage report, I now get the following output:
==============================================================================
testlib.lua
==============================================================================
 1 local a = 1
 1 local b = 2

 1 local lib = {}

 1 function lib.f1()
 1    local c = 3
 1    return 4
   end

 1 function lib.f2()
*0    local d = 5
*0    return 6
   end

 1 return lib

==============================================================================
Summary
==============================================================================

File        Hits Missed Coverage
--------------------------------
testlib.lua 8    2      80.00%
--------------------------------
Total       8    2      80.00%

It is saying that I have a coverage of 80%, which I do not; the mere act of require the test file into the test file is causing it to be counted as covered test.

it is correct: 80% of the lines were covered. The percentage does not indicate the percentage of functions covered, but that of lines.

That ... seems like a really terrible test coverage reporting. Test coverage should cover the number of source code lines that were actually tested, not called.

What is you definition of "tested"?


improve folly

Since I still cannot figure out why cachelib is failing to build with clang, this pull request only submits its byproduct, which enables the building of libdwarf in folly. This can enhance folly's functionality further.

除非必要，一般这边的包，尽可能都是最小化依赖，依赖越多，安装越慢，越容易出错。。
另外，如果当前依赖是可选的，建议做成 configs 让用户能够自己开启或者禁用部分可选依赖。。


Failed to open stream: Operation not permitted

After all I managed to install the Pagekit succesfuly (trouble with PeaZip not showing/extracting most of the files in ZIP). Now I want to install extensions/themes, but every single one (except for Shortcuts which somehow installed after many tries) gives me similar error:

Loading composer repositories with package information
Updating dependencies

Installing pagekit/theme-hello (1.0.3)
Downloading
The "https://pagekit.com/package/pagekit/theme-hello/1.0.3.zip" file could not be downloaded: failed to open stream: Operation not permitted

Pagekit version: 1. 0. 8.
Webserver: Apache
Database: MySQL   5.5.5-10.1.14-MariaDB
PHP Version: 5.6.16

Seems like external downloads are not permitted in your environment. Are your running at localhost or online hoster (if yes which one?)?


App.js code is not working.

I'm created the react native project using the react-native init project name
Project created successfully and runs fine on the android device.

Now it writes the below code in theApp.js file.

`export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {
};
}
render() {
return
}
}
const AppStackNavigator = new createStackNavigator({
Home: { screen: Home },
})
const NavStack = createAppContainer(AppStackNavigator);`
Now, still, the project displays the welcome to React Native! which is displaying at project creation time.

Hey @noahtallen, thanks for filing
Note that this issue tracker is not a help forum, we're going to close and recommend posting to StackOverflow. If you believe this is a bug and not a question, please update the description to use our bug issue template and we'll consider re-opening 👌


feat: replace mysql keywords/reserved words

This is for https://github.com/X-Profiler/xprofiler-console/issues/36
Please let me know if the changes are not proper.
Thanks

As suggested, let me close this one


DCD-221: Hard-quote passwords as they may have shell-interpreted symbols

Looks good, is there anywhere else in the template this could bite us

There shouldn't be, but I'll do another PR that quotes everything. I wanted to keep this one simple though.


Update Walkthrough Creating traditional Windows Desktop Apps.

This PR updates this article on ms docs. The code has been updated to use CreateWindowEx.

@thispsj : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@thispsj : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@corob-msft any problems with the PR ?

@thispsj
Thanks for bringing this sample from the late '80s into the early '90s. I've been vacationing and not paying close attention to the repo. Your changes are mostly fine, though I don't see much value in changing the wcex.hIcon load from using the parameter hInstance to using the copy in the struct. In optimized code, the value is enregistered at that point, so it makes no difference, while in debug code it could conceivably cause an extra memory access. (I haven't checked the assembly output to verify.) Did you have a purpose or style guideline in mind for that change?

@corob-msft Here are the assembly output for both cases in debug mode.

This is one of my small projects which uses WCNDCLASSEX structure to create the window. Here the variable assigned to the structure is wcx and not wcex. That's the only difference in the cpp code.
As you see in the assembly, the mov instruction directly registers the pointer to hInst (the HINSTANCE variable) when directly passed while when wcex.hInstance is used it passes that pointer. Otherwise it's the same.
And one more thing, the sample code is itself using wcex.hInstance to load the small icon. So, to my main purpose was to use the same logic as applicable everywhere because I've seen people asking that why is it different in the same code (i.e. at one place hInst and at the another wcex.hInstance.


update critical vulnerabilities

This updates 2 vulnerable go packages:

golang.org/x/net to version v0.17.0
golang.org/x/text to version v0.13.0

Thanks for the pointer - this repo was indeed just a fork of a internal tool and not maintained very well.
I've bumped all dependencies in https://github.com/AOEpeople/kubernetes-sidecar-cleaner/commit/21cbd3f096b79ee0f00fd50f8e957aca7a359de6 and enabled renovate to get updates more frequently. I'll close this one but wanted to thank you for taking care!


Add Kerosene REAL by Crystal Castles

Song Name
Kerosene REAL
Artist Name
Crystal Castles
Source
Youtube
Youtube Link
qR2QIJdtgiU
Direct File Link
No response
Song ID
785995
Start Offset [ms]
0
Extra
Created from Auto Nong.
Created for level: 108259280

accept


Create interface testing system

Because each of the models should be implementing the same HierarchicalModel interface, I should be able to make some sort of TestCase mixin thing, like this
from django.test import TestCase

class AdjacencyListModelTests(HierarchicalModelTests[AdjacencyListModel], TestCase):
    pass

Although due to migrations I might possibly need to replace [AdjacencyListModel] with [SomeAdjacencyListModelSubclass].

I've got a drawing of 32 nodes and how I would like to assemble them for testing. I'll use these to add some extended tests to the test suite.

I'm realizing that for these tests to be deterministic, there will need to be a parameter added to the children method (and the direct_children method) so that the order the children get chosen in can be set.

At that point it might be worth it to pass in a lambda parameter so you can transform the queryset to your liking? Not just with a call to order_by.

I should also probably take off the name fields from the test model and just put in an integer field so I can identify the models. That reminds me that I also might have to define __eq__ on HierarchicalModel.Node so that I can assert that trees of children are equal.

Got the argument added to the get children stuff so that you can specify the order that you get children in.

Got the test model switch to an integer field instead of name fields.


Fix getRandomSeedBasedOnDate.

According to MDN:
Date.prototype.getDay() returns the day of the week (0–6) for the specified date according to local time.
Date.prototype.getDate() returns the day of the month (1–31) for the specified date according to local time.
getDate() should be used here.


[allegro5] How do I use it?

After doing
vcpkg install allegro5 imgui[allegro5-binding]

I've tried, in my CMakeLists.txt these three lines (independently):
find_package(allegro5 CONFIG REQUIRED)

find_package(allegro CONFIG REQUIRED)

find_path(ALLEGRO5_INCLUDE_DIRS "allegro5.h")

But none succeeded.
Here is a full example:
CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
cmake_policy(SET CMP0048 NEW)
project(pp VERSION 0.0.0 LANGUAGES C)

file(DOWNLOAD https://raw.githubusercontent.com/liballeg/allegro5/0b3a999/examples/common.c src/common.c
     EXPECTED_HASH SHA256=6c9f62f2a5ea9fac1a75ed51033511a31e08671b7edcb70413dd6c623a486e95)

file(DOWNLOAD https://raw.githubusercontent.com/liballeg/allegro5/0b3a999/examples/ex_get_path.c src/main.c
     EXPECTED_HASH SHA256=bedf8955e8b7f709b5b8a64392dd2d4d06a0de78e1f317c4ae012a169def065d)

set(src ${CMAKE_CURRENT_BINARY_DIR}/src/main.c)

# find_package(allegro5 CONFIG REQUIRED)  # Could not find a package configuration file
# find_package(allegro CONFIG REQUIRED)   # Could not find a package configuration file
# find_path(ALLEGRO5_INCLUDE_DIRS "allegro5.h")  # ALLEGRO5_INCLUDE_DIRS-NOTFOUND
add_executable(${PROJECT_NAME} ${src})

# target_link_libraries(${PROJECT_NAME} PRIVATE allegro)   # ld: library not found for -lallegro
# target_link_libraries(${PROJECT_NAME} PRIVATE allegro5)  # ld: library not found for -lallegro5

sh
$ [path]/vcpkg install allegro5 imgui[allegro5-binding]
$ mkdir build && cd $_
$ cmake -DCMAKE_TOOLCHAIN_FILE=[root]/vcpkg/scripts/buildsystems/vcpkg.cmake ..
$ cmake --build .
# `fatal error: 'allegro5/allegro.h' file not found` when everything is commented.
# Also tried with `<>` rather than `""`.

@SamuelMarks, allegrao5 doesn't provide cmake config and targets file officially, so please use find_path() and find_library() instead.
See installing-and-using-packages. Please also submit a request to Upstream.

The changes in my PR #19493 will provide the following usage:
The package allegro5:x86-windows provides CMake targets:

    find_package(unofficial-allegro5 CONFIG REQUIRED)
    # Note: 9 target(s) were omitted.
    target_link_libraries(main PRIVATE allegro allegro_ttf allegro_font allegro_main)

The changes in my PR #19493 will provide the following usage:
The package allegro5:x86-windows provides CMake targets:

    find_package(unofficial-allegro5 CONFIG REQUIRED)
    # Note: 9 target(s) were omitted.
    target_link_libraries(main PRIVATE allegro allegro_ttf allegro_font allegro_main)

This is auto-generated? It seems inconsistent to have unofficial in the find_package() call but not in the target names.

@dg0yt  Yes. it's auto-generated. Since the we use the origin target names, it's reasonable.

@dg0yt  That's why it's unofficial.

how to add the correct include directories?


Swarm does not import swarm size, alignment, or creature type

Taking the SRD's Swarm of Bats as an example:
Swarm of Bats
Medium swarm of Tiny beasts, unaligned

Armor Class 12
Hit Points 22 (5d8)
Speed 0 ft., fly 30 ft.

STR	DEX	CON	INT	WIS	CHA
5 (−3)	15 (+2)	10 (+0)	2 (−4)	12 (+1)	4 (−3)
Damage Resistances bludgeoning, piercing, slashing
Condition Immunities charmed, frightened, grappled, paralyzed, petrified, prone, restrained, stunned
Senses blindsight 60 ft., passive Perception 11
Languages --
Challenge 1/4 (50 XP)

Echolocation. The swarm can't use its blindsight while deafened.
Keen Hearing. The swarm has advantage on Wisdom (Perception) checks that rely on hearing.
Swarm. The swarm can occupy another creature's space and vice versa, and the swarm can move through any opening large enough for a Tiny bat. The swarm can't regain hit points or gain temporary hit points.

Actions
Bite. Melee Weapon Attack: +4 to hit, reach 0 ft., one creature in the swarm's space. Hit: 5 (2d4) piercing damage, or 2 (1d4) piercing damage if the swarm has half of its hit points or fewer.

The imported statblock looks like this:

The desired statblock would look like this:

This is fixed in V1.4.4. About the swarm size, that was already correct. The swarm itself is medium, even though the creatures are tiny.


Update init.py

Reintroduce my modification as per:
Get calories for all activities #93
Use Get Activity (getActivityById) API method to get calories for all activities

Merged 3.2.24 into main


Change the UI of the Website

Multiple people can work.
Design given Below.
Link : https://www.behance.net/gallery/128585513/Library-Website-Design

Ui for reference: https://www.behance.net/gallery/128585513/Library-Website-Design?tracking_source=for_you_feed_user_published

Design Link - https://www.figma.com/file/wD7EOjKlTZqh3Yt9eZmPoB/ACELIBRARY_Landing-Page?node-id=1%3A2

I would like to work on this issue.Could you please assign?

@HetviSoni You can start work on this.

Is open for contribution?

@charlygg Yeah, Create a PR!

Hey Sourav I want to work on this issue can you please assign me this ?


Error running migration for empty (image) Collection records

Issue Summary
I get __fake__.DoesNotExist error (at this line) when attempting to run 0023_add_choose_permissions migration.
Steps to Reproduce

Clear all collections added as per the docs.
Run python manage.py migrate

I expected the migration to run to completion without assuming there will always be an instance of wagtailcore.Collection.

I have confirmed that this issue can be reproduced as described on a fresh Wagtail project: yes

Technical details

Python version: 3.8.5.
Django version: 3.2.11.
Wagtail version: 2.14.2.
Browser version: https://www.whatsmybrowser.org/b/LBLWR.

Closing as per above - I don't think it's possible to create the conditions for this error without directly modifying the database, but if you can provide more detailed steps to reproduce then I'd be happy to reconsider.

@gasman This is apparently an non-issue. The database I was working on was corrupt hence the weird error. Thanks for the assistance though.

Glad you got to the bottom of it! For future reference - if it's an issue that only occurs on one particular database and can't be reproduced on a new installation, please answer 'no' to "I have confirmed that this issue can be reproduced as described on a fresh Wagtail project". We rely on this being answered accurately so that we're not spending resources on investigating bug reports that are only local issues.


Add dataframe mixin

This is an incomplete PR as there are still changes to be made, but I wanted to put this up there to see if this is what you guys had in mind. I've added a DataFrameMixin to the base module, and then subclassed Epochs to this. I also added in a few checks to decide what indices to give the multi-index object, but this is probably too Epochs-specific right now (e.g., it's currently calling shape[2] in several places even though this won't exist if we're using a Raw instance). Let me know how this looks / any suggestions, and I'll make changes accordingly.

OK, some more changes made, let me know what you think. Do you think that any new tests need to be made, other than re-naming tests to use "to_data_frame" rather than "as_data_frame"?
Also, I haven't tested out the SourceEstimate case yet, because I don't really know what that is and couldn't figure out how to construct one with dummy data (I kept getting a vertices ordering error). I can try to work this out if someone points me in the right direction, but have assumed that it behaves similarly to Evoked classes.
As an aside, in testing this out I noticed that the EpochsArray allows you to construct an object with different numbers of events in the data array vs. the events id array. E.g., you can do something like:
n_events = 5
data = np.random.randn(n_events, 10, 1000)
info = mne.create_info(['{0}'.format(i) for i in range(10)], 100,
                       ch_types=['eeg' for _ in range(10)])
events = np.array([[10, 0, 2],
                   [20, 0, 1]])
epochs = mne.EpochsArray(data, info, events)

I feel like this should throw an error, but maybe I'm not noticing something?

I think that should throw a warning -- there might be cases where users have lots of event types, only some of which exist for each subject, as in the case of press-dependent event numbering.
Here is a usable SourceEstimate of random data for the subject fsaverage:
stc = mne.SourceEstimate(np.random.randn(20484, 5),
                         [np.arange(10242), np.arange(10242)],
                         0, 0.001, 'fsaverage')

If you can add simple tests for all cases, that would be good. It could just be exporting the data, and making sure the right data shape and indices came through.

Will do - have some work to catch up on today, but I have a flight tomorrow
morning so I'm hoping to work out some of these PRs then. That said, the
flight is to New Orleans for a bachelor party, so I will be very
unproductive after I land :)
On Mon, Jan 26, 2015 at 10:04 AM, Eric Larson<EMAIL_ADDRESS>wrote:

If you can add simple tests for all cases, that would be good. It could
just be exporting the data, and making sure the right data shape and
indices came through.
—
Reply to this email directly or view it on GitHub
https://github.com/mne-tools/mne-python/pull/1760#issuecomment-71506790.

2015-01-27 18:46 GMT+01:00 Chris Holdgraf<EMAIL_ADDRESS>
Will do - have some work to catch up on today, but I have a flight
tomorrow
morning so I'm hoping to work out some of these PRs then. That said, the
flight is to New Orleans for a bachelor party, so I will be very
unproductive after I land :)

:)

On Mon, Jan 26, 2015 at 10:04 AM, Eric Larson<EMAIL_ADDRESS>
wrote:

If you can add simple tests for all cases, that would be good. It could
just be exporting the data, and making sure the right data shape and
indices came through.
—
Reply to this email directly or view it on GitHub
https://github.com/mne-tools/mne-python/pull/1760#issuecomment-71506790.

—
Reply to this email directly or view it on GitHub
https://github.com/mne-tools/mne-python/pull/1760#issuecomment-71692739.

make the bachelor party a hackathon it will make it really unique and
memorable :)

Where are we here? Any chance we can merge this soonish? Let me know if you need help.

#1837

Hey - let me take a look at this and see what's left to be done. I'll get
back in the next day or two.
On Sun, Mar 8, 2015 at 7:23 PM, Denis A. Engemann<EMAIL_ADDRESS>wrote:

Where are we here? Any chance we can merge this soonish? Let me know if
you need help.
—
Reply to this email directly or view it on GitHub
https://github.com/mne-tools/mne-python/pull/1760#issuecomment-77790999.

So as far as I can tell, the main thing would be to add tests for this. As a first step I tried modifying the test_epochs.py function so that it uses to_data_frame instead of as_data_frame. As you mentioned before, all functionality should be pretty much the same thing otherwise.
A single line of code fails (if I comment it out, then it works):
assert_raises(ValueError, epochs.to_data_frame, np.arange(400))

However, I'm not sure why. I get the following error which makes me think it's not due to my change in code:
File "/Users/choldgraf/github/mne-python/mne/io/base.py", line 102, in to_data_frame
if not in1d(picks, np.arange(len(self.events))).all():
NameError: global name 'in1d' is not defined

I've updated the PR to reflect this change in tests.
Other than this, it seems like what's left to do is:

Import the DataFrameMixin to these objects: TFRAverage, SourceEstimate
Make sure that the dataframe tests that were already written for these now use to_dataframe

Does this sound right to you? Also, as for changing the name from "as_data_frame" to "to_data_frame", should I just remove the old function, or point it to the new one?

@choldgraf silly question, is in1d imported from mne.fixes?

Does this sound right to you? Also, as for changing the name from "as_data_frame" to "to_data_frame", should I just remove the old function, or point it to the new one?

We should deprecate it. say git grep derpecated in the command line to get an idea of the pattern.

@choldgraf silly question, is in1d imported from mne.fixes?

Ah, yes! I didn't add the import to base as well. I should either take a break or drinks some more tea :)

Is the merge failing because I've renamed the test?

@choldgraf probabably because the MNE master branch is already in the future, you want to insert the past into its history. You need to switch to master, pull, switch back to your branch and rebase master to get your commits on top, such that they represent the future as seen from the master branch.

ok, definitely going to need a cup of tea for that. I'll tell you how it goes.

@choldgraf the reason why this matters is that epochs.py has changed on master. Git does not know how to deal with it. Prepare a good cup of tea and ping us if you need some contact.
 When I tried to rebase I got an error in merging epochs.py Need to figure out how to inspect exactly what went wrong, but I'm working on it.

@choldgraf this may seem scary, but it's simple.
Spot the lines that are no Python code.
In the first line you would find HEAD, followed by the code diff on master. then a separator ====.
then your conflicting code. then the commit hash.
You need to remove all 3 lines that are no valid Python code and be diplomatic. Prefer the code that belongs to HEAD unless you wanted to change it. In the latter case make your intended modifications. Once you're done pay a visit to git and add the file you just edited, for example:
git add mne/epochs.py
then tell git to git rebase --continue
and repeat this procedure if needed.

I prefer using git mergetool to take care of that stuff (removing non-python lines, actually merging the files, and doing the git add) for me, so my iteration is usually
git fetch upstream
git rebase upstream/master
git mergetool
git rebase --continue
git mergetool
git rebase --continue
...

meld is a particularly useful tool for such 3-way merges

Did not know about mergetool + meld, thanks @Eric89GXL

Cool, I think it worked. Didn't think about using a mergetool but it makes sense since rebasing is basically just doing a ton of merges in a row, right? The conflict was in the imports, but should be fixed now.

@choldgraf yes looks clean!

@choldgraf once Travis is happy, can you build docs or run the related examples manually to see if we're good?

Well, the test that I've got is just for epochs, I should add/modify the respective tests for Evoked, Raw, SourceEstimate, and TFRAverage, no?

I should add/modify the respective tests for Evoked, Raw, SourceEstimate, and TFRAverage, no?

at least minimally to make sure all conditionals inside the method get executed and return.

ok, I'll add the mixin for SourceEstimate and TFRAverage, will update
tests, and will try to run examples tomorrow. (or tonight if I've got some
extra time after getting my other work done)
On Tue, Mar 10, 2015 at 6:44 PM, Denis A. Engemann<EMAIL_ADDRESS>
wrote:

I should add/modify the respective tests for Evoked, Raw, SourceEstimate,
and TFRAverage, no?
at least minimally to make sure all conditionals inside the method get
executed and return.
—
Reply to this email directly or view it on GitHub
https://github.com/mne-tools/mne-python/pull/1760#issuecomment-78185332.

ok, I'll add the mixin for SourceEstimate and TFRAverage, will update
tests, and will try to run examples tomorrow. (or tonight if I've got some
extra time after getting my other work done)

brilliant! Looks like we're very close.

I am happy if travis and @dengemann are happy

Question - I'm looking into the SourceEstimate code now, and I wonder if this is worth having its own to_data_frame method. The reason for this is that SourceEstimate seems to be unique in that columns are vertices, as opposed to "time". The ToDataFrameMixin is already becoming a bit clunky since there are lots of checks (e.g., if it's Epochs, do this, if it's Raw, do that). Would we rather have everything in one mixin, or keep the SourceEstimate separate?

One other thing - it looks like the AverageTFR doesn't currently have an "as_data_frame" method. For the sake of getting this PR done, should that extra functionality come with another PR?

@choldgraf you can handle all this in the mixin.
Special operations go in conditionals in which you test if self is instance of class SourceEstimate, etc.
But you can add the support for AverageTFR later.

OK, tests are passing for epochs and evoked. The Raw tests seem to skip, maybe this is because loading data is required? How can I make this continue? After this I think I just need to add the SourceEstimate and corresponding tests.

Try mne.datasets.testing.data_path(), it should trigger testing data
download

or use the tiny raw fix file we ship in the repo

OK, I made some triaging edits, picks edits, and warnings catching edits per comments from @Eric89GXL. Here's a quick breakdown:

Add picks check to the top of the triage because I'm using self.ch_names in every case now.
Removed the warning and added a print statement that time column is being converted to int64 (not sure how you guys feel about print statements but at least this is more verbose?)
Triaged so that all of the object-specific stuff is done with a single if/then section

Still need to add SourceEstimate, but at least the current code works on test_evoked and epochs

@agramfort could you give a bit more direction on using the "tiny" data set? I tried downloading the full dataset with data_path() but running nosetests keeps skipping the function. I did some searches for "tiny" data set in the repo but couldn't find anything obvious...

see
https://github.com/mne-tools/mne-python/blob/master/mne/io/tests/data/test_raw.fif
HTH

TY - I'll get this working soon
On Sun, Mar 15, 2015 at 2:56 PM, Alexandre Gramfort <
<EMAIL_ADDRESS>wrote:

see
https://github.com/mne-tools/mne-python/blob/master/mne/io/tests/data/test_raw.fif
HTH
—
Reply to this email directly or view it on GitHub
https://github.com/mne-tools/mne-python/pull/1760#issuecomment-81257246.

OK, I think SourceEstimate is working now. This object has a pretty different structure from the Epochs/Evoked/Raw objects, so I had to add another switch to do special stuff with this. While the code passes tests, IMO the ToDataFrameMixin code is a little bit "indenty" right now. Maybe there's a smarter way of doing this than I've done here? Either way, thoughts are appreciated!

It looks like you've done just about all you can to unify the arguments / simplify the conditionals. Sometimes it takes a lot of indentations, but to me the flow is still pretty clear. Even without you saying so, it's clear that SourceEstimates are different from Evoked/Epochs (which makes sense because one is source vs sensor space), then within evoked/epochs there are other differences -- and they are unified as soon as possible to continue onward. Nice!

Ping me once the CIs are happy and I'll merge. I imagine this will hurt our coverage a bit because the deprecated functions aren't checked, but that's okay because we can quickly remove them post-release.

Can you just check that test time isn't adversely affected? You can do e.g.
nosetests mne/tests/test_source_estimate --with-timer

on master and then on your branch and make sure the tests you modified didn't increase in time. They shouldn't have, since you're doing very similar operations.

Here are the results for three runs of each on source_estimate:
On master: .296, .284, .281
This branch: .299, .288, .281
And for test_epochs (now only testing test_data_frame because the whole file takes a little while to run):
On master: 2.30, 2.08, 2.07
On this branch: 2.54, 2.55, 2.53
How much would be too much of a difference?

Every little bit counts, but that doesn't look too bad to me.

So looking at the appveyor build, it seems like the docstring is messed up. I think this is because I've got both start and stop on the same line in the docstring for to_data_frame...does that sound right?
e.g., from the error logs:
mne.io.base.Epochs.to_data_frame in doc ['start, stop']

Yeah, that should be split

OK, I split up the docstring. Not sure what's up with the failing tests...it looks like with travis, the build that fails is skipping the to_data_farme tests because they require pandas, the other build is failing with error urllib2.URLError: <urlopen error [Errno 11001] getaddrinfo failed>. It seems like this isn't related to any of these changes but correct me if I'm wrong?

Any test that requires pandas needs the requires_pandas decorator to be skipped on builds and user systems that don't have it.
Don't worry about the getaddrinfo failure, that's not due to your changes.

 If so, I'll merge by rebase.

If tests are passing then I am happy to merge!

@dengemann let me know when you're done commenting, @choldgraf I'll take care of the last few points assuming they're minor (I already rebased your branch)

OK, please let me know if there's anything else I can do. Thanks to @dengemann @Eric89GXL and @agramfort for being patient with me on this first pull request of mine :)

@Eric89GXL I think I'm fine. @choldgraf Thanks for your efforts and patience with us!

Merged by rebase, thanks @choldgraf! I also added you to the whats_new.py


fix: correct hidden text issue with highlight income vs expense on hover

[BUG] #2104 -- Income vs Expense on Hover
GitHub Issue (if applicable): #2104
Trello Link (if applicable): none
Explanation of Bugfix/Feature/Modification:
The rows were illegible when moving mouse over in dark mode.  My fix addresses this with the dark-theme concept in mind.
I also went and cleaned up the classic and new-default themes while i was there.  Also made it so when you have a row highlighted, positive values turn green and negative ones turn red.
note: the negative red numbers appear harder to read in the images than they are.  Still was difficult to get a decent contrasting red without it looking too pinkish
Example Images
Default New

Dark

Classic

Nawp, already found another bug and i'm not rewriting all of this again. to keep looking for these issues.

Cleaned up more and tried again with suggested background variable.  Took a little to get matches again, and the red really struggles on classic, but i think you'll be happy with it.
New Default

Dark

Classic


add unit tests for cmd/completion

Description of the change:
Unit tests for cmd/completion. Super simple, I couldn't really think of a good way to test the actual completion bit without a text comparison.
Motivation for the change:
See #3246

Any thoughts on this? @estroz ?


Allow clients to destroy the running process

Both for sync or async.
Need to expose ability to kill a process that was started for consumers using a custom ProcessRunner.

I wonder if we should change the ProcessRunner.run signature to return Process instead of void. This would also free us from dealing with sync vs async because the client would be responsible for calling process.waitFor().

I was thinking about this, but this causes the Process to trickle up to the SDK and up to the actions (deploy etc.) which doesn't seem ideal.
Another option is to restrict the default ProcessRunner to a single process (or create a new type). This way a cancel() method can be added and it can take care of destroying itself.

The SDK doesn't really do much with the ProcessRunner. I'm almost tempted to take the whole ProcessRunner concern out of the SDK and change the runCommand*(args) to List getCommand*(args).
Of course, we can also just expose the Process in the DefaultProcessRunner by adding a getCurrentProcess() method.

I think its still nice for clients that don't want to concern themselves with running the process to not have to deal with the ProcessRunner at all and let the sdk create the default one and run the command.
Regarding your second point - what if the client triggers multiple actions using the same sdk instance?

With the build plugins, we're always creating a new CloudSdk for each execution. So, it's not a concern. However, I see how your point applies to stafeful IDE plugins. We can mitigate this by making sure that the DefaultProcessRunner only executes one process at a time.

Sure. But then if it only executes one process at a time, couldn't you also go ahead and just add the destroy functionality for this PR right into the DefaultProcessRunner? e.g. DefaultProcessRunner#destroyProcess() or something.

Yes, but I thought it would be nice to also support other usecases that need to operate on the Process. For example, someone might want direct access to the process in/out streams.

Ah. I see, yea that could be useful.


Enhance documentation

Most function comments are short and don't fully utilize the functionality of Doxygen. They should include more details such as:

Parameter description with @param tags etc. See Doxygen Munual for more information.
A short demonstration code if needed.
Enriched main page instead of a one-line description and link to darray.h documentation.

The documentation will do for now.


use poetry cache in CI

What changed

add cache: poetry param to setup-python action

Why
Faster builds
Comparison
I did a run here and then reran again after it succeeded (to get cache).
Speedup is about 40 seconds for the slowest job (2:30 -> 1:50).
Before and after:

I'm not actually sure the min version step is getting cached
times are:
run | install | min version
initial | 45s | 26
cached | 2s | 26
not sure, but guessing it's not using the requirements file as part of the cache key? (but not sure that should matter; would have thought each matrix job has its own cache)

switching to pipx install poetry per their example seems to gain a few seconds (slowest cached job is now 1:20-1:30 vs 1:52 before)
also the min requirements step is installing pillow and it is not available as a wheel for new python I think -- if not required anymore, that seems to be the limiting step now

We still need Pillow in our tests because we have PIL-specific utilities