Suggestion:make a MCPE UI api for ModPE

:/ just thinking

This should not be in the issues section. Java UI classes are perfectly normal. They would definitely give more options and freedom unlike a special API.

Check out Desno365's stuff.  He basically gives you an API for buttons and if I am remembering, other stuff.  There is also someone else (I cannot remember) that has created an API for menus.
Or just make your own.  Googling for examples, I came up with a GUI for my mod in about 2 hours.

Just pointing out that such a task is highly error-prone if someone doesn't have each and every Android OS to test with, or (extremely common) the time to keep up-to-date with the changes, fixing their code, making sure it runs correctly on all the OS versions, fixing any new problems that shown up (which can happen on an OS version that the original problem didn't happen), repeating that until they assume they fixed it or they give up and vanish from the internet because of all the people asking, complaining, or demanding an update as if everything is given to them on a silver platter... ..... It's just chaos!
If you really understand what I'm saying, you would know how difficult it is to provide support for numerous Android versions that each have a different set of classes that are available, deprecated (otherwise known as "obsolete; do not use; will be removed in a future version" in the developer realm), and even ones that no longer exist (ever tried to run a game that was made specifically to only run in DOS in the days long ago where you only had Windows ME available? It's impossible! ... DOSBox didn't even exist back then...)

@like2omg you could run DOS games under Windows ME.  That was a fancy Windows 98SE, which has a DOS mode.  I'm assuming you are too young to have actually used that OS?  ;-)
Secondly, DOSBOX did exist back then.  It just wasn't very good as it was JUST starting out.
DOSBOX Initial Public Release July 22, 2002
Windows ME general availability June 19, 2000
Aside from the above dates, I have nothing but memory to tell you that I have used DOSBOX under Windows ME.  I just found it was easier to just make DOS MODE boot disks, or in most cases just shutdown to DOS and enough stuff was loaded to run games, but for the most annoying of games (where a customized boot disk would work).  Also, Windows 2000 and Windows XP were RIGHT on the horizon so a not so good and seemingly bloated WinME was quickly replaced with Windows 2000.  How nice!  The best part was, the boot disks still worked - so long as you did not convert your drive to NTFS.    Crazy times!
Lastly, yes, it is DISK, as that is short for diskette, vs the more modern DISC, which is for CDROM DISCS.  ;-)
Party on Garth!  Party on Wayne!

@zedman2000 Thank you for reminding me (I blame my memory issues). I even forgot ... oh my... I just remembered Qbasic / QuickBASIC (and part of my days using Win3.1 on a non-networked, home computer).
... Thank you for the memories that you triggered. happily sighs


Non-docker apps

I'm submitting a ...

[x] feature request

What is the current behavior?
If an "app" is cloned down that does not contain a docker compose file, an error occurs, but this may actually be a legit situation e.g. repo file useful files in it

What is the expected/proposed behavior?
Allow the dev env config to specify that a given repo does not container a dockerable app

What is the motivation / use case for changing the behavior?
More flexibility to provide every resource a developer needs

Yes, we had this problem with a documentation repo - which had no docker compose fragment file.
The message provided - ''Applications have a mix of docker compose fragments versions. Unable to proceed.' was a bit misleading - as all applications, with docker compose fragments, had version 2.

A workaround is to provide empty docker compose fragment files, with just a single line specifying the version (2 or 3.7 respectively)


Custom emoji reactions are displayed as shortcodes when viewed from other clients

To Reproduce
Steps to reproduce the behavior:

Custom emoji reactions from noStrudel

https://nostrudel.ninja/#/n/nevent1qvzqqqqqqypzpmzzcaj5rzeah8y940ln4z855wa72af4a6aac4zjypql55egcpsqqythwumn8ghj7um9v9exx6pwdehhxtn5dajxz7f0q9n8wumn8ghj7enfd36x2u3wdehhxarj9emkjmn99ah8qatzx9snxurkwajnyupnwcmk6mn20gmxsmr9xcehyd3j8pmkcwthx5mrwcthxa6nyvmx0fchxvpkxfmr2an3vdchzafnwdnksvelvfex7ctyvdshxapaw3e82egqyp0js4q6sclqhhlv0h76yhr58c43vv3fxumppqv8e6wdmhztn5kdj7ezhuu
View it from other clients (nostter, amethyst, etc.)
For example: https://nostter.app/nevent1qqs972z5r2rruz7la37lmgjuwslzk93j9ymnvyypsl8fehwufwwjekg2eahhq
shortcode is displayed

