Undefined references when using TensorFlow Lite in Arduino Nano 33 BLE Sense + Platform IO

@tensorflow/micro
System information
Ubunutu 20.04 on x86_64
TensorFlow from source 2.2.0
Target: Arduino Nano 33 BLE Sense
Hi,
I'm trying to get micro_speech running on a Arduino Nano 33 BLE Sense, using a model I've trained myself on Google Colab.  As Google Colab is currently using TensorFlow 2.2.0, this model is also 2.2.0.  Using the Arduino IDE 1.8.12 sample 'micro_speech', does work, and I can get inferences to occur, however this is a long way from TensorFlow 2.2.0.  In fact its many versions behind and as a result, I'm unable to get my model to run on this version.
In addition, this project is a stepping stone to another project which will swap out the model for other models, and introduce other libraries which introduce further development and debugging complexity.  For this reason, I've chosen to adopt the Platform IO + VSCode development environment.  With this combination I can debug the code, step by step, which is a feature not supported by the Microsoft VSCode Arduino extension or Arduino IDE itself.  I can also use unit testing technologies which aren't available elsewhere.
Unfortunately, my code is running into Undefined reference exceptions on build, in what is a fairly trivial port of the micro_speech application to the Platform IO code.  I get these same errors building the code using the local TensorFlow Arduino library zip which I built myself from the TensorFlow 2.2.0 master branch a couple of days ago.
May I please get some advice?

Any ideas why Undefined references are appearing in local builds of micro_speech, or my port of the micro_speech product?  It was also reported in this issue 27629
Given the explosion of options, which development environment is the recommended approach for products which extend beyond 'hello-world' targeting micro-controllers?

Arduino Online
Arduino IDE with local TensorFlow Arduino library zip
TensorFlow Lite + Bazel from command  line
Platform IO (IDE / VSCode / Atom)
Microsoft Arduino over VSCode
entirely manual arm-none-eabi-g++

> Executing task: platformio run --verbose <

Processing nano33ble (platform: nordicnrf52; board: nano33ble; framework: arduino; debug_tool: jlink; upload_protocol: jlink)
----------------------------------------------------------------
CONFIGURATION: https://docs.platformio.org/page/boards/nordicnrf52/nano33ble.html
PLATFORM: Nordic nRF52 4.2.1 > Arduino Nano 33 BLE
HARDWARE: NRF52840 64MHz, 256KB RAM, 960KB Flash
DEBUG: Current (jlink) External (cmsis-dap, jlink)
PACKAGES:
 - framework-arduino-nrf52-mbedos 1.1.3
 - tool-sreccat 1.164.0 (1.64)
 - toolchain-gccarmnoneeabi 1.80201.181220 (8.2.1)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Framework incompatible library /home/ian/.platformio/packages/framework-arduino-nrf52-mbedos/libraries/mbed-memory-status
Found 7 compatible libraries
More details about "Library Compatibility Mode": https://docs.platformio.org/page/librarymanager/ldf.html#ldf-compat-mode
Scanning dependencies...
Dependency Graph
|-- <PDM> 1.0 (/home/ian/.platformio/packages/framework-arduino-nrf52-mbedos/libraries/PDM)
|-- <micro_features> (/home/ian/Documents/PlatformIO/Projects/Nano33Take01/lib/micro_features)
|   |-- <tensorflow> (/home/ian/Documents/PlatformIO/Projects/Nano33Take01/lib/tensorflow)
|-- <tensorflow> (/home/ian/Documents/PlatformIO/Projects/Nano33Take01/lib/tensorflow)
Building in release mode
arm-none-eabi-g++ -o .pio/build/nano33ble/firmware.elf -T linker_script.ld -DMBED_APP_SIZE=0xf0000 -DMBED_APP_START=0x10000 -DMBED_BOOT_STACK_SIZE=2048 -Wl,--gc-sections -Wl,--wrap,_calloc_r -Wl,--wrap,_free_r -Wl,--wrap,_malloc_r -Wl,--wrap,_memalign_r -Wl,--wrap,_realloc_r -Wl,--wrap,atexit -Wl,--wrap,exit -Wl,--wrap,main -Wl,-n -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -mthumb --specs=nano.specs --specs=nosys.specs -Wl,--as-needed .pio/build/nano33ble/src/audio_provider.cpp.o .pio/build/nano33ble/src/command_responder.cpp.o .pio/build/nano33ble/src/feature_provider.cpp.o .pio/build/nano33ble/src/main.cpp.o .pio/build/nano33ble/src/recognize_commands.cpp.o -L.pio/build/nano33ble -L/home/ian/.platformio/packages/framework-arduino-nrf52-mbedos/variants/ARDUINO_NANO33BLE -L/home/ian/.platformio/packages/framework-arduino-nrf52-mbedos/variants/ARDUINO_NANO33BLE/libs -Wl,--start-group -Wl,--whole-archive .pio/build/nano33ble/libe06/libPDM.a .pio/build/nano33ble/lib5e8/libtensorflow.a .pio/build/nano33ble/lib082/libmicro_features.a .pio/build/nano33ble/libFrameworkArduinoVariant.a .pio/build/nano33ble/libFrameworkArduino.a -lmbed -lcc_310_core -lcc_310_ext -lcc_310_trng -Wl,--no-whole-archive -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys -Wl,--end-group
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: .pio/build/nano33ble/src/command_responder.cpp.o: in function `RespondToCommand(tflite::ErrorReporter*, long, char const*, unsigned char, bool)':
/home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/command_responder.cpp:48: undefined reference to `tflite::ErrorReporter::Report(char const*, ...)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: .pio/build/nano33ble/src/feature_provider.cpp.o: in function `FeatureProvider::PopulateFeatureData(tflite::ErrorReporter*, long, long, int*)':
/home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/feature_provider.cpp:102: undefined reference to `tflite::ErrorReporter::Report(char const*, ...)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: .pio/build/nano33ble/src/main.cpp.o: in function `tflite::MicroMutableOpResolver<4u>::GetOpDataParser(tflite::BuiltinOperator) const':
/home/ian/Documents/PlatformIO/Projects/Nano33Take01/lib/tensorflow/tensorflow/lite/micro/micro_mutable_op_resolver.h:62: undefined reference to `tflite::ParseOpData(tflite::Operator const*, tflite::BuiltinOperator, tflite::ErrorReporter*, tflite::BuiltinDataAllocator*, void**)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: .pio/build/nano33ble/src/main.cpp.o: in function `tflite::MicroMutableOpResolver<4u>::AddCustom(char const*, TfLiteRegistration*)':
/home/ian/Documents/PlatformIO/Projects/Nano33Take01/lib/tensorflow/tensorflow/lite/micro/micro_mutable_op_resolver.h:98: undefined reference to `tflite::ErrorReporter::Report(char const*, ...)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/lib/tensorflow/tensorflow/lite/micro/micro_mutable_op_resolver.h:108: undefined reference to `tflite::ErrorReporter::Report(char const*, ...)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: .pio/build/nano33ble/src/main.cpp.o: in function `tflite::MicroMutableOpResolver<4u>::AddBuiltin(tflite::BuiltinOperator, TfLiteRegistration*)':
/home/ian/Documents/PlatformIO/Projects/Nano33Take01/lib/tensorflow/tensorflow/lite/micro/micro_mutable_op_resolver.h:68: undefined reference to `tflite::ErrorReporter::Report(char const*, ...)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/lib/tensorflow/tensorflow/lite/micro/micro_mutable_op_resolver.h:78: undefined reference to `tflite::ErrorReporter::Report(char const*, ...)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: .pio/build/nano33ble/src/main.cpp.o: in function `setup':
/home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/main.cpp:75: undefined reference to `tflite::ops::micro::Register_DEPTHWISE_CONV_2D()'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/main.cpp:80: undefined reference to `tflite::ops::micro::Register_FULLY_CONNECTED()'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/main.cpp:85: undefined reference to `tflite::ops::micro::Register_SOFTMAX()'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/main.cpp:90: undefined reference to `tflite::ops::micro::Register_RESHAPE()'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/main.cpp:98: undefined reference to `tflite::MicroInterpreter::MicroInterpreter(tflite::Model const*, tflite::MicroOpResolver const&, unsigned char*, unsigned int, tflite::ErrorReporter*)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/main.cpp:102: undefined reference to `tflite::MicroInterpreter::AllocateTensors()'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/main.cpp:109: undefined reference to `tflite::MicroInterpreter::input(unsigned int)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/main.cpp:131: undefined reference to `tflite::MicroInterpreter::~MicroInterpreter()'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/main.cpp:59: undefined reference to `tflite::ErrorReporter::Report(char const*, ...)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/main.cpp:114: undefined reference to `tflite::ErrorReporter::Report(char const*, ...)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: .pio/build/nano33ble/src/main.cpp.o: in function `loop':
/home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/main.cpp:172: undefined reference to `tflite::ErrorReporter::Report(char const*, ...)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/main.cpp:157: undefined reference to `tflite::MicroInterpreter::Invoke()'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/main.cpp:164: undefined reference to `tflite::MicroInterpreter::output(unsigned int)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: .pio/build/nano33ble/src/main.cpp.o:(.data._ZZ5setupE20micro_error_reporter+0x0): undefined reference to `vtable for tflite::MicroErrorReporter'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: .pio/build/nano33ble/src/recognize_commands.cpp.o: in function `RecognizeCommands::ProcessLatestResults(TfLiteTensor const*, long, char const**, unsigned char*, bool*)':
/home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/recognize_commands.cpp:46: undefined reference to `tflite::ErrorReporter::Report(char const*, ...)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/recognize_commands.cpp:60: undefined reference to `tflite::ErrorReporter::Report(char const*, ...)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/src/recognize_commands.cpp:74: undefined reference to `tflite::ErrorReporter::Report(char const*, ...)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: .pio/build/nano33ble/src/recognize_commands.cpp.o: in function `PreviousResultsQueue::push_back(PreviousResultsQueue::Result const&)':
/home/ian/Documents/PlatformIO/Projects/Nano33Take01/include/recognize_commands.h:66: undefined reference to `tflite::ErrorReporter::Report(char const*, ...)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: .pio/build/nano33ble/src/recognize_commands.cpp.o: in function `PreviousResultsQueue::pop_front()':
/home/ian/Documents/PlatformIO/Projects/Nano33Take01/include/recognize_commands.h:79: undefined reference to `tflite::ErrorReporter::Report(char const*, ...)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: .pio/build/nano33ble/lib082/libmicro_features.a(micro_features_generator.cpp.o): in function `InitializeMicroFeatures(tflite::ErrorReporter*)':
/home/ian/Documents/PlatformIO/Projects/Nano33Take01/lib/micro_features/micro_features_generator.cpp:50: undefined reference to `FrontendPopulateState'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: /home/ian/Documents/PlatformIO/Projects/Nano33Take01/lib/micro_features/micro_features_generator.cpp:52: undefined reference to `tflite::ErrorReporter::Report(char const*, ...)'
/home/ian/.platformio/packages/toolchain-gccarmnoneeabi/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld: .pio/build/nano33ble/lib082/libmicro_features.a(micro_features_generator.cpp.o): in function `GenerateMicroFeatures(tflite::ErrorReporter*, short const*, int, int, signed char*, unsigned int*)':
/home/ian/Documents/PlatformIO/Projects/Nano33Take01/lib/micro_features/micro_features_generator.cpp:79: undefined reference to `FrontendProcessSamples'
collect2: error: ld returned 1 exit status
*** [.pio/build/nano33ble/firmware.elf] Error 1
================== [FAILED] Took 1.25 seconds ==================
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.

