Tests failing

I am not sure if the box was correctly setup. It hung at the end of the vagrant up.
Are the below failing tests the result of a half set-up box? Or are other problems causing the tests to fail?
login as: vagrant
<EMAIL_ADDRESS>password:
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-83-generic x86_64)

vagrant@vagrant-ubuntu-trusty-64:~$ cd projects/news2e/test && make check
make -C tests build
make[1]: Entering directory `/home/vagrant/projects/news2e/test/tests'
for dir in arm thumb thumb2 ; do \
                make -C ${dir} build; \
        done
make[2]: Entering directory `/home/vagrant/projects/news2e/test/tests/arm'
for dir in hello_world tight_loop base_instructions_kill load_memory; do \
                make -C ${dir} build; \
        done
make[3]: Entering directory `/home/vagrant/projects/news2e/test/tests/arm/hello_                                                                                world'
arm-none-eabi-gcc -I../../../../guest/include/   -c -o test.o test.c
arm-none-eabi-gcc -nostartfiles -nostdlib -Wl,-T test.ld  test.o   -o test
make[3]: Leaving directory `/home/vagrant/projects/news2e/test/tests/arm/hello_w                                                                                orld'
make[3]: Entering directory `/home/vagrant/projects/news2e/test/tests/arm/tight_                                                                                loop'
arm-none-eabi-gcc    -c -o test.o test.S
arm-none-eabi-gcc -nostartfiles -nostdlib  test.o   -o test
make[3]: Leaving directory `/home/vagrant/projects/news2e/test/tests/arm/tight_l                                                                                oop'
make[3]: Entering directory `/home/vagrant/projects/news2e/test/tests/arm/base_i                                                                                nstructions_kill'
arm-none-eabi-gcc -I../../../../guest/include/   -c -o test.o test.c
arm-none-eabi-gcc -nostartfiles -nostdlib  test.o   -o test
make[3]: Leaving directory `/home/vagrant/projects/news2e/test/tests/arm/base_in                                                                                structions_kill'
make[3]: Entering directory `/home/vagrant/projects/news2e/test/tests/arm/load_m                                                                                emory'
arm-none-eabi-gcc    -c -o test.o test.S
arm-none-eabi-gcc -nostartfiles -nostdlib  test.o   -o test
make[3]: Leaving directory `/home/vagrant/projects/news2e/test/tests/arm/load_me                                                                                mory'
make[2]: Leaving directory `/home/vagrant/projects/news2e/test/tests/arm'
make[2]: Entering directory `/home/vagrant/projects/news2e/test/tests/thumb'
for dir in base_instructions_kill ; do \
                make -C ${dir} build; \
        done
make[3]: Entering directory `/home/vagrant/projects/news2e/test/tests/thumb/base                                                                                _instructions_kill'
arm-none-eabi-gcc -I../../../../guest/include/ -mcpu=arm966e-s -mthumb   -c -o t                                                                                est.o test.c
arm-none-eabi-gcc -I../../../../guest/include/ -mcpu=arm966e-s -marm   -c -o sta                                                                                rt.o start.c
arm-none-eabi-gcc -nostartfiles -nostdlib  test.o start.o   -o test
make[3]: Leaving directory `/home/vagrant/projects/news2e/test/tests/thumb/base_                                                                                instructions_kill'
make[2]: Leaving directory `/home/vagrant/projects/news2e/test/tests/thumb'
make[2]: Entering directory `/home/vagrant/projects/news2e/test/tests/thumb2'
for dir in base_instructions_kill ; do \
                make -C ${dir} build; \
        done
make[3]: Entering directory `/home/vagrant/projects/news2e/test/tests/thumb2/bas                                                                                e_instructions_kill'
arm-none-eabi-gcc -I../../../../guest/include/ -mcpu=cortex-m3 -mthumb   -c -o t                                                                                est.o test.c
arm-none-eabi-gcc -I../../../../guest/include/ -mcpu=cortex-m3 -mthumb   -c -o s                                                                                tart.o start.c
arm-none-eabi-gcc -nostartfiles -nostdlib  test.o start.o   -o test
make[3]: Leaving directory `/home/vagrant/projects/news2e/test/tests/thumb2/base                                                                                _instructions_kill'
make[2]: Leaving directory `/home/vagrant/projects/news2e/test/tests/thumb2'
make[1]: Leaving directory `/home/vagrant/projects/news2e/test/tests'
Feature: Check that the BaseInstructions kill opcode is working for the ARM inst                                                                                ruction set

  Background:
    Given current test directory at "tests/arm/base_instructions_kill"
    Given S2E config file named "s2e_conf.lua"
    Given ARM firmware named "test"
    When S2E test is run for at most 60 seconds
      No such file or directory - /home/vagrant/projects/news2e-build/qemu-debug                                                                                /arm-s2e-softmmu/qemu-system-arm (Aruba::LaunchError)
      /usr/lib/ruby/vendor_ruby/aruba/spawn_process.rb:32:in `rescue in run!'
      /usr/lib/ruby/vendor_ruby/aruba/spawn_process.rb:29:in `run!'
      /usr/lib/ruby/vendor_ruby/aruba/api.rb:303:in `block in run'
      /usr/lib/ruby/vendor_ruby/aruba/api.rb:13:in `chdir'
      /usr/lib/ruby/vendor_ruby/aruba/api.rb:13:in `in_current_dir'
      /usr/lib/ruby/vendor_ruby/aruba/api.rb:295:in `run'
      ./features/step_definitions/s2e.rb:35:in `/^S2E test is run for at most (\                                                                                d+) seconds$/'
      features/arm_base_instructions_kill.feature:7:in `When S2E test is run for                                                                                at most 60 seconds'

  Scenario: Check output for messages that the state was killed successfully
    Then the stdout should contain "[State 0] Killing state 0"
    And the stdout should contain "[State 0] State was terminated by opcode"
    And the stdout should contain "message: \"State killed OK\""

Feature: Check that the BaseInstructions kill opcode is working for the Thumb2 i                                                                                nstruction set

  Background:
    Given current test directory at "tests/thumb2/base_instructions_kill"
    Given S2E config file named "s2e_conf.lua"
    Given ARM firmware named "test"
    When S2E test is run for at most 60 seconds
      No such file or directory - /home/vagrant/projects/news2e-build/qemu-debug                                                                                /arm-s2e-softmmu/qemu-system-arm (Aruba::LaunchError)
      /usr/lib/ruby/vendor_ruby/aruba/spawn_process.rb:32:in `rescue in run!'
      /usr/lib/ruby/vendor_ruby/aruba/spawn_process.rb:29:in `run!'
      /usr/lib/ruby/vendor_ruby/aruba/api.rb:303:in `block in run'
      /usr/lib/ruby/vendor_ruby/aruba/api.rb:13:in `chdir'
      /usr/lib/ruby/vendor_ruby/aruba/api.rb:13:in `in_current_dir'
      /usr/lib/ruby/vendor_ruby/aruba/api.rb:295:in `run'
      ./features/step_definitions/s2e.rb:35:in `/^S2E test is run for at most (\                                                                                d+) seconds$/'
      features/thumb2_base_instructions_kill.feature:7:in `When S2E test is run                                                                                for at most 60 seconds'

  Scenario: Check output for messages that the state was killed successfully
    Then the stdout should contain "[State 0] Killing state 0"
    And the stdout should contain "[State 0] State was terminated by opcode"
    And the stdout should contain "message: \"State killed OK\""

Feature: Check that the BaseInstructions kill opcode is working for the Thumb in                                                                                struction set

  Background:
    Given current test directory at "tests/thumb/base_instructions_kill"
    Given S2E config file named "s2e_conf.lua"
    Given ARM firmware named "test"
    When S2E test is run for at most 60 seconds
      No such file or directory - /home/vagrant/projects/news2e-build/qemu-debug                                                                                /arm-s2e-softmmu/qemu-system-arm (Aruba::LaunchError)
      /usr/lib/ruby/vendor_ruby/aruba/spawn_process.rb:32:in `rescue in run!'
      /usr/lib/ruby/vendor_ruby/aruba/spawn_process.rb:29:in `run!'
      /usr/lib/ruby/vendor_ruby/aruba/api.rb:303:in `block in run'
      /usr/lib/ruby/vendor_ruby/aruba/api.rb:13:in `chdir'
      /usr/lib/ruby/vendor_ruby/aruba/api.rb:13:in `in_current_dir'
      /usr/lib/ruby/vendor_ruby/aruba/api.rb:295:in `run'
      ./features/step_definitions/s2e.rb:35:in `/^S2E test is run for at most (\                                                                                d+) seconds$/'
      features/thumb_base_instructions_kill.feature:7:in `When S2E test is run f                                                                                or at most 60 seconds'

  Scenario: Check output for messages that the state was killed successfully
    Then the stdout should contain "[State 0] Killing state 0"
    And the stdout should contain "[State 0] State was terminated by opcode"
    And the stdout should contain "message: \"State killed OK\""

Failing Scenarios:
cucumber features/arm_base_instructions_kill.feature:10
cucumber features/thumb2_base_instructions_kill.feature:10
cucumber features/thumb_base_instructions_kill.feature:10

3 scenarios (3 failed)
21 steps (3 failed, 9 skipped, 9 passed)
0m0.212s
make: *** [check] Error 1

This looks like the release build of S2E is used, which is currently broken. I'm investigating the problem, but I'm not sure where it stems from. Check that the S2E_DIR environment variable points to the right path ("..../qemu-debug").


Three Morph fixes (assign target names, default morph weight and pc.Morph call)

Assign morph target name if available

Following the way explained here: https://github.com/KhronosGroup/glTF/issues/1036

Assign defaultWeight if available:

Fixes #36 by simply using the code which was made for this in the engine (MorphTargetOptions#defaultWeight)

(Thanks @MackeyK24 for the test model!)

Fix pc.Morph targets, device order:

I don't know when this change was introduced, but in playcanvas-stable.js its like this:

Quick way to extract morph instances for testing:
viewer.gltf.model.meshInstances.filter(x=>x.morphInstance).map(x=>x.morphInstance)

