Code split

Enables code splitting by using dynamic entry points in routes.jsx
high level features:

enables code splitting on client

hashed chunks in prod mode (for caching and cache-busting)
named (id) in dev mode

disables code splitting on server
uses a webpack manifest file to make sure vendor chunks does not change unless code changes
adds a vendor chunk as an example (the actual content of this can easily be changed though)

Please ask any questions regarding the implementation you might have.

This is a less opiniated alternative to https://github.com/reactGo/reactGo/pull/823 (even though dll bundles and code splitting is not mutually exclusive).
To see it in action, navigate the application while viewing only JS requests in the Chrome network tab.

@GGAlanSmithee Thanks for this! Nice and clean.
I am still on holiday atm, but very happy to see this PR!
I am also attempting to improve our test setup slightly, so I will move to this after I am done with that!

@choonkending :+1:
A few notes:

The manifest is not strictly needed

Removing this would make this PR quite a bit smaller (much less changes to render middleware), but I would recommend keeping it, as it would othervise inline the webpack manifest in the last chunk (vendor) making it generate a new hash everytime a chunk is added / removed / changed.

The server-side code-split prevention is not strictly needed

But it makes no sense to codesplit on the server

I am also attempting to improve our test setup slightly,

Interesting :) I find the test framework provided in this boilerplate to be :100: (although I'm not testing UI related functionality too much)

@GGAlanSmithee Have a look at #847 ! :D

@GGAlanSmithee Have you ever used react-router@4? Currently, I cannot find any good way to split codes like v3.

@ZeroCho I made a comment regarding this in https://github.com/reactGo/reactGo/issues/827#issuecomment-278890438
The only way that I know of is to use https://github.com/ctrlplusb/react-async-component or create your own similar functionality. I cannot vouch for  this though, as I am yet to transfer any of my projects to rr4 for this very reason (lack of "easy" code split integration)

@choonkending nice, that's a lot less boilerplate :)

@GGAlanSmithee Thank you! I didn't transfer to rr4 for the same reason. I'm sad there's no clear and easy way to spit codes... I'll try your suggestion react-async-component

I believe you've already seen this but just want to make a note about this
react-router code-splitting. On the bottom they say that they didnt really go in the way of SSR + code splitting because it seems too difficult..?

@slavab89 I saw it too. It is too complicated to achieve both. I'm waiting for the successful reference to come out.

I can confirm that I am still blocked by no ssr + code split for rr4. I am seriously thinking of dropping ssr in my apps, atleast for the ones which are mostly protected behind auth.

Cruising google a little and i actually found a few promising looking articles / repos
Also contains a github at the end https://blog.emilecantin.com/web/react/javascript/2017/05/16/ssr-react-router-4-webpack-code-split.html
A little old but explained pretty well https://medium.com/@apostolos/server-side-rendering-code-splitting-and-hot-reloading-with-react-router-v4-87239cfc172c
Its in TS but still readable https://github.com/luke-john/rr4-ssr-cs
Let me know what you think 😄


Building flatpak target fails

[ x] I have read the contribution documentation for this project.
[ x] I agree to follow the code of conduct that this project follows, as appropriate.
[ x] I have searched the issue tracker for an issue that matches the one I want to file, without success.

Trying to create a flatpak bundle from an electron-forge application fails with an error.
Both flatpak and flatpak-builder are natively installed in the system as requested by the dependencies.

Console output when you run electron-forge with the environment variable DEBUG=electron-forge:*. (Instructions on how to do so here). Please include the stack trace if one exists.
[carles@localhost ef-build]$ DEBUG=electron-forge:* NPM_CONFIG_LOGLEVEL=info electron-forge make
WARNING: DEBUG environment variable detected.  Progress indicators will be sent over electron-forge:lifecycle
  electron-forge:lifecycle Process Started: Checking your system +0ms
  electron-forge:lifecycle Process Succeeded: Checking your system +205ms
  electron-forge:runtime-config setting key: verbose to value: false +0ms
WARNING: DEBUG environment variable detected.  Progress indicators will be sent over electron-forge:lifecycle
  electron-forge:lifecycle Process Started: Resolving Forge Config +0ms
  electron-forge:project-resolver searching for project in: /home/carles/html5/ef-build +0ms
  electron-forge:project-resolver electron-forge compatible package.json found in /home/carles/html5/ef-build/package.json +5ms
  electron-forge:lifecycle Process Succeeded: Resolving Forge Config +11ms
  electron-forge:require-search searching [ '../makers/linux/flatpak.js',
  '../makers/generic/flatpak.js',
  'electron-forge-maker-flatpak',
  'flatpak',
  '/home/carles/html5/ef-build/flatpak',
  '/home/carles/html5/ef-build/node_modules/flatpak',
  '/usr/lib/node_modules/electron-forge/dist/makers/linux/flatpak.js',
  '/usr/lib/node_modules/electron-forge/dist/makers/generic/flatpak.js',
  '/usr/lib/node_modules/electron-forge/dist/api/electron-forge-maker-flatpak',
  '/usr/lib/node_modules/electron-forge/dist/api/flatpak',
  '/home/carles/html5/ef-build/flatpak',
  '/home/carles/html5/ef-build/node_modules/flatpak',
  '/usr/lib/node_modules/electron-forge/dist/api/makers/linux/flatpak.js',
  '/usr/lib/node_modules/electron-forge/dist/api/makers/generic/flatpak.js',
  '/usr/lib/node_modules/electron-forge/dist/api/node_modules/electron-forge-maker-flatpak',
  '/usr/lib/node_modules/electron-forge/dist/api/node_modules/flatpak',
  '/home/carles/html5/ef-build/flatpak',
  '/home/carles/html5/ef-build/node_modules/flatpak' ] relative to /usr/lib/node_modules/electron-forge/dist/api +0ms
  electron-forge:require-search testing ../makers/linux/flatpak.js +2ms
We need to package your application before we can make it
  electron-forge:lifecycle Process Started: Preparing to Package Application for arch: x64 +61ms
  electron-forge:project-resolver searching for project in: /home/carles/html5/ef-build +66ms
  electron-forge:project-resolver electron-forge compatible package.json found in /home/carles/html5/ef-build/package.json +0ms
  electron-forge:hook could not find hook: generateAssets +0ms
  electron-forge:hook could not find hook: prePackage +0ms
  electron-forge:packager packaging with options { asar: false,
  overwrite: true,
  packageManager: 'npm',
  afterCopy: [ [Function] ],
  afterExtract: [ [Function] ],
  afterPrune: [ [Function] ],
  dir: '/home/carles/html5/ef-build',
  arch: 'x64',
  platform: 'linux',
  out: '/home/carles/html5/ef-build/out',
  electronVersion: '1.8.4',
  quiet: true } +0ms
  electron-forge:lifecycle Process Succeeded: Preparing to Package Application for arch: x64 +11s
  electron-forge:lifecycle Process Started: Compiling Application +0ms
  electron-forge:lifecycle Process Succeeded: Compiling Application +605ms
  electron-forge:lifecycle Process Started: Preparing native dependencies +8s
  electron-forge:lifecycle Process Succeeded: Preparing native dependencies +44ms
  electron-forge:lifecycle Process Started: Packaging Application +0ms
  electron-forge:hook could not find hook: postPackage +21s
  electron-forge:lifecycle Process Succeeded: Packaging Application +922ms
Making for the following targets:
  electron-forge:hook could not find hook: preMake +1ms
  electron-forge:lifecycle Process Started: Making for target: flatpak - On platform: linux - For arch: x64 +2ms
  electron-forge:lifecycle Process Failed: Making for target: flatpak - On platform: linux - For arch: x64 +26s

An unhandled error has occurred inside Forge:
An error occured while making for target: flatpak
flatpak-builder failed with status code 1
Error: flatpak-builder failed with status code 1
    at ChildProcess.child.on (/usr/lib/node_modules/electron-forge/node_modules/flatpak-bundler/index.js:74:16)
    at emitTwo (events.js:126:13)
    at ChildProcess.emit (events.js:214:7)
    at maybeClose (internal/child_process.js:925:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)

What command line arguments are you passing?
DEBUG=electron-forge:* electron-forge make

What does your config.forge data in package.json look like?
  "config": {
    "forge": {
      "make_targets": {
        "win32": [
          "squirrel"
        ],
        "darwin": [
          "zip"
        ],
        "linux": [
          "flatpak"
        ]
      },
      "electronPackagerConfig": {
        "packageManager": "npm"
      },
      "electronWinstallerConfig": {
        "name": "ef_build"
      },
      "electronInstallerDebian": {},
      "electronInstallerFlatpak": {
        "dest": "dist/installers/",
        "icon": "resources/icon.png",
        "categories": [
          "Utility"
        ]
      },
      "electronInstallerRedhat": {},
      "github_repository": {
        "owner": "",
        "name": ""
      },
      "windowsStoreConfig": {
        "packageName": "",
        "name": "efbuild"
      }
    }
  },

Please provide either a failing minimal testcase (with a link to the code) or detailed steps to
reproduce your problem. Using electron-forge init is a good starting point, if that is not the
source of your problem.
Here's a repo with my failing test case:
https://github.com/cpba/ef-build
Steps I've followed in order to arrive here:

I'm trying to build this sample application:
https://github.com/flathub/electron-sample-app

create new electron-forge project called ef-build using:
electron-forge init ef-build

copy project tarball into created ef-build/src folder.

edit package.json to point to src/main.js rather than src/index.js.

check that the application runs:
electron-forge start

add "flatpak" to make targets in package.json

attempt make with:
electron-forge make

One comment about the sample app in flathub: it should put electron in devDependencies, not dependencies.
Anyway, back to the bug: I'm confused as to why you're copying that project into an Electron Forge project. That would be the equivalent of nesting two Node projects inside each other and expecting it to run without modifications.

A newly created Electron Forge project should "just work" if all you do is add flatpak to the make targets.
For completeness, could you run DEBUG=electron-forge:*,electron-installer-flatpak,flatpak-bundler electron-forge make and post the output?

@malept Thank you for pointing out the dependency issue with the sample app, I don't have much experience with electron development and often these details evade me.
In order to eliminate the possibility of the sample app being the cause, I've redone the test with these steps:

create new electron-forge project:
electron-forge init prova-ef
change deb and rpm to flatpak in build targets.
attempt to build:
DEBUG=electron-forge:*,electron-installer-flatpak,flatpak-bundler electron-forge make

The result is the following:
$ DEBUG=electron-forge:*,electron-installer-flatpak,flatpak-bundler electron-forge make
WARNING: DEBUG environment variable detected.  Progress indicators will be sent over electron-forge:lifecycle
  electron-forge:lifecycle Process Started: Checking your system +0ms
  electron-forge:lifecycle Process Succeeded: Checking your system +210ms
  electron-forge:runtime-config setting key: verbose to value: false +0ms
WARNING: DEBUG environment variable detected.  Progress indicators will be sent over electron-forge:lifecycle
  electron-forge:lifecycle Process Started: Resolving Forge Config +0ms
  electron-forge:project-resolver searching for project in: /home/carles/html5/prova-ef +0ms
  electron-forge:project-resolver electron-forge compatible package.json found in /home/carles/html5/prova-ef/package.json +6ms
  electron-forge:lifecycle Process Succeeded: Resolving Forge Config +10ms
  electron-forge:require-search searching [ '../makers/linux/flatpak.js',
  '../makers/generic/flatpak.js',
  'electron-forge-maker-flatpak',
  'flatpak',
  '/home/carles/html5/prova-ef/flatpak',
  '/home/carles/html5/prova-ef/node_modules/flatpak',
  '/usr/lib/node_modules/electron-forge/dist/makers/linux/flatpak.js',
  '/usr/lib/node_modules/electron-forge/dist/makers/generic/flatpak.js',
  '/usr/lib/node_modules/electron-forge/dist/api/electron-forge-maker-flatpak',
  '/usr/lib/node_modules/electron-forge/dist/api/flatpak',
  '/home/carles/html5/prova-ef/flatpak',
  '/home/carles/html5/prova-ef/node_modules/flatpak',
  '/usr/lib/node_modules/electron-forge/dist/api/makers/linux/flatpak.js',
  '/usr/lib/node_modules/electron-forge/dist/api/makers/generic/flatpak.js',
  '/usr/lib/node_modules/electron-forge/dist/api/node_modules/electron-forge-maker-flatpak',
  '/usr/lib/node_modules/electron-forge/dist/api/node_modules/flatpak',
  '/home/carles/html5/prova-ef/flatpak',
  '/home/carles/html5/prova-ef/node_modules/flatpak' ] relative to /usr/lib/node_modules/electron-forge/dist/api +0ms
  electron-forge:require-search testing ../makers/linux/flatpak.js +1ms
We need to package your application before we can make it
  electron-forge:lifecycle Process Started: Preparing to Package Application for arch: x64 +60ms
  electron-forge:project-resolver searching for project in: /home/carles/html5/prova-ef +65ms
  electron-forge:project-resolver electron-forge compatible package.json found in /home/carles/html5/prova-ef/package.json +0ms
  electron-forge:hook could not find hook: generateAssets +0ms
  electron-forge:hook could not find hook: prePackage +0ms
  electron-forge:packager packaging with options { asar: false,
  overwrite: true,
  packageManager: 'npm',
  afterCopy: [ [Function] ],
  afterExtract: [ [Function] ],
  afterPrune: [ [Function] ],
  dir: '/home/carles/html5/prova-ef',
  arch: 'x64',
  platform: 'linux',
  out: '/home/carles/html5/prova-ef/out',
  electronVersion: '2.0.0',
  quiet: true } +0ms
  electron-forge:lifecycle Process Succeeded: Preparing to Package Application for arch: x64 +12s
  electron-forge:lifecycle Process Started: Compiling Application +0ms
  electron-forge:lifecycle Process Succeeded: Compiling Application +585ms
  electron-forge:lifecycle Process Started: Preparing native dependencies +8s
  electron-forge:lifecycle Process Succeeded: Preparing native dependencies +49ms
  electron-forge:lifecycle Process Started: Packaging Application +0ms
  electron-forge:hook could not find hook: postPackage +22s
  electron-forge:lifecycle Process Succeeded: Packaging Application +953ms
Making for the following targets:
  electron-forge:hook could not find hook: preMake +1ms
  electron-forge:lifecycle Process Started: Making for target: flatpak - On platform: linux - For arch: x64 +1ms
  electron-installer-flatpak Reading package metadata from /home/carles/html5/prova-ef/out/prova-ef-linux-x64/resources/app/package.json +0ms
  electron-installer-flatpak Creating package with options
  electron-installer-flatpak {
  electron-installer-flatpak   "options": {},
  electron-installer-flatpak   "arch": "x86_64",
  electron-installer-flatpak   "dest": "/home/carles/html5/prova-ef/out/make",
  electron-installer-flatpak   "src": "/home/carles/html5/prova-ef/out/prova-ef-linux-x64",
  electron-installer-flatpak   "id": "io.atom.electron.prova-ef",
  electron-installer-flatpak   "productName": "prova-ef",
  electron-installer-flatpak   "genericName": "prova-ef",
  electron-installer-flatpak   "description": "My Electron application description",
  electron-installer-flatpak   "branch": "master",
  electron-installer-flatpak   "base": "io.atom.electron.BaseApp",
  electron-installer-flatpak   "baseVersion": "master",
  electron-installer-flatpak   "baseFlatpakref": "https://s3-us-west-2.amazonaws.com/electron-flatpak.endlessm.com/electron-base-app-master.flatpakref",
  electron-installer-flatpak   "runtime": "org.freedesktop.Platform",
  electron-installer-flatpak   "runtimeVersion": "1.4",
  electron-installer-flatpak   "runtimeFlatpakref": "https://raw.githubusercontent.com/endlessm/flatpak-bundler/master/refs/freedesktop-runtime-1.4.flatpakref",
  electron-installer-flatpak   "sdk": "org.freedesktop.Sdk",
  electron-installer-flatpak   "sdkFlatpakref": "https://raw.githubusercontent.com/endlessm/flatpak-bundler/master/refs/freedesktop-sdk-1.4.flatpakref",
  electron-installer-flatpak   "finishArgs": [
  electron-installer-flatpak     "--socket=x11",
  electron-installer-flatpak     "--share=ipc",
  electron-installer-flatpak     "--device=dri",
  electron-installer-flatpak     "--socket=pulseaudio",
  electron-installer-flatpak     "--filesystem=home",
  electron-installer-flatpak     "--filesystem=/tmp",
  electron-installer-flatpak     "--share=network",
  electron-installer-flatpak     "--talk-name=org.freedesktop.Notifications"
  electron-installer-flatpak   ],
  electron-installer-flatpak   "modules": [],
  electron-installer-flatpak   "bin": "prova-ef",
  electron-installer-flatpak   "icon": "/usr/lib/node_modules/electron-forge/node_modules/electron-installer-flatpak/resources/icon.png",
  electron-installer-flatpak   "files": [],
  electron-installer-flatpak   "symlinks": [],
  electron-installer-flatpak   "categories": [
  electron-installer-flatpak     "GNOME",
  electron-installer-flatpak     "GTK",
  electron-installer-flatpak     "Utility"
  electron-installer-flatpak   ],
  electron-installer-flatpak   "mimeType": []
  electron-installer-flatpak } +3ms
  electron-installer-flatpak Creating temporary directory +0ms
  electron-installer-flatpak Creating contents of package +1ms
  electron-installer-flatpak Creating desktop file at /tmp/electron-11842-16599-v07dd6.jmz27/io.atom.electron.prova-ef_undefined_x86_64/share/applications/io.atom.electron.prova-ef.desktop +0ms
  electron-installer-flatpak Generating template from /usr/lib/node_modules/electron-forge/node_modules/electron-installer-flatpak/resources/desktop.ejs +0ms
  electron-installer-flatpak Creating icon file at /tmp/electron-11842-16599-v07dd6.jmz27/io.atom.electron.prova-ef_undefined_x86_64/share/pixmaps/io.atom.electron.prova-ef.png +0ms
  electron-installer-flatpak Creating copyright file at /tmp/electron-11842-16599-v07dd6.jmz27/io.atom.electron.prova-ef_undefined_x86_64/share/doc/io.atom.electron.prova-ef/copyright +1ms
  electron-installer-flatpak Reading license file from /home/carles/html5/prova-ef/out/prova-ef-linux-x64/LICENSE +0ms
  electron-installer-flatpak Copying application to /tmp/electron-11842-16599-v07dd6.jmz27/io.atom.electron.prova-ef_undefined_x86_64/lib/io.atom.electron.prova-ef +0ms
  electron-installer-flatpak Generated template from /usr/lib/node_modules/electron-forge/node_modules/electron-installer-flatpak/resources/desktop.ejs
  electron-installer-flatpak [Desktop Entry]
  electron-installer-flatpak Name=prova-ef
  electron-installer-flatpak Comment=My Electron application description
  electron-installer-flatpak GenericName=prova-ef
  electron-installer-flatpak Exec=prova-ef %U
  electron-installer-flatpak Icon=io.atom.electron.prova-ef
  electron-installer-flatpak Type=Application
  electron-installer-flatpak StartupNotify=true
  electron-installer-flatpak Categories=GNOME;GTK;Utility;
  electron-installer-flatpak
  electron-installer-flatpak  +2ms
  electron-installer-flatpak Creating package at /home/carles/html5/prova-ef/out/make/io.atom.electron.prova-ef_master_x86_64.flatpak +2s
  flatpak-bundler Using manifest...
  flatpak-bundler {
  flatpak-bundler   "id": "io.atom.electron.prova-ef",
  flatpak-bundler   "branch": "master",
  flatpak-bundler   "base": "io.atom.electron.BaseApp",
  flatpak-bundler   "base-version": "master",
  flatpak-bundler   "base-flatpakref": "https://s3-us-west-2.amazonaws.com/electron-flatpak.endlessm.com/electron-base-app-master.flatpakref",
  flatpak-bundler   "runtime": "org.freedesktop.Platform",
  flatpak-bundler   "runtime-version": "1.4",
  flatpak-bundler   "runtime-flatpakref": "https://raw.githubusercontent.com/endlessm/flatpak-bundler/master/refs/freedesktop-runtime-1.4.flatpakref",
  flatpak-bundler   "sdk": "org.freedesktop.Sdk",
  flatpak-bundler   "sdk-flatpakref": "https://raw.githubusercontent.com/endlessm/flatpak-bundler/master/refs/freedesktop-sdk-1.4.flatpakref",
  flatpak-bundler   "finish-args": [
  flatpak-bundler     "--socket=x11",
  flatpak-bundler     "--share=ipc",
  flatpak-bundler     "--device=dri",
  flatpak-bundler     "--socket=pulseaudio",
  flatpak-bundler     "--filesystem=home",
  flatpak-bundler     "--filesystem=/tmp",
  flatpak-bundler     "--share=network",
  flatpak-bundler     "--talk-name=org.freedesktop.Notifications"
  flatpak-bundler   ],
  flatpak-bundler   "command": "prova-ef",
  flatpak-bundler   "files": [
  flatpak-bundler     [
  flatpak-bundler       "/tmp/electron-11842-16599-v07dd6.jmz27/io.atom.electron.prova-ef_undefined_x86_64",
  flatpak-bundler       "/"
  flatpak-bundler     ]
  flatpak-bundler   ],
  flatpak-bundler   "symlinks": [
  flatpak-bundler     [
  flatpak-bundler       "/lib/io.atom.electron.prova-ef/prova-ef",
  flatpak-bundler       "/bin/prova-ef"
  flatpak-bundler     ]
  flatpak-bundler   ],
  flatpak-bundler   "extra-exports": [
  flatpak-bundler     "/share/pixmaps/io.atom.electron.prova-ef.png"
  flatpak-bundler   ],
  flatpak-bundler   "modules": []
  flatpak-bundler } +0ms
  flatpak-bundler Using options...
  flatpak-bundler {
  flatpak-bundler   "arch": "x86_64",
  flatpak-bundler   "bundle-path": "/home/carles/html5/prova-ef/out/make/io.atom.electron.prova-ef_master_x86_64.flatpak",
  flatpak-bundler   "working-dir": "/var/tmp/tmp-16599xZ8YE40Qf2Ev",
  flatpak-bundler   "build-dir": "/var/tmp/tmp-16599xZ8YE40Qf2Ev/build",
  flatpak-bundler   "repo-dir": "/var/tmp/tmp-16599xZ8YE40Qf2Ev/repo",
  flatpak-bundler   "manifest-path": "/var/tmp/tmp-16599xZ8YE40Qf2Ev/manifest.json",
  flatpak-bundler   "extra-flatpak-builder-args": [],
  flatpak-bundler   "extra-flatpak-build-bundle-args": [],
  flatpak-bundler   "extra-flatpak-build-export-args": [],
  flatpak-bundler   "clean-tmpdirs": true,
  flatpak-bundler   "auto-install-runtime": true,
  flatpak-bundler   "auto-install-sdk": true,
  flatpak-bundler   "auto-install-base": true
  flatpak-bundler } +0ms
  flatpak-bundler Ensuring runtime is up to date +1ms
  flatpak-bundler Checking for install of org.freedesktop.Platform +0ms
  flatpak-bundler $ flatpak info --show-commit --user org.freedesktop.Platform/x86_64/1.4 +0ms
  flatpak-bundler $ flatpak info --show-commit --system org.freedesktop.Platform/x86_64/1.4 +9ms
  flatpak-bundler 1> 45ba501d99dfcf28efc61d01e2d985c4c40c32db136b2f08c2a3893619969603
  flatpak-bundler  +100ms
  flatpak-bundler 2> error: org.freedesktop.Platform 1.4 not installed
  flatpak-bundler  +3ms
  flatpak-bundler Found install of org.freedesktop.Platform, trying to update +1ms
  flatpak-bundler $ flatpak update --user --no-deps --arch x86_64 org.freedesktop.Platform 1.4 +0ms
  flatpak-bundler 1> Looking for updates...
  flatpak-bundler  +22ms
  flatpak-bundler Ensuring sdk is up to date +14s
  flatpak-bundler Checking for install of org.freedesktop.Sdk +1ms
  flatpak-bundler $ flatpak info --show-commit --user org.freedesktop.Sdk/x86_64/ +0ms
  flatpak-bundler $ flatpak info --show-commit --system org.freedesktop.Sdk/x86_64/ +7ms
  flatpak-bundler 2> error: org.freedesktop.Sdk master not installed
  flatpak-bundler  +15ms
  flatpak-bundler 1> 753d69a34b7d18fdff204455a8f16a15156892a65497937c2cad88261fa34d70
  flatpak-bundler  +8ms
  flatpak-bundler Found install of org.freedesktop.Sdk, trying to update +1ms
  flatpak-bundler $ flatpak update --no-deps --arch x86_64 org.freedesktop.Sdk +1ms
  flatpak-bundler 1> Looking for updates...
  flatpak-bundler  +22ms
  flatpak-bundler Ensuring base app is up to date +6s
  flatpak-bundler Checking for install of io.atom.electron.BaseApp +0ms
  flatpak-bundler $ flatpak info --show-commit --user io.atom.electron.BaseApp/x86_64/master +0ms
  flatpak-bundler $ flatpak info --show-commit --system io.atom.electron.BaseApp/x86_64/master +7ms
  flatpak-bundler 1> bb7a3131828799814f4c9b5174fdd83524559b095d8fad09df39262df7149970
  flatpak-bundler  +13ms
  flatpak-bundler 2> error: io.atom.electron.BaseApp master not installed
  flatpak-bundler  +10ms
  flatpak-bundler Found install of io.atom.electron.BaseApp, trying to update +1ms
  flatpak-bundler $ flatpak update --user --no-deps --arch x86_64 io.atom.electron.BaseApp master +0ms
  flatpak-bundler 1> Looking for updates...
  flatpak-bundler  +20ms
  flatpak-bundler $ flatpak-builder --arch x86_64 --force-clean --build-only /var/tmp/tmp-16599xZ8YE40Qf2Ev/build /var/tmp/tmp-16599xZ8YE40Qf2Ev/manifest.json +7s
  flatpak-bundler 2>
  flatpak-bundler (flatpak-builder:16696): flatpak-builder-WARNING **: Unknown property base-flatpakref for type BuilderManifest
  flatpak-bundler
  flatpak-bundler (flatpak-builder:16696): flatpak-builder-WARNING **: Unknown property runtime-flatpakref for type BuilderManifest
  flatpak-bundler
  flatpak-bundler (flatpak-builder:16696): flatpak-builder-WARNING **: Unknown property sdk-flatpakref for type BuilderManifest
  flatpak-bundler
  flatpak-bundler (flatpak-builder:16696): flatpak-builder-WARNING **: Unknown property files for type BuilderManifest
  flatpak-bundler
  flatpak-bundler (flatpak-builder:16696): flatpak-builder-WARNING **: Unknown property symlinks for type BuilderManifest
  flatpak-bundler
  flatpak-bundler (flatpak-builder:16696): flatpak-builder-WARNING **: Unknown property extra-exports for type BuilderManifest
  flatpak-bundler  +21ms
  flatpak-bundler 2> error: org.freedesktop.Sdk 1.4 not installed
  flatpak-bundler  +19ms
  flatpak-bundler 2> Failed to init: Unable to find sdk org.freedesktop.Sdk version 1.4
  flatpak-bundler  +1ms
  electron-installer-flatpak Error creating package: flatpak-builder failed with status code 1 +27s
  electron-forge:lifecycle Process Failed: Making for target: flatpak - On platform: linux - For arch: x64 +29s

An unhandled error has occurred inside Forge:
An error occured while making for target: flatpak
flatpak-builder failed with status code 1
Error: flatpak-builder failed with status code 1
    at ChildProcess.child.on (/usr/lib/node_modules/electron-forge/node_modules/flatpak-bundler/index.js:74:16)
    at emitTwo (events.js:126:13)
    at ChildProcess.emit (events.js:214:7)
    at maybeClose (internal/child_process.js:925:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)

What version of Electron Forge is this? This seems like a bug that was fixed by https://github.com/endlessm/electron-installer-flatpak/pull/16

It's 5.2.0.
Should I use another version?

Thank you for your help, that fixes the issue for both the trivial test case and the original sample app case.
I mistakenly installed 1.6, as it was the oldest available on flathub.


what's the difference between filtered and unfiltered in taxonomic-profiling-minimap-megan

    Thanks for developing these series of tools, and I want to ask  what's the difference between filtered result and unfiltered result in taxonomic-profiling-minimap-megan.

Hi @ye00ye ,
From the documentation:
--minSupportPercent argument controls the minimum percent of assigned reads required to report a taxon. The default for this pipeline is 0.01 (best tradeoff between precision and recall). Note that a second unfiltered RMA file is produced using a value of 0 (enabling all read-hits to be reported).


[Bug] Finding latest version of hashicorp/elasticsearch...

Describe the bug
hashicorp/elasticsearch !?
Initializing provider plugins...
- Finding latest version of hashicorp/elasticsearch...
- Reusing previous version of elastic/elasticstack from the dependency lock file
- Installing elastic/elasticstack v0.6.0...
- Installed elastic/elasticstack v0.6.0 (signed by a HashiCorp partner, key ID 7FE579EDEC6DAA7B)

Partner and community providers are signed by their developers.
If you'd like to know more about provider signing, you can read about it here:
https://www.terraform.io/docs/cli/plugins/signing.html
╷
│ Error: Failed to query available provider packages
│
│ Could not retrieve the list of available versions for provider
│ hashicorp/elasticsearch: provider registry registry.terraform.io does not
│ have a provider named registry.terraform.io/hashicorp/elasticsearch
│
│ All modules should specify their required_providers so that external
│ consumers will get the correct providers when using a module. To see which
│ modules are currently depending on hashicorp/elasticsearch, run the
│ following command:
│     terraform providers
╵

We don't have a provider, or required_provider, called elasticsearch configured anywhere and never have.
elasticstack on the other hand is;
terraform {
  required_providers {
    elasticstack = {
      source  = "elastic/elasticstack"
      version = "~> 0.6.0"
    }
  }
}

Our GHA workflow ran just fine 5 days ago, it didn't look for hashicorp/elasticsearch.
Today it looks for hashicorp/elasticsearch and fails.
Versions (please complete the following information):

OS: GHA
Terraform Version 1.4.2
Provider version 0.6.0, 0.6.1, 0.6.2

terraform init -backend=false -upgrade when run locally (terraform version 1.4.6) returns the same, even if I specify 0.6.0, or 0.6.1, or 0.6.2 for the provider.

Can only presume this was a hashicorp thing, the problem has gone away.


publish NPM package

First of all, I love this repo! This is game changer for people building 3D design tools, thanks @OmarShehata  :heart:  !
I wanted to know if there are plans to publish this as an NPM package?
If there is interest and this is possible, I would love to have a look and prep a PR :)
Ideally, my aim would be to move this all the way to be included as a dependency in https://github.com/pmndrs/react-postprocessing in a similar way to how it was done for https://github.com/N8python/n8ao .
Thanks!