So, I've reverted the codebase back to the 'micro_speech' example code from the Arduino Web Editor, then transferred these into PlatformIO using VSCode.  The build is executing to completion now. Even if inferences are failing its progress.
I've abandoned the 'micro_speech' implementation as it current appears in the TensorFlow GitHub repo (v 2.2.0), as a source for this project, as it simply doesn't seem to be easily ported.
If I can recommend anything from my experience its that the example projects and the instructions for building them need to demonstrate the current implementation of the TensorFlow technologies, because that's where the online documentation for all other training is guiding developers.
The Arduino implementation I'm using is now targeting the TensorFlow Lite 2.1.x, trained using Keras over TensorFlow 2.3.0+ (tf-nightly), whereas micro_speech and speech_command examples are straight TF 1.x.
Happy for the issue to close at the discretion of the TF team.

Closing due to inactivity


plugin.xml with 'idea-plugin' root is not found

I've created a plugin project and tried to apply gradle-intellij-plugin to it. I followed instruction here (point 1.3) with modifications on build.gradle file, but when I run gradle cleanIdea I get warning plugin.xml with 'idea-plugin' root is not found. IntelliJ specific tasks will be unavailable for :project_name and when i run gradle runIdea I get also Task 'runIdea' not found in root project 'project_name'. Some candidates are: 'idea'.
My build.gradle file is:
buildscript {
    repositories {
        mavenCentral()
    }
}

plugins {
    id "org.jetbrains.intellij" version "0.1.10"
}

apply plugin: 'idea'
apply plugin: 'org.jetbrains.intellij'
apply plugin: 'java'

intellij {
    version 'IC-2016.1' //IntelliJ IDEA dependency
    plugins 'coverage' //Bundled plugin dependencies
    pluginName 'Plugin display name here'
}

group 'org.jetbrains'
version '1.2' // Plugin version

Do I do something wrong? How else should I integrate this plugin with a standard plugin project? Any help would be appreciated.

I get warning plugin.xml with 'idea-plugin' root is not found. IntelliJ specific tasks will be unavailable for :project_name

The warning is quite descriptive. Where is you plugin.xml placed?

My project structure (autogenerated by InelliJ) looks like this:
-Project_name
  | .idea
  | out
  | resources
    | META-INF
      - plugin.xml
  | src
    - NewAction.java
  | Project_name.iml
- External Libraries

I tried putting build.gradle in main project directory / src directory / resources directory / META-INF directory- none of this worked.

My project structure (autogenerated by InelliJ) looks like this:

You should not mix up different approaches to develop plugins. You either create IntelliJ IDEA Plugin module and follow correspinding tutorial and use autogenerated project structure. Or follow the tutorial you have mentioned before and create a Gradle module. In both cases, META-INF/plugin.xml should be placed under any resources root.


can't run anything using another python interpreter

From<EMAIL_ADDRESS>on 2015-01-13T10:05:56Z
What steps will reproduce the problem?

Install the latest DMG (spyderv2.3.2-py2.7) for Mac OSX.
Open Spyder, change the python interpreter executable path to another working python installation (I'm using Enthought Canopy Python 2.7.6).
Try to run any script, or open a new console.

What is the expected output? What do you see instead?
Scripts simply don't run: there's no error messages, and no output. What version of the product are you using? On what operating system? spyderv2.3.2-py2.7 for Mac OSX Yosemite
Please provide any additional information below
.
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=2113

From ccordoba12 on 2015-02-08T11:01:38Z
Things are not working well with Canopy, sorry.
Status: Duplicate
Mergedinto: 1413


refactor: do not allow nsmul and zsmul to default automatically

With the new "don't use with" optimizations we're leaning towards, it's very hard to tell if a data field has accidentally taken a default value.
This changes things so that the user has to write nsmul := nsmulRec and zsmul := zsmulRec explicitly to get the default behavior.
Arguably we should do the same thing for intCast, natCast, pow, and zpow too, but diamonds are less common in those fields, so I'll leave them to a subsequent PR.

[x] depends on: #6265

Could this be related to why Algebra.Category.ModuleCat.Limits compiles more slowly after https://github.com/leanprover-community/mathlib4/pull/6144 ? Or are your changes colimit-only?

Related and I can't find where this was discussed before: why are AddCommMonoid.natModule and AddCommGroup.intModule instances?

It looks like I missed the discussion about "don't use with". Could you please turn these words in the commit message into a link to an appropriate Zulip thread?

Can you update the PR message to current times? Thanks.
bors delegate+

Thanks for solving the conflicts; I assume they'll be a few rounds of build failures next, which I can look at.

Mathlib builds and lints 😉

I'm not sure how you came to that conclusion since you committed a merge conflict marker 🙃

Well it does on my machine.

Ah, you were technically correct; the conflict marked was in Counterexamples, as was the build failure. Now fixed.

!bench

Well that's a nice bonus
bors merge

I didn't compare the profiles before and after but I guess unification is not unfolding + now in some checks?


fix/edit-scheduled-data-binding

Please review before merging.

:tada: This PR is included in version 1.90.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Unclear "cannot find blob" error message

We were confused by the error message when building our release in a one-off Concourse job.
$ gobosh -n create-release --name cf-mysql --version 31.33+g3e3d717 --tarball --force
Building a release from directory '/tmp/build/e55deab7/cf-mysql-release':
  Cannot find blob '' with SHA1 'de370941424b8db054a953bf4dc9925de6f6c33d'

It looks like this was caused because we ran it on a workspace polluted with artifacts from the ruby CLI, but we didn't have any idea what to do about this error before talking to the Bosh team.
Some suggestion about what to do to clean up the directory (Dmitriy suggested running bosh reset-release) or an indication of what files Bosh was referencing might have allowed us to solve the problem on our own.

In the next version.


Possibility to download a mod version from outside source: JourneyMap etc..

Basically all that I want, is a way to point the client where to download a file from, and what folder to place it into. And if it cannot download the file, ex website is down, then have a "file backup" that solder can provide in the meantime.
If this can be done, then modpacks using technic solder would be allowed to use JourneMap in their modpack. I mean, obviously my picture is a rough setup, could be better in many ways. But this feature would be for mods that require the modpack launcher/installer to download from their own URL.
This is kind of similar to: #206 except that its not an optional mod, it would be a required mod in the pack. But allowing us to have proper permissions. It is also the same as #339 but that issue was thought to be the same thing as the optional mods issue and was closed. (ps. I don't think they are the same, but they both mention JourneyMap)

Wanted to suggest the same thing today. +1 Would be a really great feature and would make modpack permissions way easier to get.

+1

Would love to see this as you could also allow alternative mirrors for redundancy :)

I posted this initially over on #206 but realized it fit better here.
Depending on your web server config you can create a /api/mod// tree under the "public" directory and just make files named version numbers containing the MD5 and the outside URL.  It'll override the response from Solder and should cause the client to download from the other URL instead.  Obviously this would need to be manually updated, but if your mod author is cooperative this should work for now.
Doing this does result in the HTTP Content Type being application/octet-stream rather than application/json which means browsers will treat it as a download rather than something to display when checking it.  No idea if that matters to the actual Technic client, I haven't tested doing this in a real modpack yet.
That part is easy to solve if it actually matters though, just drop this in your nginx config:
location /api/ {
    default_type application/json;
}

The idea mentioned above breaks solder in some ways.
The launcher searches for a download list rather in
/api/modpack/modpack_name/modpack_build/client_cid than in /api/mod but the directory structure made in the public directory doesn't take into consideration that the launcher is also searching for modpacks depending on its cid (solder client config) giving a 403 error.
There's a workaround available but that needs the modders help to work:
a simple nginx (or other web server) redirection in the solder mods repository site to a external url (with a solder compatible zip file) will take care of this.
Example:
The JourneyMap author made a solder friendly zip and uploaded it to curseforge
http://minecraft.curseforge.com/mc-mods/32274-journeymap-32274/files/2242259
I added
    location /mods/journeymap/journeymap-1.7.10-5.1.0rc3-unlimited.zip {
        return 301 http://minecraft.curseforge.com/mc-mods/32274-journeymap-32274/files/2242259/download;
    }

in my nginx mods repository configuration so the server will answer with 'moved' to a new url.
a simple 'wget -S mod_url' will verify that

And right now, this is working for you? If so Im going to have to try doing that.

Working like a charm

Ok, i will try get it working when i get home. This is awesome news. Although im not sure i fully understand what you did, but il probably figure it out.

Basically when Solder or the Launcher attempt the URL in your mod repository, the nginx server instead redirects them to a different url (using the proper HTTP 301 redirect code)

hmmmm I can't seem to get it to redirect properly with the Technic launcher this:
        location /mods/journeymap/journeymap-5.1.0rc3-unlimited.zip {
            return 301 http://minecraft.curseforge.com/mc-mods/32274-journeymap$
        }