I confirm I have signed the Contributor License Agreement.

Thank you for the quick merging!

By the way, perhaps you should consider switching to using the implementation that is part of the engine now?

I would like to switch at some point to the built-in glTF loader, just cloning such models doesn't work and that also prevents me to do any performance comparisons[1], so I try to stick to what works for me 😅
[1] https://github.com/playcanvas/playcanvas-viewer/issues/99


Include Project Reports (generated reports)

Is it possible to upload the Project Reports section with the site for generated reports such as for Javadocs? If not I think this would be a very useful enhancement.

hi @capeflynn
At beginning I've ignored javadoc because was not possible deploy javadoc itself on confluence. For this reason seems to me useless such feature.
What do you think about ?

Hi @bsorrentino
Thank you very much for the quick response!
I'm looking for ways to pull documentation from code and automatically deploy it to a central location, such as Confluence, during the release process. We currently use Maven and Confluence so I was looking in these areas, but am open to alternative solutions.
The project information created during the mvn site is good information, but it does not really help developers better understand the code or how to support it. Javadocs was the first place I thought of that could be autogenerated from code. I believe there has been some people working on converting it into XHTML or Markdown which seems to lend itself to being deployed to multiple places such as Confluence or Github/Bitbucket.
Maybe I'm off base, but your work seems to be the closest to my ideal solution.

Hi @capeflynn
Idea behind the plugin is to develop a documentation tailored to your needs. To achieve this, I suggest you not using site goal  ... but rather confluence-reporting:deploy

@capeflynn IMHO it's better to keep and publish javadocs artifacts to maven repo. There some solutions like Artifactory, that have "Content Browsing"  feature. This allows browsing with web-browser javadocs published as maven artifacts from jars.Just use URL like "http://repo/cooridnates_of_maven_artifact/..javadoc.jar!/index.html"

Sure ... but we have to separate concerns.
This plugin allow to publish documentation to confluence (not exclusively the site generated one).
Yo can use confluence wiki or markdown to create link to whatever resource coming out from whatever place
The limit is your imagination

@qwazer -- thank you for the suggestion, that is a good idea.
@bsorrentino -- I am using the confluence-reporting:deploy plugin, instead of the site plugin, but I would like to upload the autogenerated reporting-info to confluence too, but I get an error message when I try to upload that information.
Maybe the best solution is what qwazer mentioned and upload the site with the artifacts to the Nexus repo. The only draw back is having documentation in two different locations and the look and feel is not as nice as a wiki page. I really liked the idea of all the documentation being centrally located in one place.
If this plugin can publish all documentation to confluence, how would I use it to publish auto-generated documentation to confluence?

@capeflynn
Please provide me more context:

Are you generating doc for Plugin or for a Project ?
For reporting-info do you mean the html file generated by standard maven site ?

FYI: Currently the plugin use the Template Variable Concept to map in confluence wiki the standard maven site info.

Probably you need other template variables is it so ?

@bsorrentino
You are absolutely right, sorry for the confusion.

I am generating documentation for a Project.
Yes, I am referring to the HTML files created from the standard mvn site

I have used the templates with the confluence-reporting plugin with some of the variables, but could not find variables to include reports generated during build, such as javadocs. It seems like more template variables would be very helpful.

Well, I'll start to working on

wow @bsorrentino that is great, thank you very much! Let me know if there is something I can do to help.

Hi @capeflynn
your feature request seems quite complex because to build project reports, are directly involved maven plugins (eg. javadoc, PMD, etc ) that contribute.
This mean that I've to replicate the maven-site behaviour to implement it.

Hi bsorrentino,
Sorry to hear it has been giving you such trouble. I wouldn't think you
want to rebuild a plugin that exists already. Too bad there wasn't a way to
just fork that project and add your functionality to the maven site plugin.
I really appreciate your help and looking into this functionality.
On Thu, Jul 4, 2019 at 10:07 AM bsorrentino<EMAIL_ADDRESS>wrote:

Hi @capeflynn https://github.com/capeflynn
your feature request seems quite complex because to build project reports,
are directly involved maven plugins (eg. javadoc, PMD, etc ) that
contribute.
This mean that I've to replicate the maven-site behaviour to implement it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bsorrentino/maven-confluence-plugin/issues/190?email_source=notifications&email_token=AL5PYYLXECPS4O3XLNZHOITP5X72PA5CNFSM4H3K5TR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZHQKCY#issuecomment-508495115,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL5PYYO4ZEYSXIIRHSXNXSLP5X72PANCNFSM4H3K5TRQ
.

Hi @capeflynn
No problem. I love to implement new functionalities.. just in this case the implementation seems too complex.
However I suggest you to create a custom confluence page that just contains the links of generated reports

I agree with your solution. I'm going to look into a Nexus site repository
and link to that from Confluence. I'm hoping to use the template
functionality in your plugin so the pages can still be dynamically created.
It is not exactly what I had in mind, but it does keep the artifacts and
Java Docs closer, so that might end up being a good thing. Thank you very
much for your help looking into this functionality.
On Sun, Jul 7, 2019 at 4:07 PM bsorrentino<EMAIL_ADDRESS>wrote:

Hi @capeflynn https://github.com/capeflynn
No problem. I love to implement new functionalities.. just in this case
the implementation seems too complex.
However I suggest you to create a custom confluence page that just
contains the links of generated reports
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bsorrentino/maven-confluence-plugin/issues/190?email_source=notifications&email_token=AL5PYYIZRGI22AWKM6O3U4DP6JEG3A5CNFSM4H3K5TR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZLSETA#issuecomment-509026892,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AL5PYYOUJGFJCQ4V5QCPQY3P6JEG3ANCNFSM4H3K5TRQ
.

Hi @capeflynn, glad to read that my suggestion could be feasible for you.
Keep in mind that whatever feedbacks is always welcome


Add explicit Git requirement

📖 Description and reason
We need Git to pull the security advisories database.
👷 Work done
Tasks

[x] Add better error handling in repo synchronization function
[x] Add explicit Git requirement in README.md

Additional notes
This should close #18.
🎉 Result
# With Git installed
$ mix deps.audit
No vulnerabilities found.

# Without Git installed
$ mix deps.audit
** (RuntimeError) It looks like `git` is not installed. Please install it and run `mix deps.audit` again.
    (mix_audit 2.0.2) lib/mix_audit/repo.ex:27: MixAudit.Repo.synchronize/0
    (mix_audit 2.0.2) lib/mix_audit/repo.ex:5: MixAudit.Repo.advisories/0
    (mix_audit 2.0.2) lib/mix_audit/cli/audit.ex:11: MixAudit.CLI.Audit.run/1
    (mix 1.14.0) lib/mix/task.ex:421: anonymous fn/3 in Mix.Task.run_task/4
    (mix 1.14.0) lib/mix/cli.ex:84: Mix.CLI.run_task/2

🦀 Dispatch
#dispatch/elixir

🦀 Requesting reviewers for this pull request:

@gcauchon (reviewer for the elixir stack)

🦀 Mentionning users for this pull request:

@EloyMartinez (learner for the elixir stack)
@EtienneStPierre (learner for the elixir stack)
@mathlavlam (learner for the elixir stack)


feat: different base and pr target branches

This PR aims to close #61 by allowing the base branch of the pipeline to be different from the target branch of the pull requests created by the pipeline.

All the PRs were successfully created, the output model files look allright, this branch is ready to be merged into feat_update_all_ecModels


openldap_overlay instances gsub

To account for overlay options that have forced line breaks in them, the overlay provider 'provider/openldap_overlay/olc.rb' file should have the following:
Instead of paragraph.split("\n") it should be paragraph.gsub("\n ", "").split("\n\n"). If the line break for the options is not accounted for, the provider thinks that the attribute is different and must be changed, when in reality, it is only parsing everything up to the first line break for the comparison.

@djtaylor could you please provide a PR for that?

fixed


Local Regression for Imputation

This is the pull followed by Issue #169 (please follow #169 to understand the local regression in more details) . This model originally build by Ian, later I just edited and modified some parts of this model. The goal of this model is to impute the missing volume, occupancy and speed (newly included) in the detector or lane level for each of station using just upstream and downstream data and develop simple linear regression. Once the model is developed, the model can be applied in daily level. The model parameters (slope and coefficient) was estimated daily level and applied at five minutes level in imputation phase. This code is ready for your review and feedback.

@ian-r-rose @kengodleskidot  , We developed local and global regression just for 'ML' and 'HV'. Right now we applied it for all types of the road. I think that we want to be consistent with the application of model only for 'ML' and 'HV'.  Another thing is that I believe that we want to impute 'ML' and 'HV' missing data first with local regression and then the remaining gap with global regression or do we want to report this separately?

@ian-r-rose @kengodleskidot , We developed local and global regression just for 'ML' and 'HV'. Right now we applied it for all types of the road. I think that we want to be consistent with the application of model only for 'ML' and 'HV'.

I agree that we should be consistent. The initial reason I wanted to restrict myself to ML and HV was that it wasn't clear to me that neighboring stations made much sense for, e.g., a ramp. But if you can think of a way to do imputation for those other cases, we might be able to relax that restriction.

Another thing is that I believe that we want to impute 'ML' and 'HV' missing data first with local regression and then the remaining gap with global regression or do we want to report this separately?

I think we should do the imputation in order, first local, then global/regional, then any other methods. Since these imputation methods are somewhat expensive, I don't think we necessarily want to compute them if we don't need to.


Updating with Apache-2.0 license

Issue #, if available:
Description of changes:
Updating with Apache-2.0 license
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

This is a duplicate - https://github.com/aws/fmeval/pull/148. We can close this. Feel free to re-open if you have any other concerns.


Idle timeout expired: 30001/30000 ms

process/save    java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30001/30000 ms

@itonway Hi, could you give us more details? such as the steps to reproduce, the DolphinScheduler version and the detailed exception stack information? Thx a lot!

hi, please provide detailed stack information and version.thx


Cant build android, > com.android.ide.common.process.ProcessException: Failed to execute aapt