@RodrigoHamuy sure! the way I was thinking of this is more as a complete example (with some debugging code in there for learning purposes) that developers could copy/paste into their own projects. But I can see it being useful to expose it as a package and developers can import the pass(es) they need.


Feature/groups fixes #226, #232 V2

Short description
Basic functionality to create individual user groups that can create their own content. Implemented new endpoints in order fetch group specific data like group icon or the corresponding disciplines.
Proposed changes

overwrite group model to include a icons field
group_by_id endpoint to fetch name and icon of a group
disciplines_by_group to fetch all root disciplines of a given group
adapted get_child_count function in vocgui.utils to fix a counting issue (see #226)

After fetching all disciplines of a group, the process continues as usually by either requesting corresponding sub-disciplines by calling disciplines_by_levels/[DISCIPLINE_ID] or training sets by calling training_sets/[DISCIPLINE_ID]
Resolved issues
Fixes: #226, #232

Along the way I fixed a dependency issue (easy-thumbnail requires a Django version lower than 4.0) and adapted the migration files so that some changes of the auth model are synchronized via git


Questionable Synonyms

Is there a way to indicate that an OTU is a questionable synonym?

For the OTU, presently, not formally, but somewhat informally possible. Right now some groups are doing the following:
otu.name   otu.parent
"Aus nr. sp. bus",  "Aus" (id of a genus).
This will make the OTU name, as listed, appear under the Genus in places where it is displayable, i.e. typically where we want to see it.
The other assertion to consider is to add a Confidence to the OTU itself.  You can  create whatever confidence levels you want.  Note that if you're using the OTU in relation to the Specimen, then the Confidence could be placed on the TaxonDetermination itself, rather than on the OTU (which in that case can be something like plain old "Aus bus", without the uncertainty encoded in the name).
Let me know if this helps.

I think that would work, but why is the synonym being attributed to the current genus instead of the genus it was originally described under (as I have it in the data you uploaded)?

If the species name enters into synonymy to a species classified in different genus, the synonym name is now also classified under the new genus. In the list of citations, the species is still listed under original name.

While I do understand that synonyms are technically classified under the genus of the valid name, I cannot understand the reasoning behind TW making these Frankensteinian names. I've never seen any taxonomic work making up artificial combinations for synonyms. This creates much more confusion than it provides useful information. Apart from that a lot of these artifact names don't comply with ICZN Article 31.2. on agreement of gender.

@jcabbott13 can you clarify where you are seeing this in a screenshot before we engage further?

Below a screenshot to the issue that @jcabbott13 maybe is referring to.. a display that we also find it not very clear

Below an example of an issue described by @jcabbott13 ; a display of synonyms that I also find it confusing

In general we've told people, if they don't understand the view from the perspective of the synonym, to immediately click on the valid name in the summary box when they see the yellow header, that takes you to the view that you are likely used to seeing.  Further using the eye to restrict to only Protonym collapses the view to an even simpler rendering. In part the "redirect to valid name" in the search helped to hide these pages.
@proceps as @typophyllum suggests swapping out the header to show the original combination in these cases is of course possible.  I have nagging worries that this would get in the way, so to speak, of curators coming to understand the nature of TW's "Protonym",  but these worries likely unsubstantiated.

@mjy I do not mind changing the title for the synonyms. But this would not prevent the questions. People will see the synonyms classified under the proper genus name in the treeview, and may be some other places. If we want to be precise, we should probably show the relationship in the title in cases of synonyms. Something like "species1" (in the original form) as a synonym of "species2" (in current form); or "Combination" as a combinations of "species1" (in current form)

The label for synonyms was updated


Error in creating the final binary using AOT compilation for CPU backend

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 16.04
TensorFlow installed from (source or binary): source
TensorFlow version (use command below): v1.3.0-rc1-2665-g242b0f1
Python version: Python3
Bazel version (if compiling from source): 0.6.0
CUDA/cuDNN version: No
GPU model and memory: No
Exact command to reproduce:
bazel build //tensorflow/compiler/aot/tests:my_binary

Describe the problem
I simply followed the tutorial here: https://www.tensorflow.org/performance/xla/tfcompile
According to Step 1 and 2, I compiled the subgraph and generated the header (test_graph_tfmatmul.h) and object (test_graph_tfmatmul.o) files using tfcompile;
According to Step 3, I used the example code (named as my_code.cc) to invoke the subgraph;
According to Step 4, I added the code snippet cc_binary to the existing BUILD file (//tensorflow/compiler/aot/tests/BUILD), and tried to create the final binary with the command:
bazel build //tensorflow/compiler/aot/tests:my_binary
but I got the following error:
undeclared inclusion(s) in rule '//tensorflow/compiler/aot/tests:my_binary': this rule is missing dependency declarations for the following files included by 'tensorflow/compiler/aot/tests/my_code.cc': '/home/tensorFlow_src/tensorflow/tensorflow/compiler/aot/tests/test_graph_tfmatmul.h'
Source code / logs
my_code.cc (exactly the same as in the tutorial):
#define EIGEN_USE_THREADS
#define EIGEN_USE_CUSTOM_THREAD_POOL

#include <iostream>
#include "third_party/eigen3/unsupported/Eigen/CXX11/Tensor"
#include "tensorflow/compiler/aot/tests/test_graph_tfmatmul.h" // generated

int main(int argc, char** argv) {
  Eigen::ThreadPool tp(2);  // Size the thread pool as appropriate.
  Eigen::ThreadPoolDevice device(&tp, tp.NumThreads());

  foo::bar::MatMulComp matmul;
  matmul.set_thread_pool(&device);

  // Set up args and run the computation.
  const float args[12] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
  std::copy(args + 0, args + 6, matmul.arg0_data());
  std::copy(args + 6, args + 12, matmul.arg1_data());
  matmul.Run();

  // Check result
  if (matmul.result0(0, 0) == 58) {
    std::cout << "Success" << std::endl;
  } else {
    std::cout << "Failed. Expected value 58 at 0,0. Got:"
              << matmul.result0(0, 0) << std::endl;
  }

  return 0;
}

cc_binary in BUILD file:
cc_binary(
    name = "my_binary",
    srcs = ["my_code.cc"],
    deps = [
        "//tensorflow/compiler/aot/tests:test_graph_tfmatmul",
        "//third_party/eigen3",
    ],
    linkopts = ["-lpthread",]
)

Could you share the complete contents of the BUILD file and the full error message? From the snippet you've shared, it seems that it is having trouble building the target //tensorflow/compiler/aot/tests:tfcompile_test, which suggests some unexpected change to the BUILD file.
Also, please fill in all information asked for in the issue template. In this particular case, details about the exact version of the source code you're using to build would be helpful.
FYI @tatatodd

@asimshankar Sorry for the misleading. The error message should be:
ERROR: /home/tensorFlow_src/tensorflow/tensorflow/compiler/aot/tests/BUILD:128:1: undeclared inclusion(s) in rule '//tensorflow/compiler/aot/tests:my_binary': this rule is missing dependency declarations for the following files included by 'tensorflow/compiler/aot/tests/my_code.cc':   '/home/hao/tensorFlow_src/tensorflow/tensorflow/compiler/aot/tests/test_graph_tfmatmul.h' Target //tensorflow/compiler/aot/tests:my_binary failed to build Use --verbose_failures to see the command lines of failed build steps. INFO: Elapsed time: 1.467s, Critical Path: 1.14s FAILED: Build did NOT complete successfully
The complete BUILD file:
licenses(["notice"])  # Apache 2.0
package(
default_visibility = ["//visibility:private"],
)
load("//tensorflow/compiler/aot:tfcompile.bzl", "tf_library")
load("//tensorflow:tensorflow.bzl", "tf_cc_test")
test_suite(
name = "all_tests",
tags = ["manual"],
tests = [
":test_graph_tfadd_test",
":test_graph_tfadd_with_ckpt_saver_test",
":test_graph_tfadd_with_ckpt_test",
":test_graph_tffunction_test",
":test_graph_tfgather_test",
":test_graph_tfmatmul_test",
":test_graph_tfmatmulandadd_test",
":test_graph_tfsplits_test",
":tfcompile_test",
],
)
py_binary(
name = "make_test_graphs",
testonly = 1,
srcs = ["make_test_graphs.py"],
srcs_version = "PY2AND3",
deps = [
"//tensorflow/core:protos_all_py",
"//tensorflow/python",  # TODO(b/34059704): remove when fixed
"//tensorflow/python:array_ops",
"//tensorflow/python:client",
"//tensorflow/python:framework_for_generated_wrappers",
"//tensorflow/python:math_ops",
"//tensorflow/python:platform",
"//tensorflow/python:session",
"//tensorflow/python:training",
"//tensorflow/python:variables",
],
)
genrule(
name = "gen_test_graphs",
testonly = 1,
outs = [
"test_graph_tfadd.pb",
"test_graph_tfadd_with_ckpt.ckpt",
"test_graph_tfadd_with_ckpt.pb",
"test_graph_tfadd_with_ckpt_saver.ckpt",
"test_graph_tfadd_with_ckpt_saver.pb",
"test_graph_tfadd_with_ckpt_saver.saver",
"test_graph_tffunction.pb",
"test_graph_tfgather.pb",
"test_graph_tfmatmul.pb",
"test_graph_tfmatmulandadd.pb",
"test_graph_tfsplits.pb",
],
cmd = "$(location :make_test_graphs) --out_dir $(@D)",
tags = ["manual"],
tools = [":make_test_graphs"],
)
tf_library(
name = "test_graph_tfadd",
testonly = 1,
config = "test_graph_tfadd.config.pbtxt",
cpp_class = "AddComp",
graph = "test_graph_tfadd.pb",
# This serves as a test for the list of minimal deps included even when
# include_standard_runtime_deps is False.  If this target fails to
# compile but the others in this directory succeed, you may need to
# expand the "required by all tf_library targets" list in tfcompile.bzl.
include_standard_runtime_deps = False,
tags = ["manual"],
)
tf_library(
name = "test_graph_tfadd_with_ckpt",
testonly = 1,
config = "test_graph_tfadd_with_ckpt.config.pbtxt",
cpp_class = "AddWithCkptComp",
freeze_checkpoint = "test_graph_tfadd_with_ckpt.ckpt",
graph = "test_graph_tfadd_with_ckpt.pb",
tags = ["manual"],
)
tf_library(
name = "test_graph_tfadd_with_ckpt_saver",
testonly = 1,
config = "test_graph_tfadd_with_ckpt.config.pbtxt",
cpp_class = "AddWithCkptSaverComp",
freeze_checkpoint = "test_graph_tfadd_with_ckpt_saver.ckpt",
freeze_saver = "test_graph_tfadd_with_ckpt_saver.saver",
graph = "test_graph_tfadd_with_ckpt_saver.pb",
tags = ["manual"],
)
tf_library(
name = "test_graph_tffunction",
testonly = 1,
config = "test_graph_tffunction.config.pbtxt",
cpp_class = "FunctionComp",
graph = "test_graph_tffunction.pb",
tags = ["manual"],
)
tf_library(
name = "test_graph_tfgather",
testonly = 1,
config = "test_graph_tfgather.config.pbtxt",
cpp_class = "GatherComp",
graph = "test_graph_tfgather.pb",
tags = ["manual"],
)
tf_library(
name = "test_graph_tfmatmul",
#testonly = 1,
config = "test_graph_tfmatmul.config.pbtxt",
cpp_class = "foo::bar::MatMulComp",
graph = "test_graph_tfmatmul.pb",
#tags = ["manual"],
)
cc_binary(
name = "my_binary",
srcs = ["my_code.cc"],  # include test_graph_tfmatmul.h to access the generated header
deps = [
"//tensorflow/compiler/aot/tests:test_graph_tfmatmul",  # link in the generated object file
"//third_party/eigen3",
],
linkopts = [
"-lpthread",
]
)
tf_library(
name = "test_graph_tfmatmulandadd",
testonly = 1,
config = "test_graph_tfmatmulandadd.config.pbtxt",
cpp_class = "MatMulAndAddComp",
graph = "test_graph_tfmatmulandadd.pb",
tags = ["manual"],
)
tf_library(
name = "test_graph_tfsplits",
testonly = 1,
config = "test_graph_tfsplits.config.pbtxt",
cpp_class = "SplitsComp",
graph = "test_graph_tfsplits.pb",
tags = ["manual"],
)
tf_cc_test(
name = "tfcompile_test",
srcs = ["tfcompile_test.cc"],
tags = ["manual"],
deps = [
":test_graph_tfadd",
":test_graph_tfadd_with_ckpt",
":test_graph_tfadd_with_ckpt_saver",
":test_graph_tffunction",
":test_graph_tfgather",
":test_graph_tfmatmul",
":test_graph_tfmatmulandadd",
":test_graph_tfsplits",
"//tensorflow/core:test",
"//tensorflow/core:test_main",
"//third_party/eigen3",
],
)
#-----------------------------------------------------------------------------
filegroup(
name = "all_files",
srcs = glob(
["/*"],
exclude = [
"/METADATA",
"**/OWNERS",
],
),
visibility = ["//tensorflow:subpackages"],
)
The exact source version:
v1.3.0-rc1-2665-g242b0f1

@asimshankar @aselle  FYI, I tried the latest source (version: v1.3.0-rc1-3000-g840dcae) this morning, and the error still exists. I simply followed the tutorial (https://www.tensorflow.org/performance/xla/tfcompile) without changing anything. In addition, I found the same error was also mentioned in #11726, where @ankitachandak initially was getting the same error in build:
ERROR: /local/mnt/workspace/ankitac/virtual/tensorflow/tensorflow/compiler/aot/tests/aot_project/BUILD:12:1: undeclared inclusion(s) in rule '//tensorflow/compiler/aot/tests/aot_project:test_graph_binary':
this rule is missing dependency declarations for the following files included by 'tensorflow/compiler/aot/tests/aot_project/test_graph.cc':
  '/local/mnt/workspace/ankitac/virtual/tensorflow/tensorflow/compiler/aot/tests/aot_project/test_graph_tfmatmul.h'.
Target //tensorflow/compiler/aot/tests/aot_project:test_graph_binary failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 5.092s, Critical Path: 1.34s

May I have your advice on this issue? Thanks.

@MartinZZZ  What happens when you try to build the existing tfcompile_test?
blaze build //tensorflow/compiler/aot/tests:tfcompile_test

That corresponds to the following source file:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/compiler/aot/tests/tfcompile_test.cc

@tatatodd Thanks for your suggestion.
I just built the existing tfcompile_test with the following command:
bazel build //tensorflow/compiler/aot/tests:tfcompile_test

and the error occurred as well:
ERROR: /home/tensorFlow_src/tensorflow/tensorflow/compiler/aot/tests/BUILD:147:1: undeclared inclusion(s) in rule '//tensorflow/compiler/aot/tests:tfcompile_test':
this rule is missing dependency declarations for the following files included by 'tensorflow/compiler/aot/tests/tfcompile_test.cc':
  '/home/tensorFlow_src/tensorflow/tensorflow/compiler/aot/tests/test_graph_tfmatmul.h'
Target //tensorflow/compiler/aot/tests:tfcompile_test failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 1433.945s, Critical Path: 50.08s
FAILED: Build did NOT complete successfully

Here is the BUILD file:
licenses(["notice"])  # Apache 2.0

package(
    default_visibility = ["//visibility:private"],
)

load("//tensorflow/compiler/aot:tfcompile.bzl", "tf_library")
load("//tensorflow:tensorflow.bzl", "tf_cc_test")
load("//tensorflow:tensorflow.bzl", "tf_cc_binary")

# Optional runtime utilities for use by code generated by tfcompile.
cc_library(
    name = "runtime",
    srcs = ["runtime.cc"],
    hdrs = ["runtime.h"],
    visibility = ["//visibility:public"],
    deps = [
        "//tensorflow/core:framework_lite",
    ],
)

tf_cc_test(
    name = "runtime_test",
    srcs = ["runtime_test.cc"],
    deps = [
        ":runtime",
        "//tensorflow/compiler/tf2xla:xla_local_runtime_context",
        "//tensorflow/core:framework",
        "//tensorflow/core:test",
        "//tensorflow/core:test_main",
    ],
)

# Don't depend on this directly; this is only used for the benchmark test
# generated by tf_library.
cc_library(
    name = "tf_library_test_main",
    testonly = 1,
    visibility = ["//visibility:public"],
    deps = ["//tensorflow/core:test_main"],
)

cc_library(
    name = "tfcompile_lib",
    srcs = [
        "codegen.cc",
        "compile.cc",
        "flags.cc",
    ],
    hdrs = [
        "codegen.h",
        "compile.h",
        "flags.h",
    ],
    deps = [
        ":runtime",  # needed by codegen to print aligned_buffer_bytes
        "//tensorflow/compiler/tf2xla",
        "//tensorflow/compiler/tf2xla:common",
        "//tensorflow/compiler/tf2xla:tf2xla_proto",
        "//tensorflow/compiler/tf2xla:tf2xla_util",
        "//tensorflow/compiler/tf2xla:xla_compiler",
        "//tensorflow/compiler/tf2xla/kernels:xla_cpu_only_ops",
        "//tensorflow/compiler/tf2xla/kernels:xla_ops",
        "//tensorflow/compiler/xla:shape_util",
        "//tensorflow/compiler/xla:statusor",
        "//tensorflow/compiler/xla:util",
        "//tensorflow/compiler/xla:xla_data_proto",
        "//tensorflow/compiler/xla/client:client_library",
        "//tensorflow/compiler/xla/client:compile_only_client",
        "//tensorflow/compiler/xla/service:compiler",
        "//tensorflow/compiler/xla/service/cpu:cpu_compiler",
        "//tensorflow/core:core_cpu",
        "//tensorflow/core:core_cpu_internal",
        "//tensorflow/core:framework",
        "//tensorflow/core:framework_internal",
        "//tensorflow/core:lib",
        "//tensorflow/core:protos_all_cc",
    ],
)

tf_cc_test(
    name = "codegen_test",
    srcs = ["codegen_test.cc"],
    data = ["codegen_test_h.golden"],
    deps = [
        ":tfcompile_lib",
        "//tensorflow/compiler/xla:shape_util",
        "//tensorflow/core:lib",
        "//tensorflow/core:test",
        "//tensorflow/core:test_main",
    ],
)

tf_cc_binary(
    name = "tfcompile",
    visibility = ["//visibility:public"],
    deps = [":tfcompile_main"],
)

cc_library(
    name = "tfcompile_main",
    srcs = ["tfcompile_main.cc"],
    visibility = ["//visibility:public"],
    deps = [
        ":tfcompile_lib",
        "//tensorflow/compiler/tf2xla:tf2xla_proto",
        "//tensorflow/compiler/tf2xla:tf2xla_util",
        "//tensorflow/compiler/xla/legacy_flags:debug_options_flags",
        "//tensorflow/compiler/xla/service:compiler",
        "//tensorflow/core:core_cpu",
        "//tensorflow/core:core_cpu_internal",
        "//tensorflow/core:framework",
        "//tensorflow/core:framework_internal",
        "//tensorflow/core:lib",
        "//tensorflow/core:protos_all_cc",
    ],
)

# NOTE: Most end-to-end tests are in the "tests" subdirectory, to ensure that
# tfcompile.bzl correctly handles usage from outside of the package that it is
# defined in.

# A simple test of tf_library from a text protobuf, mostly to enable the
# benchmark_test.
tf_library(
    name = "test_graph_tfadd",
    testonly = 1,
    config = "test_graph_tfadd.config.pbtxt",
    cpp_class = "AddComp",
    graph = "test_graph_tfadd.pbtxt",
    tags = ["manual"],
)

# A test of tf_library that includes a graph with an unknown op, but where
# the compilation works because the unknown op is not needed for the fetches.
tf_library(
    name = "test_graph_tfunknownop",
    testonly = 1,
    config = "test_graph_tfunknownop.config.pbtxt",
    cpp_class = "UnknownOpAddComp",
    graph = "test_graph_tfunknownop.pbtxt",
    tags = ["manual"],
)

# A test of tf_library that includes a graph with an unknown op, but where
# the compilation works because the op between the unknown op and the
# fetches is a feed.
tf_library(
    name = "test_graph_tfunknownop2",
    testonly = 1,
    config = "test_graph_tfunknownop2.config.pbtxt",
    cpp_class = "UnknownOpAddComp",
    graph = "test_graph_tfunknownop.pbtxt",
    tags = ["manual"],
)

# A test of tf_library that includes a graph with an unknown op, but where
# the compilation works because the unknown op is fed.
tf_library(
    name = "test_graph_tfunknownop3",
    testonly = 1,
    config = "test_graph_tfunknownop3.config.pbtxt",
    cpp_class = "UnknownOpAddComp",
    graph = "test_graph_tfunknownop.pbtxt",
    tags = ["manual"],
)

# Utility library for benchmark binaries, used by the *_benchmark rules that are
# added by the tfcompile bazel macro.
cc_library(
    name = "benchmark",
    srcs = ["benchmark.cc"],
    hdrs = ["benchmark.h"],
    visibility = ["//visibility:public"],
    deps = [
        # The purpose of the benchmark library is to support building an aot
        # binary with minimal dependencies, to demonstrate small binary sizes.
        #
        # KEEP THE DEPENDENCIES MINIMAL.
        "//tensorflow/core:framework_lite",
    ],
)

cc_library(
    name = "benchmark_extra_android",
    tags = [
        "manual",
        "notap",
    ],
    visibility = ["//visibility:public"],
)

tf_cc_test(
    name = "benchmark_test",
    srcs = ["benchmark_test.cc"],
    tags = ["manual"],
    deps = [
        ":benchmark",
        ":test_graph_tfadd",
        "//tensorflow/core:test",
        "//tensorflow/core:test_main",
    ],
)

test_suite(
    name = "all_tests",
    tags = ["manual"],
    tests = [
        ":benchmark_test",
        ":codegen_test",
        ":runtime_test",
        ":test_graph_tfadd_test",
        ":test_graph_tfunknownop2_test",
        ":test_graph_tfunknownop3_test",
        ":test_graph_tfunknownop_test",
        "//tensorflow/compiler/aot/tests:all_tests",
    ],
)

exports_files([
    "benchmark_main.template",  # used by tf_library(...,gen_benchmark=True)
    "test.cc",  # used by tf_library(...,gen_test=True)
])

# -----------------------------------------------------------------------------

filegroup(
    name = "all_files",
    srcs = glob(
        ["**/*"],
        exclude = [
            "**/METADATA",
            "**/OWNERS",
        ],
    ),
    visibility = ["//tensorflow:__subpackages__"],
)

The current TensorFlow version is v1.3.0-rc1-3000-g840dcae
May I have your advice?

@MartinZZZ Can you try again, starting with a clean copy of the sources (without any of your changes), and running:
bazel build //tensorflow/compiler/aot/tests:tfcompile_test

If that still fails, there's either some issue with the way your bazel is set up, or something is going wrong elsewhere.

@tatatodd Thanks for your suggestion. I tried a clean copy of the sources, and built the tfcompile_test successfully.
But error still occurs when building tfmatmul according to the tutorial. Here is the detailed procedure, and hope to have your advice (The following 4 steps are corresponding to the 4 steps in the tutorial):

Step 1: Configure the subgraph. The config file already exists as test_graph_tfmatmul.config.pbtxt in directory //tensorflow/compiler/aot/tests;

Step 2.1: Generate the graph file test_graph_tfmatmul.pb:

python3 ./make_test_graphs.py --out_dir=./

Step 2.2: Compile the graph using tfcompile:

~/tensorFlow_src/tensorflow/bazel-bin/tensorflow/compiler/aot/tfcompile --graph="./test_graph_tfmatmul.pb" --config="./test_graph_tfmatmul.config.pbtxt" --entry_point="test_graph_tfmatmul" --cpp_class="foo::bar::MatMulComp" --out_object="test_graph_tfmatmul.o" --out_header="test_graph_tfmatmul.h" --target_features="+avx2"

Step 3: Creating a file named my_code.cc:

#define EIGEN_USE_THREADS
#define EIGEN_USE_CUSTOM_THREAD_POOL

#include <iostream>
#include "third_party/eigen3/unsupported/Eigen/CXX11/Tensor"
#include "tensorflow/compiler/aot/tests/test_graph_tfmatmul.h" // generated

int main(int argc, char** argv) {
    Eigen::ThreadPool tp(2);  // Size the thread pool as appropriate.
    Eigen::ThreadPoolDevice device(&tp, tp.NumThreads());

    foo::bar::MatMulComp matmul;
    matmul.set_thread_pool(&device);

    // Set up args and run the computation.
    const float args[12] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
    std::copy(args + 0, args + 6, matmul.arg0_data());
    std::copy(args + 6, args + 12, matmul.arg1_data());
    matmul.Run();

    // Check result
    if (matmul.result0(0, 0) == 58) {
        std::cout << "Success" << std::endl;
    } else {
        std::cout << "Failed. Expected value 58 at 0,0. Got:"
                    << matmul.result0(0, 0) << std::endl;
    }

    return 0;
}

Step 4.1: Create the BUILD file:

# Example of linking your binary
# Also see //third_party/tensorflow/compiler/aot/tests/BUILD
load("//tensorflow/compiler/aot:tfcompile.bzl", "tf_library")

# The same tf_library call from step 2 above.
tf_library(
    name = "test_graph_tfmatmul",
    cpp_class = "foo::bar::MatMulComp",
    graph = "test_graph_tfmatmul.pb",
    config = "test_graph_tfmatmul.config.pbtxt",
)

# The executable code generated by tf_library can then be linked into your code.
cc_binary(
    name = "my_binary",
    srcs = [
        "my_code.cc",  # include test_graph_tfmatmul.h to access the generated header
    ],
    deps = [
        ":test_graph_tfmatmul",  # link in the generated object file
        "//third_party/eigen3",
    ],
    linkopts = [
        "-lpthread",
    ]
)

Step 4.2: Create the final binary:

bazel build --config=opt --copt=-mavx2 --copt=-mfma --config=mkl --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" //tensorflow/compiler/aot/tests:my_binary

Finally, it will print:
ERROR: /home/tensorFlow_clean/tensorflow/tensorflow/compiler/aot/tests/BUILD:14:1: undeclared inclusion(s) in rule '//tensorflow/compiler/aot/tests:my_binary':
this rule is missing dependency declarations for the following files included by 'tensorflow/compiler/aot/tests/my_code.cc':
  '/home/tensorFlow_clean/tensorflow/tensorflow/compiler/aot/tests/test_graph_tfmatmul.h'
Target //tensorflow/compiler/aot/tests:my_binary failed to build
Use --verbose_failures to see the command lines of failed build steps.
INFO: Elapsed time: 7.339s, Critical Path: 6.69s
FAILED: Build did NOT complete successfully

@MartinZZZ If tfcompile_test builds successfully from clean sources, your edits must be causing the problem.
I think the problem is your steps 2.1 and 2.2.  These steps are conflicting with the files test_graph_tfmatmul.pb, test_graph_tfmatmul.h and test_graph_tfmatmul.o that already exist.
In particular your step 2.2 doesn't actually exist in the tutorial.  Step 2 of the tutorial is trying to say that tf_library will run tfcompile for you to generate the header and object files.
Start over from clean sources, skip your steps 2.1 and 2.2, and see if that helps.

@tatatodd I skipped Step 2.2 and it worked. Thanks so much for your help.

@MartinZZZ  great, I'm glad we figured out the problem!  :)
I'll comment on #13500 separately on that issue.


[Llama-2-13b-chat-hf] IPv6 Network Address Retrieval Error on 4 V100s 16GB

Hello,
I'm encountering an issue while running the following code:
from vllm import LLM, SamplingParams
llm = LLM(model="meta-llama/Llama-2-13b-chat-hf", tensor_parallel_size=2)

The hardware I'm using is 4 V100s with 16GB each. The error I'm receiving is as follows:
(Worker pid=22514) [W socket.cpp:601] [c10d] The IPv6 network addresses of (__internal_head__, 16516) cannot be retrieved (gai error: -2 - Name or service not known).
(Worker pid=22513) [W socket.cpp:601] [c10d] The IPv6 network addresses of (__internal_head__, 16516) cannot be retrieved (gai error: -2 - Name or service not known). [repeated 10x across cluster] (Ray deduplicates logs by default. Set RAY_DEDUP_LOGS=0 to disable log deduplication, or see https://docs.ray.io/en/master/ray-observability/ray-logging.html#log-deduplication for more options.)
(Worker pid=22513) [W socket.cpp:601] [c10d] The IPv6 network addresses of (__internal_head__, 16516) cannot be retrieved (gai error: -2 - Name or service not known). [repeated 10x across cluster]

Any help or guidance on how to resolve this issue would be greatly appreciated.
Thank you

@sksq96 Here is what worked for me, I am also running the same model as you are on 4 A10 GPUS (I'm assuming you are also using an amazon instance given you are using 4 V100s):

type "wget -O - -q https://checkip.amazonaws.com" or "curl -s https://icanhazip.com" into your command line
copy the ip address that it gives you
in your Jupyter notebook: at the top of the cell where you want to run your code add these two lines: !export MASTER_ADDR='paste-ip-address-here' !export MASTER_PORT="choose-port-here" I don't think the master_port needs to be anything specific just choose any port.
Run the code, if you still get the same error, refresh your kernel and wait around 5 minutes and rerun the cell and it should work.

but do you know what this is refering to? because is not working for me

but do you know what this is refering to? because is not working for me

I am not entirely certain, I checked out this thread: https://github.com/pytorch/pytorch/issues/74824 and someone said "For some reason, MASTER_ADDR is not being set correctly under elastic/agent/server/api.py, The IP address is being encoded but not decoded? Looping in Pytorch R2P team to investigate" so I assumed that that was the underlying issue. I don't think my solution is probably a good one either it was just something that worked for me so I hoped the ugly workaround could potentially work for others as well.

@sksq96 I had the same problem on 4 GPUs with exactly the same error message. Run on a single GPU and disabling Ray can temporarily solve it.

There was a non-deterministic bug in the old implementation of the initialize_cluster method, but it has been fixed. Simply build and use the latest version from the main branch.

I did run into a situation where I had the "Name or Service not know error" or this error
If added this before (which solves the second error) when I don't get the "Name or Service not know error", it works!
export NCCL_IGNORE_DISABLED_P2P=1

(Worker pid=2693738) [W socket.cpp:601] [c10d] The IPv6 network addresses of (internal_head, 12693) cannot be retrieved (gai error: -3 - Temporary failure in name resolution).  add export NCCL_IGNORE_DISABLED_P2P=1，it does not work ! I need help

When I first ran it, the graphics memory was occupied, but it quickly cleared the launch process automatically. The subsequent runs followed the same IPV6 error message：
`import os
from vllm import LLM, SamplingParams
os.environ["NCCL_IGNORE_DISABLED_P2P"] = "1"
llm = LLM(model="model/Llama-2-13b-chat-hf", tensor_parallel_size=2, tokenizer="hf-internal-testing/llama-tokenizer")Error：(Worker pid=2842646) [W socket.cpp:601] [c10d] The IPv6 network addresses of (internal_head, 15051) cannot be retrieved (gai error: -3 - Temporary failure in name resolution).
(Worker pid=2842646) [W socket.cpp:601] [c10d] The IPv6 network addresses of (internal_head, 15051) cannot be retrieved (gai error: -3 - Temporary failure in name resolution). [repeated 12x across cluster] (Ray deduplicates logs by default. Set RAY_DEDUP_LOGS=0 to disable log deduplication, or see https://docs.ray.io/en/master/ray-observability/ray-logging.html#log-deduplication for more options.)
(Worker pid=2842646) [W socket.cpp:601] [c10d] The IPv6 network addresses of (internal_head, 15051) cannot be retrieved (gai error: -3 - Temporary failure in name resolution). [repeated 10x across cluster]`

When I first ran it, the graphics memory was occupied, but it quickly cleared the launch process automatically. The subsequent runs followed the same IPV6 error message：
from vllm import LLM, SamplingParams

os.environ["NCCL_IGNORE_DISABLED_P2P"] = "1"
llm = LLM(model="model/Llama-2-13b-chat-hf", tensor_parallel_size=2, tokenizer="hf-internal-testing/llama-tokenizer")

Error：
(Worker pid=2842646) [W socket.cpp:601] [c10d] The IPv6 network addresses of (__internal_head__, 15051) cannot be retrieved (gai error: -3 - Temporary failure in name resolution).
(Worker pid=2842646) [W socket.cpp:601] [c10d] The IPv6 network addresses of (__internal_head__, 15051) cannot be retrieved (gai error: -3 - Temporary failure in name resolution). [repeated 12x across cluster] (Ray deduplicates logs by default. Set RAY_DEDUP_LOGS=0 to disable log deduplication, or see https://docs.ray.io/en/master/ray-observability/ray-logging.html#log-deduplication for more options.)
(Worker pid=2842646) [W socket.cpp:601] [c10d] The IPv6 network addresses of (__internal_head__, 15051) cannot be retrieved (gai error: -3 - Temporary failure in name resolution). [repeated 10x across cluster]

And not only will the llama model fail, but everything else will also fail

export NCCL_IGNORE_DISABLED_P2P=1；歇一会就好了，我的就是这样

ok 我也可以了

thanks a lot!!!! it works finally!!!!!!

I did run into a situation where I had the "Name or Service not know error" or this error If added this before (which solves the second error) when I don't get the "Name or Service not know error", it works! export NCCL_IGNORE_DISABLED_P2P=1

thanks a lot!!!! it works finally!!!!!!

I did run into a situation where I had the "Name or Service not know error" or this error If added this before (which solves the second error) when I don't get the "Name or Service not know error", it works! export NCCL_IGNORE_DISABLED_P2P=1

Had the same issue. Also solved by  export NCCL_IGNORE_DISABLED_P2P=1`

Please refer to #645 for the fix.

export NCCL_IGNORE_DISABLED_P2P=1 didn't work for me.
Besides, to add the <IP_ADDRESS> __internal_head__, I don't have sudo access to the /etc/hosts file, unfortunately.
Is there any way to solve the problem?
Thank you very much in advance!


Take as AUP accepted when true in principal attribute #5287

Hi,
I have found that using the default implementation requires de user to accept he policy. It is so even if the value passed in the aupAccepted is true (which is done during the attribute resolution). I think that this is not the excepted behaviour.
I propose doing something like what is shown in this PR.
Best regards,
Miguel

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

This issue seems absent in the proposed branch. Tests such as the one listed here do not cause a failure. So either this fix is not necessary, or the problem is fixes elsewhere. Either way, please verify as time allows and re-open if you continue to see this as an issue. Thank you!


Support using the database for package and symbol storage

Is your feature request related to a problem? Please describe.
Today customers must use the filesystem, S3, Azure Blob Storage, or Google Cloud Storage to store packages and symbols.
Describe the solution you'd like
Customers should be able to store their content in the database.

Is there any advantage to store the content of the NuGet packages in database versus filesystem?

Yes, this is useful for on-prem scenarios that already production grade databases. You can make a database highly available and geo-redundant. You can do fail-overs with database is a data center goes down. Achieving this with a file system or network share is difficult.
StackOverflow does this for their private NuGet server. Azure Artifacts on-prem also supports this.


Update projects to use SDK based format

Background
I'd like to convert fornax to a dotnet cli tool because I think that the target audience would be happy to consume it this way (it also appears to be more practical to deploy it using the dotnet/nuget infrastructure). To do this there are a couple of steps I'd need to tackle:

Update proj format (no dotnet standard and netcore with the old proj format 🙁)
Use netstandard conform dependencies (FsYaml still forces full framework on the project)
Update build tooling to leverage dotnet sdk (not strictly necessary but if we're already touching stuff it would be an obvious target)
Switch to netcore (this would make sense in the mentioned scenario - it is debatable though)

Does this sound like a good idea - would you wish to see the project go in another direction?
WIP
I created a pull request which implements the needed changes to use the new project formats. I'd open other issues to address the other topics in a more focused manner. The PR is #7.

In general I'd love to make it (global?) dotnet CLI tool.... but there is one more problem - Fornax is using F# Interactive part of the FSharp.Compiler.Services... and I think it's not supported on .Net Core.

I see. That is problem I wasn't aware of. I'd still try to tackle all other described issues. Eventually FSharp Interactive will become available on .Net Core if everything else is ready and in place it shouldn't be to hard to get the cli tool ready.
The next things I'd like to work on would be the move away from FsYaml (don't have anything against the project but it forces the full framework on fornax - also I'm absolutely incapable of speaking and/or understanding Japanese, which makes all the documentation which exists on the project unintelligibel to me) as well as changes to the build.fsx (maybe building on the changes from #4 - switching to dotnet tooling etc).
Would that be in your interest or do you see more high priority targets?

Both those suggestions seems fine for me. :-)

I managed to swap out FsYaml with the corresponding functionality in YamlDotNet. As far as I can tell it shouldn't break existing interfaces. There is one catch though - the models used in the pages have to be annotated with the [<CLIMutable>] attribute.
This is necessary because of the usage of the Deserializer class.
    let parse (modelType : Type) (document : string) =
        let deserializer =
            DeserializerBuilder()
                .IgnoreUnmatchedProperties()
                .Build()
        let method = (typedefof<Deserializer>).GetMethod("Deserialize", [| typedefof<string> |])
        let genericMethod = method.MakeGenericMethod(modelType)
        genericMethod.Invoke(deserializer, [| document |])

Is this acceptable or should I try to find a better way? I already played around with FsYaml source code and I think I should understand it well enough to replicate its reading/parsing functionality for this use case. What do you think. My current WIP can be found here https://github.com/WalternativE/Fornax/tree/change-yaml-dep .

This has been done in #11


SneakyCam compatibility

After using SneakyCam by SparkDev, the green dot always displays.
Only a respring can dismiss it.

Related to my camera detection method. Will look into a new, more sound method.

Thanks man :)
And one more little question, would the persistence dots cause oled screen burned out ?

Part of a larger issue. See issue #21.


Feature request: Access Control Lists

I had opened a request previously for authorization by groups, that was closed, I assume due to me not updating.  Now that the holidays have ramped down, here's a little proof of concept of what i was thinking....
I added a column to the categories table
add_column :forem_categories, :groups_view, :string, :default => nil

I then added something like this, which points to the ACL, in the model for forem_categories
serialize :groups_view
has_and_belongs_to_many :roles

I then store in the categories table an array of group ids that relate back to roles model and add the following in the users model...
def can_read_forem_category?(category)
    role_id = "#{self.role_id}"
    if category.groups_view.nil?
         true
    elsif role_id.nil? or role_id.blank?
        false
    elsif category.groups_view.include?(role_id)
        true
    else
        false
    end
end

Not the most elegant, but effective to control categories read access. I'm in the process of doing something similar for the other authorization methods you have outlined in the wiki.  It makes more sense to have a Forem::Group class, like the Forem::User class in which people could define their own classes to do similar fine grained permissions.

@rizzah so I don't particularly like to use serialized fields for the most part.  Can you think through a way to do this that doesn't use serialize?  It's not my favorite thing at all.
I like the feature though.

@knewter I don't necessarily like serialized fields either; it was an easy quick and dirty solution to suit my immediate need at the time.  The better solution would be to have a whole separate table to house the ACLs.  This table would have colums like
group_id
category_id
role_id

And do manipulation to gather all the role_ids and group_ids for the given category_id

@rizzah and I can totally get behind this, and think it's a good feature.  At the same time, I've not looked into the existing cancan stuff and so I am not an authority on how well this fits into the vision that @radar had with it.  Thoughts, @radar?


Fix scroll bugs in tsconfig reference

Fix a handful of hash scrolling issues in the tsconfig.json reference page:

Smooth scroll to the top of the target element, rather than to the center of it (caused by block: "center" option)
Take into account the height of the sticky subnav by applying an offset
Update the hash in the URL so that back navigation works
Apply these scroll behaviors to all hash links on the page, not just the ones at the top
Fix the highlighting of the current category in the compilerOptions subnav

Thanks, this looks great to me!

Gave it a quick check on staging and it's solid - good work


Cursor Error when switch window

General information
iterm 3.4.3
zsh5.8
os macos
tmux 2021
Basic examination
When open 2 terminal window in tmux,
In first terminal, we use zsh with vi-insert mode;
In the second terminal, we then open a vim window;
Found that the vim cursor is changed based on the first window, shown in the picture.

Expected behavior
In vim window, we want block cursor rather than underline/beam.
reproduction
1, ZVM_INSERT_MODE_CURSOR=$ZVM_CURSOR_BEAM or $ZVM_CURSOR_UNDERLINE
2, tmux with 2 panes in ONE window.
3, in pane ONE: toggle insert mode in zsh-vi-mode

4, in pane TWO: use vim to open a file(no mode requirements<INSERT/NORMAL> is ok).

5, see vim file: the cursor is changed to BEAM or UNDERLINE as the picture.

6, if does not reproduced, use this:
enter pane ONE: enter insert mode(to get underline/beam)
reenter pane TWO with vim: find underline/beam in vim.

@HsunGong, this issue is the same as another issue #11.

Thanks.


Reset countdown via reaction.

!countdown resetable 50hours
generate:
Time left: 2 days, 1 hour and 59 minutes.
[reaction-reset-button]
Click to [reaction-reset-button] = reset timer again to 50 hours.

Looping features have been talked about a lot in the discord. Currently reaction buttons are not implemented because of how minimally intrusive the dev has the bot (as in minimal permissions requested).
Both of these are still viable suggestions. It would just take some persuading to get the dev to roll with it. Check out the discord, open suggestions are welcome.


Update about us

Codecov Report

Merging #24 (066614d) into master (5f9e12a) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 066614d differs from pull request most recent head d5f7f47. Consider uploading reports for the commit d5f7f47 to get more accurate results

@@            Coverage Diff            @@
##             master      #24   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

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 5f9e12a...d5f7f47. Read the comment docs.


Item persists in Pending Review after reassignment and removal in Inventory Count

Current behavior
The item appears in the Pending Review section even though it was removed from the Assigned section.
Expected behavior
The item should not appear in the Pending Review section after being removed from the Assigned section and saved.
Steps to reproduce the issue
Add one item to the Pending Review section.
Confirm that the item appears as "not counted" after addition.
Do not accept or reject the item; instead, re-assign the whole inventory count.
Observe that the inventory count moves to the Assigned section.
Open the inventory count from the Assigned section.
Remove the item that was initially added to the Pending Review screen.
Save the changes to move the inventory count back to the Pending Review section.
Open the Pending Review screen and observe that the item removed from the Assigned section still appears in the Pending Review screen.
Environment details
App version : INVENTORY-COUNT-2.0-E02AD11
App environment : DEV

Linked PR: https://github.com/hotwax/inventory-count/pull/374

Issue verified and working fine in DEV environment of App version INVENTORY-COUNT-2.0-BEE32C4
Hence, closing this ticket.


Trying to run HelloAWSFlow() from the tutorials after using console_scripts

I'm trying to run HellowAWSFlow from the metaflow-tutorials/05-hellowaws py file. Instead my directory looks like this:
refer: https://python-packaging.readthedocs.io/en/latest/command-line-scripts.html
src
  -- package_1
      --metaflow.py (same as helloaws.py)
setup.py # consists of console_script
requirements.txt

This wraps the metaflow.py into bin/app and helps make metaflow.py an executable. I'm getting errors in doing this. Any help? How can I run metaflow.py#main not as python3.6 metaflow.py run?
On running : `app run`

  File "build/bin/app", line 33, in <module>
  File "/home/<>/runtime/lib/python3.6/site-packages/package_1/metaflow.py", line 59, in main
    HelloAWSFlow()
  File "/home/<>/runtime/lib/python3.6/site-packages/metaflow/flowspec.py", line 78, in __init__
    self._graph = FlowGraph(self.__class__)
  File "/home/<>/runtime/lib/python3.6/site-packages/metaflow/graph.py", line 165, in __init__
    self.nodes = self._create_nodes(flow)
  File "/home/<>/runtime/lib/python3.6/site-packages/metaflow/graph.py", line 174, in _create_nodes
    if isinstance(n, ast.ClassDef) and n.name == self.name][0]
IndexError: list index out of range

UPDATE:
python: 3.6.14
metaflow: 2.4.2

If I directly run python3 metaflow.py run (It is able to succesfully run and work)

I'm facing the same issue as well. Were you able to solve it?

can you create a new python file that simply invokes subprocess.check_call(['python', 'flow.py', 'run']) and make that file an executable?

Thank you very much @savingoyal, it worked for me :)


Recovery Key not Mobile Key

[x] This is Recovery Key not Mobile Key (scroll down for bug 2)

[x] Also this was a modal from UAI, on next it auto confirmed the key. Did not perform health check where it has to ask a random word

The first task is done and the second is not reproducible. It's working fine...
https://github.com/bithyve/bitcoin-keeper/assets/61345820/5db96263-3dd8-45c8-8027-f06ba8ea496b

Also don't use seed key here as it is a different key. This is Mobile Key
Also at the bottom, 12-word mnemonic phrase.
Then on the top also "Enter 12-word mnemonic"

Completed


chore(CustomSSL): ssl issuer not required rom user as can be parsed from certificate

@Mergifyio backport v2


[FEATURE] Classpath document loader/source

I know there are all kinds of DocumentLoaders and DocumentSources, but is there an easy way to point to a reference to the classpath?
I know I could probably build a URL object that represents the classpath and then use a URLDocumentLoader/URLDocumentSource, but wouldn't it be nice if there was such a thing as a ClasspathDocumentLoader/ClasspathDocumentSource?

@edeandrea sounds reasonable, would you like to implement this?

I can - i guess i was asking first if that existed :)

@edeandrea I did not implement anything like this explicitly. Perharps URLDocumentLoader can be used as you suggest, but I did not test it...

@langchain4j I've submitted #2060 . It was actually a bit easier than I thought. I didn't need a ClasspathDocumentLoader. I created a ClassPathSource which extends FileSystemSource. It is just an abstraction on top that knows how to create a Path object given a relative classpath reference.


3/n [py] tests (top of stack)

3/n [py] tests (top of stack)

Stack created with Sapling. Best reviewed with ReviewStack.

-> #371
#353
#352

https://github.com/lastmile-ai/aiconfig/issues/490


[api-docs] Fix hyperlinks in Application.md

A new commit was made into the api-docs repo. This issue was created automatically. Need to review if we made any change to the library for this commit.
https://github.com/discord/discord-api-docs/commit/03f5acbf7e5756adf1c30c0b9224a052ff3bee8b

ncn


onAuxClick event

Describe the solution you'd like
Add support to onAuxClick as a rowEvent so that middle clicks can be handled
Describe alternatives you've considered
onClick doesn't trigger using the middle click so its not really an alternative since chrome 55
Edit: It triggers but the row object isn't passed as argument. It probably needs to be wrapped

@dacevedo12 no problem

Fixed. https://react-bootstrap-table.github.io/react-bootstrap-table2/blog/2020/04/18/version-bump.html


form section issue

Hi @majdalkilany, I think you are doing a great job, I would suggest removing the duplicated ' method="post" ' from the form element on line 222, it would help you to keep your code clean!

Also, if you want elements to disapear on the movie or desktop version, you need to use mediaqueries and set the display property to none like this:
.classToDissaper{
display:none;
}


Request: Consistent LaTeX Colors Support

Issue Description:
First, I would like to express my gratitude for the incredible work you've done with the Nightfly color scheme for Neovim. The theme is not only visually appealing but also enhances the coding experience significantly.
I am writing to request the addition of consistent color support for LaTeX. Currently, while using Nightfly with LaTeX, I've noticed some inconsistencies in the color highlighting, which can be a bit distracting and affects the overall readability of the code.
Details:
Language: LaTeX
Current Behavior: Inconsistent color highlighting for various LaTeX elements such as commands, environments, sections, etc.
Expected Behavior: Uniform and consistent color scheme that aligns with the rest of the Nightfly theme, improving readability and maintaining the aesthetic integrity of the theme.
Example:
Here is a snippet of a typical LaTeX document where the inconsistency is noticeable:

\documentclass{article}
\usepackage{amsmath}
\usepackage{csquotes}
\usepackage{natbib}
\title{Sample Document}
\author{Author Name}
\begin{document}
\maketitle
\section{Introduction}
This is a sample document to illustrate the issue. You can use \textit{italic} and \textbf{bold} text. Here is a quote: \enquote{This is an example quote.}

\begin{equation}
E = mc^2
\end{equation}

Here is a citation: \cite[23]{einstein1935can} and an autocite: ~\autocite[23]{einstein1935can}.

\begin{itemize}
    \item First item
    \item Second item
\end{itemize}

\begin{table}[h]
    \centering
    \begin{tabular}{|c|c|}
        \hline
        Column 1 & Column 2 \\
        \hline
        Data 1 & Data 2 \\
        Data 3 & Data 4 \\
        \hline
    \end{tabular}
    \caption{Sample Table}
    \label{tab:sample}
\end{table}

\begin{figure}[h]
    \centering
    \includegraphics[width=0.5\textwidth]{example-image}
    \caption{Sample Figure}
    \label{fig:sample}
\end{figure}

\end{document}

Suggested Solution:
Implementing a cohesive color scheme for LaTeX elements that blends seamlessly with the Nightfly colors. This could involve defining specific colors for commands, environments, sections, mathematical expressions, and other LaTeX-specific syntax elements.
Additional Context:
Having consistent LaTeX support will greatly enhance the user experience for those of us who frequently work with LaTeX documents in Neovim. It will ensure that the beautiful aesthetics of Nightfly are maintained across different file types and improve the overall usability.
Thank you for considering this request. Your work is greatly appreciated, and I look forward to seeing Nightfly evolve even further.

Hello @mafsi,
Are you using Neovim  Tree-sitter LaTeX parser?
I can see that the default colors are not ideal in that case, however, is there a particular element in your example document that I must change? I can make some changes, but not being an expert in LaTeX all I can do is choose my own aesthetic to make things nicer. Let me know your main explicit issues, screenshots would be appreciated highlighting the inconsistencies.
Are there other Neovim color-schemes which highlight LaTeX well? If so, can you tell me; I can install and look at their implementation.
Best regards.

Thank you for your response, @bluz71
To clarify, I am not using the Neovim Tree-sitter LaTeX parser. I am using the default LaTeX syntax highlighting. The main issue I’m experiencing is the inconsistency in color highlighting for different LaTeX elements, which affects readability and aesthetics.
Attached is a screenshot of my current LaTeX document (The document is in Romanian language). Here are the specific issues I noticed:

Comments (% ...): They are not distinct enough and can blend in with other text, making it hard to differentiate comments from the code.
Commands and Keywords (like \section, \label, \begin, \end): These should stand out more clearly. Currently, they don't have a distinct color that separates them from other text.
Environments (like quote, verse, versewidth): The keywords for beginning and ending environments should be more visually distinct.
Citations and References (\cite{}, \ref{}, \pageref{}, \autocite{}): These should also be highlighted differently to be easily identifiable. Especially the page numbers and the key and the brackets from \autocite[page no. here]{key:here}
\gl{} is a custom command that translates: \newcommand{\gl}[1]{\enquote{#1}} And I would like to see a different color for the brackets and the text inside.

For the same #5 there are also complex citation, see the Aristotle example in the image where it would be nice to see the entire citation:

I hope this helps, and thanks a lot for your reply!

Comment color is fixed for all languages, this will not change, sorry.
\begin should remain as violet since violet indicates keyword, \section should be changed, I will experiment
These look to be textStatement highlight group, so it will not be possible to assign unique colors since the underlying LaTeX syntax highlighter treats them all the same
Can you provide me a LaTeX document which uses all these notations (and all others mentioned), however I think the limitation mentioned for the previous point will also apply here
Looks to be not possible due to limitations of the underlying Vim/Neovim LaTeX syntax highlighter

There is a little bit I can do, but not as much as you expect, there are real limitations with the underlying Vim/Neovim LaTeX syntax highlighter, many elements will be highlighted the same or not at all.
Most important, please provide me a LaTeX document that makes use of everyone one of notations you mention. Also, if know of another colorscheme that highlights LaTeX well, please provide it's name.
From what I have seen, some other Neovim colorschemes seem to have worse LaTeX highlighting.

Ok, I have implemented some style tweaks for LaTeX which hopefully improve the situation for you. To my eye, LaTeX documents look better now than before.
Note however, there are real limitations with the default underlying LaTeX syntax highlighter. It is not possible to provide individual colors to the elements you want because they are all highlighted by the same highlight-group.
You may want to also explore the Neovim Tree-sitter LaTeX parser, it seems there is greater disambiguation with that engine than the legacy Vim/Neovim reg-ex syntax highlighter.
Best regards.

Thank you for implementing the style tweaks for LaTeX! I appreciate your efforts to improve the appearance of LaTeX documents. The changes you made definitely enhance the look.
I understand the limitations with the default LaTeX syntax highlighter regarding individual colors for elements. I'll take your advice and explore the Neovim Tree-sitter LaTeX parser. It sounds promising, especially if it offers better disambiguation compared to the legacy Vim/Neovim regex syntax highlighter.
Thanks again for your help!
Best regards.


VBS2020 Temporal Scoring - Backend

This is the corresponding backend PR to https://github.com/vitrivr/vitrivr-ng/pull/18. It also cleans up some id inconsistencies in documentation and variable naming.
It also adds the following features:

A large number of bugfixes and improved behavior for tag-retrieval
cli improvements
bugfixes for knn caused by a cottontail-proto upgrade
improved tests
general bugfixes (such as rare NPE crashes)

Merging this into vbs2020 in preparation for the larger PR from vbs2020 to dev


Import "PyQt5.QtWidgets" could not be resolved

Python 3.9 from Windows Store on Windows 10, code runs fine. Is it necessary to manually add pip import paths? If so, what do I add?
Import "PyQt5.QtWidgets" could not be resolved

> pip list
Package   Version
--------- -------
llvmlite  0.37.0
numba     0.54.0
numpy     1.20.3
pip       21.2.4
PyQt5     5.15.4
PyQt5-Qt5 5.15.2
PyQt5-sip 12.9.0
PyQt6     6.1.1
PyQt6-Qt6 6.1.2
PyQt6-sip 13.1.0

Restarting VSC 'fixed' the issue.. don't new packaged get picked up automatically?

Yes.

Yes, see #923 (which we plan to fix).

i think i got the answer to your errors


Change to use the built-in budget goal type instead of using the diff…

…erent values to determine the goal type. Also made a number of changes related to adhering to the Airbnb JavaScript Style Guide. I didn't do everything but it's a start.
Also fixed the original problem reported by Geiseku where no progress bar was displayed once the goal had been met. Also added code to be sensitive to the month in which the goal was created.

Looks good, thank you!
I'll go ahead and merge. If my comment was correct and the bit of code from the switch statement is duplicated I'd love another PR to put them together. Definitely not a big deal.


Update README.md

I'm not sure what the logic behind giving a generic link is, but adding the actual link for this fork (which is what people want if they land here in the first place) seems a lot more useful and likely to make more people download the program the proper way

Didn't you make the wrong commit to relate?
This pull request seems to be related to https://github.com/Kaos-Industries/apt-cyg/commit/467870df6a08bc3b8f803b025aa6f67d2767a3cd (your patch-1) instead of https://github.com/Kaos-Industries/apt-cyg/pull/43/commits/7c739f4f996ee62c009c87923dc5637757628d8b (your master).

I actually wanted to merge both, but this was my first PR and I wasn't entirely sure what I was doing.

Thanks.
By the way, I would like to ask you about grammar.
Is "under Git version control" better than "under the git version control"?

Yes, as a native English speaker "under the git version control" sounds very weird to me. Generally in English we don't put "the" before subjects unless there is only one of that thing, and systems like Git are considered plural. So for example, "under British rule" instead of "under the British rule", or "under version control" instead of "under the version control".
Thanks for a great fork by the way.

Thank you for a brilliant explanation to my question.
Maybe it hit the bull's-eye.
It's hard for me to get a feel "under version control" is natural instead of "under the version control".
And it is not easy to get a feel that systems like Git are considered plural.
But these explanations helps me to understand English.
I appreciate that you provided  perspective of a native English speaker.

This may be relevant, as well as this. As a native speaker things just sound wrong to me even if I don't understand why, but I have heard from many that English is a weird language with lots of inconsistencies. Some things just are, even if there's no logic to them.
More on-topic, I just merged those branches into my master repo.

Indeed.
Because children don't know logic but they use natual phrase, I feel that the most part of factor for skill to use language depends on experience instead of logic.
Thank you for interesting threads.

Unless of course we're talking about programming languages, which is logical to the point of pain. ;)


Fixed in_plugin_update_message bug

Issue
The in_plugin_update_message was treating the $plugin_data parameter like an object, when it's actually an array.  As a result I was seeing a  Trying to get property of non-object error.
Solution
Changed the arrow syntax to square bracket.
Impact
Nah.  But it would be nice if there were some way to propagate this tweak to earlier versions.

Coverage remained the same at 87.977% when pulling d43d2197566915eb3df811f7751552c0c3547aa0 on lggorman:plugin-update-message into ee10478bf4168ec4f1918dbf3c8dea094b14552b on timber:master.

Thanks @lggorman !


Incompatible with NodeJS 10

With NodeJS 10, which recently landed in Arch Linux, everything just returns empty lists:
$ node --version
v10.0.0

$ profitbricks --version
4.1.0

$ profitbricks datacenter list
Datacenters
$

$ profitbricks --datacenterid $foo server list
Servers
$

We saw something similar with NodeJS 8.1, see #60.
Let me know if you can't reproduce this and/or if you need more information to debug.
Thanks!

The issue should be fixed in the new release, v4.1.1.

Looks good, thank you. :)


The downward-pointing button on the homepage has no functionality.

Expected Behavior
It should scroll the page to the next section when clicked
Please describe the behavior you are expecting
Current Behavior
Currently, it has no behavior.
Screenshots

Steps to reproduce
Just go to Hompage you'll find it.

Hey, I'm checking in our dev environment and it seems to be working? 🤔
https://www.dev1.codu.co/

Nope this is not working at all should I share a video?

Yes please and whatever browser you're using. Thanks for this! 👏

https://github.com/codu-code/codu/assets/102988552/324604a8-f0d8-4dc3-a9db-b3616256b3c2

Aha, it's a browser thing then. I tested on Chrome.
I have tagged it with Hactoberfest in case anyone wants to try fix it. 🦾

@NiallJoeMaher @dev-palwar Created a PR for fixing this issue.

Perfect, if you don't mind in future leaving a comment on the issue to be assigned first that would be great. 🙌

Sure, Thanks @NiallJoeMaher


Not generating the correct url

This solution is mentioned in the Azure Learning https://learn.microsoft.com/en-us/training/modules/control-access-to-azure-storage-with-sas/4-exercise-use-shared-access-signatures
Following step mentioned in above link
curl -X POST http://localhost:8888/openPort/8000;
is generating a non-working url as below. Please advise.
{"message":"Port 8000 is open","url":"https://ux.console.azure.com//proxy/8000/"}

https://learn.microsoft.com/en-us/answers/questions/1691295/az-104-exercise-use-shared-access-signatures-to-de?comment=question#comment-1622362
run it locally by installing sdk version 7

I've bumped into the same issue and running it locally didn't work for me out of the box with .net sdk 7.
However, I've done the following in order to make it work from my local windows machine (using PowerShell 7):

Create storage account
Create container
Run git clone https://github.com/MicrosoftDocs/mslearn-control-access-to-azure-storage-with-sas.git sas ❗ be sure to install git first on your local, otherwise the cmdlet will not be recognised
Run the upload batch script ❗ before you run it, you will need to assign yourself "Storage Blob Data Owner" rights on container level..or StorageAccount level as it is inherited. Storage Blob Data Contributor did not work for me.
Edit your appsettings.json file with the connection string, account name and account key values as described in the lab guide
Now, the fun part:

Install .net 8: winget install Microsoft.DotNet.SDK.8
Make sure nuget is properly configured on your system: dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
Edit the patient-records.csproj file so that it will use the latest packages and .net SDK. You can find the latest stable versions on www.nuget.org for Azure.Identity, Azure.Storage.Blobs and Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation. I will list below my file content as an example that worked for me:

     <Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
    <RootNamespace>patientrecords</RootNamespace>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Azure.Identity" Version="1.13.0-beta.1" />
    <PackageReference Include="Azure.Storage.Blobs" Version="12.22.0-beta.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.8" />
  </ItemGroup>
</Project>

edit global.json file so it will target .net 8:
{ "sdk": {   "version": "8.0.401",   "rollForward": "latestMinor" } }

Run dotnet restore
Run dotnet run
access the application using http://localhost:8000/

🤯 keep in mind that some of the steps might or might not make sense as I have no experience in this area..if someone else can come up with sth better I'm all ears...or.. 👀

I've bumped into the same issue and running it locally didn't work for me out of the box with .net sdk 7.
However, I've done the following in order to make it work from my local windows machine (using PowerShell 7):

Create storage account
Create container
Run git clone https://github.com/MicrosoftDocs/mslearn-control-access-to-azure-storage-with-sas.git sas ❗ be sure to install git first on your local, otherwise the cmdlet will not be recognised winget install --id Git.Git -e --source winget
Run the upload batch script ❗ before you run it, you will need to assign yourself "Storage Blob Data Owner" rights on container level..or StorageAccount level as it is inherited. Storage Blob Data Contributor did not work for me.
Edit your appsettings.json file with the connection string, account name and account key values as described in the lab guide
Now, the fun part:

Install .net 8: winget install Microsoft.DotNet.SDK.8
Make sure nuget is properly configured on your system: dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org
Edit the patient-records.csproj file so that it will use the latest packages and .net SDK. You can find the latest stable versions on www.nuget.org for Azure.Identity, Azure.Storage.Blobs and Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation. I will list below my file content as an example that worked for me:

     <Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
    <RootNamespace>patientrecords</RootNamespace>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Azure.Identity" Version="1.13.0-beta.1" />
    <PackageReference Include="Azure.Storage.Blobs" Version="12.22.0-beta.1" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.8" />
  </ItemGroup>
</Project>

edit global.json file so it will target .net 8:
{ "sdk": {   "version": "8.0.401",   "rollForward": "latestMinor" } }

Run dotnet restore
Run dotnet run
access the application using http://localhost:8000/

🤯 keep in mind that some of the steps might or might not make sense as I have no experience in this area..if someone else can come up with sth better I'm all ears...or.. 👀


Failed to resolve component: marquee

Version
3.0.0
Reproduction link
https://jsfiddle.net/mpg4dkhf/
Steps to reproduce
[Vue warn]: Failed to resolve component: marquee
What is expected?
There is no warning
What is actually happening?
The console prompts for warning information

fix by #2256

I think it's expected and correct behavior. The marquee tag is obsolete, and shouldn't be used in new code.

Thanks, marquee  tag is obsolete, I will use CSS3 instead


give gravestone items through commands

hey, i saw another issue saying how they got softlocked with your mod and the same has happened on my server so i plan to switch mods as you suggested. however i would still like to give the players who lost their items, their items, before i switch. can i do that?
crash-2024-07-24_19.34.40-client.txt

The other issue you mentioned has a version of 1.0.4 that removes the text rendering on gravestones for this purpose :D

Actually hang on I can just release the 1.20.1 backport I made for a friend, god damn ADHD how did I not think of doing that when I actually made it

Released!