does download correctly in the browser, but in the launcher is does not. Same thing with wget it doesn't say that it redirects.
but if I add ~ before the location like this:
        location ~ /mods/journeymap/journeymap-5.1.0rc3-unlimited.zip {
            return 301 http://minecraft.curseforge.com/mc-mods/32274-journeymap$
        }

it works in the browser, etc but not in the launcher, it shows up as an error
wget -S tells me that it does redirect.

So I was having issues getting this working. GenPage explained that there is not supposed to be any kind of file locally, and that it should just get the md5 from curse.
After playing with that, it wasn't able to get the md5, which resulted in the downloads not working. here is a pastebin with the logs when you try to add the version: http://pastebin.com/WU2KYSKy
I'm not sure if that is a problem with anyone else, or if it is just a problem with me and one of my settings. But I found that if I download the proper file, then place it in my repo, get the md5 of the mod, then delete the mod from my repo. it will be able to download the file from curse forge no problem. So until someone tells me they have it working and perhaps has any idea of how to fix it. this is a good enough work around for me. :)

The problem from the pastebin is that it never attempts the actual URL over http:// and keeps attempting to index mods internally through a file path. So it never hits the nginx server to redirect.

hmmm is that a solder limitation? Or a settings I might have wrong?

I also had the same problem, I needed the file locally for md5 hashing but my repository is set as a local repo in /app/config/solder.php so there's that.

If this setting:
https://github.com/TechnicPack/TechnicSolder/blob/master/app/config-sample/solder.php#L11
is set to a local path (/var/www/repo/) the md5 should fail but if that's set to a your repo public url (http://repo.something.xy/) it should work without the file present in the repository.

Please see https://github.com/TechnicPack/TechnicSolder/issues/206 for future updates.


PostgreSQL database dump without schema specification

Description
Cannot dump PostgreSQL database without schema specification (without -n key).

If I make a dump with a schema specification, then not all database data gets into it.
When I run the same command in the console, but without the -n switch, then the dump is correct.
DBeaver Version
Community Edition 22.3.1
Operating System
Windows 10 Pro x64
Database and driver
PostgreSQL 14.1
PostgreSQL JDBC Driver 42.5.1
Steps to reproduce
No response
Additional context
No response

Hello @PythonOfJungle
Ok, we can probably remove this "-n" condition.
As a workaround - from the last (23.3.3) release, you can use the Global Dump tool. It dumps databases.

Thank you. Thank you, I'll try it when DBeaver is updated from Windows Store :)

Closed as duplicate of https://github.com/dbeaver/dbeaver/issues/6741


Question: The purpose of Genome?

First of all, thanks for publishing this :) I really want to develop an app with this stack and this is a great starting point!
However. I am a bit confused by the repeated mentionings of "Genome".
It is mentioned in the README of the Vue app (app/client/app/README.md) and also in two other places. The only thing I can find related to this is the Vue-Genome project (https://github.com/doximity/vue-genome) but you do not seem to import this.
In addition, since you mention that comments are welcome, I have two suggestions:

Maybe update the README of the Vue app with some more info.
Maybe add a simple example of the Vue app actually retrieving some info from the Flask API?

Genome is a personal project that I am working on that I used as a template for this. All mentions can be removed.
Completely agree with the Api example, I will add that when I get a chance.

Thanks! That makes sense. I will make a pull request to remove the mentionings :)


Device listing: fix device priority on android and get rid of a ton of g_prints

@Rugvip did you address all of @sdroege 's comments? Could you implement something similar for iOS to address issue #112 ?

@superdump Yep, and I'll have a look at iOS in a bit.

Patch for iOS still wanted, but I'll make an issue for that. Merged.


send only internal or external expirations

We're working on https://trello.com/c/RJAPd2Nv/ and as part of that, we're going to create SNow tickets out of upcoming SSL expiration events. I don't want a ticket for every cert, just internal or external. I've refactored some of the check to do that. I'm thinking about ditching the discovery part, since internal or external would be static, any other thoughts?

Looks good, what comes to mind is 2nd router. We get an internal SNOW ticket, and another let's say 2 weeks later. We should change our policy to renew all certs at the end of the first contract (we're getting back the money for unused time, right?) in case of a secondary router or push the costs on the customer. That would solve it.
Otherwise looks good 👍


mob_cluster own db matrix problem

Hi!
I am tyring to construct a database out of my own plasmids using the command
mob_cluster --mode build --infile  --outdir
Even when trying to run this on the original ncbi_plasmid_full_seqs.fas file I encountered an error.
2020-05-13 13:24:45,779 INFO: Running Mob-Suite Clustering toolkit v. 2.0.0 [in /home/lneffe/miniconda3/lib/python3.7/site-packages/mob_suite/mob_cluster.py:225]
2020-05-13 13:24:45,779 INFO: Processing fasta file /vol/projects/MOBA/eco_bs_clin_iso/plasmid_typing_annotation/db_test/test_old_db_original/ncbi_plasmid_full_seqs.fas [in /home/lneffe/miniconda3/lib/python3.7/site-packages/mob_suite/mob_cluster.py:226]
2020-05-13 13:24:45,779 INFO: Analysis directory /vol/projects/MOBA/eco_bs_clin_iso/plasmid_typing_annotation/db_test/test_old_db_original/ [in /home/lneffe/miniconda3/lib/python3.7/site-packages/mob_suite/mob_cluster.py:227]
2020-05-13 13:55:28,055 INFO: b'' [in /home/lneffe/miniconda3/lib/python3.7/site-packages/mob_suite/wrappers/init.py:51]
Traceback (most recent call last):
File "/home/lneffe/miniconda3/bin/mob_cluster", line 10, in
sys.exit(main())
File "/home/lneffe/miniconda3/lib/python3.7/site-packages/mob_suite/mob_cluster.py", line 308, in main
clust_assignments = build_cluster_db(distance_matrix_file, (0.05, 0.0001))
File "/home/lneffe/miniconda3/lib/python3.7/site-packages/mob_suite/mob_cluster.py", line 81, in build_cluster_db
distance_matrix = data.as_matrix()
File "/home/lneffe/miniconda3/lib/python3.7/site-packages/pandas/core/generic.py", line 5274, in getattr
return object.getattribute(self, name)
AttributeError: 'DataFrame' object has no attribute 'as_matrix'
I installed mob-suite with bioconda in a python3.7 environment.
Maybe there is something wrong with my installation?
Mayn thanks in advance!

There is a later version of MOB-suite v. 2.1.0 which I recommend updating to as there was a bug in 2.0.0 which presents some issues with the host-range prediction. I know ".as_matrix()" is now deprecated in pandas and v. 3.0.0 removes this function call. In the short term, I would recommend that you create a fresh conda environment and install MOB-suite through conda so that the versions of each package should match.

thank you!
I followed your recommendation and set up a new conda environment with python3.7.
Next I tried to install the newest mob_suite but I have trouble because it is apparently not the default in the conda channel. Then I tried to run:
conda install mob_suite=2.1.0
Which gave me the following error:
UnsatisfiableError: The following specifications were found to be incompatible with each other:
Output in format: Requested package -> Available versions
Also I wasn´t able to install it from the .tar.bz2 archive, which I downloaded and gave it a try manually.
conda install "/home/lneffe/miniconda3/envs/mob/bin/mob_suite-2.1.0-py_0.tar.bz2"
Downloading and Extracting Packages
###################################################################################################################################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
ERROR conda.core.link:_execute(700): An error occurred while installing package '::mob_suite-2.1.0-py_0'.
Rolling back transaction: done
LinkError: post-link script failed for package ::mob_suite-2.1.0-py_0
location of failed script: /home/lneffe/miniconda3/envs/mob/bin/.mob_suite-post-link.sh
==> script messages <==

==> script output <==
stdout:
stderr: Traceback (most recent call last):
File "/home/lneffe/miniconda3/envs/mob/bin/mob_init", line 7, in
from mob_suite.mob_init import main
File "/home/lneffe/miniconda3/envs/mob/lib/python3.7/site-packages/mob_suite/mob_init.py", line 3, in
import os, pycurl, tarfile, zipfile, gzip, multiprocessing, sys
ModuleNotFoundError: No module named 'pycurl'
How can I install this version via conda?
best wishes,
Lisa

@Lneffe Hello!
Conda can throw some weird errors. The error indicates that pycurl is not installed on the system.
I had issues installing pycurl myself because it needs curl-dev packages and gcc compiler on the system. Try the following commands to solve install issue. Also try not to cancel conda install as it can partially damage conda install.
#make conda version resolution more flexible
conda config --set allow_conda_downgrades true
#add all channels
conda config --add channels conda-forge
conda config --add channels bioconda

#try  to install pycurl separately although it should of been installed automatically
conda install pycurl

#install mob-suite
conda install -c bioconda mob_suite==2.1.0 -y

Hopefully it will work. If not, let us know

Hi @kbessonov1984 !
Thanks, I followed your advice.
I successfully download the pycurl package and installed it.
Here is the shell output I observed:
(mob) lneffe@bioinf001:~$ unset PYTHONPATH
(mob) lneffe@bioinf001:~$ conda config --set allow_conda_downgrades true
(mob) lneffe@bioinf001:~$ conda config --add channels conda-forge
Warning: 'conda-forge' already in 'channels' list, moving to the top
(mob) lneffe@bioinf001:~$ conda config --add channels bioconda
Warning: 'bioconda' already in 'channels' list, moving to the top
installed pycurl

(mob) lneffe@bioinf001:~$ conda install -c bioconda mob_suite==2.1.0 -y
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment:
Found conflicts! Looking for incompatible packages.                                                                                failed                                                                                -
UnsatisfiableError: The following specifications were found to be incompatible with each other:
Output in format: Requested package -> Available versions
There still seems to be an issue with obtaining the up to date package via conda.
Thanks a lot for your help,
Lisa

Hi Lisa,
It looks like an issue with conda installation itself. There are reports that indicate some incompatibilities between package versions, python version and conda. My adivice is to create a new environment and downgrade to conda 4.6, although in VM, I was able to install mob-suite 2.0.1 running conda version 4.8.2
conda install conda=4.6.14 -y
conda create -n mob-suite-2.0.1 python=3.6 -y
conda activate mob-suite-2.0.1
conda install -c bioconda mob_suite==2.1.0 -y