I'm having an error when I try to "build" android.
Tayfuns-MacBook-Pro:app-mobile tayfunyasar$ cd android/
Tayfuns-MacBook-Pro:android tayfunyasar$ ./gradlew clean build

> Configure project :app
WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html

> Configure project :react-native-config
WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html
WARNING: The specified Android SDK Build Tools version (23.0.1) is ignored, as it is below the minimum supported version (27.0.3) for Android Gradle Plugin 3.1.4.
Android SDK Build Tools 27.0.3 will be used.
To suppress this warning, remove "buildToolsVersion '23.0.1'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.

> Configure project :react-native-device-info
WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html
WARNING: The specified Android SDK Build Tools version (25.0.2) is ignored, as it is below the minimum supported version (27.0.3) for Android Gradle Plugin 3.1.4.
Android SDK Build Tools 27.0.3 will be used.
To suppress this warning, remove "buildToolsVersion '25.0.2'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.

> Configure project :react-native-gesture-handler
WARNING: Configuration 'provided' is obsolete and has been replaced with 'compileOnly'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html
WARNING: The specified Android SDK Build Tools version (25.0.2) is ignored, as it is below the minimum supported version (27.0.3) for Android Gradle Plugin 3.1.4.
Android SDK Build Tools 27.0.3 will be used.
To suppress this warning, remove "buildToolsVersion '25.0.2'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.

> Task :react-native-i18n:compileDebugJavaWithJavac
Note: /Users/tayfunyasar/dev/gitlap/app/client/app-mobile/node_modules/react-native-i18n/android/src/main/java/com/AlexanderZaytsev/RNI18n/RNI18nModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :app:bundleReleaseJsAndAssets
warning: the transform cache was reset.
Loading dependency graph, done.
bundle: Writing bundle output to: /Users/tayfunyasar/dev/gitlap/app/client/app-mobile/android/app/build/generated/assets/react/release/index.android.bundle
bundle: Done writing bundle output
bundle: Copying 54 asset files
bundle: Done copying assets

> Task :react-native-i18n:compileReleaseJavaWithJavac
Note: /Users/tayfunyasar/dev/gitlap/app/client/app-mobile/node_modules/react-native-i18n/android/src/main/java/com/AlexanderZaytsev/RNI18n/RNI18nModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

error: resource android:style/TextAppearance.Material.Widget.Button.Borderless.Colored not found.
error: resource android:style/TextAppearance.Material.Widget.Button.Colored not found.
/Users/tayfunyasar/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.1.1.aar/baf05ba217c6ee9c35f9fb008fc2ffca/res/values-v26/values-v26.xml:9:5-12:13: AAPT: error: resource android:attr/colorError not found.

/Users/tayfunyasar/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.1.1.aar/baf05ba217c6ee9c35f9fb008fc2ffca/res/values-v26/values-v26.xml:13:5-16:13: AAPT: error: resource android:attr/colorError not found.

/Users/tayfunyasar/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.1.1.aar/baf05ba217c6ee9c35f9fb008fc2ffca/res/values-v26/values-v26.xml:17:5-93: AAPT: error: style attribute 'android:attr/keyboardNavigationCluster' not found.

/Users/tayfunyasar/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.1.1.aar/baf05ba217c6ee9c35f9fb008fc2ffca/res/values/values.xml:251:5-69: AAPT: error: resource android:attr/fontStyle not found.

/Users/tayfunyasar/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.1.1.aar/baf05ba217c6ee9c35f9fb008fc2ffca/res/values/values.xml:251:5-69: AAPT: error: resource android:attr/font not found.

/Users/tayfunyasar/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.1.1.aar/baf05ba217c6ee9c35f9fb008fc2ffca/res/values/values.xml:251:5-69: AAPT: error: resource android:attr/fontWeight not found.

error: failed linking references.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-config:verifyReleaseResources'.
> com.android.ide.common.process.ProcessException: Failed to execute aapt

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 2s
172 actionable tasks: 163 executed, 9 up-to-date
Tayfuns-MacBook-Pro:android tayfunyasar$

Steps to reproduce
rm -rf node_modules && npm I
cd android
./gradlew clean build

ignite doctor results:
Tayfuns-MacBook-Pro:android tayfunyasar$ ignite doctor
System
  platform           darwin
  arch               x64
  cpu                8 cores                                                                 Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz
  directory          /Users/tayfunyasar/dev/gitlap/app/client/app-mobile/android

JavaScript
  node               11.12.0      /usr/local/bin/node
  npm                6.7.0        /usr/local/bin/npm
  yarn               1.13.0       /usr/local/bin/yarn

React Native
  react-native-cli   2.0.1

Ignite
  ignite             2.2.3        /usr/local/bin/ignite

Android
  java               1.8.0_202    /Users/tayfunyasar/.jenv/shims/java
  android home       -            /Users/tayfunyasar/Library/Android/sdk

iOS
  xcode              10.1

@tayfunyasar Is this an Andross or Bowser app?

Andross app

This still appears to be an issue. To clarify react-native run-android works fine but when trying to run ./gradlew clean build directly it will error. This appears to be due to an outdated version of react-native-device-info. Upgrading to the latest resolves the issue.

This is now resolved with the latest ignite-andross (4.0.1)


Fix split-packaging

In this PR we fix the split-packaging problem in our Protoc plugin. This is a step towards compatibility with Java 9+.
See #606 on the work to be done on the Java 9+ front.
In this PR some files are updated with the 2021 copyright notice. A separate PR with all the files updated is to come soon.

@armiol, PTAL.

@armiol, PTAL.


Keep a more linear and meaningful git history

What can we help you with?
In order to have a more linear and meaningful git history, we should try to prefer rebased commits and also we shall squash all commits present in a PR.
This would improve the readability of the git history and contributors do not need to manually clean up their commits when the PR is ready.
Also, many commits after the initial one do lack of meaningful commit message and they mostly are "apply feedback" or "changed wording". Having those outside of the PR context do not bring much more to the picture and they actually only add noise.
When a PR consists of:

1 commit, I would propose to use "Rebase and Merge"
More than 1 commit, I would propose to use "Squash and Merge".

Where would you expect to find this information?
We should document this in CONTRIBUTING. Also the right settings should be activated in the repository.
All community members are welcomed to share their opinion on this topic.

I think we should keep the current model with merge commits instead of squash| or rebase + merge because otherwise GPG signatures are invalidated.
I do agree that commits like apply feedback should be avoided though.

The GPG signed commits is a good point. Do we want external contributors to also sign their commits?

This problem is both the chicken and the egg.  But why write good commit messages if they will be squashed away anyway?
My preference would be to merge, optionally rebasing for conflicts or if the branch has been open for some time.  Could we plan to require sane history, and then keep it? I really do find value in which changes were in separate stages of development for the same feature branch.

On the squashing part, the meaningful commit messages don't have to be lost, they can be just concatenated in a big commit message, but I see your point, and it makes sense.
So the current counter-proposal would be to:

Use Merge Commits when commit history for the PR is "sane" (meaningful commits) and hasn't been open for a long time (lots of commits already merged on target branch)
For long opened PRs:

if commits are signed ask the contributor to rebase manually
if commits re not signed, do Rebase and Merge.

For PRs with convoluted commit history, ask contributor to rebase manually

Is this correct?

So here are my 2 cents (from working with both a linear and a non linear git history)
I have a strong preference/recommendation for enforcing a linear history, i.e. either squashing and rebasing or just rebasing (i.e. if you PR has many meaningful commits). The main reason for this is actually when having to cherry pick/bisect/revert git commits, this ends up being much easier if

You do not have merge commits
The git history for main/master is clean (so that if someone in the past managed to accidentally introduce a bug, per say, its quite easy to read the history to figure out what happened)

https://www.aubm.net/posts/the-case-of-a-git-linear-history/ is a very good article that describes all of the problems with merge commits. There is also the obvious one which is that over time, the git history ends up looking like spaghetti when you try and view it in graphical diff tools.
In the past knowing how to rebase properly was seen as an arcane art but github has now made this ultra easy, when you create a PR you have 3 options

Merge commit (which you can disable be enforcing a linear history)
Squash and merge (this will squash all commits in a PR and you provide the final commit message, handy if you have created a lot of trivial commits as part of the PR process but you want your final commit to be a single one with a meaningful message)
Rebase and merge, this keeps all of the commits but will avoid the merge commit