speculation
noStrudel's custom emoji reactions
{
  "kind": 7,
  "content": "oikurasats_icon",
...

"content": ":oikurasats_icon:",
Isn't it necessary to have :: symbols before and after?

This is a bug with the current stable version. it is fixed in the next version and will be fixed with v0.40.0

Thank you!


Bug: Crash by unmount custom component 7.1.0

Current Behavior
Crash by null pointers:
index.es-dev.js:15945 Uncaught TypeError: Cannot read properties of undefined (reading 'parent')
    at _Container.addChild (webpack-internal:///(app-client)/../../node_modules/@pixi/display/lib/Container.mjs:33:17)
    at _appendChild (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:23270:12)
    at appendChildToContainer (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:23462:28)
    at insertOrAppendPlacementNodeIntoContainer (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17041:8)
    at insertOrAppendPlacementNodeIntoContainer (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17047:8)
    at insertOrAppendPlacementNodeIntoContainer (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17051:10)
    at insertOrAppendPlacementNodeIntoContainer (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17047:8)
    at commitPlacement (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17021:10)
    at commitReconciliationEffects (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17793:8)
    at commitMutationEffectsOnFiber (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17779:10)
    at recursivelyTraverseMutationEffects (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17450:8)
    at commitMutationEffectsOnFiber (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17609:10)
    at commitMutationEffects (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17420:4)
    at commitRootImpl (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:20471:6)
    at commitRoot (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:20343:6)
    at performSyncWorkOnRoot (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:19744:4)
    at flushSyncCallbacks (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:4468:23)
    at eval (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:19275:14)

Uncaught TypeError: Cannot read properties of undefined (reading 'willUnmount')
    at willUnmountRecursive (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:23278:31)
    at _removeChild (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:23291:3)
    at removeChildFromContainer (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:23484:28)
    at commitDeletionEffectsOnFiber (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17195:16)
    at recursivelyTraverseDeletionEffects (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17158:6)
    at commitDeletionEffectsOnFiber (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17292:10)
    at recursivelyTraverseDeletionEffects (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17158:6)
    at commitDeletionEffectsOnFiber (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17344:10)
    at recursivelyTraverseDeletionEffects (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17158:6)
    at commitDeletionEffectsOnFiber (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17344:10)
    at commitDeletionEffects (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17142:6)
    at recursivelyTraverseMutationEffects (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17436:10)
    at commitMutationEffectsOnFiber (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17609:10)
    at commitMutationEffects (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:17420:4)
    at commitRootImpl (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:20471:6)
    at commitRoot (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:20343:6)
    at performSyncWorkOnRoot (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:19744:4)
    at flushSyncCallbacks (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:4468:23)
    at eval (webpack-internal:///(app-client)/../../packages/operation-space/node_modules/@pixi/react/dist/index.es-dev.js:19275:14)

Breakpoint:

Expected Behavior
No crash
Steps to Reproduce
Custom component:
import { PixiComponent } from '@pixi/react'

import { PIXI } from '../dependencies'

export type RectangleProps = {
  fill: number
  width: number
  height: number
  x?: number
  y?: number
  anchor?: number
  blendMode?: PIXI.BLEND_MODES
  alpha?: number
}

export const Rectangle = PixiComponent<RectangleProps, PIXI.Graphics>(
  'Rectangle',
  {
    config: {
      destroyChildren: false,
      destroy: true,
    },
    create: () => new PIXI.Graphics(),
    applyProps(instance, oldProps, newProps) {
      const { fill, x = 0, y = 0, width, height, anchor } = newProps
      if (
        oldProps.fill !== fill ||
        oldProps.width !== width ||
        oldProps.height !== height ||
        oldProps.x !== x ||
        oldProps.y !== y
      ) {
        instance.clear()
        instance.beginFill(fill)
        instance.drawRect(x, y, width, height)
        instance.endFill()
      }
      if (anchor !== undefined && oldProps.anchor !== anchor) {
        instance.pivot.set(width * anchor, height * anchor)
      }
      instance.alpha = newProps.alpha ?? 1
      instance.blendMode = newProps.blendMode ?? PIXI.BLEND_MODES.NORMAL
    },
  },
)

Environment

@pixi/react version: 7.1.0
pixi.js version: 7.2.4
React version: 18.2.0
ReactDOM version: 18.2.0

Possible Solution
No response
Additional Information
No response

Here child is undefined:

It happend because I had in monorepo @react/pixi in package and app (in package devDeps, in apps just deps) and it leads to error (I confused)
Interesting that v7.0.3 didn't lead to this crash


Editor: Occasionally files are not written when saved.

I am not sure what the trigger of this is, but sometimes when saving a file, after the save, I check to see if the file has been saved or modified and either the changes are not reflected or the file is not created. This is an intermittent problem and I am not sure what triggers it.

Does this happen when running the server on Windows. I had a similar problem. Solved it by detecting an IOError exception and trying again.

@KenT2 I am not sure if the question is directed towards me, but I develop on Linux, so I don't know if this happens on Windows or not.

@MrYsLab Yes it was. I had a similar problem. When using Python files saved every time on Linux but failed occasionally on Windows.


UNCAUGHT EXCEPTION

Hi,I can't install atom module / addon on my macOS-X 10.9 Mavericks, it seems to be a node-gyp problem :
$ apm install linter
Installing linter to /Users/aurore/.atom/packages
gyp info it worked if it ends with ok
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| darwin | x64
gyp http GET https://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist/v0.16.0/node-v0.16.0.tar.gz
gyp http 200 https://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist/v0.16.0/node-v0.16.0.tar.gz
gyp ERR! UNCAUGHT EXCEPTION
gyp ERR! stack Error: EPERM, utime '/Users/aurore/.atom/.node-gyp/.node-gyp/0.16.0'
gyp ERR! System Darwin 13.3.0
gyp ERR! command "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/bin/node" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "install" "--target=0.16.0" "--dist-url=https://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist" "--arch=x64"
gyp ERR! cwd /Users/aurore/.atom
gyp ERR! node -v v0.10.32
gyp ERR! node-gyp -v v0.12.2
gyp ERR! This is a bug in `node-gyp`.
gyp ERR! Try to update node-gyp and file an Issue if it does not help:
gyp ERR!     <https://github.com/TooTallNate/node-gyp/issues>

regards

hey @myrrhine is this still relevant?

I think this is safe to close since the issue has been inactive for several years, and the original comment (created by a now-deleted account) references a v0.x version of Node.js.


Add support for Electron's app login event for proxies that require user:pass authentication

Electron's login event is emitted when the BrowserWindow requires basic username/password authentication (e.g. for a website or a proxy). Electron's default behavior is to suppress the dialog window that shows up for this authentication, so if you want to be able to use a proxy that requires auth, you have to catch this event and handle authentication programmatically.
In Electron.js, here's how I would handle this:
app.on('login', (event, webContents, request, authInfo, callback) => {
    event.preventDefault(); // Prevents the username/password dialog from showing up
    let username = "someUsername";
    let password = "somePassword";
    callback(username, password); // Calls the same authentication request that submitting the dialog form would have called
});

As far as I can tell, this functionality doesn't seem to exist in Electron.NET, which means using proxies that require authentication isn't possible.

🎉🚀 New Electron.NET version 23.6.1 released 🚀🎉
With native Electron 23 and .NET 6 support. Your problem should be fixed here. If you continue to have the problem, please let us know. Please note the correct updating of your API & CLI. Info in the README. Have fun!


Intercept request/cookies

I need to intercept a request on my browser, is it possible?

Hi @Yuro12345, I'm afraid that's not possible, the package is primarily designed for automating manual repetitive processes, and not so much for interacting with the browser on API level. For that, web and test automation packages like Selenium, Puppeteer, PlayWright etc should be a better fit.
That said, can you tell me more about your use case, and I can see within the constraint of the rpa package, is there a way to achieve that. Maybe you can do something with r.dom() which sends custom JavaScript commands to the browser. But most likely not, because it's not designed and tested for that low-level interactions.


Waterline - columnName not taken into account for create request

Node version: v10.23.3
Sails version (sails): 1.4.0
ORM hook version (sails-hook-orm): 3.0.0
Sockets hook version (sails-hook-sockets): 2.0.0
Organics hook version (sails-hook-organics): Nop
Grunt hook version (sails-hook-grunt): 4.0.1
Uploads hook version (sails-hook-uploads): Nop
DB adapter & version (e.g. sails-mysql@5.55.5<EMAIL_ADDRESS>Skipper adapter & version (e.g. skipper-s3@5.55.5): Nop

I have a model Tcave where an attribute is described like this:
idAuthor: {
      columnName: 'id_author',
      type: 'number',
    },

When I try to run create on this I get the following error:
Unexpected error from database adapter: column "idAuthor" of relation "t_cave" does not exist
This is normal because the table t_cave do not has a column idAuthor but it has the column id_author
If I change the attribute to this, it is working fine:
id_author: {
      columnName: 'id_author',
      type: 'number',
    },

Is this related to this question ? https://stackoverflow.com/questions/37516556/sails-js-one-to-many-relationship-with-custom-column-names

Having the same issue over here: https://github.com/balderdashy/sails/issues/7105 :)

Take a look at my comment over here: https://github.com/balderdashy/sails/issues/7105#issuecomment-784240108
This will unblock you and it's pretty straightforward.

Hey @bsoufflet, I was taking a look at this, and I wasn't able to reproduce the issue you're running into. If you create a repo with a fresh Sails app that reproduces this, I'd be happy to look at it. Thanks!

I believe I found our issue here. It is because in the model there is a numeric attribute named length
The function that converts the model attributes to the database column name: transformer.serializeValues() use _.each()
However _.each() expects an array-like collection
An object with a length property will be interpreted as an array instead of an object like expected here
More detail here: https://github.com/lodash/lodash/issues/277
Using _.forOwn() like recommended solves the issue
https://github.com/balderdashy/waterline/blob/master/lib/waterline/utils/system/transformer-builder.js#L160


Problematic Javascript based collapsibles

#216 #224 already got rid of js based collapsibles on projects and labs pages
We don't want these js based collapsibles for accessiblity reasons. People blocking scripts have no method of accessing the information.
Suggestion: Get rid of them where possible.
Also: Investigate a <details> based solution for places where these collapsibles make sense.

we (@k-nut and Nora and I) are going through old issues. dear @ubergesundheit do you still care about this?


[Build] Setting up Python environment

Build issue(s)
Downloading and installing packages into local source directory:
Setting up CIPD package manager...done (10.6s)
Setting up Project actions........skipped (0.1s)
Setting up Python environment.....[-]
ERROR at //build/config/linux/pkg_config.gni:116:17: Script returned non-zero exit code.
pkgresult = exec_script(pkg_config_script, args, "value")

            ^----------

Current dir: /home/chengang/Projects/connectedhomeip/.environment/gn_out/
Command: python3 /home/chengang/Projects/connectedhomeip/build/config/linux/pkg-config.py glib-2.0 gio-unix-2.0
Returned 1.
stderr:
Could not run pkg-config.
See //build/chip/linux/BUILD.gn:19:1: whence it was called.
pkg_config("glib") {
^-------------------
See //build/chip/linux/gdbus_library.gni:106:7: which caused the file to be included.
  glib_config,

  ^----------

['gn', 'gen', '/home/chengang/Projects/connectedhomeip/.environment/gn_out', '--args=chip_crypto="boringssl" dir_pigweed="/home/chengang/Projects/connectedhomeip/third_party/pigweed/repo"']
Traceback (most recent call last):
File "/home/chengang/Projects/connectedhomeip/third_party/pigweed/repo/pw_env_setup/py/pw_env_setup/virtualenv_setup/install.py", line 402, in install_packages
subprocess.check_call(

File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
raise CalledProcessError(retcode, cmd)

subprocess.CalledProcessError: Command '['gn', 'gen', '/home/chengang/Projects/connectedhomeip/.environment/gn_out', '--args=chip_crypto="boringssl" dir_pigweed="/home/chengang/Projects/connectedhomeip/third_party/pigweed/repo"']' returned non-zero exit status 1.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/chengang/Projects/connectedhomeip/third_party/pigweed/repo/pw_env_setup/py/pw_env_setup/env_setup.py", line 982, in
sys.exit(main())

File "/home/chengang/Projects/connectedhomeip/third_party/pigweed/repo/pw_env_setup/py/pw_env_setup/env_setup.py", line 974, in main
return EnvSetup(**vars(parse())).setup()

File "/home/chengang/Projects/connectedhomeip/third_party/pigweed/repo/pw_env_setup/py/pw_env_setup/env_setup.py", line 573, in setup
result = step(spin)

File "/home/chengang/Projects/connectedhomeip/third_party/pigweed/repo/pw_env_setup/py/pw_env_setup/env_setup.py", line 762, in virtualenv
if not virtualenv_setup.install(

File "/home/chengang/Projects/connectedhomeip/third_party/pigweed/repo/pw_env_setup/py/pw_env_setup/virtualenv_setup/install.py", line 443, in install
install_packages(gn_target)

File "/home/chengang/Projects/connectedhomeip/third_party/pigweed/repo/pw_env_setup/py/pw_env_setup/virtualenv_setup/install.py", line 410, in install_packages
raise subprocess.CalledProcessError(

subprocess.CalledProcessError: Command '['gn', 'gen', '/home/chengang/Projects/connectedhomeip/.environment/gn_out', '--args=chip_crypto="boringssl" dir_pigweed="/home/chengang/Projects/connectedhomeip/third_party/pigweed/repo"']' returned non-zero exit status 1.
Installing pip requirements for all...
[notice] A new release of pip is available: 23.2.1 -> 23.3.1
[notice] To update, run: python3 -m pip install --upgrade pip
Platform
android
Anything else?
No response

need install “sudo apt-get install libglib2.0-dev libgio2.0-cil-dev”

need install “sudo apt-get install libglib2.0-dev libgio2.0-cil-dev”

Does https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/BUILDING.md#installing-prerequisites-on-linux need updating?  It mentions libglib2, but not libgio2....

Hi @bzbarsky-apple
I'm facing the same issue on the top of master, I've installed everything from the BUILDING, and the 2 packages you mentioned.
Still failing with the same issue.
I had to explicitely run export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig to be able to run the bootstrap.
I got the path by running dpkg -L libglib2.0-dev
I'm running on Ubuntu 20.04.

In ToT you likely require a newer ubuntu: we need python 3.10 or above and ubuntu 20.04 has python 3.8 I believe.
You need to have pkg-config able to find the glib packages on linux, this looks like a O/S configuration issue rather than bootstrap itself.


Build fails with Xcode 7.2 / clang 3.7

Re: https://github.com/macports/macports-ports/commit/bee84cbd878c66ff012153764b60011462a0be1b#commitcomment-28910119
https://build.macports.org/builders/ports-10.10_x86_64-builder/builds/55576
OS X Yosemite v10.10.5 (14F2511)
Xcode v7.2.1 (7C1002)
Apple LLVM version 7.0.2 (clang-700.1.81)
Architecture: x86_64
C++ library: libc++
CPU: 8 ⨉ 2.15 GHz
RAM: 8 GB

CompileC build/Poedit.build/Release/Poedit.build/Objects-normal/x86_64/catalog.o src/catalog.cpp normal x86_64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler
    cd /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7
    export LANG=en_US.US-ASCII
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=c++1y -stdlib=libc++ -fobjc-arc -gmodules -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Wunreachable-code -Wno-implicit-atomic-properties -Wno-arc-repeated-use-of-weak -Wnon-virtual-dtor -Woverloaded-virtual -Wno-exit-time-destructors -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wunused-label -Wunused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wshadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wno-deprecated-implementations -Wno-c++11-extensions -D__WXOSX_COCOA__ -D__WX__ -D__WXMAC_XCODE__=1 -DwxUSE_UNICODE_UTF8=0 -DwxUSE_UNICODE_WCHAR=1 -DHAVE_CLD2 -DHAVE_HTTP_CLIENT -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -fasm-blocks -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -Winvalid-offsetof -mmacosx-version-min=10.10 -g -gline-tables-only -fvisibility=hidden -fvisibility-inlines-hidden -Wno-sign-conversion -iquote /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/build/Poedit.build/Release/Poedit.build/Poedit-generated-files.hmap -I/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/build/Poedit.build/Release/Poedit.build/Poedit-own-target-headers.hmap -I/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/build/Poedit.build/Release/Poedit.build/Poedit-all-target-headers.hmap -iquote /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/build/Poedit.build/Release/Poedit.build/Poedit-project-headers.hmap -I/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/build/Release/include -Ideps/custom_build/config -Ideps/wx/include -Ideps/boost -Ideps/lucene -Ideps/lucene/LucenePlusPlus/include -Ideps/cld2 -Ideps/AFNetworking/AFNetworking -I/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/build/Deps.build/Release/icu/include -I/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/build/Poedit.build/Release/Poedit.build/DerivedSources/x86_64 -I/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/build/Poedit.build/Release/Poedit.build/DerivedSources -F/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/build/Release -include /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/DerivedData/Build/Intermediates/PrecompiledHeaders/Poedit-Prefix-dtcjhkmhhbnhjcaywfcorhwsnxvn/Poedit-Prefix.pch -MMD -MT dependencies -MF /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/build/Poedit.build/Release/Poedit.build/Objects-normal/x86_64/catalog.d --serialize-diagnostics /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/build/Poedit.build/Release/Poedit.build/Objects-normal/x86_64/catalog.dia -c /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/src/catalog.cpp -o /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/build/Poedit.build/Release/Poedit.build/Objects-normal/x86_64/catalog.o
In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/src/catalog.cpp:1:
In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/src/Poedit-Prefix.pch:7:
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/src/concurrency.h:568:16: error: no matching function for call to 'call_and_unwrap_if_future'
        return detail::call_and_unwrap_if_future(f);
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/src/catalog.cpp:59:
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/src/cloud_sync.h:126:33: note: in instantiation of function template specialization 'dispatch::async<(lambda at /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/src/cloud_sync.h:126:39)>' requested here
        auto future = dispatch::async([=]{ return dest->Upload(file); });
                                ^
In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/src/catalog.cpp:1:
In file included from /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/src/Poedit-Prefix.pch:7:
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/src/concurrency.h:259:13: note: candidate template ignored: substitution failure [with F = const std::initializer_list<(lambda at /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/src/cloud_sync.h:126:39)> &, Args = <>]: no type named 'type' in 'std::__1::result_of<const std::initializer_list<(lambda at /opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_editors_poedit/poedit/work/poedit-2.0.7/src/cloud_sync.h:126:39)> &()>'
inline auto call_and_unwrap_if_future(F&& f, Args&&... args) -> typename future_unwrapper<typename std::result_of<F(Args...)>::type>::return_type
            ^                                                                                ~~~~
1 error generated.

Sorry, I thought the issue was runtime on OS X 10.10, not compile-time with an old toolchain.
I suspect these warnings might be related:
concurrency.h:377:38: warning: direct list initialization of a lambda init-capture
    will change meaning in a future version of Clang; insert an '=' to avoid a change
    in behavior [-Wfuture-compat]

Apparently, this is something that changed between clang 3.7 and 3.8 and is at least in the same general area of C++11. I'll see what can be done about it, but to be honest, I'm doubtful it's a reasonably fixable — and a more complicated fix for old(er) compiler isn't worth it.

If clang 3.8 can compile it, we can of course switch to a newer compiler for building, this should generally not be a problem since we have access to the latest clang. (I'm not sure if the package for MacPorts is already able to switch to a different compiler, building with XCode is always a can of worms in terms of configurability.)

@mojca I'm not 100% sure about it, but I think clang 3.8 should be fine — and 3.9 certainly is. Looking at git history, the last nontrivial changes to this file were in September 2016 and I switched to Xcode 8 (clang 3.9) in October — i.e. it seems that Xcode 7.3 (clang 3.8) was compiling it just fine back then.

I'm sadly aware, but there's not much that upstream could do in this case either (short of switching the build system). I failed to notice the following suggestion on the list (which would be really nice if feasible):

I believe we need to create some kind of Xcode-specific file to tell it about each of our compilers, then update the xcode portgroup to use that. Nobody's done that so far.

I was trying to come up with some fix, but not with much luck. The only idea is side-stepping it with this patch:
diff --git a/src/concurrency.h b/src/concurrency.h
index 388b3f7118..9b40ce6ef1 100644
--- a/src/concurrency.h
+++ b/src/concurrency.h
@@ -26,10 +26,6 @@
 #ifndef Poedit_concurrency_h
 #define Poedit_concurrency_h

-#if defined(__WXOSX__) && defined(__clang__)
-    #define HAVE_DISPATCH
-#endif
-
 #if defined(_MSC_VER) && (_MSC_VER >= 1800)
     #define HAVE_PPL
     #define USE_PPL_DISPATCH

Does that help? If yes, it should only be applied when necessary (i.e. on 10.10) because it makes some bits worse. I'd also be happy to include it upstream, provided I can detect the problematic compiler reliably — and __clang_{major,minor}__ macros are apparently completely useless for detecting the actual Clang version due to random acts of Apple marketing.

Should the README be updated?

After checkout, use the Poedit.xcworkspace workspace and Xcode 6 to build Poedit.

Should the README be updated?

It should and now was, but that isn't the crux of this issue I think...

It should and now was, but that isn't the crux of this issue I think...

I was just confirming if Xcode 6 is intended to be officially supported, now apparently it's not…

"Officially supported" are macOS binaries only. The expected version of Xcode if you want to compile from the sources is always the current one — that's what I use and that's what makes it possible to use the latest features and the latest SDK's symbols.
I try to support older compilers (mostly because of Unix variants, and that's how I interpret this issue — not that old Xcode is involved, but that a lacking compiler is), but I don't go out of my way to ensure it. I don't go out of my way to prevent it either and I happily accept non-intrusive patches improving compatibility.

Build fails with Xcode 9.4.1 now, so this issue is superseded for now.
poedit-2.2/src/colorscheme.cpp:54:113: error: use of undeclared identifier 'NSAppearanceNameDarkAqua'; did you mean 'NSAppearanceNameAqua'?
        NSAppearanceName appearanceName = [appearance bestMatchFromAppearancesWithNames:@[NSAppearanceNameAqua, NSAppearanceNameDarkAqua]];
                                                                                ^~~~~~~~~~~~~~~~~~~~~~~~
                                                                                NSAppearanceNameAqua

@l2dy Again, my concern is supporting older compilers here, not old SDKs.
But I guess you're right, it's not worth worrying about and macOS 10.14 SDK is — and will be — required, so compiling against older ones will require some patching anyway.


Custom command types

I just started using redux-loop, been going quite good so far. I started out by using Cmd.run and declaring the functions that contain the side-effects in my reducers. However I soon felt that I would like the definition of the commands to be more decoupled from the execution of the commands. Basically I would like to think of my commands in the same terms as actions. So a command would just be a data record with a type and a payload (analog to an action). Then I would like to provide an executer with a switch statement on type (analog to a reducer).
Currently if the command type is unknown an error is thrown here. I was thinking instead when install is called we can pass in an executor function which in called in this case. So something like this:
// Define executor function somewhere
function executor(cmd, dispatch, getState) {
  switch(cmd.type) {
     case "mycommand1":
       // Do side effect
       // Dispatch complete action
  }
}

// Pass executor function to install, when a command unknown to redux-loop appears the executor function is called
const store = createStore(reducer, initialState, install(executor));

// In the reducer
function reducer(state = initialState, action) {
  switch(action.type) {
  case 'FOO':
    return loop(
      {...state, initStarted: true},
      { type: "mycommand1",
        actionCreator: myactioncreator
      })
    );

I'm not sure this is doable or even a good idea, but somehow I feel the need to separate the definition of the commands and the execution of the commands. I don't want my reducers to specify the execution of the commands. Also in some cases I feel the need to have a command executor which can be configured with some initial state (such as a router object). So in that case the command executor function could be curried before passing it to install.

I think what you're describing sounds more like redux saga than redux-loop. It's a great library so it's worth checking out. But I think the idea of a separate executor goes against the core idea of redux loop, which is to treat side effects and state transitions the same (or as close to the same as possible). It's described a bit more in the intro of the docs. And there's also plenty of material about the elm architecture, which redux itself is based on, and redux loop fills in the missing pieces of.

Synchronous state transitions caused by returning a new state from the reducer in response to an action are just one of all possible effects an action can have on application state.

As an example of where redux loop can help simplify your app, imagine you're making a page with a button, which when clicked, fetches some data. You want to show a loading state while the request is pending.
You could do something like this:
function reducer(state = initialState, action){
  switch(action.type){
    case 'BUTTON_CLICKED':
      return loop({...state, loading: true}, {type: 'FETCH_DATA', id: state.id, actionCreator: myAc});
    default:
      return state;
  }
}

function executor(cmd){
  switch(cmd.type){
    case 'FETCH_DATA':
      return fetchData(cmd.id).then(cmd.actionCreator);
    default:
      return null;
  }
}

but redux-loop instead is focused on handling related logic together, whether it's a state transition or triggering some impure side-effect.
function reducer(state = initialState, action){
  switch(action.type){
    case 'BUTTON_CLICKED':
      return loop({...state, loading: true}, Cmd.run(fetchData, {
         successActionCreator: myAc,
         args: [state.id]
      }));
    default:
      return state;
  }
}

This way, you're defining what happens in response to a button click in one spot, and also what happens next. You can still reuse fetchData (the side effect) in a different spot if you want to trigger a fetch via some other method. And you don't have to only handle BUTTON_CLICKED in a single reducer if things are organized in a way that different reducers might be concerned with the button being clicked. But the general idea behind redux loop is that the call to fetchData and setting loading to true are both just things that happen in response to a button being clicked, and they do not need to be logically separated just because one is a state change and the other is a side effect.
This pattern often seems weird at first, especially if you've been using redux for a while. I think it's kind of similar to how people are used to separating their javascript and html before they start using react.
Let me know if you have more questions!

I've actually used redux-saga on a fairly large project. It works but it is quite hard to control. On my current project I am using elm-like fractal design for the reducers. So I nest them and nest the dispatch functions (manually). I don't think redux-saga is a good fit for that, I need the functionality of Cmd.map so the action creator functions become nested.
So looking at this example:
function reducer(state = initialState, action){
  switch(action.type){
    case 'BUTTON_CLICKED':
      return loop({...state, loading: true}, Cmd.run(fetchData, {
         successActionCreator: myAc,
         args: [state.id]
      }));
    default:
      return state;
  }
}

The fetchData function passed to Cmd.run here is actually a side-effectul function, not a description of the side-effect. I have not done any projects in elm but I've read extensively about it and from what I understand the elm language has no way to express side-effects. So in elm the above example would be impossible to write? Instead in elm the commands would have to be passed as mere data descriptors of the command, instead of combining the command and the effectful function together into one object (which to me feels a lot like OO). Is that a correct understanding how it works in elm? If it is, then what I want to do is exactly like it works in elm.
Maybe I have misunderstood something how commans elm works. If you have any good links that explains the internal workings of commands in elm that would be very helpful :-).

Ah yea if you want a fractal pattern then Cmd.map is helpful for that.
While fetchData is a function with side effects, returning it as part of a Cmd is basically just a description of the side effect. it does not run the side effect. We never say fetchData() in our code. Cmd.run just returns an object, and one of the properties (func) is the function to run. But it does not get run until the store gets the Cmd and runs it after the reducer has finished. So it is a description of a side effect and what to do with the result.  You give the runtime (like the loop-enhanced redux store) a description of the side effect (like a loop Cmd) to run and what to do with the response. The only difference is that in javascript, there is no elm runtime, so your descriptions (Cmds) describe functions you wrote yourself, rather than a declarative http library (or whatever side effect type you want to run) like the ones in Elm.
Some good examples of elm are at https://guide.elm-lang.org/architecture/effects/http.html and http://toreto.re/tea/

I think the above example in elm would look something like this (though i'm a bit rusty)
fetchData : String -> Cmd Msg
fetchData id =
  let
    url =
      "https://api.example.com/items/" ++ id

    request =
      Http.get url decodeDataObject
  in
    Http.send NewData request

decodeDataObject : Decode.Decoder String
decodeDataObject =
  Decode.at ["data", "property"] Decode.string

update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
  case msg of
    ButtonClicked ->
      ({ model | loading = True }, fetchData model.id)

    NewData (Ok newData) ->
      ( { model | loading = False, data = newData }, Cmd.none)

    NewData (Err _) ->
      ({ model | loading = False, error = True }, Cmd.none)

Yes, I follow on that. My point was that even though the effect is not executed by the reducer, it is returning an object which has the actual effect function rather than a pure data record. So in the example, what you return with Cmd.run is something like:
{
  type: "run"
  function: (...) => { the actual code to run the fetch }
}

While I would prefer this:
{
  type: "fetch"
  url: "http://foo.com"
}

It is not so much different, just that the second object feels more pure since it is pure data. But I do get the fact that the first object is more pragmatic since it allows you to do anything with a single type of command.
To compare with actions, at one point I had an architecture that dispatched functions that could be applied to state, something like dispatch((state) => { return {foo: bar, ...state}}). So it did not execute the action, it just dispatched it and the reducer just applied the function to the state. So we could say it was just a description of the state transition. The upside of this is that there was no need for action creators of different types, switch statements in the reducer etc. However one of the problems with this approach was that there were no easy way to log what was going on since logging functions give very litte information. I think this is also true about logging the commands above. If I would log a Cmd.run command like the first object above, it would not really tell me what is going on. If the command is pure data and has a specific type, like the second object above, I could log it to see exactly what is going on. Also if we have pure data descriptors, then the description of the effect is fully separated from the application of the effect. With Cmd.run the the description and application are coupled.
Anyway, I'm now a happy user of redux-loop :-). I sattled on a pattern like this:
First I have a library of specific commands, for example I have a LocalStorage library like this:
import { ActionCreator, Action } from "redux";
import { RunCmd, Cmd } from "redux-loop";

export function setItem<A extends Action>(
  name: string,
  value: string,
  successActionCreator?: ActionCreator<A>
): RunCmd<A> {
  return Cmd.run(() => localStorage.setItem(name, value), { successActionCreator });
}

Which makes the reducer look like this:
export function reducer(
  state: Foo,
  action: Actions.Action
): Foo | Loop<Foo, Actions.Action> {
  switch (action.type) {
    case "Bar":
      return loop(state, LocalStorage.setItem("foo", "bar"));
    default:
      exhaustiveCheck(action);
      return state;
  }
}

I feel the upside here is that the reducer do not care what LocalStorage.setItem() produces. So I in the future I could switch to an implementation where LocalStorage.setItem() returns a pure data record instead of a Cmd.run command and I would not have to change any reducer code.
Also with this approach the commands are more explicit. With Cmd.run there is no way to tell if the effect should have no action creators, just a successActionCreator or just a failureActionCreator or both. Altough this could be considered less flexible I feel it is more descriptive to require exactly which  actionCreators makes sense for a particular command.

Btw, I'm currently working on implementing something similar to elm subscriptions. For example I would like to subscribe to a local storage key value changes. Do you know if there is any existing work on subscriptions in the javascript world?

Interesting pattern! I see what you mean now. I’m glad you found something that works for you.
FYI there’s an open issue about adding a redux loop extension to redux devtools which would log cmds among other things. Not sure if that would help at all but I’d like to add that at some point.
As for subscriptions,  Nothing off the top of my head. There are connected components from react-redux for subscribing to state changes but that’s the only prebuilt one I know. Otherwise you might need to explclty set up some sort of pub-sub model or an eventemitter or something for each subscription you want to create.

Interestingly I found this package which seems to treat the commands similar to what I describe above. Although I'll stick with redux-loop for now :-).


[iOS] Cannot change controls property after init

I have this famous iOS issue 'Unable to simultaneously satisfy constraints' when using the VideoPlayer. I know this is a bug in the AVPlayer, but I cannot seem to get around it.
The way around it is to disable the showsPlaybackControls before attaching the video-source. Then enable it. I can see that you have implemented this in the plugin-code for ios. But the error is still present.
I get the video-source url from a service, so I change the controls property to true after the binding is set. But even then the controls are not shown, which tells med that perhaps controls property cannot be set after init?
I have also tried setting controls="true" in the xml, but then the above error appears when going fullscreen video.

Hey @manijak I was experiencing this issue myself and solved it as you said we have.
Are you running ng2?

I'm using vanilla {N}. Hmmm I see now that I have version 1.1.5 of the plugin (for some reason). Have no idea why it installed such a low version. Will try with 2.0.0.

Ok, tested with 2.0.0. Still the same, this happens when I press the Fullscreen icon, then it pours out the mentioned errors.

I am not seeing this issue anymore. Could be due to the recent updates, thanks.


Move from setup.py to pyproject.toml

Increasingly there is a move by Python projects to use pyproject.toml to declare their metadata and dependencies and away from setup.py. Raising this issue to start discussion around how to approach this in Dask.
xref: https://github.com/dask/distributed/issues/7622

Thanks @jakirkham! This has come up before in the context of tool configuration (i.e. migrating setup.cfg to pyproject.toml) https://github.com/dask/distributed/issues/5725. In general folks seem to be neutral to +1 for switching to pyproject.toml. I'm not very familiar with pyproject.toml vs. setup.py but my understanding is pyproject.toml seems to be the more modern version (maybe it's already considered a best practice? I'm not sure).
Given our current setup.py are you aware of any subtitles we'll need to account for in migrating to a pyproject.toml? Or is it pretty much a copy-and-paste, then tweak the formatting?

Think the main thing we need to be aware of is we are doing some dynamic things with optional requirements in dask, which would need to change.
With distributed, this isn't an issue.

Okay, but optional dependencies like pip install dask[dataframe] are still supported, right? Probably just need to do something like what pandas is doing here

Sorry should add that the main thing with pyproject.toml is it is declarative as opposed to setup.py, which opens the door to arbitrary code execution (and the usual warts with build dependency management). The Python community is trying to move to the declarative approach to alleviate these issues (related blogpost).
Since distutils is dropped from Python 3.12 ( PEP 632 ), this is moving a bit quicker.


Explain super.method()

I had to hit SO for an answer on how to access parent methods that had been overridden.  The person who answered the question linked to this page, which didn't explain the syntax. Now it does : )
Includes minor punctuation and wording changes to the original.

Thanks!

Ha you did it yourself! Great! :smile:

@markknol Yeah, I'm a sucker for contributing to docs.


How to implement the longClick event on agm?

In agm-map, there is an event called mapClick working with click. Is there any event for longClick?

longClick is not supported in the google maps api


Upgrade eslint to 1.1.0 in peerDependencies?

As eslint 1.1.0 just released.
http://eslint.org/blog/2015/08/eslint-1.1.0-released/

Eslint is not an explicit dependency anymore since 3.2.2. (You still need to have it installed though).
Not sure if the best thing was to fully remove it, convert it in simple dependency, or keep it in peerDependency with a less strict version

As eslint-plugin-react itself is a plugin of eslint, and changes in eslint did have chance to break it's plugin, I think keep it in peerDependency still make sense.
Depends on the chance that changes in eslint might break eslint-plugin-react, use a less strict version might be a good idea. At least it gives the flexibility to user of choosing a proper eslint version.
For my case, eslint 1.1.0 fix a bug that border me much, so raised this issue

Like @tleunen said, eslint is no longer a peerDependency since 3.2.2 (see https://github.com/yannickcr/eslint-plugin-react/issues/178#issuecomment-129227227).


fix  'NoOpMediator' does not implement interface member

I have two compilation errors:
  NoOpMediator.cs(5, 29): [CS0535] 'NoOpMediator' does not implement interface member 'ISender.CreateStream<TResponse>(IStreamRequest<TResponse>, CancellationToken)'
  NoOpMediator.cs(5, 29): [CS0535] 'NoOpMediator' does not implement interface member 'ISender.CreateStream(object, CancellationToken)'

I use workaround from https://github.com/dotnet/runtime/issues/1128

Starting to think MediatR should just ship a NoOpMediator...

Perhaps someone can explaint the sense of NoOpMediator?
https://stackoverflow.com/questions/71008347/what-is-noopmediator-in-clean-architecture


node resolver: respect NODE_PATH

Automagically split (on path.delimiter), path.resolve relative to CWD, and add to paths.
(inspired by #130)

Hi. Is this being worked on?

I'd prefer we not support NODE_PATH - it's deprecated, and node won't be implementing it for ES Modules.

As far as I know (and reading from the docs) NODE_PATH is not deprecated. Moreover, it is part of the spec and there are many tools that have relied on it for years for require().
From https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders

NODE_PATH is still supported, but is less necessary now that the Node.js ecosystem has settled on a convention for locating dependent modules. Sometimes deployments that rely on NODE_PATH show surprising behavior when people are unaware that NODE_PATH must be set. Sometimes a module's dependencies change, causing a different version (or even a different module) to be loaded as the NODE_PATH is searched.

Doing a overly-simplistic search on NODE_PATH usage in JS code like https://github.com/search?l=JavaScript&q=NODE_PATH&type=Code&utf8=✓ yields a lot of hits.
Please support this!

At the very least, it's highly discouraged in the community to use it - and as I said, node has explicitly indicated that they will never implement anything like it for native ES Modules, so in the fullness of time, you'll effectively be forced off of the pattern anyways.

@ljharb do you have a link to where future support for NODE_PATH is discussed? It seems pretty unlikely that they would drop support for something that is so heavily used.

Apps created with create-react-app use NODE_PATH. I don't know where the idea came from that it is deprecated.

@mockdeep support won't be dropped since ESM is new. It just won't be added, because the only folder you should be importing from is node_modules.
Just because something is used, even in CRA, doesn't make it a good idea ¯_(ツ)_/¯

I for one would vote for "when resolving require()'s, use the heuristic that Node uses" (aka include NODE_MODULES). Just the way our code and applications do.
Similarly, when ESM lands, I would vote for "when resolving import's, use the heuristic that Node uses" (aka don't add NODE_MODULES support there).

Ok, so let me try and understand something, because I imagine there must be a sane way to do it:
In a sizeable react application, a common way to organize it is to have a src/components/ folder where you have most of your publicly available components to be used in the app, but that are still implemented by the app itself, not available through an external package dependency.
Then in the pages you usually want to have access to many of these components, and it's a bit of a hassle to have to type a relative path to all your app-specific components in order to import them in the context you want them.
Is there a way to achieve doing things like this below?
import MyComponent from 'components/MyComponent';

instead of having to do something like this...
import MyComponent from '../../../../components/MyComponent';

...and be able to make this eslint plugin pick that up and realize that there's no missing components package?

@ryan-roemer without a doubt, if this module does support NODE_PATH, then what you're describing is precisely how it would be done.
@gnapse No, you should be using the dots. If you don't like the dots, extract things to a separate npm-installed package. https://github.com/AlexTes/javascript-best-practice/issues/1#issuecomment-303502935 may be helpful/relevant.

@ljharb I have an alternative solution that the issue you link to does not cover. It's ember-cli's approach, where your app is considered implicitly as a package. Therefore you can import things like:
import MyComponent from 'my-app/components/MyComponent';

This is referring to /src/components/MyComponent within you're own my-app folder structure.
Would this be considered bad practice too? If so, why?

@gnapse I'm not sure how ember does "considered implicitly as a package", but if it does it using one of the techniques in that link, then the mentioned caveats apply - if not, then that's a very bad practice, yes.

@ljharb you didn't answer my question. Is there a conversation you can point us to that discusses how node is planning to leave off supporting NODE_PATH when implementing es6 imports?

Just because something is used, even in CRA, doesn't make it a good idea ¯_(ツ)_/¯

This is a non-argument. It doesn't make it a bad idea either.

definitely not going to change

You use such strong wording. Isn't a draft something that is by definition subject to change?

@mockdeep I'm using the same strength as the author of that draft; neither they nor anyone I'm aware of on the node TSC wants that specific aspect of the draft to change.

Referring to stuff by relative paths is not always a good idea. I tend to organize my apps as modularly as possible. Within what I consider a module (a self-contained feature arranged in a set of files within a directory) I use relative paths because everything within that module is tightly coupled. But when crossing boundaries across modules (e.g. one module importing another module) I dislike using the relative path approach to import the other module's index.js file (which is the only public interface of that other module). I dislike it because it tightly couples one module to the relative location of the other. If module A imports module B, then module A is tightly coupled to module's B location. If for whatever reason I move module A around, I have to also change all its imports of things outside of it.
There you have an explanation of the logic behind the feature request. Can you explain me what is wrong with considering your own app as a package, alongside all the other packages in node_modules? What's the package name in package.json for? What's inherently wrong about Ember's approach which is to allow to import from your own app's directory structure as if your app was a package itself?
I agree that other things, like wanting to put several other folders in NODE_PATH and magically import from within them is wrong. I came into this discussion not thinking that, and I've been convinced. But I still think there's a need to import from your own app's namespace without having to use relative paths all the time.

Ignoring for a moment whether or not using NODE_PATH at application runtime is a "good" or "bad" idea: you can configure the Node resolver explicitly via your .eslintrc with search locations. See the readme: https://www.npmjs.com/package/eslint-import-resolver-node
from the example there:
# .eslintrc.yaml
settings:
  import/resolver:
    node:
      paths:
        # an array of absolute paths which will also be searched
        # think NODE_PATH
        - /usr/local/share/global_modules

If you use .eslintrc.js, you could use something like path.resolve(__dirname, "path/relative/to/.eslintrc.js") if you want "relative" paths.
This issue was more about whether the Node resolver should automatically check NODE_PATH for modules at lint time, which is actually probably a confusing and terrible idea for its own reasons because anything on that path could now be required as a lint dependency.
Given that, I'll close this issue and recommend that you encode your runtime NODE_PATH into the relevant .eslintrc.

@benmosher -- Thanks for taking the time to review this issue.
Having NODE_PATH isn't going to bring in extra require's, just give an opportunity for existing ones to search. And having NODE_PATH as an environment variable, not a statically coded path is what a lot of our tooling / sometimes app uses.
In particular, our multi-repo wrangling tool lank offers an alternative to the "doesn't work right in many cases" npm link for working on interrelated modules. It achieves this by "punching holes" (deleting all related modules in the node_modules tree) and using NODE_PATH to stitch these repos back together.
A totally weird and nonstandard way of doing things, but also one completely supported by the current require spec.
I've been having to one-off disable things like:
const foo = require("foo"); // eslint-disable-line import/no-unresolved

I encourage you to reconsider and just support the spec, so that when this plugin says it has a "Node resolver", that resolver actually resolves like Node does. Thanks!
As an alternative, do you have an example that would work instead with the actual NODE_PATH environment variable?

Or, putting it a different way, there's no downside to doing NODE_PATH resolution -- the application or library code that this plugin is attesting to is actually going to do that resolution at runtime. A separate way to think about it is this plugin would do something different than what would really happen at runtime if it doesn't support NODE_PATH.
At the end of the day, I don't think all of us have to agree on whether or not NODE_PATH is a good thing or not for require. I just humbly offer we should support the require resolution like Node does so that this plugin behaves just like the real code does.

I'd disagree: the lint-time NODE_PATH should be specifying a search path for the linter to find code it should be running for linting. Unless you're ESLint, or this plugin, you're not using the code you're linting so its NODE_PATH should/could be different.
I agree that 99% of the time no one is using it, and 99% of the remaining 1% it would work fine. But it's one more thing to maintain and given that I suspect it's generally not needed, I don't think it's worth the investment. (sorry. 😅)
Fortunately, if you want to use the lint-time NODE_PATH, you could us a JS .eslintrc and do something like
// .eslintrc.js
{
  // ... rule config ...
  settings: {
    "import/resolver": {
      node: { paths: process.env.NODE_PATH.split(":").map(path.resolve) }
    }
  }
}

and I think that will give you the behavior you're looking for.

@benmosher -- All our eslint configs are YAML. And chance there's a YAML version of that?

No way to use functions in YAML config AFAIK. But it's easy enough to convert. (I prefer YAML as well, but it is handy to be able to use the power afforded by JS config when needed)

After a bunch or research to try to get NODE_PATH = src/ to work with CRA, this is the .eslintrc file I got to work.
{   "parser": "babel-eslint",   "env": {     "browser": "true",     "node": "true",     "jest": "true"   },   "extends": "airbnb",   "settings": {     "import/resolver": {       "node": {         "moduleDirectory": ["node_modules", "src/"]       }     }   } }


Bug: Unable to process messages when headers() returns null in batch confluent kafka consumers

Describe the bug
Version 0.5.6 added support for batch header processing via this issue: https://github.com/airtai/faststream/issues/1447
The added code expects confluent's cimpl.Messsage.headers() function to always return a tuple:

https://github.com/airtai/faststream/commit/1bcbcf5a59d4da7d027a52534cb181ba8482f2ac#diff-3ef5eaf17f2a894f317d33a56bf9e084acb2e8959a1bae253a5ebb23f83f881eR56
https://github.com/airtai/faststream/commit/1bcbcf5a59d4da7d027a52534cb181ba8482f2ac#diff-3ef5eaf17f2a894f317d33a56bf9e084acb2e8959a1bae253a5ebb23f83f881eR93-R96

In fact, it can return None.
This results in an error as follows:
2024-05-20 16:32:46.703 | ERROR    | asyncio         | base_events.default_exception_handler:1785 | Task exception was never retrieved
future: <Task finished name='Task-3' coro=<LogicSubscriber._consume() done, defined at venv/lib/python3.11/site-packages/faststream/confluent/subscriber/usecase.py:177> exception=TypeError("'NoneType' object is not iterable")>
Traceback (most recent call last):
  File "venv/lib/python3.11/site-packages/faststream/confluent/subscriber/usecase.py", line 194, in _consume
    await self.consume(msg)  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^
  File "venv/lib/python3.11/site-packages/faststream/broker/subscriber/usecase.py", line 316, in consume
    if (message := await h.is_suitable(msg, cache)) is not None:
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "venv/lib/python3.11/site-packages/faststream/broker/subscriber/call_item.py", line 139, in is_suitable
    "StreamMessage[MsgType]", cache.get(parser) or await parser(msg)
                                                   ^^^^^^^^^^^^^^^^^
  File "venv/lib/python3.11/site-packages/faststream/confluent/parser.py", line 56, in parse_message_batch
    batch_headers.append(_parse_msg_headers(m.headers()))
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "venv/lib/python3.11/site-packages/faststream/confluent/parser.py", line 96, in _parse_msg_headers
    return {i: j if isinstance(j, str) else j.decode() for i, j in headers}
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not iterable

Moreover, this error is not logged to console until the application is exited.
How to reproduce

Using the provectus kafka ui, simply publish a message with no headers on a topic. Or use some other means. Ensure that there are no headers. Do not use faststream, as faststream will always add headers.
Write a simple faststream consumer handler with batch=True subscribed to that topic that merely logs that it received the message.
Start the FastStream application.

Expected behavior
I expect the handler to successfully log.
Observed behavior
Nothing is logged, and upon quitting the application, an exception is logged to console.

Returns of None by headers() is documented here: https://docs.confluent.io/platform/current/clients/confluent-kafka-python/html/index.html#confluent_kafka.Message.headers


hw/drivers/lis2de12: Added driver support to LIS2DE12

Add driver for 8 bit accelerometer LIS2DE12
Driver supports the following features:
	- polling read
	- stream read
	- full configuration (ODR, FS, basic gesture recogn.)
	- interrupt configuration

Driver tested on STM32F4-Discovery board as "off board" device
connected to I2C master interface.

@mariotesi Thank you for the PR. I will try it out and get back with my review comments shortly.

@mariotesi I have merged the driver. Can you please make sure it works with sensor_test app. Documentation for adding a sensor to the app as an off board sensor is mentioned here:
http://mynewt.apache.org/latest/tutorials/sensors/sensor_nrf52_bno055.html

I tested the driver on sensor_test app running on STM32F4-Discovery board using the sensor
console command
As you can see the output of sensor command from console:
asking for sensor list
057690 compat> sensor list
061658 sensor dev = lis2de12_0, configured type = 0x1
asking for sensor type
062249 compat> sensor type lis2de12_0
1426938 sensor dev = lis2de12_0,
type =
1426940     accelerometer: 0x1
asking for sensor data with polling rate 10 ms
1498860 compat> sensor read lis2de12_0 0x01 -n 5 -i 10
1514610 compat> ts: [ secs: 1425 usecs: 600494 cputime:<PHONE_NUMBER> ]
1514616 x = -0.313812800 y = -0.156906400 z = 9.728197120
1514633 ts: [ secs: 1425 usecs: 619614 cputime:<PHONE_NUMBER> ]
1514637 x = -0.627625600 y = 0.156906400 z = 9.100571632
1514655 ts: [ secs: 1425 usecs: 639614 cputime:<PHONE_NUMBER> ]
1514659 x = -0.313812800 y = 0.000000000 z = 9.885103232
1514676 ts: [ secs: 1425 usecs: 659614 cputime:<PHONE_NUMBER> ]
1514680 x = -0.156906400 y = 0.000000000 z = 10.042009352
1514697 ts: [ secs: 1425 usecs: 679614 cputime:<PHONE_NUMBER> ]
1514701 x = -0.313812800 y = 0.000000000 z = 10.198916432
asking for sensor data with polling rate 100 ms
sensor read lis2de12_0 0x01 -n 5 -i 100
135600 compat> ts: [ secs: 127 usecs: 807629 cputime: 127724248 ]
135710 x = -0.156906400 y = -0.156906400 z = 10.042009352
135825 ts: [ secs: 127 usecs: 917561 cputime: 127834180 ]
135828 x = -0.313812800 y = 0.156906400 z = 9.728197120
135942 ts: [ secs: 128 usecs: 27617 cputime: 127944236 ]
135945 x = 0.000000000 y = 0.000000000 z = 9.257477760
136059 ts: [ secs: 128 usecs: 137846 cputime: 128054465 ]
136062 x = -0.313812800 y = 0.156906400 z = 9.414383904
136176 ts: [ secs: 128 usecs: 247844 cputime: 128164463 ]
136179 x = -0.470719232 y = 0.156906400 z = 9.728197120
Basic features seems to works fine


Include the discount price info in node finder

Which package/s are you suggesting this feature for?
Dashboard
Is your feature request related to a problem? Please describe
The discount price info should be included in the node finder page as in the dedicated page.
Describe the solution you'd like

WIP:
Added the tooltip with dynamic text to show whether it's rented by the user or someone else. Currently working on adding user staking discount.

Work completed:
Added staking discount,

verified on devnet
version : e1cdba0
tooltip showing the discount info is now shown

https://app.testlodge.com/a/26076/projects/40893/suites/234374?expand_section=426661#case_4264048


Use dedicated annotation for REST Client instead of @Inject

Is your feature request related to a problem? Please describe.
It is important for users to understand how REST Clients work (and that they are being used in the first place). However, the current approach with @Inject MyService svc; does not make it very obvious that a REST client is being injected. Instead, users may think that the actual server-side instance of MyService is being injected, or that the test code is running inside the container -- neither of which is the case. Also, users may think that CDI is being used to inject the annotation, which is not the case.
Describe the solution you'd like
We should introduce a new annotation that makes it more obvious that a REST Client is being used, and that CDI is NOT being used to inject it.
For example:
import org.microshed.testing.jupiter.RestClient;

@RestClient
public static MyService myService;

Additional context
We should keep in mind that MicroProfile REST Client has an @org.eclipse.microprofile.rest.client.inject.RestClient annotation, which will commonly be on the build path. It may be confusing to users having to know which package to import @RestClient from and I expect many users may import the MP annotation and wonder why the fields are not being injected in the test. For this reason, we should consider alternative names such as @MicroShedRestClient or @RESTClient

Since this will be a breaking change we should pair it with #63 to minimize releases that have breaking changes (even though we are still at 0.X versions)


Added operators highlighting, changed snippets indentation to more idiomatic

Idiomacity described in the docs.

There is no need in Syntaxes/Scala.textmate because TextMate allows to edit language plists in its brand new editor without XML so I removed it.
Just put / symlink scala bundle to ~/Library/Application Support/Avian/Bundles.

Great thanks,
A small side-note:
I actually had the scala.textmate file to preserve comments (the editor strips those out) and to make it easier for re-view changes to the grammar - we treated the .tmLanguage file as a generated source file only  - But I don't think the file has been very well maintained and it was a bit cumbersome so I don't mind that you removed it.


Exception in Bento's Flask usage when invoking Sagemaker endpoint

Hi there!
I just bundled and deployed a Pytorch image using the deploy.py file. Everything seems to deploy fine, but when I invoke the endpoint it crashed because BentoML is using a Flask call that appears not to exist.
I'm not sure if I've configured something wrong or if there's a version mismatch somewhere in the Bento + Docker stack.
Here is how I am invoking my endpoint:
aws sagemaker-runtime invoke-endpoint \
  --endpoint-name my-endpoint-name \
  --body '{"data":["foo"]}' \
  --cli-binary-format raw-in-base64-out \
  --content-type "application/json" \
  >(cat) 1>/dev/null | echo

In the logs, here is what that invocation looks like:
<IP_ADDRESS> - - [25/Aug/2021:18:03:12 +0000] "POST /invocations HTTP/1.1" 500 290 "-" "AHC/2.0"

And then here is the exception that follows:
[2021-08-25 18:03:12,772] ERROR in app: Exception on /invocations [POST]

Traceback (most recent call last):
  File "/opt/conda/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "/opt/conda/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/opt/conda/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/opt/conda/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
    raise value
  File "/opt/conda/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "/opt/conda/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/bento/wsgi.py", line 25, in view_function
    response = api.handle_request(req)
  File "/opt/conda/lib/python3.8/site-packages/bentoml/service/inference_api.py", line 295, in handle_request
    req = HTTPRequest.from_flask_request(request)
  File "/opt/conda/lib/python3.8/site-packages/bentoml/types.py", line 241, in from_flask_request
    tuple((k, v) for k, v in request.headers.items()), request.get_data(),

AttributeError: 'HTTPRequest' object has no attribute 'get_data'

@jjmachan Thanks for the response.

Upgrading to .13.1 worked for me using the scripts in this repository.

If I deployed the Docker image to ECR separately and created my own endpoint via Terraform, for some reason I was still getting it. I tracked it down to having an old version of Flask inside the docker container, and solved the problem by adding:
RUN pip install flask>=2.0.1

...to the inlined Dockerfile in generate_deployable.py
I think my use case is a bit out of scope for this codebase, but I wanted to report my fix here just in case it's helpful to someone else.


Not all types of Images are captured

Describe the bug
For some reason, only SVGs are captured by Cypress. I don't even see JPGs and WEBPs in Cypress
Is it due to some browser-level caching?
I have tried intercepting the requests and disabling the cache, but that didn't help.
cy.playback('GET', IMAGE_KIT_UGC_REGEX, {
    toBeCalledAtLeast: waitForImagesCount,
    matching: { ignores: ['port'] }
  })
    .intercept('GET', '**/*.{jpg,jpeg,png,webp,gif}', (req) => {
      req.headers['cache-control'] = 'no-store'
      req.headers['pragma'] = 'no-cache'
      req.headers['expires'] = '0'
    })
    .as('image')

Expected behavior
All sorts of images need to be captured
Screenshots

Environment

OS: Ubuntu
Cypress Version: 13.3.3
Browser: Electron
Browser Version: [e.g. 22]

Additional context
Add any other context about the problem here.

Clearing the cache has indeed fixed the issue :)
https://stackoverflow.com/questions/77455384/how-to-intercept-an-image-request-using-cy-intercept


fixed dcgan to use integer division so it won't die horribly in Python3 making users want to die as well

Fixed dcgan example for Python3 compatibility. Closes #7285

@piiswrong, @szha - found and fixed bug in the dcgan.py tutorial (relates to integer division and python3 compatibility).


Testing whether a RLMArray contains a value using indexOf

I've got this code in my latest project. Is this the only way to test whether an object is in a RLMArray when using Swift? I'm afraid this test might be platform dependent.

To test if an object is a member of an RLMArray, you can compare the result of indexOfObject(_:) with NSNotFound.

For anyone else confused, I had to cast NSNotFound to a UInt. The Xcode error messages were giving me very poor feedback.


How to set app:preview programatically

How to set app:preview programatically instead of in xml file . how we did that ?
Thanks

No, app:preview only work in inEditMode.


mjml-cli doesn't create the target directory when parsing multiple files

When running mjml-cli on multiple files using a glob pattern and the target directory doesn't exist, then the output is a single file without file extension, in the root directory.
If I create the dist directory before running the mjml command, then the output is generated as expected, with one HTML file for each corresponding MJML file.
Since I want to ignore my dist directory from source control, having to create the dist directory manually before building the project is inconvenient.
Reproduction Steps:

Create a src directory, with at east one mjml file in it.
Make sure the dist directory does NOT exist
Run mjml ./src/*.mjml -o ./dist/

Expected behavior:
A directory dist is created, and a HTML file is created within the dist directory for each corresponding MJML file in the src directory.
Observed behavior:
A single file with filename dist and without a file extension is created in the root directory, containing transpiled HTML.
MJML version:
mjml-core: 4.0.5
mjml-cli: 4.0.5
Node: 8.9.3

Hi can you try to update with 4.1 please ?
On Sun, Jul 1, 2018 at 12:03 AM Christofer Eliasson <
<EMAIL_ADDRESS>wrote:

When running mjml-cli on multiple files using a glob pattern and the
target directory doesn't exist, then the output is a single file without
file extension, in the root directory.
If I create the dist directory before running the mjml command, then the
output is generated as expected, with one HTML file for each corresponding
MJML file.
Since I want to ignore my dist directory from source control, having to
create the dist directory manually before building the project is
inconvenient.
Reproduction Steps:

Create a src directory, with at east one mjml file in it.
Make sure the dist directory does NOT exist
Run mjml ./src/*.mjml -o ./dist/

Expected behavior:
A directory dist is created, and a HTML file is created within the dist
directory for each corresponding MJML file in the src directory.
Observed behavior:
A single file with filename dist and without a file extension is created
in the root directory, containing transpiled HTML.
MJML version:
mjml-core: 4.0.5
mjml-cli: 4.0.5
Node: 8.9.3
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mjmlio/mjml/issues/1262, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAizzdxwSrmcZbbFD7jASUS_9-qcFYgLks5uB_WUgaJpZM4U-Hfl
.

--
Cordialement,
Maxime BRAZEILLES

I think we added a check at somepoint to ensure that output directory
should exist, we'll check what happens then thanks for reporting it.
On Sun, Jul 1, 2018 at 12:25 AM Christofer Eliasson <
<EMAIL_ADDRESS>wrote:

@iRyusa https://github.com/iRyusa Bumped to 4.1, but still having the
same problem unfortunately.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mjmlio/mjml/issues/1262#issuecomment-401569988, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAizzfDhlnPUGnNj9EiagIMYNGQwmUaGks5uB_rigaJpZM4U-Hfl
.

--
Cordialement,
Maxime BRAZEILLES

Hi @c-eliasson  We should indeed specify in the doc that the output directory must already exists, but this is the normal behavior. There are already multiple cases to handle depending on input/ouput being files or directories, so we think it's safer not to create directories.
We added more logging about this :
If i run mjml test/*.mjml -o ./dist/ with multiple mjml files in the test dir, it outputs Multiple input files, but output option should be either an existing directory or an empty string: ./dist given
If i run the same command with only one file, it outputs Error writing file - ./dist/ : Error: ENOENT: no such file or directory, open './dist/'
Finally if i run mjml test/*.mjml -o ./dist with only one input file, it assumes ./dist is the output file and create it.


Select thumbnail by size

Kind (Required)

Improvement

Overview (Required)

We can use three thumbnail sizes. But we are always using standardUrl.

Links

This needs clarification. How do we decide which size to use?

Thank you!
It is good to change it depending on the situation, but it has not been decided yet.
For example, it is likely to change depending on the size of the screen, the size on the dp used, and the line conditions. Do you have any suggestions?


Unable to click onlclick action menu items...

Are you requesting a feature or reporting a bug?
Bug
What is the current behavior?

How would you reproduce the current behavior (if this is a bug)?
Provide the test code and the tested page URL (if applicable)
Tested page URL: Restricted... Provided Link code
Test code
Unable to click onlclick action menu items...
User Master
Kindly help..

Specify your

operating system: Windows 10
testcafe version: 0.20.3
node.js version: v8.11.1

@hiruthre
Would you please provide me with the details of the issue since I need to know how your __fnLoadScreen works and how the action menu items are rendered?

I would appreciate it if you prepare a small working example to demonstrate the issue.

Since webpage is confidential and can't share in public.
The webpage contains the following components

Main URL
Left Menus
iframe (in which __fnLoadScreen URL will be load based on onclick action).

Each Menu is having onclick action with __fnLoadScreen(URL). whenever a user clicks on a menu, the system appends fnLoadScreen URL with the main URL and load the screen in an iframe.

I prepared a sample based on your code and was not able to reproduce the issue.
Could you please modify it to demonstrate the problem?
Test page:
<!DOCTYPE html>

    <title></title>

    User Master

Test file:
fixture `gh-1312`
    .page `../pages/index.html`;

test('something', async t => {
    await t.click('a');
    await t.wait(4000);
});

If you are unable to reproduce the issue in my sample, it would help if you prepare a simple project with test data and remove confidential information to show the problem.

Alex,
I am able to click link using the selector. Since selector changes based on the menu configuration i.e. position of a menu. However onclick action is constant even though position change.. Hence I want to click menu based on onclick action attribute rather than using selector.

If you just want to click an element by it's attribute you can use attribute selector

Thus for the button in the following example:

    User Master

you can use this selector:
await t.click('a[onclick="javascript:__fnLoadScreen(\'http://example.com\');"]');

Alex, am able to click menu using attribute selector.  Thanks..


Add profile for EA Origin

choco install origin

Had to force and ignore-checksums. This may not go well


Incorrect line of code

In section 4, under the section "Displaying data in real-time".
tableView.reload() should be tableView.reloadData()

This is fixed and should be published soon, please comment again if this isn't the case after a few minutes from now.
Thanks!


Add a pre-commit hook to automatically format code with Black

We should add a pre-commit hook that automatically formats modified Python files with Black.

Closing since the PR has been merged.

Thanks -- still getting used to how GitHub manages git / PR / issue state.


fix: #320: " and ' encoding must also apply for PCDATA

" and ' is allowed in pcdata, no need to merge this one


Add more specific metadata to request headers

For the purposes of tracking usage adoption, it would be nice to include some library and version information in the HTTP requests.
I believe the requests library under the hood of searchtweets sends something similar to 'User-Agent': 'python-requests/1.2.0' in its requests. Perhaps we could modify the headers like (roughly):
version = searchtweets.__version__
useragent = 'search-tweets-python/{}'.format(version)
headers = {'User-Agent': useragent}

I'm not sure if it would be best set in the request() method or in the make_session() method. The requests docs mention doing it in both places (former, latter).
@binaryaaron @fionapigott @jeffakolb are there other metadata things that would be useful in the headers?

I like this enhancement and think we should do it in the make_session function.
We'll need to add the __version__ attribute to the module as well so we can grab it programmatically.

Thanks @fionapigott!


Point to the English workshop

We should probably point directly to the English workshop on the main page

+1

thanks @fredj


Please add support for Hue Dimmer Switch V2.

When trying to add a new "Hue Switch" node to a flow I noticed it did not appear in the drop-down of available switches after I had I hit the search icon. Only my existing (v1) switch shows up in the list.
It would be nice if support for the "Dimmer Switch v2" could be added to this great node.
I should add that my Dimmer Switch v2 was successfully added to my setup via the Philips Hue app and is working properly, it just doesn't show up in huemagic.

I encountered this as well. I found and fixed the problem in huejay, but that has been basically dead for 2 years now. I think we need someone to fork and maintain huejay in order to keep huemagic going. My PR on huejay is here: https://github.com/sqmk/huejay/pull/120

I copied your file into my setup and it's working for me now.  Thank you very much :+1:
Yes, the long term fix is to get this incorporated into huejay, hopefully your pull request will get picked up at some point. We can hope! :smiley:

hey @dissemin8 how did you got it to work? can you give me some hint pls?

hey @dissemin8 how did you got it to work? can you give me some hint pls?

You will need to find where nodered is installed and find the huejay SensorModel directory. On my Raspberry Pi setup it is here:
/home/pi/.node-red/node_modules/huejay/lib/SensorModel
If you can see a file named RWL021.js then you are in the right place.
Now take the link in csmale's comment above (the one that looks like this:  sqmk/huejay#120)
Click on the "files changed" tab and copy the code into a new file named RWL022.js in the above directory.
It should look like the contents on RWL021.js but all references to RWL021 should be RWL022 instead.
There may be other and/or better ways to achieve the same thing but that is what worked for me.
Note: if you reinstall / update hue magic at a later date, you might have to redo the above again.
It's a bit of a hack ;)

Has there been any progress on adding these directly into huemagic? The file copying doesn't work if you install node-red as a docker image via the supervisor add-on (the default install method).

For those looking to backport @csmale's fix into their existing nodered installation: https://gist.github.com/domhauton/fde796e7f88e3e3a8992aedc2f5f2068

Should be supported in the newly released v4 ;)


Shade grpc.internal packaged to allow it to work with shaded guava.

This is good motivation to finally fork the stream-related classes from grpc and remove the usage of grpc.internal APIs (we'll still use grpc public APIs to interact with generated code).
Plan:

Add this shading of the grpc.internal package to allow updating to 1.1.2 which works with our current version of netty
Update to grpc 1.1.2
Add DocService (PR mostly complete and just blocked by this update)
Copy over logic from grpc.internal and remove the shading.

Let me know if this plan makes sense
Other changes:

Move grpc interop testing to it package since it's for verifying protocol implementation and doesn't need to do shaded testing
Enable full exception logging for shaded tests.

@trustin PTAL

The plan sounds good to me. :-)


Failed To Load Vendetta since v202.4/v202.5 (Canary)

Same here, here's the error in text form (via textbender)
Failed to load Vendetta!

Build Number: 202205
Vendetta: 2cc1f8d
TypeError: undefined is not a function
    at ?anon_0_?anon_0_ln (Vendetta:2:1029)
    at next (native)
    at anonymous (/tmp/tmp3dxsp38q/ReactAndroid/hermes-engine/.cxx/MinSizeRel/5w36155w/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:610:30)
    at step (/tmp/tmp3dxsp38q/ReactAndroid/hermes-engine/.cxx/MinSizeRel/5w36155w/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:595:23)
    at anonymous (/tmp/tmp3dxsp38q/ReactAndroid/hermes-engine/.cxx/MinSizeRel/5w36155w/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:609:17)
    at tryCallOne (/tmp/tmp3dxsp38q/ReactAndroid/hermes-engine/.cxx/MinSizeRel/5w36155w/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:53:16)
    at anonymous (/tmp/tmp3dxsp38q/ReactAndroid/hermes-engine/.cxx/MinSizeRel/5w36155w/arm64-v8a/lib/InternalBytecode/InternalBytecode.js:139:27)
    at apply (native)
    at anonymous (/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:165:2034)
    at _callTimer (/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:165:575)
    at _callReactNativeMicrotasksPass (/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:165:1017)
    at callReactNativeMicrotasks (/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:165:3831)
    at __callReactNativeMicrotasks (/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:48:3309)
    at anonymous (/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:48:1164)
    at __guard (/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:48:2908)
    at flushedQueue (/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:48:1122)
    at invokeCallbackAndReturnFlushedQueue (/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:48:1044)

It's worth noting that, at least on my end, after dismissing the error dialog, everything including Vendetta + its plugins seems to be working fine?


feat(build): add ability to push to multiple registries from github actions

Why is this PR required? What issue does it fix?:
Currently the multiarch images can be pushed only to a single registry without rebuilding.  Therefore the images are by default pushed to docker hub only. This is not ideal and images should be pushed to multiple registries. This PR fixes this issue by making use of the official docker build-push-action.
What this PR does?:

make use of docker build-push-action
push images to quay

Does this PR require any upgrade changes?:
No
If the changes in this PR are manually verified, list down the scenarios covered::
Any additional information for your reviewer? :
Mention if this PR is part of any design or a continuation of previous PRs
QUAY_USERNAME and QUAY_TOKEN secrets need to be added to the repo
Checklist:

[ ] Fixes #
[x] PR Title follows the convention of  <type>(<scope>): <subject>
[x] Has the change log section been updated?
[ ] Commit has unit tests
[ ] Commit has integration tests
[ ] (Optional) Are upgrade changes included in this PR? If not, mention the issue/PR to track:
[ ] (Optional) If documentation changes are required, which issue on https://github.com/openebs/openebs-docs is used to track them:

Codecov Report

Merging #544 (89e4ed8) into master (5360424) will increase coverage by 0.17%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #544      +/-   ##
==========================================
+ Coverage   48.23%   48.41%   +0.17%
==========================================
  Files          73       73
  Lines        3371     3371
==========================================
+ Hits         1626     1632       +6
+ Misses       1591     1581      -10
- Partials      154      158       +4

Impacted Files
Coverage Δ

cmd/ndm_daemonset/probe/addhandler.go
74.22% <0.00%> (+2.06%)
:arrow_up:

Continue to review full report at Codecov.

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

Appears to be CI is failing unit tests - any additional TODOs before this is ready for review?

Appears to be CI is failing unit tests - any additional TODOs before this is ready for review?

@xUnholy @shubham14bajpai Will fix the unit tests, and mark it ready for review. Till then we will hold the review process.

@xUnholy @shubham14bajpai Fixed the issue with CI builds.This PR can now be reviewed


[AutoPR datafactory/resource-manager] Adding refresh and get IntegrationRuntimeObjectMetadata API

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/4724

(message created by the CI based on PR content)

This PR has been merged into https://github.com/Azure/azure-sdk-for-python/pull/2293


imageverifier plugin CLI Arguments format issue

Description
https://github.com/containerd/containerd/blob/main/docs/image-verification.md#cli-arguments
https://github.com/containerd/containerd/blob/main/pkg/imageverifier/bindir/bindir.go#L118-L121
normally the command line should support short or long two types flags:
-n: The given reference to the image that may be pulled.
-d: The resolved digest of the image that may be pulled.
-s: The media type of the JSON data passed to stdin.

--name: The given reference to the image that may be pulled.
--digest: The resolved digest of the image that may be pulled.
--stdin-media-type: The media type of the JSON data passed to stdin.

But current CLI Arguments use single-dash arguments with longer names, it may not suitable as binary API
Steps to reproduce the issue

Describe the results you received and expected
--name: The given reference to the image that may be pulled.
--digest: The resolved digest of the image that may be pulled.
--stdin-media-type: The media type of the JSON data passed to stdin.

What version of containerd are you using?
latest main branch
Any other relevant information
No response
Show configuration if it is related to CRI plugin.
No response

Hi, I'd like to take on this issue if possible.

Hi, I'd like to take on this issue if possible.

@Anish-M sure, Thanks a lot!

@arronwy I have some local containerd code I'm trying to test out, how do I run the default image-verifier plugin? Also I launched the build env with codespaces by I don't see any /opt/containerd/config.toml though I do believe that the image-verifier plugin is already setup correctly

Hi @Anish-M ， we can build the containerd from main branch:
containerd --version
containerd github.com/containerd/containerd v2.0.0-rc.0-71-g831795901.m<PHONE_NUMBER>015f6a1756ec8cd08be1093fd630a2.m

Check whether containerd image-verifier plugin status:
 ctr plugin ls
TYPE                                   ID                       PLATFORMS      STATUS
io.containerd.image-verifier.v1        bindir                   -              ok

Check contianerd default config:
containerd config default

  [plugins.'io.containerd.image-verifier.v1.bindir']
    bin_dir = '/opt/containerd/image-verifier/bin'
    max_verifiers = 10
    per_verifier_timeout = '10s'

The image-verifier binary should under directory: /opt/containerd/image-verifier/bin

I don't see any image-verifier directory at that location, how can I build or compile the image-verifier plugin to get the binary there?

But current CLI Arguments use single-dash arguments with longer names, it may not suitable as binary API

@arronwy Can you give more detail why it may not be suitable?