You can also try to run conda clean --all -y to remove old packages and free up some space.
Alternatively we have a docker image that you can use if conda would not work for you.
Also you can try to install mob-suite via pip inside conda environment with pycurl installed
conda activate mob-suite-2.0.1
conda install pycurl mash blast #install key dependencies
pip install mob_suite==2.1.0

Hi Kirill!
Thank you, I finally managed to get the latest mob-suite version installed.
Ended up using pip installation and adding the required packages manually with conda.
But now unfortunately the same error occurs, when I try to generate a database from a multifasta file
(mob-suite) lneffe@bioinf001:~$ mob_cluster --mode build --infile /vol/projects/MOBA/eco_bs_clin_iso/plasmid_typing_annotation/native_eco_bs_00010_assembly_plasmids.fasta --outdir /vol/projects/MOBA/eco_bs_clin_iso/plasmid_typing_annotation/db_test/db_native_eco_bs_10/ 2020-05-14 16:17:01,318 INFO: Running Mob-Suite Clustering toolkit v. 2.1.0 [in /home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/mob_suite/mob_cluster.py:226] 2020-05-14 16:17:01,318 INFO: Processing fasta file /vol/projects/MOBA/eco_bs_clin_iso/plasmid_typing_annotation/native_eco_bs_00010_assembly_plasmids.fasta [in /home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/mob_suite/mob_cluster.py:227] 2020-05-14 16:17:01,318 INFO: Analysis directory /vol/projects/MOBA/eco_bs_clin_iso/plasmid_typing_annotation/db_test/db_native_eco_bs_10/ [in /home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/mob_suite/mob_cluster.py:228] 2020-05-14 16:17:01,819 INFO: b'' [in /home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/mob_suite/wrappers/__init__.py:24] Traceback (most recent call last):   File "/home/lneffe/miniconda3/envs/mob-suite/bin/mob_cluster", line 8, in <module>     sys.exit(main())   File "/home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/mob_suite/mob_cluster.py", line 309, in main     clust_assignments = build_cluster_db(distance_matrix_file, (0.05, 0.0001))   File "/home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/mob_suite/mob_cluster.py", line 82, in build_cluster_db     distance_matrix = data.as_matrix()   File "/home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/pandas/core/generic.py", line 5274, in __getattr__     return object.__getattribute__(self, name) AttributeError: 'DataFrame' object has no attribute 'as_matrix'
Best Wishes,
Lisa

Hi Lise,
The issue is with the pandas. as_matrix method is deprecated since 0.23.0 pandas version (see here). Try to install pandas version 0.23.0 and it should resolve your issue like so
conda install -c conda-forge pandas==0.23.0 -y
#if conda environment resolution will fail, try via pip
pip install pandas==0.23.0