Note that the PR creator can always prune/clean up the PR themselves using git rebase -i .... (i.e. if you need to squash some trivial commits but leave others)
Ontop of this, if need to manage extra/old releases you can just use branches (i.e. create a 1.x branch if you are maintaining an old version) and since you have a clean linear history, cherry picking/backporting fixes from your main/master becomes ultra easy.
I would say the main practical downside is that if there are merge conflicts then you need to resolve them individually (rather than at once if you do standard merge commits) however it can be argued that this is also a good thing since it makes you aware of any possibly conflicting changes in detail that have happened in master since you started working on your PR. There is also the downside fo sign commits not making too much sense when rebasing however for an open source project I would say that this is not necessary (actually with github you can enforce signed commits even when doing rebasing which means that individual commits need to be signed but the rebases's dont).

Is this:

Use Merge Commits when commit history for the PR is "sane" (meaningful commits) and hasn't been open for a long time (lots of commits already merged on target branch)
For long opened PRs:

if commits are signed ask the contributor to rebase manually
if commits re not signed, do Rebase and Merge.

For PRs with convoluted commit history, ask contributor to rebase manually

Something we all can agree on?
cc @lornajane @hackaugusto @mdedetrich @jankatins

In my opinion, mixing merge commits with rebasing tends to cause confusion and can create problems, i.e. if you do rebase a PR then  it actually will remove any merge commits because merge commits don't contain any content.
For this reason I think being consistent and picking one strategy is better, i.e. either stick with rebasing/squashing or stick with merge commits (whatever ends up getting decided).

For now we have been using

Merge Commits but with exception
Squash merge if external contributions has convoluted commit history with without helpful commit messages as the exception

Our main contributors have been doing manual rebases and squashing fixup-commits etc. normal procedures before review approval and merges, thus pull request reviews have included review of meaningful commit history too. For external or single contributors it is less work to simply use squash merge instead of requesting such changes, it speeds up time to merge when we use this exception if the contribution is otherwise wanted.
I don't see any reason to use Rebase to merge as we aim for real Merge Commits.
For me the current model serves well. If needed, we can document it better, but I propose we close this issue for now. I'll close after a couple of days if there are no objections.


Track events not shown in triggers XML endpoint

Some newer devices don't seem to have the ISAPI triggers endpoint that returns all camera trigger options, instead only responding to the non-ISAPI endpoint which only lists basic events.
An option should be added to allow the user to pass in a manually defined dictionary of events they would like to track and process those items from the alertStream without caring if they exist in the trigger XML.

followed this over from "New gen Hikvision WIFI-Cam not usable with pyHik? #62"
Just upgraded to HomeAssistant 0.117, thank you very much for getting the basic motion binary sensor working :-)
Very much interested in getting the other sensors working (intrusion detection and line cross).
Looking into the possibility of using the human/vehicle triggers to automate outdoor lighting etc
Let me know if there is anything I can assist with on the testing front.
Seeing the same as the testing in #62 can see the triggers being posted when listening to the
curl  http://ip/ISAPI/Event/notification/alertStream --digest -u username:password
<EventNotificationAlert version="1.0" xmlns="http://www.hikvision.com/ver10/XMLSchema"> <ipAddress> </ipAddress> <portNo>80</portNo> <protocol>HTTP</protocol> <macAddress> </macAddress> <channelID>1</channelID> <dateTime>2020-10-29T13:33:18+00:00</dateTime> <activePostCount>1</activePostCount> <channelName>Camera 01</channelName> <eventType>linedetection</eventType> <eventState>active</eventState> <eventDescription>linedetection alarm</eventDescription> <DetectionRegionList> <DetectionRegionEntry> <regionID>1</regionID> <sensitivityLevel>50</sensitivityLevel> <RegionCoordinatesList> <RegionCoordinates> <positionX>527</positionX> <positionY>986</positionY> </RegionCoordinates> <RegionCoordinates> <positionX>543</positionX> <positionY>432</positionY> </RegionCoordinates> </RegionCoordinatesList> <detectionTarget>human</detectionTarget> </DetectionRegionEntry> </DetectionRegionList> </EventNotificationAlert> --boundary

Following. Wish there was a way I could help :(

I think it would be helpful to add all the sensors available from the capability list of the "smart" alarms even though the trigger might not be set to Surveillance Center. I currently have only basic motion sensor available in HA, and it's frustrating... Thanks for considering :)
http://ip/ISAPI/Smart/capabilities
<?xml version="1.0" encoding="UTF-8"?> <SmartCap version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">     <isSupportROI>true</isSupportROI>     <isSupportAudioDetection>false</isSupportAudioDetection>     <isSupportFaceDetect>false</isSupportFaceDetect>     <isSupportIntelliTrace>false</isSupportIntelliTrace>     <isSupportFieldDetection>true</isSupportFieldDetection>     <isSupportDefocusDetection>false</isSupportDefocusDetection>     <isSupportSceneChangeDetection>true</isSupportSceneChangeDetection>     <isSupportLineDetection>true</isSupportLineDetection>     <isSupportRegionEntrance>true</isSupportRegionEntrance>     <isSupportRegionExiting>true</isSupportRegionExiting>     <isSupportLoitering>false</isSupportLoitering>     <isSupportGroup>false</isSupportGroup>     <isSupportRapidMove>false</isSupportRapidMove>     <isSupportParking>false</isSupportParking>     <isSupportUnattendedBaggage>false</isSupportUnattendedBaggage>     <isSupportAttendedBaggage>false</isSupportAttendedBaggage>     <isSupportPeopleDetection>false</isSupportPeopleDetection>     <isSupportSmartCalibration>true</isSupportSmartCalibration>     <isSupportStorageDetection>false</isSupportStorageDetection>     <isSupportChannelResource>false</isSupportChannelResource> </SmartCap>

The goal will be to let the user specify, so anything that shows up in the alert stream will be valid, this should include smart events.

Any idea when the line crossing will be available?

If you upgrade your camera firmware (5.5.160 worked for me) then the Smart Events work again. Looks like there was a firmware bug.

The goal will be to let the user specify, so anything that shows up in the alert stream will be valid, this should include smart events.

Hi, is this still in development?
I have an intercom device , with events about the door status...
https://github.com/mezz64/pyHik/issues/77


Allow to implement a custom SASL mechanism

Follow up of https://github.com/Shopify/sarama/pull/2465

For @dnwe  and @longit644
Disclaimer: it's working, but the code is not ready for review.
In this PR, I'm a adding a new custom SASL authent type. I had to add a MechanismNamefunction in the original SCRAMClient, in addition of the change of the Begin function.
Do you have any opinion on the signature of Begin? For AWS_IAM_MSK, I only need the broker addr, but passing the whole config seems more extendable (but annoying in term of dependency).
The implementation of the custom mechanism is here: https://github.com/bpaquet/awsIamMskForSarama
Working integration in kaf can be found here: https://github.com/birdayz/kaf/compare/master...bpaquet:kaf:msk_iam_3
I would like to have some feedback on the design. If you agree, I will cleanup the code, add test, and we will be able to start a review.
Thx

Hello @dnwe,
Could you please take a look on this?
Thank you!

Hello @dnwe,
Could you please take a look on this?
Thank you!

Any updates on this? We want to use for MSK Serverless where the only supported authentication mechanism is IAM.

@dnwe ? Can I have some feedback? :)

Have you progressed on it?

:shipit:

@tooptoop4 is this still needed since AWS released https://github.com/aws/aws-msk-iam-sasl-signer-go ?

This is not needed


AccessTransformer can narrow access in dev

I was copy+pasting a few lines and accidentally had this in my AT file:
protected net.minecraft.client.renderer.entity.EntityRenderDispatcher options