Hi,
thank you. the installation into the environment worked well.
When trying to run it now I encoutered a new error:
Traceback (most recent call last):   File "/home/lneffe/miniconda3/envs/mob-suite/bin/mob_cluster", line 5, in <module>     from mob_suite.mob_cluster import main   File "/home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/mob_suite/mob_cluster.py", line 7, in <module>     import pandas as pd   File "/home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/pandas/__init__.py", line 42, in <module>     from pandas.core.api import *   File "/home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/pandas/core/api.py", line 10, in <module>     from pandas.core.groupby.groupby import Grouper   File "/home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/pandas/core/groupby/__init__.py", line 2, in <module>     from pandas.core.groupby.groupby import (   File "/home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/pandas/core/groupby/groupby.py", line 46, in <module>     from pandas.core.index import (Index, MultiIndex,   File "/home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/pandas/core/index.py", line 2, in <module>     from pandas.core.indexes.api import *   File "/home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/pandas/core/indexes/api.py", line 4, in <module>     from pandas.core.indexes.base import (Index,   File "/home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/pandas/core/indexes/base.py", line 52, in <module>     from pandas.core import ops   File "/home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/pandas/core/ops/__init__.py", line 25, in <module>     from pandas.core.construction import extract_array   File "/home/lneffe/miniconda3/envs/mob-suite/lib/python3.6/site-packages/pandas/core/construction.py", line 13, in <module>     from pandas._libs.tslibs import IncompatibleFrequency, OutOfBoundsDatetime ImportError: cannot import name 'IncompatibleFrequency'
This seems still be an issue with the pandas package.
Do you have an idea how to fix it?
Thanks!

Looks like something weird have happened with pandas package so it can not import some of its sub-modules. I would try to re-install pandas package 0.23.0 either via conda or via pip pip install --upgrade --force-reinstall pandas==0.23.0. Alternatively, I would create a new fresh conda environment and would install pandas and pycurl packages via conda and all the rest via pip. Once you install pandas try to run python -c "import pandas" if you see no message then it means that it is installed correctly. Also try to run mob_cluster -h and you should see command help information.

Thank you for your good support!
The whole tool works now!
Best wishes,
Lisa


Can only get 100 records.

Does anyone have any pointes how to get list records over 100?
await internals.list.members().pages().page({subscribed: true}).then(
    async function (members) {
      debugger;
      // `members` is the list of members

      await internals.mailgun.get(members.paging.next).then(
        (data) => {
          debugger;
        }, (err) => {
          debugger;
        }
      );

works fine for the first 100, and supposedly provides links for the next, etc, but those links don't seem to work. I've also tried using a mailgun.get and that hasn't worked. I've used the request lib and I get some message from mailgun like "The great mailgun API".

What's the debugger stuff?
Did you get this resolved based on the comment in #125 ?

debugger stuff is for inspection during development. I appear to have it working (thanks to @ewagoner of ) Once I've tidied this up and pushed it, I'll provide sample code and link. Thanks.

Another way to do this, set the limit to something more than your number of users:
const limit = 1000;
const mailingListName =<EMAIL_ADDRESS>
return mailgun.get(`/lists/${mailingListName}/members/pages?limit=${limit}`)
  .then((results) => {
    return results.items;
  });


Fix cleanup section

As per @teddyaryono review the cleanup section leaves behind resources. Find the source (probably CI/CD stack) and update cleanup procedure.
Deleting FisStackVpc is failed due to the dependency violation. There is 1 EC2 instance with following tags that need to be deleted prior to the VPC deletion.
* Key: aws:cloudformation:logical-id, Value: instance0B661231D
* Key: aws:cloudformation:stack-name, Value: fisWorkshopDemo
* Key: FIS-Target, Value: true
* Key: aws:cloudformation:stack-id	, Value: arn:aws:cloudformation:ap-southeast-1:810259017959:stack/fisWorkshopDemo/0b883280-fde7-11eb-862e-0a51f5211668
* Key: Name, Value: FisExampleStack/instance-0

@taryono - 2021-08-16 - See previous questions for some resources that is not being cleaned up.

Fixed by #156

@mjkubba - I thought this was about or included cleanup.sh leaving things behind. I don't see that fixed by #156?

@rudpot I didn't see any leftovers from my previous deploy/cleanup cycle, checked with Benoit de Chateauvieux, he confirmed that PR is the fix for this.


SDXL Power Prompt loads the same LORA twice

Hi. I don't know if this is an intended behavior, but I noticed the SDXL Power Prompt loads the same LORA twice if the LORA string is in both prompt_g and prompt_l.
For context, I followed this post on Reddit about using full prompt for both, rather than separate. To make my life easier, I use a separate string node as my prompt and plug it in both of the power prompt input. This works fine, but if I put in a LORA string then the node will load the LORA twice.
My current workaround is having two separate string nodes: Positive and LORA. The output of Positive + a comma +  LORA goes to prompt_g. Only the output of Positive goes to prompt_l.

Don't know if this matter?

Ah, correct. Power Prompt just parses the text as-is. This is by design and I think I'd rather not bake in too much magic. Your text cancatenation would be the right solution here to keep the <lora:...> text.
However, I did just push a change with a new node, Power Lora Loader which allows you to more succinctly add, toggle, and manipulate lora strengths. I think I prefer it more than the <lora:...> tags at the moment. Give it a try and let me know what you think.


Add info in subtitle class

This would be a property implemented by providers that returns a string (or a list of strings) about the subtitle for GUI rendering.
This would be a good place for releases or filenames. Anything that can help the user decide.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Could be solved by a release property with #572

Fixed with get_subtitle_description(subtitle)

It's still a valid feature to be added to subliminal. I wouldn't close it.

Sorry! I was to close https://github.com/Diaoul/subliminal/issues/581 which is already closed!

Fixed by 99384476ec62ec9f2769b4dc79ea38ed14c16def


Fix return value of AsyncStorage methods

AsyncStorage.getItem and similar methods should return the item in the promise chain. Similarly, error should be propagated.
https://github.com/facebook/react-native/blob/4879f88a75204588fbe461ab43f8cd50a09dd707/Libraries/Storage/AsyncStorage.js

I'm not sure throwing the error is a good idea, the callback is what handles the error? Throwing it would require a further try catch

I'm not sure either, that's what RN does though:
https://github.com/facebook/react-native/blob/4879f88a75204588fbe461ab43f8cd50a09dd707/Libraries/Storage/AsyncStorage.js#L57

I totally just forgot that throwing inside a promise calls the catch function :-1:... Yea that fix in that case looks good to me.

Thanks for merging. When is next release planned?

I'd like to get a few more changes in if possible before I release next, else it's a lot of little updates that don't have much worth. Hopefully towards mid-end of this week

Perfect


Filtering using current-path

Apologies if this isn't an Expression Field issue, it could be Symphony related instead.
I am filtering a section based on $current-path to show certain content. This is working perfectly on subpages where current-path is something like /foo, but on the index page where current-path is '/', it is not returning the correct entry and just defaulting to the latest entry ID.
Any ideas? I've been away from Symphony for some time so I am quite rusty :s
Symphony version 2.5.2 and Expression Field version 1.1

I'll take a look this evening, I have a project where I need to use this field so will check it out.
Are you using the 'regexp' setting?

Nah not using regexp.
Screenshots of setup, which has worked for me in the past. Shows entry values, and datasource filter.

I"m going to use this field to do exactly what you are doing, navigation active states ;) Will let you know :)

Confirmed, I can reproduce the same result using Expression Field 1.1 and Symphony 2.6 (integration).
It's actually a core bug! The / gets evaluated as 'nothing' in the Datasource class, so then the filter is unset!

Brilliant, thanks @brendo. I had a feeling it was core related. I have updated the class.datasource.php file as per your referenced Symphony commit and can confirm it is now working as expected.
Cheers mate!


Create load test to incorporate write performance

If the chosen test application for Bedrock allows for CRUD operations in addition to gets, then performance testing should include write/post numbers in addition to just retrievals.


Your requirements could not be resolved to an installable set of packages.

Hi i am using laravel 5.8.34. I have an installation problem
Problem 1
- Conclusion: don't install browner12/helpers v3.1.0
- Conclusion: remove laravel/framework v5.8.34
- Installation request for browner12/helpers ^3.0 -> satisfiable by browner12/helpers[v3.0.0, v3.1.0].
- Conclusion: don't install laravel/framework v5.8.34
- browner12/helpers v3.0.0 requires illuminate/contracts ^6.0 -> satisfiable by illuminate/contracts[6.x-dev, v6.0.0, v6.0.1, v6.0.2, v6.0.3, v6.0.4, v6.1.0, v6.10.0, v6.11.0, v6.12.
0, v6.13.0, v6.13.1, v6.14.0, v6.15.0, v6.15.1, v6.16.0, v6.17.0, v6.17.1, v6.18.0, v6.18.1, v6.18.2, v6.18.3, v6.18.4, v6.18.5, v6.18.6, v6.2.0, v6.3.0, v6.4.1, v6.5.0, v6.5.1, v6.5.2,
v6.6.0, v6.6.1, v6.6.2, v6.7.0, v6.8.0].

how you fix that? i can't installed browner12


Inference Program

Hello, thank you for your contribution to multi-target tracking. Your algorithm is very powerful! But I want to use a model to infer video stream tracking, which means training, evaluation, and submission are not required. However, it seems that there are no files like inference.Py or demo.Py in your algorithm library. Could you guide me to complete the inference? Or Could you provide a program?

Maybe you could refer to demo.ipynb.

If you have other questions about demo scripts, you can re-open this issue or make a new one.


[no-object-literal-type-assertion] can't assert as generic type

Not sure it should be a bug, but indeed expect we can assert an object as generic type.
Bug Report

TSLint version:  3.1.3
TypeScript version: 5.11.0
Running TSLint via: VSCode

TypeScript code being linted
export function shallowCopy<O extends object> (o: O) {
  // [tslint] Type assertion on object literals is forbidden, use a type annotation instead.
  const to = {} as O

  for (const key in o) {
    if (!o.hasOwnProperty(key)) continue

    to[key] = o[key]
  }

  return to
}

with tslint.json configuration:
{
  "rules": {
    "no-object-literal-type-assertion": true
  }
}

I get this error for a given function
export function getObjectOrEmpty<T>(): T {
  return getSomeObject() || ({} as T);
}

const { name } = getObjectOrEmpty<{ name: string | null }>();

My problem is: how i can properly return an empty object?
If i do not want to return null?
In my case destructuring syntax will not work on nullable result

@jurijzahn8019 that seems like it is still buggy behavior. It turns into:
return getSomeObject() || ({} as { name: string | null })

...which is a dangerous and incorrect type cast.

@JoshuaKGoldberg Ok, i accept.
although I do not see any difference between:
const t = {}
const a = { name: undefined }

In my case I only want to use destructuring.
And I definitely ok if name is not set.
I will find other way to solve it.
Thanks :slightly_smiling_face:

Oh there is a difference between {}, { name: null }, and { name: undefined } in the type system with strictNullChecks enabled. null isn't undefined.
Without strict null checks, there's still a difference between {} and the other options. Whether name exists on the object is something the type system cares about by default. If you don't care whether the object exists on the interface, you can use:
interface IFoo {
    name?: string;
};

...where the ? indicates that the property both can be undefined and doesn't have to exist on the object.
Closing this issue as declined for now, but if there's a great deal of interest in this feature, we can always revisit!


feature request: "function button" definition choice

hello,
request:
give the possibility to choose what the function button does on short press and long press (on my side I'd like it to swap sources on a short press)
rational:
I fly whoops a lot and I switch from analog to HDzero all the time, so I have to go in the menu to change source which is long, and a pain as the wheel selector is behind the analog bay, my hand keeps on hitting the antenna, and end up breaking the bay cover.
have a good day

I am also looking to do this. When using the head tracker feature, I frequently need to re-center, and it takes a long time to do this via the menu system.

I am also looking to do this. When using the head tracker feature, I frequently need to re-center, and it takes a long time to do this via the menu system.

This is already implemented in #367. I don't know, why there hasn't been a release since then. Swapping sources, as @DarthCedius would be a new feature for the buttons and could possibly be implemented as a cycle through sources. Maybe I'll try that out as soon as I've got time for it.

Swapping sources has not been implemented yet, see PR #423


User is not redirected to Cluster explorer on a rancher upgrade

Rancher Server Setup

Rancher version: master-head commit id: 9e0d1b2
Installation option (Docker install/Helm Chart): Helm install

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc): RKE1

Information about the Cluster

Kubernetes version: 1.20.7

Describe the bug
User is not redirected to Cluster explorer on a rancher upgrade
To Reproduce

On 2.5.9 , deploy a downstream cluster (not required) in the Ember UI
Upgrade rancher to master-head.
User is still in Ember UI on the upgraded setup

Expected Result
User should be redirected to Cluster Explorer, since that is the default UI from 2.6.0

We're also adding in a mechanism for Vue in 2.6+ for the subscribe pings to tell us the current server version and have Vue auto reload when it changes, so this won't happen next time...

@vincent99, is the change merged already or you're working on it?

The last part for future release to reload Vue is not yet, the rest is.

Backend PRs for reference:
https://github.com/rancher/rancher/pull/33849
https://github.com/rancher/rancher/pull/33931

On an upgrade from 2.5.9 to 2.6-head commit id: 2778eca
Using Local Auth/admin

user is on the Ember UI cluster page on 2.5.9
Upgrade rancher docker install to 2.6-head
Reload/refresh rancher UI page
user is redirected to https://server/g/clusters page for a brief moment before being redirected to Dashboard UI.
After that the User is logged out. And the user has to log back in to go to the Dashboard --> Home page.


cache maxAge

Did you try code from the master branch: https://github.com/mrclay/minify ?
yes

Are you sure this is not a problem with your configuration? (ask on the Google
Group)
no

Minify commit/version:2.1.4
PHP version: 5.2.17

What steps will reproduce the problem?
cache expiration date is overwritten

GROUPSCONFIG.PHP file =
return array(
	'plugins' => array('//js/jquery.address.js','//js/mylibs/helper.js','//js/plugins.js'),
	'scripts' => array('//js/script.js'),
	'ie' => array('//js/libs/ie9.js','//js/libs/selectivizr-min.js','//js/libs/imgsizer.js'),
);

CONFIG.PHP file =
$min_serveOptions['maxAge'] =<PHONE_NUMBER>;

Expected output:
min/g=plugins ( but also min/g=scripts ) Cache-Control:max-age=2000000000

Actual output:
Cache-Control:max-age=2000000000, max-age=60

cache max-age is overwritten to 60 ms

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 9 Nov 2011 at 3:42

shame on me.

you are right, i've an .htaccess in root (mostly based on
https://github.com/laukstein/ajax-seo/blob/master/.htaccess )
 so /min is excluded from redirects, but not from max-age settings

thanks for all

Original comment by<EMAIL_ADDRESS>on 10 Nov 2011 at 12:53

If you're seeing two "max-age" values, then one of them has to be being altered
outside PHP (by your web server I assume). The code that writes the
Cache-Control header in Minify is here (it can't write two values):
https://github.com/mrclay/minify/blob/master/min/lib/HTTP/ConditionalGet.php#L15
5

If you make an empty PHP file and call it, does it send
Cache-Control:max-age=60 by default?

Original comment by<EMAIL_ADDRESS>on 9 Nov 2011 at 5:43

Changed state: NeedInfo

Daniele, does https://github.com/laukstein/ajax-seo/blob/master/.htaccess still
returns you any error?

Original comment by laukstein on 22 Jul 2013 at 6:04


Can i use CI flash messges with slice ?

Previously i used xiaoler/blade blade library with codeignitor and found that i cant use flash messages with it, is it possible to use codeignitor flash messages with slice ? Secondly, does slice provide all the features that blade provides so i can use it in my next CI project ?

For now, Slice doesn't support CodeIgniter Flash Messages!
But that is a great idea!
Unfortunately, not all features provided by Blade is available in Slice. Things you cannot do with Slice:

Use components and slots
Display unescaped data
Use the @verbatim directive
Use the @isset and @empty directives alone (but you can use the @empty with @forelse() or @foreach()
Use the loop variable
Render views for collections
Use stacks
Use service injection

OMG!! I I had not realized there was so much left to do!!
Well I'm supposed to start working right now!

I was quite sure that flashmessages will not support, so though to ask you as a question so you can find some solution upfront. Because other libs dont support it. So far its great, best luck.

Three new directives were add in the version 1.1: @isset, @empty and @each.
Can you elaborate more how could Slice-Library use CI flashdata?
One more thing... if you allow me to ask:
In your opinion, since Slice-Library deals with views (html, basically) is it a good idea that Slice-Library autoload Form Helper and/or HTML Helper?
Thank you very much!


Debug launching before preLaunchTask ready when dependsOn task defined

VSCode Version: 1.26.0-insider (and 1.25.1)
Commit: 6babef94104b27b252929324aa3c2d69cd38e9f2
OS Version: Win10 x64

Does this issue occur when all extensions are disabled?: Yes
Steps to Reproduce:

Define a launch configuration with a preLaunchTask.
Define that preLaunchTask as a background task with a  (non-background) dependsOn task to execute before it.
Debug with the launch configuration.  The launch/debugger opens at what appears to be the completion of the dependsOn task, rather than when expected at the endsPattern of the preLaunchTask.  It is not immediate, but it is far too early.

Taking out the dependsOn task from the preLaunchTask definition results in the expected behavior: the debugger waits to launch at the point that the preLaunchTask prints a message matching the endsPattern.
Also, making the preLaunchTask a non-background task seems to have the expected behavior: the dependsOn task executes before the preLaunchTask before the launch configuration.
There is no difficulty outside of the launch: the tasks defined execute in the expected sequence and match problems whether they were started directly, or via the launch.  It's just that the debugger starts too early under these circumstances.  It also does not seem to be specific to any one launch extension.
Thanks,
Alex
launch.json:
{
"version": "0.2.0",
"configurations": [
    {
        "type": "chrome",
        "request": "launch",
        "name": "Debug in Chrome",
        "url": "https://localhost:3801",
        "webRoot": "${workspaceFolder}",
        "preLaunchTask": "Build and Watch",
    }
]
}

tasks.json:
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Install Packages",
            "type": "shell",
            "command": "yarn",
            "group": "build"
        },
        {
            "label": "Build and Watch",
            "dependsOn": "Install Packages",
            "type": "shell",
            "command": "yarn",
            "args": [
                "watch"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": [
                {
                    "owner": "javascript",
                    "fileLocation": [
                        "relative",
                        "${workspaceFolder}"
                    ],
                    "pattern": [
                        {
                            "regexp": "(ERROR|WARNING) in (.*\\.js)",
                            "severity": 1,
                            "file": 2,
                        },
                        {
                            "regexp": "^.*$",
                        },
                        {
                            "regexp": "(.*)\\s\\((\\d+):(\\d+)\\)",
                            "message": 1,
                            "line": 2,
                            "column": 3
                        }
                    ],
                    "background": {
                        /* Problems are printed after this message. */
                        "beginsPattern": "Build Finished",
                        /* Matching Browsersync messaging. */
                        "endsPattern": "\\[TOOLKIT\\]",
                        "activeOnStart": true
                    }
                }
            ],
            "isBackground": true,
        }
    ]
}

I should also add that the only issue for me is just that the debugging browser launches before the website is ready: there is no actual problem with attaching or debugging, it just results in a "page could not be loaded" and having to manually refresh the browser.
If the preLaunchTask was already running prior to debug, then everything is fine too.

The issue here is that the debugService is waiting for the Inactive task event here
If the task depends on some other task, I would expect Inactive is only fired once all the tasks have completed -> forwarding to @dbaeumer
Assign back to me if there is some other task API that I could use here which I am missing.

No your assumption is correct.

I looked into this and it is actually something debug needs to fix. The thing here is that two tasks are started but debug reacts in task inactive event without checking if the task it started is signalling the inactive event.
@isidorn you need to take the provided event into account. The event has either a __task property for which I guess you can do an identity compare with the task to started. If you fetched the task before and kept it around for a while you might compare the id. This will stay the same even if the task instance has changed.
Moving back to debug

@dbaeumer thanks a lot for the investigation and for the fix
@EricJizbaMSFT @halovanic please verify in tomorrows vscode insiders that this fix actually fixes your issue. I just verified it does not break existing behavior. Thanks!

@isidorn I'm getting this every time I try to debug:

I created a simple VS Code extension that replicates the bug when you F5:
https://github.com/EricJizbaMSFT/helloworldext
VS Code version: Code - Insiders 1.30.0-insider (9e62a05bc7c5dbb74d165e06f7c3a5f3c7549096, 2018-12-03T06:12:08.874Z)
OS version: Darwin x64 18.2.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz (8 x 2500)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: enabledrasterization: enabledvideo_decode: enabledvideo_encode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
3, 3, 3

Memory (System)
16.00GB (4.71GB free)

Process Argv
.

Screen Reader
no

VM
0%

Extensions (7)

Extension
Author (truncated)
Version

tslint
eg2
1.0.40

vscode-cosmosdb
ms-
0.9.1

python
ms-
2018.11.0

azure-account
ms-
0.7.0

csharp
ms-
1.17.1

java
red
0.35.0

vscode-java-debug
vsc
0.15.0

I can repro by cloning your repository.
So for this milestone I have decided to revert my "fix"
@dbaeumer @alexr00 the task ids that I am getting from the task service are not matching and so I can not detect that a task is started.
Assigning to @alexr00 and december to investigate than why the task ids are not matching.
To repro

Clone @EricJizbaMSFT repo
Set a breakpoint here and here
Start debugging and check the task ids I am getting are not matching the task.id

@alexr00 I quickly looked into this and there is something wired here. In this setup the terminal doesn't give us any onExit callback hence we end up in a very wired state. We do get the callback correctly for a single watch task. So not critical for today.

It does work if we give each task a dedicated panel
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "npm",
            "script": "watch",
            "problemMatcher": "$tsc-watch",
            "isBackground": true,
            "presentation": {
                "reveal": "never",
                "panel": "dedicated"
            },
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "dependsOn": "npm: lint"
        },
        {
            "type": "npm",
            "script": "lint",
            "problemMatcher": "$tsc",
            "presentation": {
                "reveal": "never",
                "panel": "dedicated"
            },
        }
    ]
}

Based on @dbaeumer investigations, assigning back to @isidorn to listen for the right task.

Looked into it, and not having the right events is a duplicate of #64226, which is in turn a duplicate of #57803. The initial tsc compile lines simply never make it to the terminal which means our watching problem matcher can't fire the events we need. Until #57803 is fixed there is no good work around. Once you see the tsc compile start you can save a source file to cause the missing lines to print to the terminal.

@alexr00 I'm a little confused on if this is fixed or not. If it's not fixed - which issue should I track going forward?

There are two issues that contribute to what you're seeing:
#64865 was causing the terminal to not sent an onExit event. This issue is now fixed.
#57803 is causing the first couple terminal lines from tsc to not show. This is caused by Windows and the only fix for it is to upgrade past build 1809. This is the issue to track going forward, though I don't believe there will be a fix for it.


feat: Implement eth_getBlockByHash method

Description
Starknet's block queries are done with block hash. So simply call the related starknet method with block hash. Then, format output as same as ethereums.
https://github.com/keep-starknet-strange/rosettanet/blob/main/rpc-call-examples/eth_getBlockByHash.hurl
https://github.com/keep-starknet-strange/rosettanet/blob/main/rpc-call-examples/starknet_getBlockWithTransactions.hurl
https://github.com/keep-starknet-strange/rosettanet/blob/main/rpc-call-examples/starknet_getBlockWithTransactionHashes.hurl
Return mock values for fields that do not exist on starknet.
Requirements

Unit tests have to be implemented.
Do not change the existing type structure

Completion Time
The issue is assumed to be completed in 5 days. If you need more time, please also specify that.
This issue is reserved for a local event in Istanbul
Bounty: 80 STRK

@ermvrs No one seems to have picked it up in the Instanbul event.
I'm waiting for new issues to drop, so is it okay if I get on this one in the meantime? (if no one else is picking this up)

Hey @ermvrs! 👋
I will be joining the Istanbul event on the 16th. Is it okay if I pick this issue for it?

I'll hop on this ,thank you

@ermvrs @muheebyusufbaba1
I solved this issue in the İstanbul event and it is merged now: https://github.com/keep-starknet-strange/rosettanet/commit/ba6977b76be2b32a6bf8234229bcddfe2e8c2033

Oh missed that sorry.


Huge bundle size

Hi,
I've implemented the library and imported in my appModule as described in the readme. When I create a prod budle using ng build --prod the finale bundle size is double compared to the one without the library imported. It seems you are importing the entire Angular core again. Am I doing something wrong?
I'm currently using angular 7.0
thanks

Could you provide an example project where this issue is happening? :)

Thank you for your issue.
I have just released a new version with Angular 11 support, please upgrade your ngx-lazy-load-images dependency in package.json to ^2.0.0.
If you encounter any problems while using it, please open a new issue.


Villa, Air Base and Crash Site have broken bg

Self-explanatory.

Should be fixed again now. GBI_FLOATS needs some more fixes I guess.

Seems correct now.


Random crash

https://mclo.gs/ne7halT

Can confirm, the current version guardvillagers-2.0.6-1.19.2.jar is broken.
crash-2023-08-06_14.32.38-client.txt

fixed in 2.0.7


feat(coil-extension): update popup copy

https://github.com/coilhq/web-monetization-projects/issues/1724
The padding for the top and bottom bar is off

[x] S<|| icon should be 16x16px. Padding in the bottom bar should be 8px around
[x] Padding in the top bar should be 16px on the left and 8px top, right and bottom.
[x] You will have to adjust the {…} menu. That is currently too big and therefore your padding is off.
[x] Make sure the hover state is only 32-40px.

approved by @fruehle


Updated style for Import / Export datastore

Before:

After:

Before:

After:

@epwinchell please review

@romanblanco Let's use the form-horizontal class for those dropdowns

@epwinchell Updated.

@dclarizio Looks good

@miq-bot add-label enhancement


CloudFront-S3 pattern supports generate config files in s3 based on dynamic output of other resources in stack

Generating a config file in s3 in deployment time bases on the output of other resources of stack.
Use Case

When hosting a static web site developed by Amplify, we have to put a amplify.json config file for the SAP web application with static files. For the content of config file, we could put the authentication(cognito pool id, client id of oidc, etc.), api config information(api gateway endpoint) or other resources created in the stack in that config file.
Proposed Solution

It would be nice to define a parameter of CloudFrontS3 construct to define the config files with content. Also the construct has capability to update those files and invalidate the caches when those files are changed.
files: {
  '/path/config.json': `{
  "aws_project_region": "${Aws.REGION}",
"Auth": {
    "region": "${Aws.REGION}",
    "userPoolId": "${poolInfo.userpool.userPoolId}",
    "userPoolWebClientId": "${poolInfo.client.userPoolClientId}",
    "authenticationFlowType": "USER_SRP_AUTH",
    "oauth": {
      "name": "${poolInfo.oidc.name}",
      "domain": "${poolInfo.poolDomain.domainName}.auth.${Aws.REGION}.amazoncognito.com",
      "scope": ["email", "openid", "aws.cognito.signin.user.admin", "profile"],
      "redirectSignIn": "${poolInfo.oidc.signinUrl}",
      "redirectSignOut": "${poolInfo.oidc.signinUrl}",
      "responseType": "code"
    }
  },
 '/config-b.txt': 'blabla'
}`
}