This file is public by default, since it's used in DebugRenderer:
if (camera.isInitialized() && minecraft.getEntityRenderDispatcher().options != null) {

However, AccessTransformer seems to have made this protected, which causes Neoform to fail:
/home/dev/Development/Gander/rendering/build/neoForm/neoFormJoined1.20.6-20240429.153634/steps/unzipSources/unpacked/net/minecraft/client/renderer/debug/DebugRenderer.java:249: error: options has protected access in EntityRenderDispatcher
        if (camera.isInitialized() && minecraft.getEntityRenderDispatcher().options != null) {
                                                                           ^

NG should use JST for ATs now, as I understand it -- meaning this is likely a flaw on the logic on the JST end, which does not seem to take into account the existing modifier: https://github.com/neoforged/JavaSourceTransformer/blob/main/accesstransformers/src/main/java/net/neoforged/jst/accesstransformers/ApplyATsVisitor.java#L124-L139

This is indeed a JST issue, as it currently doesn't exactly have error reporting (and even if it did, NG would hide it all in a file)


Font issue

There is a difference between the default fonts that are used in sidecar-browsershot and browsershot.
Small example:
        $pdfString = Browsershot::html($html)
            ->margins(18, 18, 18, 18)
            ->format('A4')
            ->pdf();

The html:
<!DOCTYPE html>

Invoice

The outcome in sidecar-browsershot:
invoice-aws.pdf
The outcome in browsershot:
invoice.pdf
In retrospective, it wasn't a great idea of me to not specify a font in the first place. But it seems that font support is not the same in sidecar-browsershot as in browsershot. I could probable use a font-face but I want to use a local one. Maybe it's an idea to add such an option to sidecar-browsershot? If I create a pull request for this, would this be considered?

If you don't declare the font family that should be used in your $html, then the default system font stack of the underlying operating system will be used.
Haven't checked the source of spatie/browsershot, but I'm sure that they don't declare a default font or include fonts by default. That would feel weird.
Weirdly I can't reproduce this error in screeenly, my side project that uses thie package under the hood. This playground generates PDFs that don't use a serif-font if no font-family is declared.
(The project uses the latest version of this package 🤔)

I'm hesitant to fix as it feels like a niche problem; but feel free to explore how to fix this bug.
I can't promise that I will merge a PR though, if it puts a high maintenance burden on to me.

But the given font-family does not seem to work? This playground gives me exactly the same font even if I set the font-family. Or maybe it's dependent on the aws regio, I'm not sure if screeenly uses the closest region? I'm using the frankfurt region for my own project. Maybe there is a bug in that specific layer?

@Loots-it Yeah, something is definitely off here.
screeenly is also hosted in eu-central-1, but I noticed that an older version of the Lambda function is still around and somehow get's traffic. Might be a config-error on my side.
Have to be honest here: no idea which fonts are available on AWS Lambda by default. Weird that font-family in the example doesn't seem to have an impact at all. 🤔

I did some experiments and it's quite easy to add a new font. It makes sense that we don't know which fonts are available on AWS Lambda. The idea is that it's serverless, so we shouldn't depend on any defaults (in my opinion).
I feel like it would be a big benefit to add some default font families to sidecar-browsershot and provide the possibility for users to add more custom fonts. I don't think the development is that much work so the maintenance burden shouldn't be too high. Do you think that this might be worth it? If so, I will start on a PR.

Great to here @Loots-it.
Feel free to send in a PR.

Support for custom fonts has been implemented in #101.
A new version has been released: https://github.com/stefanzweifel/sidecar-browsershot/releases/tag/v1.13.0


treeWalker is walking all nodes

I'm using 3.0.0-beta.1. It seems that my provided treeWalker generator is being walked to visit every node in the tree, even though most of the nodes are not visible (collapsed).
Is this how it is intended to function, or am I missing something? My use case involves a tree that is very large and very deep, and computing the nodes is somewhat expensive. Users only visit a small subset of the nodes at a time, so my hope was that the treeWalker would only visit the visible nodes and save a bunch of unnecessary computation.
As it is, there is a very noticeable (few seconds) delay on expanding/collapsing nodes (because the walks the tree again).

To follow up on this: I modified my generator such that it doesn't produce the child nodes for a parent that is collapsed. This seems to solve my performance problem, but it makes the built-in expanded/collapsed state management useless, and requires me to provide a new treeWalker to rerender the entire tree every time a node is toggled. This really feels far from optimal. I'd like to understand if I'm missing something, or if this is the intended design.

Hi @murrayju

It seems that my provided treeWalker generator is being walked to visit every node in the tree, even though most of the nodes are not visible (collapsed).

The treeWalker generator is designed to be flexible. If you don't want to provide all the tree data at once, you could use the async approach (code, demo). So the user will get only the information they requested while the tree doesn't suffer from unnecessary data processing.

There is a very noticeable (few seconds) delay on expanding/collapsing nodes (because the walks the tree again).

Actually, only the 2.x.x version used treeWalker both for tree building and for node expanding/collapsing operations. The 3.0.0 version introduces a new approach when the treeWalker is used only for tree building. So it shouldn't affect the expanding/collapsing which uses the internal tree walk based on pointers. Could that be possible that you are using the 2.x.x version instead of 3.x.x?
However, unfortunately, for the very large trees, there still may be some delay on collapsing/expanding because the tree needs to walk through all the nodes to create (or, more importantly, re-create) the correct list of nodes to display in the virtual table. To fix that case, I would suggest considering the async approach as well.

Could that be possible that you are using the 2.x.x version instead of 3.x.x?

No, definitely on v3. I just didn't explain what I meant very well. My approach was to use useCallback to produce a new treeWalker whenever the expandedKeys change (since my tree walker only walks the children of nodes that are expanded, it has to change when the expanded state changes). This in turn causes react-vtree to rerender the whole tree.
I chose this as the better of two evils, since the alternative (treeWalker always provides the complete tree) is way slower than only walking the expanded nodes of a mostly collapsed tree.

To fix that case, I would suggest considering the async approach as well.

I'll take a look at the async option, thanks. I shied away from this at first, since my data isn't truly "async", it is all in memory already.

I created this ticket mostly because I find it surprising that the library should have to walk the generator for nodes that are not visible. Perhaps you are optimizing for something else that I'm not aware of? I could look into making a fork if my use case is just different from others, but I'd like to understand why yours is designed this way first.

Perhaps you are optimizing for something else that I'm not aware of?

The initial goal was to optimize the display of the tree. When the treeWalker works, it creates an internal representation of a tree that consists of two elements: a tree object connected via pointers (parent-child-sibling) and an array of node ids to send to the react-window virtual table.
Whenever the treeWalker is chagned, the internal representation is re-created from scratch. That's a very time and resource consuming operation because there is a lot of memory allocation for objects and array. So I recommend to use it either once at start or via an async approach. If it is essential to not freeze the whole UI during the tree building, it is also possible to specify placeholder which will make tree construction asynchronous. So you can just show user a spinner until the tree is prepared. The approach is described here (code, demo).
For expanding/collapsing, the internal tree walk is used. As I described above, it just walks over the tree using the pointers and updates the tree node visibility state. However, in my previous explanation I made a mistake: not all the nodes are visited during that walk but only a subtree of a node that is triggered. When the walk is over, the prepared sub-array is injected via Array.prototype.splice into the main react-window array. If you have big branches, that may take some time but according to my experiments the lag is not big and happens mostly because of GC.
Hope that explanation will help you.


Ask without context enhancement

Nothing high priority, but I often find that I'd like to do a basic llm query in aider where I'm already working, but the /ask command has a lot of input tokens from the files and repo that I don't need for the request. I naively imagine /justask  to query the LLM with no extra overhead.
What do others do to ask quick questions that don't need context? I prefer to use API rather than monthly subscription.

I've encountered this need before. Not important. I typically switch tabs to a web llm chat for that. But could be a neat feature.


Compile AsSimilarAsPossible in linux

Dear SuTan:
I'm unable to call AsSimilarAsPossible.mexw64 because I run matlab in linux. So I try to compile AsSimilarAsPossible.cpp in linux and got the following error after solving all the #include problem：

How to solve the compilation problem?
Thank you in advance ! :smiley:

You can try the original MATALB version ASAP code provided by Liu
Shuaicheng.
Cheers,
Delin Qu @.***> 于 2021年11月20日周六 16:21写道：

Dear SuTan:
I'm unable to call AsSimilarAsPossible.mexw64 because I run matlab in
linux. So I try to compile AsSimilarAsPossible.cpp in linux and got the
following error after solving all the #include problem：
[image: image]
https://user-images.githubusercontent.com/60593268/142719442-879940c3-7300-41ae-83cb-22c6ce573e40.png
How to solve the compilation problem?
Thank you in advance ! 😃
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/SuTanTank/BundledCameraPathVideoStabilization/issues/7,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABEXP2Y6QCZKIMXS3ECGY4TUM5K7LANCNFSM5INWPZRA
.

You can try the original MATALB version ASAP code provided by Liu Shuaicheng. Cheers, Delin Qu @.***> 于 2021年11月20日周六 16:21写道：
…
Dear SuTan: I'm unable to call AsSimilarAsPossible.mexw64 because I run matlab in linux. So I try to compile AsSimilarAsPossible.cpp in linux and got the following error after solving all the #include problem： [image: image] https://user-images.githubusercontent.com/60593268/142719442-879940c3-7300-41ae-83cb-22c6ce573e40.png How to solve the compilation problem? Thank you in advance !  — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#7>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABEXP2Y6QCZKIMXS3ECGY4TUM5K7LANCNFSM5INWPZRA .

Thank you, I added #include <stdio.h> in Quad.cpp and successfully Compiled AsSimilarAsPossible into .mexa64 file with the following command:
mex AsSimilarAsPossible.cpp Mesh.cpp Quad.cpp Asap.cpp


Conflict with libspdm_test_responder_certificate_case16

According to libspdm_test_responder_certificate_case16, it is possible to request a 0 byte certificate chain and respond with a portion length of 0.
So it seems that (spdm_response->portion_length == 0) below should be removed.
https://github.com/DMTF/libspdm/blob/8299f668ba21b1def18436799168a2daa63b650e/library/spdm_requester_lib/libspdm_req_get_certificate.c#L225-L226

The code is from requester lib, right?
The portion_length could be 0, only if the requestered portion_length is 0.
But that condition wont happen in requester lib. I dont see the conflict.

Are you saying the requester never requests a length of 0?

Currently a libspdm Requester retrieves the entire certificate chain.

Ok. Then will libspdm_test_responder_certificate_case16 be deleted later?
https://github.com/DMTF/libspdm/blob/8299f668ba21b1def18436799168a2daa63b650e/unit_test/test_spdm_responder/certificate.c#L1171-L1176

No. A libspdm Responder may talk to a non-libspdm Requester, who is free to request a 0 byte length.

Thanks for the answer. I'll close this.

Thanks for the answer. I'll close this.


Can you create a theme that can be used by anyone?

https://github.com/taniarascia/untheme is that theme.


Update resin-semver to support Balena OS

This requires updating the resin-semverpackage to >=1.3.0.
Connects to https://github.com/resin-io/hq/issues/1470

Fixed in #153


win: name all public anonymous structs/unions

This addresses issue #205, by naming the anonymous structs and unions in uv-win.h to conform to the C89 spec and updating all the affected code. I tried to give meaningful and consistent names to the different private field groups, e.g.:
union {
  struct { uv_stream_connection_fields };
  struct { uv_stream_server_fields };
};

becomes:
union {
  struct { uv_stream_connection_fields } conn;
  struct { uv_stream_server_fields } serv;
} stream;

With similar naming for pipe, tcp, tty, fs and the overlapped I/O fields. Since it's a direct replacement it's a bit verbose, and it hits quite a lot of files since the private fields are used basically everywhere, I think it's nice that the fields are now all properly segmented and qualified since it indicates where they belong, though.
However I came across one issue and would like some comments: in uv-common.c, some functions assume the existence of an nbufs member directly inside the uv_fs_t struct, which is defined in UV_FS_PRIVATE_FIELDS. To me this doesn't seem compatible with the struct/union design currently being used in uv-win.h without anonymous structs/unions - should there be some internal functions to bridge the gap between the private field nbufs and its usage in the common libuv implementation?

What do you guys think, is this going in the right direction?

Hi @TomCrypto, thanks a lot for this! I know it must have been tedious work...
The change mostly LGTM, with that naming nit I pointed out.
As for the change in uv-common, I think you solved it just the way I would have :-) It's an internal field, so we (libuv) are allowed to use it, and if we have to ifdef it for the time being, so be it. Please update the comment mentioning that there is a different structure layout.
/cc @piscisaureus and/or @bnoordhuis

That are a lot of changes.

@txdv but ABI stays kosher, so we should be fine :-)

@saghul Fixed the uv-common changes. And yes I am pretty sure the ABI is not changed, since anonymous structs/unions are basically just syntactic sugar afaik (not 100% sure though).

Makes stuff accessing clearer (immediately puts an emphasize on what part of the struct the variable belongs).
Looks good IMO.

There are a couple of long lines but apart from that LGTM.  Nice work!

Okay, I changed req to u as suggested, wrapped the long line, and squashed the commits.

@TomCrypto thanks a lot! Landed in :sparkles:  073323b :sparkles:


How to selectively import only some audits?

Hi! I started exploring cargo vet a few days ago and tried it on a fairly small repo of mine. I added Mozilla's repository as an import source, since I consider them a trustworthy organization in general. I thought they could be a good source to import some audits from. Upon running cargo vet all their audits that overlap with my dependency tree were silently imported and the tool gave me a green check. I would have expected it to ask me selectively for each audit if I wanted to import it or not.
When I look into supply-chain/imports.lock I have, among other things:
[[audits.mozilla.audits.log]]
criteria = "safe-to-deploy"
notes = "One dependency removed, others updated (which we don't rely on), some APIs (which we don't use) changed."
...

The notes clearly state that they did not read the entire thing, only selective parts. How can Mozilla themselves trust this audit? They will not get notified in the future if they change their usage of log so that they do use the APIs that they did not audit. This seems like a flaw in how they choose to use safe-to-deploy or a flaw in what guarantees vet is supposed to give. I don't want to trust this audit, since I have no idea what APIs they did audit and which ones they did not audit.
I can of course choose to not import Mozilla's audits at all. But that's such a heavy-handed solution with many downsides. What if they also have this audit in the same repo:
[[audits.mozilla.audits.extremely-complex-cryptography-stuff]]
who = "Very Security Professional<EMAIL_ADDRESS>criteria = "safe-to-deploy"
notes = "I made a thorough audit of all aspects of this crate. I also made a formal proof that it's correct"
...

I really don't want to miss out on this amazing free audit possibility. So it would be great if audit imports could be selective IMHO. Or am I missing the point in how cargo vet is supposed to be used?

I think it would be really hard to have any organization qualify under the definition "I blindly trust whatever this org classify as audited now and in the future". As compared to "This is a source I want to browse audits from whenever I happen upon a crate I have not yet audited myself".

It is possible to exclude certain audits from being imported from a source using the exclude key in config.toml, as documented here: https://mozilla.github.io/cargo-vet/config.html#exclude. For the audit you identified, it might look like this:
[imports.mozilla]
url = "https://raw.githubusercontent.com/mozilla/supply-chain/main/audits.toml"
exclude = ["log"]

Also, thank you for bringing that audit to our attention. This unfortunately fell short of our auditing standards, and we're taking steps to make sure incomplete audits like that don't happen again.

Thank you for pointing out exclude! I had read the entire tutorial, but not the reference. exclude can be somewhat of a solution to my problem, but IMHO not an ideal one. The same import source could very well provide a very satisfactory base audit of log but not a diff audit I want to import. From my understanding exclude does not allow me to handle this?
Is the usage of import sources intended to be like I described as "I blindly trust whatever this org classify as audited now and in the future"?
I understand that maybe it's too late to change this tool in such a drastic way now(?), but what do you think in general about my idea to selectively import audits instead of the current state? Is there any downside to that that I'm missing? I don't think it would be more work than today. Today whenever I commit changes to imports.lock I have to read through every entry carefully anyway to make sure what I trust is satisfactory.

Thank you for pointing out exclude! I had read the entire tutorial, but not the reference. exclude can be somewhat of a solution to my problem, but IMHO not an ideal one. The same import source could very well provide a very satisfactory base audit of log but not a diff audit I want to import. From my understanding exclude does not allow me to handle this?

I believe not.

Is the usage of import sources intended to be like I described as "I blindly trust whatever this org classify as audited now and in the future"?

Not entirely, because the workflow still requires that you review and commit the new imports to your tree. If you have concerns about any of them, you can perform and record your own audit for that crate, at which point the local audit will take precedence and the imported audit will disappear. Or, alternatively, you can decline to merge the changeset that adds the dependency in question.

I understand that maybe it's too late to change this tool in such a drastic way now(?), but what do you think in general about my idea to selectively import audits instead of the current state? Is there any downside to that that I'm missing? I don't think it would be more work than today. Today whenever I commit changes to imports.lock I have to read through every entry carefully anyway to make sure what I trust is satisfactory.

It's not clear to me what practical benefit this feature would provide. There's already a reliable means to review your imported audits, allowing you to accept them, re-do them, or reject them (along with the code they cover).


大佬，今天打开提示多用户使用，这个怎么破？

Related to #5
Prior to v23, you can use the legacy crack tool as outlined here (Windows 下的替代破解法). This method, however, seems to no loner work for v23+
What will happen if you click on "确定"? Does this also happen to Chem 3D?
I personally have never met such situations, so it will be difficult for me to troubleshoot. I may or may not work on this known issue.

Could you please try the following:
In Windows firewall settings, inbound rules, see if there are allowed rules for Chem Draw or Chem 3D. If so, for each of them, change its properties:

General tab: change Allow to Block the connection
Advanced tab: tick Domain and Private

If still doesn't work:

Protocols and Ports tab: change Protocol type from TCP or UDP to Any
Restart your PC

This issue should be permanently solved in the latest beta patcher. Please refer to the new instructions in this section. 避免“多用户使用”警告弹窗


Help me to solve college captcha by using tesseract.js-chrome-extension

hi this is sandeep from kl university.
I'm always frustrated to solve my college captcha
in my college we are having more than 20,000+ students who are also getting frustrated
so i tried to  solve my college website captcha using this extansion but i am faild to link   [...]
college website 1 ;click login > in : https://newerp.kluniversity.in/
click login
college captcha 1 ; https://newerp.kluniversity.in/index.php?r=site%2Fcaptcha&v=607543f28ac974.22865980
i would like to tell u an idea
my idea > requsting website > multipule captcha example >10 times > with same test with diffrent diffrent patrens
code:
function loadCaptcha(times = 10) {
var i = 0
for (i = 0; i < times; i++) {
$("img").map(function() {
        if ($(this).attr("id") != undefined && $(this).attr("id") != '') {

            var imgSrc = $(this).attr('src');
            var vNum = Math.floor(Math.random() * 900) + 100
            $("body").append("<img src='" + imgSrc + "&v=" + vNum + "'+ style='height:50px;width:120px'/>");
        };
    })
}

}
so i am please requsting u to help me by adding  a option in tesseract.js-chrome-extension
to sove captcha of my college by entering element id of captcha && Output txt  in tesseract.js-chrome-extension

@jeromewu HI sir I am requesting to please look into my problem


Provide an example to Custom CSS, rename Slides

example for Custom CSS changing color and using a custom font (issue #760)
Slides seem to have been renamed to Presentation now, first section helps the user to know that s/he's in the right place

See my answer to #760.


Bugfix: Don't use Bardo during morphing frame render (its only for non-morphing renders)

Using the turbo frame morph renderer with permanent elements results in incorrect morphs. On v8.0.5, I'm seeing duplicate elements, missing elements, and other strange behavior. This took a while to track down!
It turns out that the data-turbo-permanent functionality is implemented via two different strategies: Bardo for non-morphing renderers, and DefaultIdiomorphCallbacks for morphing renders.
MorphingFrameRenderer's parent class FrameRenderer uses Bardo, so MorphingFrameRenderer continues to use that in addition to DefaultIdiomorphCallbacks, resulting in incorrect morphs.
Looking at how the morphing and non-morphing page renderers handle this strategy switch, MorphingPageRenderer works correctly, because its overwriting its preservingPermanentElements function with a no-op, so let's just copy that strategy in MorphingFrameRenderer, et voila.

Are you sure that this really resolves the error? Unless I'm missing something, this doesn't produce any change, since no instance of MorphingFrameRenderer is created yet. Only the static method is used separately here:
https://github.com/hotwired/turbo/blob/f48b0de1d541055f959aa6d37d96f2441cffb9a6/src/core/drive/morphing_page_renderer.js#L42-L48
Or am I missing something?

@seanpdoyle Yes, I looked into adding a test, but it looks like no morphing frame rendering tests exist at all at the moment, so there didn't seem to be a reasonable place to add one. If you want to gate merging this on a test, let's wait until  #1192 lands, and then I'll rebase and add one.

@brunoprietog Right you are, I've been manually creating an instance of MrophingFrameRender to refresh a turbo frame with morphing. I'm really looking forward to #1192 landing so I don't have to do that anymore!

@seanpdoyle @brunoprietog Okay, now that #1192 has landed, I've rebased and added a test to assert that a permanent element remains after a frame[refresh=morph] reload. This test exposes the issue described above by failing after refresh, complaining that the permanent element now has a duplicate: locator('#permanent-input') resolved to 2 elements:. This is because Bardo and DefaultIdiomorphCallbacks are both cooking in the kitchen. I'll push the fix as a separate commit now.

@seanpdoyle @brunoprietog Okay, I got the test passing by disabling Bardo for morphing frame renders, as described above. However, I've had to completely change the implementation strategy here, because #1192 has since turned the MorphingFrameRenderer subclass into a bag of methods to monkeypatch onto the current renderer, rather than using an instance of it to perform the render. This isn't the approach I would choose, personally, but I'm sure there are good reasons. I'm guessing this is a transitionary state of affairs?

Closed in favor of #1028


Test Coverage

Hello,
May i ask what the actual state of this project is? I would really like to use it for a project. However i need to test it quite intensively and therefor I would like to know whether there are any unit / integration tests yet. I didnt find them in the source code. Thank you very much for your help.
Yours sincerely,
Daniel Krüger

Hi,
I am afraid that I did not had time to add proper unit tests. Any help in that area is welcome.
I am using this project in few client-server projects and so far did not found any problems.
If you need it for an important project I suggest that you test it for your own sake to verify it against similar libraries implemented in another language.


Identifier and Reply URL fields are requiring old patterns.

The Identifier and Reply URL fields are requiring old patterns that are not specified by the new documentation. For example the Identifier field is requiring the following pattern when setting up the application:
Patterns: https://console-us.mimecast.com/sso/, https://console-uk.mimecast.com/sso/, https://console-za.mimecast.com/sso/, https://console-je.mimecast-offshore.com/sso/
Because of the pattern I am unable to input what the correct URLs that the documentation requires.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 3e66e6bf-dfa7-4ed0-3104-0f194a9cfe39
Version Independent ID: 0e095ac3-fcf1-1412-e692-6ef8e2d8ec65
Content: Tutorial: Azure Active Directory integration with Mimecast Admin Console
Content Source: articles/active-directory/saas-apps/mimecast-admin-console-tutorial.md
Service: active-directory
Sub-service: saas-app-tutorial
GitHub Login: @jeevansd
Microsoft Alias: jeedes

@sbthackston
Thanks for your feedback! We will investigate and update as appropriate.

@sbthackston
Thanks for your feedback! We will investigate and update as appropriate.

Any update on this please? Unable to finish configuring SSO because of this issue.

@sbthackston You should still able to use the right patterns from our documentation. Azure AD UI will not block you for using any pattern here.

@chetansriv for tracking.

@sbthackston You should still able to use the right patterns from our documentation. Azure AD UI will not block you for using any pattern here.

Not my experience. The Identifer field only allows specific patterns, none of which match the expected identifier leading to an error when signing in with SAML. I had to create a custom application instead of using the gallery one, as it currently cannot be configured correctly.

@hosser and @sbthackston Yes, I can see the problem here. I can fix this tomorrow and then it will allow you to configure any URL as needed.

@hosser @sbthackston The issue is fixed now, could you please check.

#please-close


feat: compensate gps bias

This Diff adds GPS bias compensation, which is useful when both GPS and GCP alignments are used : one want to align on GCP, while compensating for any bias the GPS receiver might have. More formally, the GPS error which was :
error = GPS - image position
Now becomes :
error = bias(GPS) - image position
With bias being a similarity transform. This is also exported in the report in the GPS/GCP section. Finally, this is controlled by the option bundle_compensate_gps_bias.

Pushed from internal worflow.


Implement Atmospheric Haze in Mediums

I already have this function in transparent mediums:
element_type absorbance(element_type distance) const;

which is implemented as
element_type transparent::absorbance(element_type distance) const {
    return std::exp(-distance * m_fade);
}

In latest code base this is implemented. Closing for now.


[BUG] The length can not be less than zero.

Before you begin
When opening
The length can not be less than zero.
Parameter name: length
Describe the bug
On a Request to https://www.windmillvpn.com/api/login
There is no response but only this is displayed and Status is set to Error:
The length can not be less than zero.
Parameter name: length
(printed twice - one in white one in red)
If ignore response errors is enabled,  it's printed once plus:
ERROR: Object reference not set to an instance of an object.
Expected behavior
No Error ;)
Version