Other

[ ] :wave: I may be able to implement this feature request
[ ] :warning: This feature might incur a breaking change

This is a :rocket: Feature Request

Thanks we'll take a look
Just to clarify - you want to be able to create a file in the S3 bucket based on content defined dynamically at launch time? (in your specific case, an amplify configuration file).

Thanks we'll take a look
Just to clarify - you want to be able to create a file in the S3 bucket based on content defined dynamically at launch time? (in your specific case, an amplify configuration file).

Exactly.
Amplify web application is my use case. Also I think it's a common use case for other web applications.

We're looking into this now, the key seems to be the s3-deployment library in the CDK. Using the BucketDeploy construct, you can upload a wide variety of content up to an S3 bucket. The code snippet below shows how to upload an asset based completely on data available at runtime. The Source class can also create the asset content from a JSON object - which may be best for your config file.
We're still looking deeper at the operation of BucketDeploy to determine whether to update existing constructs to add this functionality - but the example below has us thinking that just adding the BucketDeploy props to the CloudFrontToS3 interface doesn't really provide any added value or ease over just using it directly. We'd be interested in hearing any feedback you have in this regard.
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    const main = new CloudFrontToS3(this, 'test-structure', {
    });

    new s3deployment.BucketDeployment(this, 'my-deployment',{
      sources: [ s3deployment.Source.data('index.htm', '
Hello, World
')],
      destinationBucket: main.s3BucketInterface,
    });

    new cdk.CfnOutput(this, 'url', {
      value: `https://${main.cloudFrontWebDistribution.domainName}/index.htm`
    });
  }


Mod: modify import blocks for branch master

refmt import blocks in samples

merge it forcefully as admin right


Clipboard: Jerks on the screen when touch copy button on mobile safari

Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
No response
Description
This bug only appears on mobile safari if the search bar is at the bottom
Reproduction
Steps to reproduce:

Go to the https://material.angular.io/cdk/clipboard/overview
Open safari on iphone device
Move the search bar down
click to copy button

https://user-images.githubusercontent.com/36147115/175993701-d4dc40ab-5515-4df5-940d-c6f33a639680.mp4
Expected Behavior
When pressing the button, there should be no jerks.
Actual Behavior
There are Jerks on the screen when touch copy button
Environment

IOS 15.5:
safari 15.5:

I just tried it on a device running iOS 15.5 and it didn't happen. I wonder if it's only under a specific set of circumstances.

I wonder if it's only under a specific set of circumstances.
Yeah, probably. but I tested it on 3 different devices and the result is the same


A Page folder starting with "." should be ignored

Example of possible problems:
.idea/
.git/

https://github.com/getgrav/grav-plugin-admin/pull/149 fixes the problem but just in the Admin. Maybe it's better to have a parameter in Grav itself, so it will completely ignore passed Pages, defaulting to common hidden folders?

Yah I think it should be something at the Grav level rather than at the admin level.  I could of sworn I added logic to skip dot folders already though???

Tried adding the .idea folder but it showed in the Admin Pages list.
I've closed my PR https://github.com/getgrav/grav-plugin-admin/pull/149 in the admin plugin, better move it here.

Is ignoring dot folders in the page tree going to be implemented? I think its useful, for example to keep a directory unpublished while under construction or to quickly hide something. This should be in addition to ignore_folders.

Pretty sure this is already implemented.  Are you having problems?

Actually just tested, we don't actually have a skip ALL dot files rule, but we do use these settings in the system.yaml:
  ignore_files: [.DS_Store]            # Files to ignore in Pages
  ignore_folders: [.git, .idea]        # Folders to ignore in Pages

To ignore a specific dot folder, add it to the list.

I'm actually going to add a toggle for skipping all 'hidden' files/folders too will be 'true' by default.

Great. Not sure if a toggle is really needed. Like _folders have a modular property auto-magically,  .folders could have the hidden property auto-magically. This is what most would expect anyway and this avoids config feature bloat.

Problem is I have to think about backwards compatibility. I can't just change the way something works with out at least having a toggle to return it to the prior state.  It could be that people are using 'dot' folders or files for some reason.
it really doesn't cost much to add a config option for this, and I know that it would drive me crazy if something just changed and was not easy to fix.


Ability to clone a device with a different name.

This is low priority but still important in my eyes as adding the device manually isn't exactly difficult. As it is now though, it takes many repeating clicks to assign the required fields for each new device assuming you are creating many similar devices.
What I suggest is the ability to clone a device, replicating Device Role, Manufacturer and Device Type all by default.
Obviously a new Name will be required and I believe when that name is entered, the ability to select a site and rack should also be available, likely with the defaults being the cloned devices values.
This could save a good number of clicks and/or tabs for each similar device entry and make the overall workflow considerably more efficient when adding many new similar devices.

To clarify, you're asking for the ability to select a device that has already been created, and pre-populate most of its data in a form to create a new device?
(This is probably related to #648, but that deals only with creating multiple devices in immediate succession.)

You are correct.
I would like to select a device, hit a "Clone" button and have the above mentioned fields be pre populated in the new device with only the name and the rack left to manually enter or select.
As the point of this enhancement is to increase efficiency in workflow, I would suggest that the cloned fields are handled in the background so the user doesn't get bogged down in the details of a cloned device as it is being created. Fill in Name, select Rack. Presto, cloned device created.
Looking at #648, they are related but the usage is a bit different as you said.

Still confused.
How do we clone ?
I checked #648, did not understand.

This actually seems to be a duplicate of #33.


Add JWT Validate & Decode

Done in https://github.com/drivly/ctx.do/commit/2643a196bd164f3ef5a7e110658836dd4517d6f7


Unable to run UIExplorer project [Android][Windows]

I've been trying to run UIExplorer project on Windows. I am getting the following error-

...
...
make: *** [D:\react-native\ReactAndroid\build\tmp\buildReactNdkLib/local/armeabi-v7a/objs/reactnativejni/JExecutorToken.o] Error 2
...
...

What went wrong:
Execution failed for task ':ReactAndroid:buildReactNdkLib'.

Process 'command 'C:\android-ndk-r11b\ndk-build.cmd'' finished with non-zero exit value 2
...
...
Caused by: org.gradle.process.internal.ExecException: Process 'command 'C:\android-ndk-r11b\ndk-build.cmd'' finished with non-zero exit value 2

Is there any chance to overcome this issue?

We don't support latest NDK yet. Please download this version and try - http://dl.google.com/android/repository/android-ndk-r11b-windows-x86_64.zip

@facebook-github-bot answered


could you please add demo or at least screenshot?

could you please add demo or at least screenshot?

Yes, when I get a moment I'll try and add gh-pages example.


clever install clever-orm fails

$ node --version
v0.10.38
$ cd test001038/backend/modules/
$ clever install clever-orm
Attempting to install clever-orm...
✔      Found CleverStack Backend (node-seed) in /Users/xxx/test001038/backend...
├── Searching for modules...
├──   Searching NPM...
├──   Searching Bower...
├── ⚠ Installing clever-orm...
├── Installing NPM modules for clever-orm...
✔    Successfully installed clever-orm...
├── Installing module peerDependencies...
├── ⚠ Running grunt tasks for module clever-orm...
ReferenceError: runTask is not defined

What version of the cleverstack cli? clever -V

It's version 1.2.6, current from npm.

I believe i have fixed the issues in Release 1.2.7 - can you please run npm install -g cleverstack-cli and try again?
Also, if your running that on linux/mac then you may need to use sudo

Node is installed in ~/node, so no sudo is required.
Fix confirmed! Thanks for your effort.


Long discussions are partly shown outside of the screen --> Add scrollbar inside of the comment window

Reproduce: Just comment and reply yourself a few times. To make it longer you can also include suggestion.
What happens:

A scrollbar appears...
What should happen:
In long pads which already are longer than the screens height, this is not a problem, but for smaller documents it is annoying to always see a scrollbar when hovering over such a long comment.
So what should actually happen - at least for these small documents is: When hovering over the comment move the "window" up so it fits on the screen.
If the window really takes the full available height a scrollbar should appear inside of the comment. (So the user should be able to scroll through the comment without scrolling through the whole pad.)
Maybe this behaviour is also suitable for these long documents. (I nearly assume it is.)
But one should test whether it looks nicely and is user-friendly.

@rugk I think this is resolved: see: https://video.etherpad.com/p/FZujg8XuXf59zEepwRIB
If not, let me know and I will re-open


Socket vtable can access null pointer callback function

Describe the bug
If some socket vtable function is not implemented, then the callback pointer would be NULL. This is not checked when calling the callback which can lead to null pointer access.

If some socket vtable function is not implemented, then the callback pointer would be NULL.

If some socket vtable function is not implemented, it should be stubbed with a dummy function, return an appropriate error. This was a design decision, to avoid avoidable NULL pointer check, and leave a bit more freedom re: how to handle such "not implemented" cases.

If some socket vtable function is not implemented, it should be stubbed with a dummy function, return an appropriate error. This was a design decision, to avoid avoidable NULL pointer check, and leave a bit more freedom re: how to handle such "not implemented" cases.

IMHO this is not good. We end up creating unnecessary dummy functions without any benefit. If you really want to handle "not implemented" case in a special way, then you need to create a dummy function that does something special. If the default handling is fine, then the dummy function can be left unimplemented.

The reason for creating this issue, was that I got hit by it as I only wanted to implement couple of callbacks and was not interested in others. Creating dummys in this case would be pointless as the default handling would be just fine.

We end up creating unnecessary dummy functions without any benefit.

A single one is enough.

as the default handling would be just fine.

"Default handling" should be "not take deliberate steps to make code slower, if that's easily avoidable". (Yeah, it's all about couple of CPU cycles. And there're much more inefficiency in the code around. That's more about attitude - if we don't care about obvious cases now, then who and when will go and deal with more complex ones? And well, calling a vmethod is pretty much on a critical path in any design involving vmethods, so thinking about it is not useless.)
All in all, my point is that it wasn't an omission, but a deliberate choice in the original impl. I'm not going to either -1 or +1 the corresponding patch to change it, up to other folks to consider pros and cons.


Does not work behind a corporate proxy

Thanks for this Excellent Plugin. Its very helpful for me in preparing Mindmaps
one thing where I face issue is when I am behind a proxy, the script hangs when trying to download the dependent javascripts.
I some how tried to make it work by making the below changes. Do you think this change make sense or if you can suggest some better ways to overcome this problem.

Thanks for reporting the issue. Unfortunately, I'm unable to reproduce the error or verify the fix. But I do see the advantage in using requests. Thus, please see #21 and verify if possible.
I'm currently waiting for further analysis on #19 to conclude v2.1.1.

Thanks! That qualifies for a release.


[WIP] Pircbotx 2.1 extravaganza

this is the start of implementing #62
Lots of things still need to happen/addressed:

[x] Migrate to PircBotX 2.1
[ ] Apparently internally lots of shit changed in pircbotx, so the tests where broken. Added some shit to make them compile again, not sure if they are as intended now (they prolly are, but better safe than sorry I guess xD)
[x] probably every instance of event.getUser().getNick() can be replaced with event.getUserHostmask().getNick(). getUser() triggers a "can be null" warning in IntelliJ for me :stuck_out_tongue:
[x] manual sending of CAP REQ commands should be replaced with the new way of doing that

Also dont forget to add the "twitch.tv/tags" CAP REQ

[x] TMI can gtfo

What does TMI stuff do atm? Other than checking if someone is mod.

[x] Every event now has access to ircv3-tags, these should be used to check for mod-status
[x] AbstractIrcBot has some fancy crap to get access to the socket to call close on it. But calling bot.close() has exactly the same effect (it calls close() on the underlying socket), so that PublicSocketBot thing can probably go away?
[ ] Most likely tons of other stuff

Codecov Report

Merging #65 into master will increase coverage by -0.03%.

@@             Coverage Diff              @@
##             master      #65      +/-   ##
============================================
- Coverage      53.7%   53.67%   -0.03%
- Complexity        0      404     +404
============================================
  Files            59       59
  Lines          2374     2379       +5
  Branches        353      293      -60
============================================
+ Hits           1275     1277       +2
- Misses          967      970       +3
  Partials        132      132

Impacted Files
Coverage Δ
Complexity Δ

...in/java/me/reddev/osucelebrity/AbstractIrcBot.java
0% <ø> (ø)
0 <ø> (ø)
:x:

...e/reddev/osucelebrity/twitch/TwitchWhisperBot.java
13.33% <ø> (-0.96%)
2 <ø> (+2)

...ain/java/me/reddev/osucelebrity/osu/OsuIrcBot.java
76.17% <100%> (+0.09%)
57 <1> (+57)
:white_check_mark:

...va/me/reddev/osucelebrity/twitch/TwitchIrcBot.java
82.58% <100%> (+0.08%)
40 <1> (+40)
:white_check_mark:

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 192cc17...d132f62. Read the comment docs.

things to ponder on:

Are the unit tests still the way they are ment to be?  It wasnt used anywhere and frankly didnt add anything usefull. The only thing it added was something you could do already on pircbotx itself. See the second last checkbox in the start-post. (Maybe that thing was also added in new version idk, so maybe the class was needed before, no idea xD)
Frankly, if (!"1".equals(event.getTags().get("mod"))) looks ugly af. Need a better thing to handle that.

A helper class thingy that you can feed the tags-list and ask stuff like isMod?
A wrapper around event that has fancy isMod method?
...?

 Since I changed some stuff there..


Update maven dependencies

Add API

Pull Request Test Coverage Report for Build 17

73 of 77 (94.81%) changed or added relevant lines in 6 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+82.6%) to 82.599%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/main/java/com/project/springjta/doubleentry/AbstractAccountingConcept.java
11
13
84.62%

src/main/java/com/project/springjta/doubleentry/Money.java
6
8
75.0%

Files with Coverage Reduction
New Missed Lines
%

src/main/java/com/project/springjta/doubleentry/model/Account.java
1
68.97%

Totals

Change from base Build 14:
82.6%

Covered Lines:
356

Relevant Lines:
431

💛  - Coveralls

Codecov Report

Merging #5 into master will increase coverage by 74.94%.
The diff coverage is 90.9%.

@@             Coverage Diff             @@
##           master       #5       +/-   ##
===========================================
+ Coverage       0%   74.94%   +74.94%
===========================================
  Files          20       24        +4
  Lines         354      431       +77
  Branches       42       45        +3
===========================================
+ Hits            0      323      +323
+ Misses        354       75      -279
- Partials        0       33       +33

Impacted Files
Coverage Δ

...m/project/springjta/doubleentry/model/Account.java
48.27% <ø> (+48.27%)
:arrow_up:

...gjta/doubleentry/model/ChartOfAccountsBuilder.java
100% <100%> (ø)

...project/springjta/doubleentry/TransferRequest.java
92% <100%> (+92%)
:arrow_up:

...om/project/springjta/doubleentry/model/Ledger.java
100% <100%> (ø)

.../java/com/project/springjta/doubleentry/Money.java
36.58% <50%> (+36.58%)
:arrow_up:

...ringjta/doubleentry/AbstractAccountingConcept.java
84.61% <84.61%> (ø)

...t/springjta/doubleentry/model/ChartOfAccounts.java
85.71% <85.71%> (ø)

... and 15 more

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 cdc669d...5ef6f67. Read the comment docs.


Unify tab titles

What does this PR do?
Unifies tab titles in docs.
Motivation
Each of these exists, often in the same file...

tab="Kubernetes IngressRoute"

tab="IngressRoute"

tab="K8s IngressRoute"

tab="K8s Ingress"

tab="Kubernetes Ingress"

tab="Ingress"

More

[ ] Added/updated tests
[x] Added/updated documentation

Additional Notes
I'm willing to change things in the other direction (to K8s or Kubernetes) if that's preferable...

Thanks for your contribution @jsoref could you please rebase your PR on branch v2.11

@mmatur I hope this is what you wanted


NIFI-8611: GCP BigQuery processors support using designate project resource for ingestion

Thank you for submitting a contribution to Apache NiFi.
Please provide a short description of the PR here:
Description of PR
Please refer to JIRA ticket for details:
https://issues.apache.org/jira/browse/NIFI-8611
This change is already used in our production environment which can properly support using different source project and ingestion project in the property of GCP processors.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x] Has your PR been rebased against the latest commit within the target branch (typically main)?