Version 1.1.5#370

I just checked, this is an Extreme.NET issue so I will touch it when I change stuff in Extreme

Hello,
similar problem trying to connect to https://www.glamuse.com/api/user/login
the error message says:

ERROR: Could not recieve the message body of the response HTTP-server 'www.glamuse.com'.

even when ignore response errors is enabled.
OB version 1.2.0 latest build

A Get request on site shdf2 is having a Problem works for me on 1.2.0.
Tried without and with http proxy (tried that cause of an other, similar problem thats fixed in 1.2.1

sorry i forgot to mention that it has to be a POST request with multipart.
Only a working username and passowrd is making that problem. with wrong credentials there is no problem.
Wrong credentials:

Correct credentials:

طيب ي اخوان حد يفيدني بالحل ارجووكم

FORTNITE CONFIG


Add installation script

Script has to install eg from Github and from local copy of source. Installation path - user home ($HOME).

Done in #8.


How can I contribute?

Hello,
Thanks so much for making this great program. I've found it really useful and I hope to see it grow and keep doing well. As such, I was wondering if there's any way you could use help on this repo? I'm gonna have some free time the rest of this month and would love to contribute. I'm quite familiar with node and have used typescript before so I should be able to jump in without too much trouble.
I have a few ideas for things that might be helpful but I'd like to know what your priorities for the repo and what would be most useful to you.
Let me know! Thanks

I think the next project calling for attention would be a settings interface. If you are familiar with HTML/CSS/DOM, you would be welcome to work on that. I thought of using AngularJS (Angular V1) for the interface. Is this something you would want to take on? I am thinking of doing the heavy lifting in the client and just posting the finished JSON to the server.
We could also add a few more authentication options, and support HTTPS server. Both of these would get their own property in settings.json. That's really all I have on my plate right now.
The server-api.js file is kind of a mess right now. I'm working on writing better functions for it, which I'll probably take care of myself.

What are your ideas? I'm interested to hear them.

I was thinking of having a setup script that could configure the setting but having a web interface for it is even better and I would be happy to work on that. I'm not too familiar with AngularJS but I think Vue would be a good candidate as well? Either way I could work on that.
I'm not too familiar with the authentication options either.
Some ideas I had for improvements:

Way to create new wiki from withing the UI (could go on setting pages)
One click install script (so they wouldn't have to manually configure/create a wiki) but that also goes closely with the UI.
It might be useful to make a docker container
Maybe update the documentation to look a bit more like this for the settings
It would be good to track which versions of dependencies are being used in case of vulnerabilities and to know if they make breaking changes. Could use NPM to install them I don't know if there's some downside to this that I'm not seeing because I'm on Linux. For example, right now

I would like to put the functionality to create new wikis and upload files in the directory index. You are welcome to go ahead and code that.
If you have a better way to write the docs, I'm always open, but I'm better at long-form explanations. So if you want to take it and condense it, you're welcome to.
I think the settings panel should come before any install scripts that way we can use it as part of the install process. But I like the idea of adding install scripts.
What I know about the dependencies is that we are at node >=6, TiddlyWiki 5.1.15, WS something, and RxJS 5.4.3.
I think working in TypeScript and compiling to Javascript is good. Vue.js is fine. Looking forward to seeing what you come up with.

It looks like the settings panel is the biggest feature we need right now. If you want to do that, that would be great.

I'd put a couple hours into working on it last week.
Right now it's basic and not doing any validation. I'm still trying to figure out a good way to do the folder settings since they can nest. Any ideas on that would be great.
But here's what I have so far. I can put it on github if you want.

I think it would be best to have the user copy and paste the file paths
into the relevant fields (such as the tree and backup), and then
immediately check the path server-side and warn the user if there is a
problem.
This should not be a security problem because the settings panel server
will only be bound to IP <IP_ADDRESS> anyway, but it is something we should
keep in mind.
The tree should be a nesting layout that has elements that are either
simple or complex. The simple elements would be a key-value pair of text
fields, and the complex would have the same key field, but instead of the
value, it would have controls to add simple and complex child elements. The
key field should probably have a pencil icon or the like that you click to
edit the key, that way it's harder to change.

If you have another idea you want to try, go for it. That's just what I see
in my mind, but I'm sure it could be improved.
On Dec 24, 2017 13:37, "Arlen Beiler"<EMAIL_ADDRESS>wrote:

I think it would be best to have the user copy and paste the file paths
into the relevant fields (such as the tree and backup), and then
immediately check the path server-side and warn the user if there is a
problem.
This should not be a security problem because the settings panel server
will only be bound to IP <IP_ADDRESS> anyway, but it is something we should
keep in mind.
The tree should be a nesting layout that has elements that are either
simple or complex. The simple elements would be a key-value pair of text
fields, and the complex would have the same key field, but instead of the
value, it would have controls to add simple and complex child elements. The
key field should probably have a pencil icon or the like that you click to
edit the key, that way it's harder to change.

I've been spending a little while now and then working on it but unfortunately I didn't get it finished.
I'll be leaving the country for a month and won't be able to work on it by then.
Basically the form is setup (except the directories) and the data is bound with vue.
I was thinking of using vue-validate but didn't get around to quite setting it up.
Hopefully this can be of some use to you. Hope you have a happy holidays!
tiddlyServerGUI.zip


Multi-dataset abstraction layer

Maybe have a layer which sits above multiple datasets. Those datasets could be in any format (zarr, grib, etc.) and live anywhere (maybe some datasets are on local disks, some are in cloud object storage). Possibly some data is duplicated to optimise for different read patterns (see #141).
Users would query the "multi-dataset layer". When reading, the "multi-dataset layer" would select which underlying dataset to use for a given query, and could merge multiple datasets (e.g. NWP and satellite).
Perhaps this layer could also be responsible for keeping multiple on-disk datasets up-to-date when new data comes along (e.g. duplicating new data to two different datasets, which are optimised for different read patterns). But maybe that's best kept disaggregated as something the user can schedule in a data orchestration tool like Dagster.
Also, maybe the layer could automatically figure out when it'd be worth creating a new "optimised" dataset. e.g. the layer would keep track of the read patterns that it's used for.
Maybe this fits into "layer 5: applications"?
Related

#141

It might be best to store multiple representations of a given dataset at creation time, rather than first creating a dense Zarr, and then creating a differently chunked dataset from that Zarr. So you could imagine wanting to pipe data into multiple drains in parallel.

Better analogy: YouTube stores each video multiple times, each with a different compression setting and resolution. Let's do the same for ndim arrays!


Add Cloudflare Trace API

[x] My submission is formatted according to the guidelines in the contributing guide
[x] My addition is ordered alphabetically
[x] My submission has a useful description
[x] The description does not end with punctuation
[x] Each table column is padded with one space on either side
[x] I have searched the repository for any relevant issues or pull requests
[x] Any category I am creating has the minimum requirement of 3 items
[x] All changes have been [squashed][squash-link] into a single commit

I mean mate, this one links to a github repo of yours, so it is not really an "official" public api no?

https://cloudflare.com/cdn-cgi/trace  has been in use for many years now.
People are using it to get client ip1 client ip2 and other stuff.
The only reason why I linked to my github repo is that the users could understand what the return format represents.
Thanks

Thanks @matheusfelipeog


Remove support for invalid values

Right now passing an explicit invalid string  or nil returns a 0$ Money object.
This is at hight risk of unintended consequences. In V1 this will raise
Money.new('invalid') #=> raise
Money.new(nil) #=> raise

# But
Money.new == Money.zero == Money.new(0)

first step is to show a deprecation warning
deprecate("Support for Money.new(nil) will be removed from the next major revision. Please use Money.new(0, currency) instead.")


Improve "Definition Preview Hover" rendering and layout (similiar to JetBrains IDEs)

[Cross-posting from vscode-python with more added details.]
I'm almost done with migration from PyCharm to VSCode, but a few things are holding me back! One of them being the layout and the rendering for "Definition Preview Hover" or the equivalent for "Quick Documentation Popup"  on JetBrains' IDEs.
Rather than trying to explain it in words, I rather attach a screenshot from both VSCode and PyCharm displaying the documentation for sort_values() method:

PyCharm

VSCode

As you can see in the images above, PyCharm's definition doc preview is displaying very nicely, properly formatted and easy to read while VSCode started with all of the overload examples of the method and even when you scroll down past the overloads you see this hard to read and poorly formatted text:

There's also one annoying UX related issue, that is VSCode's preview hover goes away as soon as you move the cursor outside the box while I did setup a keyboard shortcut for this and triggered it intentionally! PyCharm's hover if triggered by keyboard stays on the screen until you hit Esc and only the mouse-triggered hover goes away automatically.
I'm not sure if this is the right repository for this issue, if it's not let me know the right one. And accept my apologies if this has been posted before.

/extPython

It looks like this is caused by the Python extension. Please file the issue to the Python extension repository. Make sure to check their issue reporting template and provide them relevant information such as the extension version you're using. See also our issue reporting guidelines for more information.
Happy Coding!


Fix *_format to *_view

Commit 7c2a85c3513fc59b3aa363de9af02bed2adf2f18 forgot to rename post_format, publication_format, talk_format in layouts/project/single.html.
Related to #909.

Thanks for spotting this and submitting a fix!


Fix vulnerability in JWE p2c header header value

Purpose
Address the security vulnerability in JWE p2c header value
Approach

Set maximum allowed iteration count limit in the header value
Add test cases to verify the fix
Add missing test files from the 9.x version to the repo to fix test cases

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Question: Reusable select query helpers

Hi all, thanks for such a great library!
I am currently using Kysely v0.26.1 with the Postgres Dialect.
On this version I am able to create handy little reusable selections which I can pass into the select() function call.
This looks like the following:
const personPetSelect = (eb: ExpressionBuilder<DB & { petJoin: Pet }, 'person' | 'petJoin'>) =>
  [
     'person.id',
     'petJoin.name'
  ] as const;

Which could be used like so, with an inner or left join:
const leftJoinResult = await db
   .selectFrom('person')
   .leftJoin('pet as petJoin', 'pet.owner_id', 'person.id')
   .select(personPetSelect)
   .execute();

const innerJoinResult = await db
   .selectFrom('person')
   .innerJoin('pet as petJoin', 'pet.owner_id', 'person.id')
   .select(personPetSelect)
   .execute();

This was all type-happy and would generate the correct nullable result fields based on the type of join.
I could also use the reusable select helper in a query that has more joins than what I defined in the ExpressionBuilder type within the reusable select helper, so long as what was defined there was still available within the query.
Ie, I could still use it in a query that looked like this:
const twoJoinsResult = await db
   .selectFrom('person')
   .leftJoin('pet as petJoin', 'pet.owner_id', 'person.id')
   .leftJoin('house', 'house.owner_id', 'person.id')
   .select((eb) => [
        ...personPetSelect(eb),
        'house.address'
    ])
   .execute();

However, upon upgrading to v0.26.3, there seem to be some type changes which are causing these helpers to no longer work.

Depending on the join, the table types change to include a Nullable wrapper which I would need to define within my ExpressionBuilder type definition. Nullable is not exposed to me from the library.
It seems that type of eb has to exactly match, meaning that I cannot define a select helper to use a subset of tables and then use that as I described above between the first and second blocks of queries. This is likely because the leftJoin on house would have nullified the House table, whereas my function technically expects it to be non-null, even though I am not specifying that I can select from it.

I was wondering, is this type of helper something I can still expect to be able to do? Is there something I can do within my function declaration to better define the types and what I am trying to achieve?
Thanks so much!

The types in 0.26.3 are even more strict, which causes this change.
The Nullable helper is super simple. You can just copy-paste it to your codebase.
https://kyse.link/?p=s&i=83ZyHHBSEtF5Eajcds16
Optionally you can simply define the helper using the narrowest type needed:
https://kyse.link/?p=s&i=owLOtHk7aaiozfPTySKb
You probably have something that uses the eb in you real code, since this particular example could be written simply like this:
https://kyse.link/?p=s&i=AyoQtR4b2UPQm3PIZYjD

Hello! I just ran into this today after upgrading and adding a leftJoin. For me, the solution was to move the unrelated join after the unrelated select(s) and follow the join up with it's own select statements.

@koskimas The examples you gave are contrived in that the select covers all possible cases (conversely the DB schema is the same width as the select example). With a small extension to your example, I now have a select which doesn't work with the DB schema due to an intermediate left join that the select helper is not concerned about: https://kyse.link/?p=s&i=1ZWFUIGCHSJCCGb41A3j
How do we solve the types for this case, bearing in mind DB schemas can get many times more complex?

@WoodyWoodsta You can't get generic and strictly typed solution that works in all cases. If you want generic, you need to let go of strict types. Even typescript has its limits. You need to build these things case by case.

Here's a generic, but slightly less type-safe version https://kyse.link/?p=s&i=1ZWFUIGCHSJCCGb41A3j
The function argument is used to check that the required petJoin join is there, but we can't use that builder directly because of the very generic type. Instead we create another typed expression builder.
You'll need to keep those two builders in sync, but that's pretty much the best that we can do here.

I just got an idea that might help a lot in these kind of cases. Let's see if it turns out to be a brainfart or a good idea. https://github.com/kysely-org/kysely/issues/696

@WoodyWoodsta @emiliedebra I was kinda lost with this before. I finally figured out what the issue was in my examples. When you leftJoin a table that has a column that some other table also has, that column becomes nullable too because it gets overridden by the similarly named column. So the issue all along was an incorrectly defined subtype in the selection helper. See this example https://kyse.link/?p=s&i=Kew6rc2niwbgyh7WPQ9F.
In the new example I've only declared the exact subset of tables and columns I need in the helper. That way there's a minimum amount of stuff to get right. If you don't use a table in a helper, don't add it to the expression builder type. If you don't use a column of a table, the same thing.
The weird and thing in this example is this part parent: { id: string | null }. id shouldn't be nullable right? Actually selecting just id without a table specifier would be nullable because you left-joined parent that also has an id.
So it's possible to create helpers like this, but figuring out the types can be difficult. A good approach is to only declare columns and tables you use. Then if the it still doesn't work, try to figure out which columns can be null based on the left joins.
Nullable columns work with all join types since T extends T | null.

Thanks @koskimas - appreciate your looking into this. Will try what you have suggested - the example appears to achieve what we require.

Thanks @koskimas - have tried what you suggested in your last post and it seems to do the trick. I appreciate all the time spent on this!

Hi again, I was playing around with this a bit more and I found some interesting behaviour regarding left vs inner joins and the use of jsonBuildObject within a select helper.
When I do either type of join, if I select a column directly it will correctly make the return type nullable or not. Ie, if I select petJoin.name when I have done a left join I get string | null and with an inner join I get string.
However, that exact same selection placed inside a jsonBuildObject call always returns a 'nullable' type regardless of the join.
See here, building on your previous example: https://kyse.link/?p=s&i=W7uGY0ft8MuWMuMCrsBQ
Is this expected or does this seem like incorrect behaviour?

Hi @koskimas, after reading this discussion I feel that there is a drawback with this new way to manage columns with same names.
Here is how I use kysely with v0.26.3:
In this exemple, is there a good way to have a string typed userId in the result ?
https://kyse.link/?p=s&i=fffAeKnaVNJglZmSBEN9
In version 0.26.0  was able to have a string typed userId giving the full DB type definition in the helper:
https://kyse.link/?p=s&i=gsApcGBMfjoEDw8PmoQs
Thanks for your help !

I agree, I'm also running into this limitation. Using Pick<Pet, 'owner_id'> works if the query only has a single owner_id column, but if another relation also has the same column name, I get type errors.
@flodlc Those links seem to have the exact same content when I open them?

I edited the links, thanks !

@koskimas any chance you could take a look?

I was able to work around this for my case, by using a subquery instead of a an expression builder. This might not work in all cases (I suspect it will perform much worse in some cases, though it didn't in mine), but it worked in my example:
export function getOwners() {
  return queryBuilder.selectFrom("mz_catalog.mz_roles as r").select((eb) => [
    "r.id",
    eb
      .or([
        eb.fn("mz_is_superuser", []),
        eb.fn("has_role", [sql.id("current_user"), "r.oid", sql.lit("USAGE")]),
      ])
      .$castTo<boolean>()
      .as("isOwner"),
  ]);
}

// in my query
queryBuilder
  .selectFrom("mz_catalog.mz_connections as c")
   .innerJoin(getOwners().as("owners"), "owners.id", "c.owner_id")
  .select(["c.name", "owners.isOwner"])

@RobinClowers  It seems that last releases have solved the issue !
Thanks a lot @koskimas


GitHub release missing for 3.0.0

There is no proper GitHub release for version 3.0.0, so the current latest version is 2.5.0?

Interesting.

I'll press some buttons on GitHub now.
Should look better now.


MS Edge complains about self closing  tags?

Rendering happens as expected though
Todo: debug if this is an issue

Does not actually affect rendering, and saves kb, so closes :)


Defaulting to B&W Scan

Is there a way to remove icons or to create a default setting to B&W?

Thanks

Duplicate #60
Chris
Neutrinos


PowersSY6970 and disableBattLoad

On compile in VSC/PIO with 'factory' selected, in LilyGo_AMOLED.cpp Ln 456, Col23 the following fatal errors occur:
'disableBattLoad' is not a member of 'PowersSY6970'
class "PowersSY6970" has no member "disableBattLoad"

Commit bea37d8 compiles and loads OK, resolving this issue


How to retrieve all agents ids from a dialogflow account

Hello,
I am currenlty using an authentification process based on a .json file created for one specific agent. Therefore, I can only retrieve informations about this specific agent. Here is the code:

$agentsClient = new AgentsClient(['credentials' =>  __DIR__.'/client-secret.json']);

$pagedResponse = $agentsClient->searchAgents('projects/-');

Where client-secret.json was created in the Google Cloud Console as a Service Account Link (see here )
And where $pagedResponse returns results only attached to one agent (the one linked to the .json authentification file)
So, my question is the following: how can I retrieve all agents (at least there ids) linked to a Dialogflow/Google account (using a different way of authentification I guess) ?
Best regards
Aymeric

In the other projects, you will need to grant the https://www.googleapis.com/auth/dialogflow IAM role to the service account you've authenticated with. See here for more information.

Hello and thank you. Could you give a code example ?
Kind regards
Aymeric

Thank you for your feature request for updates to the Dialogflow samples and documentation. After careful consideration, we have decided not to proceed with this enhancement. We currently don't write samples for PHP.
If you disagree, please feel free to re-open this issue and explain why you believe it is essential. Alternatively, we invite you or any other community members to contribute a pull request (PR), which we would be happy to review.