[x] Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not squash or use --force when pushing to allow for clean monitoring of changes.

For code changes:

[x] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[x] Have you verified that the full build is successful on JDK 8?
[ ] Have you verified that the full build is successful on JDK 11?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check GitHub Actions CI for build issues and submit an update to your PR as soon as possible.

I'm not sure to fully understand the difference between project ID and designate project ID. Can you give me an example to understand the difference on how resources will be used on the two projects?

Hi @pvillard31, thanks for your reply, the major purpose is that, when creating a job to load data of a project into BigQuery, this job will use the resources of the project. In most cases, a project can have data in BigQuery dataset and its limited resources for loading job. But in our cases, we split GCP projects into two layers for security control, data project and resource project:

Data project can only store data and provide data access, it doesn't have any resources to create any jobs.
Resource project is used to create jobs, users can only create job by resource projects instead of data project.

That's the reason why we needs to config two project ID for BigQuery processors, the designate project ID is used to specify the target project to store data, and the other project ID is to specify the resource project.

Is "Designate Project ID" a common formulation for BigQuery? If I understand correctly the new property would be used to define the project ID where the data will be loaded while the existing property is used to determine where the BigQuery "job" will be running to load the data and where associated costs will be charged. Correct?

Is "Designate Project ID" a common formulation for BigQuery? If I understand correctly the new property would be used to define the project ID where the data will be loaded while the existing property is used to determine where the BigQuery "job" will be running to load the data and where associated costs will be charged. Correct?

Yes, you're correct. As I know, there's no specific formulation for BigQuery to describe something like designate project ID, if we'd like to use a meaningful name, it can also be called as "Target Project ID" or "Data Project ID", and the existing property may be called "Resource Project ID".

@pvillard31 are we good to go on this?

i'm going to remove this from 1.14 for now so we can keep going on the RC.  but by all means lets keep progressing this

Thanks @joewitt and @pvillard31! Hope this feature can be merged which should provide more flexibility for users when ingesting to BigQuery.

@joewitt @pvillard31 Sorry to bother, since it's been a while, just like to know how can I make this PR keep going on the RC and is there possible to release in the further version?  I checked the contribution guide but I'm not sure what's the next step.
Any suggestions are appreciated!

@chihhanyu I apologize.  I completely dropped this ball and didn't see your notes.  You did the right things.  If you are still interested in this please re-submit the PR.  Actually I'll re-open this one but i'm guessing rebasing is needed

@chihhanyu I wanted to highlight that in the mean time as I see there was some refactor around projectId (the code was extracted to abstract class so that is why there are conflicts I think) also these processors were marked as deprecated (still fully functional) in favour of the new BigQuery processor targeting the new Write API: https://github.com/apache/nifi/pull/6344
If you resolve your conflicts I can take a look regarding applying this change to the new processor as well or feel free to change that as well the properties should be fairly similar to the old ones.

@bejancsaba Thanks for the info! It's really great to see the new processor adating new Write API and handle batch and streaming in one place.
It seems to me that deprecated processors should be phased out slowly, and finally replaced by a new version.
Let me fix the conflict first and see if I can apply the change for new PutBigQuery processor as well.

It seems to me that deprecated processors should be phased out slowly, and finally replaced by a new version. Let me fix the conflict first and see if I can apply the change for new PutBigQuery processor as well.

@chihhanyu Thanks for looking into this. I agree the old processors should be slowly phased out. For now they got the deprecation notation so hopefully new adopters will naturally move to the new processor. There is one thing I wanted to highlight. For the new processor the Proxy Configuration Service property / functionality is not yet available. As that needs to be addressed on gRPC level it will be covered as part of a follow up ticket: https://issues.apache.org/jira/browse/NIFI-10707 Not sure whether it affects your use case or not just wanted to highlight it.