Linking against filament + CMake

Hi there,
I'm following this page in order to understand how to link against filament.
Assuming I have the structure:
|-- README.md
|-- bin
|-- docs
|-- include
|-- lib
|-- main.cpp

And my main.cpp is simply:
#include <filament/FilamentAPI.h>
#include <filament/Engine.h>

using namespace filament;

int main(int argc, char** argv)
{
    Engine *engine = Engine::create();
    engine->destroy(&engine);
    return 0;
}

The page suggests I could use the following makefile:
FILAMENT_LIBS=-lfilament -lbluegl -lbluevk -lfilabridge -lfilaflat -lutils
CC=clang++

main: main.o
	$(CC) -Llib/x86_64/ main.o $(FILAMENT_LIBS) -lpthread -lc++ -ldl -o main

main.o: main.cpp
	$(CC) -Iinclude/ -std=c++14 -pthread -c main.cpp

clean:
	rm -f main main.o

.PHONY: clean

However I'm trying to set up a simple CMakeLists.txt with the same purpose. At the moment I have the folder structure:
|-- README.md
|-- bin
|-- docs
|-- include
|-- lib
|-- main.cpp
|-- CMakeLists.txt

(Essentialy the same as before, except for the CMakeLists.txt file).
My CMakeLists.txt looks like:
cmake_minimum_required(VERSION 3.11 FATAL_ERROR)
project(filament-test)

set(CMAKE_CXX_STANDARD 14)

set(SRC main.cpp)
link_directories(./lib/x86_64)

find_package (Threads)

add_executable(filament-test ${SRC})
target_link_libraries(filament-test filament bluegl bluevk filabridge filaflat utils pthread c++ dl)
target_include_directories(filament-test PUBLIC ./include)

the buiding using cmake goes fine, but when I run the line make --j8 I get a bunch of linking errors:
In function `filaflat::SpirvDictionaryReader::unflatten(filaflat::Unflattener&, filaflat::BlobDictionary&)':
SpirvDictionaryReader.cpp:(.text._ZN8filaflat21SpirvDictionaryReader9unflattenERNS_11UnflattenerERNS_14BlobDictionaryE+0xb1): undefined reference to `smolv::GetDecodedBufferSize(void const*, unsigned long)'
SpirvDictionaryReader.cpp:(.text._ZN8filaflat21SpirvDictionaryReader9unflattenERNS_11UnflattenerERNS_14BlobDictionaryE+0x19f): undefined reference to `smolv::Decode(void const*, unsigned long, void*, unsigned long)'
collect2: error: ld returned 1 exit status
CMakeFiles/filament-test.dir/build.make:83: recipe for target 'filament-test' failed
make[2]: *** [filament-test] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/filament-test.dir/all' failed
make[1]: *** [CMakeFiles/filament-test.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Can you help?

Just an update:
My CMakeLists.txt now is:

cmake_minimum_required(VERSION 3.11 FATAL_ERROR)
project(filament-test)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_COMPILER /usr/bin/clang-cpp-8)

set(SRC main.cpp)
link_directories(./lib/x86_64)

find_package (Threads)

add_executable(filament-test ${SRC})
target_link_libraries(filament-test filament bluegl bluevk filabridge filaflat utils pthread c++ dl)
target_include_directories(filament-test PUBLIC ./include)

After running cmake and later make -j8 I get
[ 50%] Building CXX object CMakeFiles/filament-test.dir/main.cpp.o
[100%] Linking CXX executable filament-test
clang: warning: CMakeFiles/filament-test.dir/main.cpp.o: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang: warning: -Wl,-rpath,/home/FilamentTest/filament/./lib/x86_64: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang: warning: -lfilament: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang: warning: -lbluegl: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang: warning: -lbluevk: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang: warning: -lfilabridge: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang: warning: -lfilaflat: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang: warning: -lutils: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang: warning: -lpthread: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang: warning: -lc++: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang: warning: -ldl: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang: warning: argument unused during compilation: '-L/home/FilamentTest/filament/./lib/x86_64' [-Wunused-command-line-argument]
[100%] Built target filament-test

All these warnings concern me a bit.

You need to set up the Filament dependencies as IMPORTED targets because you're using pre-built binaries:
add_library(filament STATIC IMPORTED)
set_target_properties(filament PROPERTIES IMPORTED_LOCATION path/to/libfilamat.a)

Then you can link against them: target_link_libraries(filament-test filament).

At the moment I have this:
cmake_minimum_required(VERSION 3.11 FATAL_ERROR)
project(filament-test)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_COMPILER /usr/bin/clang-cpp-8)
set(CMAKE_VERBOSE_MAKEFILE on )

set(SRC main.cpp)
link_directories(./lib/x86_64)

find_package (Threads)

add_library(filament STATIC IMPORTED)
set_target_properties(filament PROPERTIES IMPORTED_LOCATION lib/x86_64/libfilamat.a)

add_executable(filament-test ${SRC})
target_link_libraries(filament-test filament bluegl bluevk filabridge filaflat utils pthread c++ dl)
target_include_directories(filament-test PUBLIC ./include)

But still, cmake goes fine but make -j8 or ninja doesn't, specifically for ninja I simply get:
ninja: error: 'lib/x86_64/libfilamat.a', needed by 'filament-test', missing and no known rule to make it

Managed to get a different error:
cmake_minimum_required(VERSION 3.11 FATAL_ERROR)
project(filament-test)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_COMPILER /usr/bin/clang-cpp-8)
#set(CMAKE_VERBOSE_MAKEFILE on )

set(SRC main.cpp)
set(PREFIX ${CMAKE_SOURCE_DIR}/lib/x86_64/)

find_package(Threads)

add_library(filament STATIC IMPORTED)
add_library(bluegl STATIC IMPORTED)
add_library(bluevk STATIC IMPORTED)
add_library(filabridge STATIC IMPORTED)
add_library(filaflat STATIC IMPORTED)
add_library(utils STATIC IMPORTED)

set_target_properties(filament PROPERTIES IMPORTED_LOCATION ${PREFIX}libfilament.a)
set_target_properties(bluegl PROPERTIES IMPORTED_LOCATION ${PREFIX}libbluegl.a)
set_target_properties(bluevk PROPERTIES IMPORTED_LOCATION ${PREFIX}libbluevk.a)
set_target_properties(filabridge PROPERTIES IMPORTED_LOCATION ${PREFIX}libfilabridge.a)
set_target_properties(filaflat PROPERTIES IMPORTED_LOCATION ${PREFIX}libfilaflat.a)
set_target_properties(utils PROPERTIES IMPORTED_LOCATION ${PREFIX}libutils.a)

add_executable(filament-test ${SRC})
target_link_libraries(filament-test filament bluegl bluevk filabridge filaflat utils pthread c++ dl)
target_include_directories(filament-test PUBLIC ./include)

The error I get is:
[ 50%] Building CXX object CMakeFiles/filament-test.dir/main.cpp.o
[100%] Linking CXX executable filament-test
clang: warning: CMakeFiles/filament-test.dir/main.cpp.o: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang: warning: -lpthread: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang: warning: -lc++: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang: warning: -ldl: 'linker' input unused in cpp mode [-Wunused-command-line-argument]
clang: error: cannot specify -o when generating multiple output files
CMakeFiles/filament-test.dir/build.make:89: recipe for target 'filament-test' failed
make[2]: *** [filament-test] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/filament-test.dir/all' failed
make[1]: *** [CMakeFiles/filament-test.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Apparently using the absolute path make a difference, but I still get errors.

Replace libfilamat.a with libfilament.a. Sorry, that was a typo on my part.

Done that, still it doesn't work (see my last CMakeLists.txt file).

Also, I don't know if this is normal, If I use gcc instead of clang I get a bunch of errors, like the following:
             lhs[i] -= v[i];
                    ^
error: body of constexpr function ‘constexpr VECTOR<T>& filament::math::details::TVecAddOperators<VECTOR, T>::operator-=(const VECTOR<T>&) const [with VECTOR = filament::math::details::TVec3; T = float]’ not a return-statement
     }
     ^
 error: invalid static_cast from type ‘const filament::math::details::TVecAddOperators<filament::math::details::TVec3, float>’ to type ‘filament::math::details::TVec3<float>&’
         VECTOR<T>& lhs = static_cast<VECTOR<T>&>(*this);```

I don't know if this is expected.

I figured... You need to add:
FILAMENT_LIBS=-lfilament -lbluegl -lbluevk -lfilabridge -lfilaflat -lutils -lsmol-v
And it worked for me.

gcc isn't a support compiler for Filament unfortunately.

Hi, since this is still open, is it possible to modify the CMakeLists.txt of the examples example to build only the frame_generator.cpp example?
I'd like to factor that specific example out of the filament build so I can modify it.
Thank you

Maybe the right question, since I managed to build using the binaries is... suppose I clone filament and I build it from scratch, and I want to use it as dependency for my personal app/project. What do I need to do to build against it?

Hi again, I would really appreciate any sort of directions here.

I figured... I needed to add:
FILAMENT_LIBS=-lfilament -lbluegl -lbluevk -lfilabridge -lfilaflat -lutils -lsmol-v
And it worked for me.

Stupid question, can you please write the entire line as added in cmakelists.txt file.  If you have a CMakeLists I can tell you what's wrong probably.

Thank you.
I am just trying out the same example as probably you did. Here is the cmakelists.txt
cmake_minimum_required(VERSION 3.1)
project(filament-test)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_COMPILER /usr/bin/clang-cpp-7)
set(CMAKE_VERBOSE_MAKEFILE on )
set(SRC main.cpp)
link_directories(./lib/x86_64)
find_package (Threads)
add_library(filament STATIC IMPORTED)
set_target_properties(filament PROPERTIES IMPORTED_LOCATION lib/x86_64/libfilament.a)
add_executable(filament-test ${SRC})
target_link_libraries(filament-test filament bluegl bluevk filabridge filaflat utils pthread c++ dl)
target_include_directories(filament-test PUBLIC ./include)

what errors do you get when you run this?

Here is the complete list, when I try to run make command:
/usr/bin/cmake -H/home/faisal/Desktop/filament -B/home/faisal/Desktop/filament/build --check-build-system CMakeFiles/Makefile.cmake 0
-- Configuring done
-- Generating done
-- Build files have been written to: /home/faisal/Desktop/filament/build
/usr/bin/cmake -E cmake_progress_start /home/faisal/Desktop/filament/build/CMakeFiles /home/faisal/Desktop/filament/build/CMakeFiles/progress.marks
make -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/home/faisal/Desktop/filament/build'
make -f CMakeFiles/filament-test.dir/build.make CMakeFiles/filament-test.dir/depend
make[2]: Entering directory '/home/faisal/Desktop/filament/build'
cd /home/faisal/Desktop/filament/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/faisal/Desktop/filament /home/faisal/Desktop/filament /home/faisal/Desktop/filament/build /home/faisal/Desktop/filament/build /home/faisal/Desktop/filament/build/CMakeFiles/filament-test.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/home/faisal/Desktop/filament/build'
make -f CMakeFiles/filament-test.dir/build.make CMakeFiles/filament-test.dir/build
make[2]: Entering directory '/home/faisal/Desktop/filament/build'
[ 50%] Building CXX object CMakeFiles/filament-test.dir/main.cpp.o
/usr/bin/clang-cpp-7   -I/home/faisal/Desktop/filament/./include  -std=gnu++14 -o CMakeFiles/filament-test.dir/main.cpp.o -c /home/faisal/Desktop/filament/main.cpp
make[2]: *** No rule to make target 'lib/x86_64/libfilament.a', needed by 'filament-test'.  Stop.
make[2]: Leaving directory '/home/faisal/Desktop/filament/build'
CMakeFiles/Makefile2:70: recipe for target 'CMakeFiles/filament-test.dir/all' failed
make[1]: *** [CMakeFiles/filament-test.dir/all] Error 2
make[1]: Leaving directory '/home/faisal/Desktop/filament/build'
Makefile:87: recipe for target 'all' failed
make: *** [all] Error 2

Kindly also the folder structure, relative to the CMakeLists.txt

Here is it:
|-- README.md
|-- bin
|-- build
|-- docs
|-- include
|-- lib
|-- main.cpp
|-- CMakeLists.txt

I think there's something wrong with how you link your libraries. To solve this error:
make[2]: *** No rule to make target 'lib/x86_64/libfilament.a', needed by 'filament-test'. Stop
Change the line:
set_target_properties(filament PROPERTIES IMPORTED_LOCATION lib/x86_64/libfilament.a)
With
set_target_properties(filament PROPERTIES IMPORTED_LOCATION {CMAKE_SOURCE_DIR}/lib/x86_64/libfilament.a)$

Also I link all the other libraries (bluegl bluevk filabridge filaflat utils) in a similar way (i.e. I don't use link_directories, for some reason it wasn't working for me)

This works for me:
cmake_minimum_required(VERSION 3.1)
project(filament-test)

set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_COMPILER /usr/bin/clang++-7)
set(CMAKE_VERBOSE_MAKEFILE on )

set(SRC main.cpp)
set(LIB_PATH ${CMAKE_SOURCE_DIR}/lib/x86_64/)

find_package (Threads)

set(LIBS filament bluegl bluevk filabridge filaflat utils smol-v)
add_executable(filament-test ${SRC})

foreach(lib ${LIBS})
        add_library(${lib} STATIC IMPORTED)
        set_target_properties(${lib} PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/lib/x86_64/lib${lib}.a)
        target_link_libraries(filament-test ${lib})
endforeach()

target_link_libraries(filament-test pthread c++ dl)
target_include_directories(filament-test PUBLIC ./include)


define bot and telegram structs

Codecov Report

Merging #8 (400f09d) into main (775be4c) will increase coverage by 31.04%.
The diff coverage is 92.85%.

@@             Coverage Diff             @@
##             main       #8       +/-   ##
===========================================
+ Coverage   62.50%   93.54%   +31.04%
===========================================
  Files           1        2        +1
  Lines           8       31       +23
===========================================
+ Hits            5       29       +24
  Misses          2        2
+ Partials        1        0        -1

Impacted Files
Coverage Δ

telegram/telegram.go
88.88% <88.88%> (ø)

bot/bot.go
100.00% <100.00%> (+37.50%)
:arrow_up:

Continue to review full report at Codecov.

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


chore: fix period data trxs order

Purpose

How does the solution address the problem

Changes made

prnet cleaned-up successfully


Update gaze-and-dwell.md

Fixing broken links.

Docs Build status updates of commit 3aac70f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/gaze-and-dwell.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


[Feature]: NVM version iteration

Description of the new feature / enhancement
Old version iteration trival, expected to increase the background command-line NVM to upgrade
Scenario when this would be used?
NVM iteration the old version
Supporting information
No response

I'm sorry, but I'm don't clearly understand what you're asking for. Are you wanting NVM4W to autoupdate Node.js when new versions are available?

Sorry, I didn't make it clear. nvm has a new version, no need to reinstall nvm. update nvm.

There is a manual update utility available in each release:

Automatic updates are planned for Runtime (paid editions).


Improper handling of CryptoResult.

This library assumes all CryptoResult variables are valid, and can never error. This is obviously not an accurate case.
Beyond that, if it fails to decrypt a message OR has too many messages skipped, this library raises; it should return its own CryptoResult.

*By CryptoResult, I specifically meant SkResult.


SAMD21 ADC returning values 2x more than expected, except for fully saturated

I'm using a feather_m0 board and the AD8495 thermocouple amplifier. The ADC HAL seems to be working great, except that it returns values exactly 2x of what is expected.
I've tried debugging this, but haven't gotten far. The gain settings are being written in the HAL code, and I don't see any other obvious ways we can get a 2x gain error. I'm reading from pin A5 for the record (pin B2 it seems).
Here's a trimmed down version of my code:
#![no_std]
#![no_main]

const ADC_FULLSCALE: u32 = 4095; // 12 bit ADC

extern crate cortex_m;
extern crate panic_halt; // panic handler

use feather_m0 as hal;
use hal::adc::Adc;
use hal::clock::GenericClockController;
use hal::delay::Delay;
use hal::entry;
use hal::pac::{CorePeripherals, Peripherals};
use hal::prelude::*;

#[entry]
fn main() -> ! {
    // cortex_m::Peripherals::take().unwrap()
    let mut peripherals = Peripherals::take().unwrap();
    let core = CorePeripherals::take().unwrap();
    let mut clocks = GenericClockController::with_external_32kosc(
        peripherals.GCLK,
        &mut peripherals.PM,
        &mut peripherals.SYSCTRL,
        &mut peripherals.NVMCTRL,
    );

    let mut pins = hal::Pins::new(peripherals.PORT);

    let mut i2c = hal::i2c_master(
        &mut clocks,
        400.khz(),
        peripherals.SERCOM3,
        &mut peripherals.PM,
        pins.sda,
        pins.scl,
        &mut pins.port,
    );  // used for a display

    let mut adc = Adc::adc(peripherals.ADC, &mut peripherals.PM, &mut clocks);
    let mut a5 = pins.a5.into_function_b(&mut pins.port);

    loop {
        let data: u16 = adc.read(&mut a5).unwrap();
        let data: u16 = data / 2;
        let temp_c: f32 = (((data as f32 / ADC_FULLSCALE as f32) * 3.3) - 1.25) / 0.005;
        let temp: f32 = temp_c * (9. / 5.) + 32.;  // print to display
        delay.delay_ms(1000 as u32);
    }
}

Oh I think I figured it out. We're using intvcc1 reference, and according to this table:

that means we're 1/2 VDDANA, which would explain my 2x discrepancy. This is confusing and opaque... is there something we can do about it? We can't assume something routed to VREFA/VREFB, but perhaps we should allow this to be selected in initialization?

Try my PR and see if it fixes things.

As you say, it is confusing and opaque, I had a hard time deciphering the code I was working from and that's probably why this bug crept in. I'll consider making it user-selectable.

That change will fix things, but it also leaves the 3v3/2 -> 3v3 range of voltages unreadable. I just hacked up a change to make it user selectable, what do you think?
// (...)
pub use crate::target_device::adc::refctrl::REFSEL_A as refsel;

pub struct Adc<ADC> {
    adc: ADC,
}

impl Adc<ADC> {
    pub fn adc(
        adc: ADC,
        pm: &mut PM,
        clocks: &mut GenericClockController,
        reference: refsel,
    ) -> Self {
        // (...)
        adc.inputctrl.modify(|_, w| w.gain()._1x());
        while adc.status.read().syncbusy().bit_is_set() {}
        match reference {
            refsel::INT1V => adc.refctrl.modify(|_, w| w.refsel().int1v()),
            refsel::INTVCC0 => adc.refctrl.modify(|_, w| w.refsel().intvcc0()),
            refsel::INTVCC1 => adc.refctrl.modify(|_, w| w.refsel().intvcc1()),
            refsel::AREFA => adc.refctrl.modify(|_, w| w.refsel().arefa()),
            refsel::AREFB => adc.refctrl.modify(|_, w| w.refsel().arefb()),
        }
        while adc.status.read().syncbusy().bit_is_set() {}
        Self { adc }
    }
// (...)

When I short 3v3 to AREF, I don't get the full range as expected, so there might be something else going on as well?

I think how I would prefer to do it would be to default to 3v3 in the constructor, and then have a method that changes it later. We could do the same for sampling rate and other parameters.


Added unit tests for Mailjet system.

Hell, you're even working on saturday at 11pm?! Thanks man! I review this :) .

Yep I'm working now! I want to close my other PR asap.


headings

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

If this PR is for a new extension or change to an existing extension, use the following to try out the changes in this PR:
docker run -it microsoft/azure-cli:latest
export EXT=<NAME>
pip install --upgrade --target ~/.azure/cliextensions/$EXT "git+https://github.com/williexu/azure-cli-extensions.git@storage_link#subdirectory=src/$EXT&egg=$EXT"


Deprecation in Android 11 stops the plugin from working

Due to the deprecation of AsyncTask on Android 11 the plugin is not working anymore
[deprecation] Registrar in PluginRegistry has been deprecated
[deprecation] AsyncTask()
[deprecation] executeOnExecutor
[deprecation] doInBackground
[deprecation] onPostExecute(Result)

Same https://github.com/lukasgit/flutter_contacts/issues/196

and #204 I think

Just reading https://www.simplifiedcoding.net/android-asynctask/ and looking how to replace it at https://github.com/lukasgit/flutter_contacts/blob/master/android/src/main/java/flutter/plugins/contactsservice/contactsservice/ContactsServicePlugin.java#L421
Not done this before, but will have a go.

Due to the deprecation of AsyncTask on Android 11 the plugin is not working anymore
[deprecation] Registrar in PluginRegistry has been deprecated
[deprecation] AsyncTask()
[deprecation] executeOnExecutor
[deprecation] doInBackground
[deprecation] onPostExecute(Result)

@andrlange which bits aren't working for you? I still see all contacts but can't use these:
ContactsService.openContactForm()
ContactsService..openDeviceContactPicker()

but I they are not related to GetContactsTask or GetAvatarsTask which use AsyncTask

By switching on debug logging I even can't get the app build for Android anymore.
I would recommend to transform the Android Java part to Kotlin so Kotlin Coroutines would replace Java Async Tasks. Most of the code should be translated quite simple because it's most work is mapping.

@Faiyyazauxy could you look into this?

Okay i will try to convert it and if done i will create a PR

Any updates on fixing this? App keeps crashing when trying to get contacts from device.

@Faiyyazauxy thanks for the update, which staging PR are you referring to?

The contact add & edit falls into such categories. So there is a new requirement where we need to write a tag in manifest mentioning the permission for such special permission. Check out this link for more explaination : https://developer.android.com/training/package-visibility/use-cases

What are the manifest queries for contacts?
I recently had to do this:
    <!-- AppAuth and url_launcher targeting API 30 or new (Android 11 or newer) -->
    <queries>
        <intent>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" />
        </intent>
        <intent>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.APP_BROWSER" />
            <data android:scheme="https" />
        </intent>
        <!-- url_launcher only -->
        <intent>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="mailto" />
        </intent>
    </queries>

but presume the native code needs updating to check for these too as per https://developer.android.com/training/package-visibility/use-cases

Going to test this now as I see there is a new release (0.6.1)


chore(release): publish v0.4.0

With the release of version 0.4, we would like to feature the features mentioned in this issue #667 . I would like to release it after completing the integration tests mentioned here. I would like to hear the opinions of Peter and other contributors at the Contributors conference and so on.

Thank you for thinking about version 0.4. I appreciate it.
With the release of version 0.4, we would like to feature the features mentioned in this issue #667 . I would like to release it after completing the integration tests mentioned here. I would like to hear the opinions of @petermetz and other contributors at the Contributors conference and so on.

We agreed in the maintainer's call today to issue the release on the 31st of March, 2021.

@sfuji822 @takeutak Cheers, glad we could make it in time! I'll issue the release ASAP.


Fix cursor not showing when tabbing into multiline TextInput

Please select one of the following

[ ] I am removing an existing difference between facebook/react-native and microsoft/react-native-macos :thumbsup:
[ ] I am cherry-picking a change from Facebook's react-native into microsoft/react-native-macos :thumbsup:
[x] I am making a fix / change for the macOS implementation of react-native
[ ] I am making a change required for Microsoft usage of react-native

Summary
This bug happens because RCTUITextView (which multiline TextInput uses) was overriding NSTextView's becomeFirstResponder method and didn't call [super becomeFirstResponder].
This seems to mess with AppKit's logic of drawing the cursor initially.
This is alluded to in the docs for [NSTextView becomeFirstResponder]:

If the previous first responder was not a text view on the same layout manager as the receiving text view, this method draws the selection and updates the insertion point if necessary.

Simply switching to call [super becomeFirstResponder] led to a cryptic exception within AppKit. This was likely because in the reactFocus (and reactFocusIfNeeded) we were calling becomeFirstResponder directly.
The docs for [NSResponder becomeFirstResponder] say:

Use the NSWindow makeFirstResponder: method, not this method, to make an object the first responder. Never invoke this method directly.

There necessary fixes are already part of https://github.com/microsoft/react-native-macos/commit/84c08634eabeb5e0690ded1cb35614cb1ec856c3#diff-8a3ec110f2ee884d2ef078efddc4ebba9413c7e8cb90b6f5cebff19b2c0a1951 and hence not included in this diff
#if TARGET_OS_OSX // [TODO(macOS GH#774).
	if (![[self window] makeFirstResponder:self]) {
#else
// ...
}

- (void)reactFocusIfNeeded
{
	if (self.reactIsFocusNeeded) {
#if TARGET_OS_OSX // [TODO(macOS GH#774)
		if ([[self window] makeFirstResponder:self]) {
#else
// ...
}

Changelog
[macOS] [Fixed] - Fix cursor not showing when tabbing into multiline TextInput
Test Plan
Using this example
            <>
              <View
                focusable={true}
                style={styles.row}
                validKeysDown={['g', 'Escape', 'Enter', 'ArrowLeft']}
                onKeyDown={this.onKeyDownEvent}
                validKeysUp={['c', 'd']}
                onKeyUp={this.onKeyUpEvent}></View>
              <TextInput
                blurOnSubmit={false}
                placeholder={'Singleline textInput'}
                multiline={false}
                focusable={true}
                style={styles.row}
                validKeysDown={['ArrowRight', 'ArrowDown']}
                onKeyDown={this.onKeyDownEvent}
                validKeysUp={['Escape', 'Enter']}
                onKeyUp={this.onKeyUpEvent}
              />
              <TextInput
                placeholder={'Multiline textInput'}
                multiline={true}
                focusable={true}
                style={styles.row}
                validKeysDown={['ArrowLeft', 'ArrowUp']}
                onKeyDown={this.onKeyDownEvent}
                validKeysUp={['Escape', 'Enter']}
                onKeyUp={this.onKeyUpEvent}
              />
            </>

Before
https://user-images.githubusercontent.com/484044/183539803-0ad4601d-7f17-4d21-a4eb-ea7c871f23c9.mov
After
https://user-images.githubusercontent.com/484044/183539819-8721395e-46dd-479b-9889-3aa65c5c1182.mov

Thanks! Glad my changes are kind of "followed up" here


Python support for segmentation_with_graph layers

The neuroglancer python interface wasn't working with the new segmentation_with_graph layer type, resulting in errors when trying to programmatically generate neuroglancer states with it. This should fix that by adding a base segmentation class with all the machinery and subclassing it to set the type field as needed by precomputed and graphene-style segmentation sources.

Lgtm - Python 2 test failing is unrelated to this PR.


Reorder loadMoreChildrenImpl calls

Fixes #1600 for me. However, I'd like some more testing because it's such a weird fix.

I think we should investigate the root cause more.  We're gonna run out of places to move that line of code 😬


validate stamps without  the extra  steps of marshalling/unmarshalling

the postage.ValidStamp func takes a chunk and stamp bytes args.
there are cases in the codebase where the stamp is not raw byte form and we need to marshal the stamp first for validation.
We should have a new validate func that takes in a chunk and validate the stamp attached the chunk without marshalling/unmarshalling.


Remove get acl scheduler endpoint as it's not used

@KatrinIhler, can you take a look at the conflicts?

@lkiesow Thanks, done!


Add Unit Tests

As we start to implement new features and have more developers, unit tests will be necessary to avoid breaking functionality.
Also, this tool is provided as-is, without Microsoft support (outside of the team here). It will encourage developer adoption.

Hi @colincmac @waelkdouh! As a user and (potential) contributor it would make life a lot easier if we had something like this. I'm not sure whether it should be a Unit Test, feels more like this project needs integration testing.
As I'm not sure how testing is done currently behind the scenes I feel a bit reluctant to contribute Integration Testing for the whole project, could you give a bit of insight in what is going on behind the scenes with regard to testing?
My suggestion would be to make the tests used public, as it would make contributing easier. If there is nothing yet, I could make a start with:

Providing Bicep/scripts to set up a starting situation (APIM Dev + Prod and Azure DevOps/GH)
Create a .NET test project which does things like:

Create repos in AzDO and GH
Create APIs in Dev Instance
Create AzDO pipelines/GH workflows
Change APIs in a Dev Instance
Check if everything works out
Cleans it up

This is a huge undertaking and would be only worth it if it has your support from the start. What is your view on the matter?

I will let @guythetechie speak to this as I know he started working on integration testing starting yesterday.

Thanks for your feedback and your willingness to contribute, @aristosvo. I agree that this project needs integration tests, as we currently don't have any. They should have been there from the start, but better late than never...
As @waelkdouh mentioned, I started playing around with this yesterday. Here's what I had in mind:
Extractor tests
Goal: Validate that extracted data matches instance data.
Arrange

Create APIM instance with test data (APIs, policies, etc).
Compile extractor binaries.

Act

Run extractor against APIM instance.

Assert
Make sure extracted resources match APIM instance state. Something like:

For each APIM resource we support:

Get resource state in APIM instance
Get extracted resource (JSON, policy XML, etc)
Make sure they match

Publisher tests
Goal: Validate that artifacts are published successfully.
Arrange

Create a clean APIM instance.
Create an artifacts folder with test data, like this one.
Compile extractor and publisher binaries.

Act

Run publisher with the test data.

Assert

Run extractor on published instance.
For each APIM resource we support, make sure extracted artifact matches test data artifact. Using extractor here gives extra sanity checks that extractor is working.

For both of these tests, even just having the Arrange/Act sections work successfully would be a big improvement. Would love to hear some feedback.
Note: I felt .NET was too "low-level" for my publisher tests, so I went with PowerShell and Pester. Here's a proof of concept:
BeforeDiscovery {
    $parameters = @{
        testArtifactsPath = "C:\Users\user\source\repos\github\Azure\apiops\tools\tests\artifacts"
        extractorSourcePath = "C:\Users\user\source\repos\github\Azure\apiops\tools\code\extractor\extractor.csproj"
        publisherSourcePath = "C:\Users\user\source\repos\github\Azure\apiops\tools\code\publisher\publisher.csproj"
    }
}

Describe "Publisher tests" -ForEach $parameters {
    BeforeAll {
        Set-StrictMode -Version Latest
        $ErrorActionPreference = "Stop"
        $VerbosePreference = "Continue"
        $InformationPreference = "Continue"

        Write-Information "Creating resource group..."
        $resourceGroupParameters = @{
            Name     = "apiops-test-rg"
            Location = "eastus"
            Force    = $true
        }
        $resourceGroup = New-AzResourceGroup @resourceGroupParameters

        Write-Information "Creating APIM instance..."
        $apimInstanceParameters = @{
            "ResourceGroupName" = $resourceGroup.ResourceGroupName
            "Name"              = "apiopststr-apim"
            "Location"          = $resourceGroup.Location
            "Organization"      = "apiops"
            "AdminEmail"        =<EMAIL_ADDRESS>            "Sku"               = "Consumption"
        }
        $apimInstance = New-AzApiManagement @apimInstanceParameters

        Write-Information "Compiling extractor..."
        $extractorOutputFolderPath = Join-Path $TestDrive "extractor"
        & dotnet publish $extractorSourcePath --self-contained --runtime "win-x64" -p:PublishSingleFile=true --output "$extractorOutputFolderPath"
        $extractorFilePath = Join-Path $extractorOutputFolderPath "extractor.exe"

        Write-Information "Compiling publisher..."
        $publisherOutputFolderPath = Join-Path $TestDrive "publisher"
        & dotnet publish $publisherSourcePath --self-contained --runtime "win-x64" -p:PublishSingleFile=true --output "$publisherOutputFolderPath"
        $publisherFilePath = Join-Path $publisherOutputFolderPath "publisher.exe"

        Write-Information "Running publisher..."
        $env:AZURE_BEARER_TOKEN = (Get-AzAccessToken).Token
        $env:AZURE_SUBSCRIPTION_ID = (Get-AzContext).Subscription.Id
        $env:AZURE_RESOURCE_GROUP_NAME = $apimInstance.ResourceGroupName
        $env:API_MANAGEMENT_SERVICE_NAME = $apimInstance.Name
        $env:API_MANAGEMENT_SERVICE_OUTPUT_FOLDER_PATH = $testArtifactsPath
        $output = & $publisherFilePath
        if ($LASTEXITCODE -ne 0) {
            throw "Publisher failed. Output is $($output | Out-String)"
        }

        Write-Information "Running extractor..."
        $extractorArtifactsPath = Join-Path $TestDrive "extractor artifacts"
        $env:API_MANAGEMENT_SERVICE_OUTPUT_FOLDER_PATH = $extractorArtifactsPath
        $output = & $extractorFilePath
        if ($LASTEXITCODE -ne 0) {
            throw "Extractor failed. Output is $($output | Out-String)"
        }
    }

    Context "Policy fragments" -ForEach $parameters {
        BeforeDiscovery {
            $policyFragmentsFolder = Join-Path $testArtifactsPath "policy fragments"
            $policyFragments = $policyFragmentsFolder | Get-ChildItem -Directory
            $parameters = $policyFragments | ForEach-Object {
                @{
                    name          = $_.Name
                    artifactsPath = $_.FullName
                }
            }
        }

        It "Publishes <_.name> XML successfully" -ForEach $parameters {
            $testXmlPath = Join-Path $artifactsPath "policy.xml"
            $testXmlContent = Get-Content -Path $testXmlPath -Raw

            $extractorXmlPath = Join-Path $extractorArtifactsPath "policy.xml"
            $extractorXmlContent = Get-Content -Path $extractorXmlPath -Raw

            $extractorXmlContent | Should -Be $testXmlContent
        }
    }
}

Nice, simple and AAA, like it.
Would you keep the pipelines out of scope? Seems a reasonable choice for now.

Yep, I think we can leave the pipelines out of scope for now.


Shadowing of index.js has no effect

During usage of the theme (e.g. in the demo) when overriding index.js via demo/src/gatsby-theme-teranova/data/index.js the customization is just ignored (gatsby develop).

Merged #15


gtk-button-images is deprecated

we should stop using it

Also deprecated is use-stock. Not sure if that deserves a different issue.


Debug save settings persisting after disabling debug mode

[x] I have checked the known issues and searched Github to ensure this issue has not already been reported.
[x] This is not a feature request, I know those belong on Discord/Github Discussions.

Description of the bug:
When you set the debug save to anything, even with debug mode turned off, that settings will still apply to any new save and you must turn it back on and switch it to empty save to create normal saves again.
Can you reproduce? If so please list the steps:

[x] Yes, here are the steps to reproduce the bug:

Turn on debug mode and change the save file mode to something other than empty save
Turn debug mode off
Create a new save, it will create a debug save, rather than a normal empty save

Expected behavior:
With debug turned off, the debug file save settings should not affect creating a new file and it should work like a vanilla new save would.
System Information:

OS: Windows 11
GFX Backend: DirectX
Game Version: 1.0.0
Rom Version: US 1.0

Fixed by #643

Fixed


[DOC] What is gas and its relation to NEAR tokens?

Is your feature request related to a problem? Please describe.
Gas vs NEAR tokens is a common question for newcomers.
Describe the solution you'd like
Here is my take on explaining this (we need to review this info as my understanding might be incomplete, and I think we should avoid comparison with "money"):

gas is a unified unit of the computational cost, e.g. to store 1 byte of information is 1 gas and doing a computation of 2+2 takes 3 gas, etc. Token, on the other hand, is similar to "money", which you use to buy anything, including gas, which you spend to do computations.
Thus, accounts have their balance in NEAR tokens and gas is bought on the fly when a transaction gets processed.
So here is what happens. Account has its balance in NEAR tokens and when a user wants to send a transaction, he/she decides how much gas at most he/she is willing to spend for the transaction (some transactions require an almost constant amount of gas, but FunctionCalls are hard to predict); once the transaction reaches the network, it automatically "buys" gas for the current price, and executes the transaction; once the transaction is done, the leftover gas is converted back to NEAR tokens and the account gets only "charged" for the used gas.
There is a prepaid gas for a transaction, and it only gets prepaid on the spot, so there is no way to prepay it for an account or something like that.

this has been mentioned on Discord recently
NEAR

Gas is measured in its own unit and the cost is computed by multiplying the gas price at the block which contains the transaction

DEV

Is there somewhere I can read more about that?  I'm assuming gas price is set to 1? Which is probably generating the confusion here since it looks like the balance before / after the transaction is the same amount as gas burned, but its actually two different units subtracting with a gas amount * 1 NEAR / 1 gas conversion or alike

NEAR

No minimum gas price is 5000 yocto NEAR for now

also there is some related confusion about prepaid gas from an end-user perspective -- how is this handled?
DEV

Belatedly, thanks for the pointer to the github issue on gas. I'm still not too clear on how prepaid gas works. My sense from reading existing docs is that NEAR lets smart contract/app developers choose to pay the gas cost for a user to call contract functions. The docs at nearprotocol.com/developers say The NEAR Wallet lets your users authorize low-stakes transactions without multiple pop-ups or in many cases, without even holding tokens. As a developer, how do I let users interact with my contract without them needing to hold tokens? Thanks for ur patience!

how about in the same section as other "Key Concepts" like Account and Transaction?

Sounds good to me

closed by #195


TypeError for path

Describe the bug
I am using DemoGPT on MAC, and ran into TypeError once I submitted.
To Reproduce
Steps to reproduce the behavior:

On terminal, run app with command streamlit run app.py
Click on the example Language Translator
Click submit button
See error

Error Message
Language Translator 📝 2023-07-03 17:26:34.783 Uncaught app exception Traceback (most recent call last):   File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 552, in _run_script     exec(code, module.__dict__)   File "/Users/mchuang/Desktop/Testing tools/DemoGPT/src/prompt_based/app.py", line 67, in <module>     for data in generate_response(demo_idea):   File "/Users/mchuang/Desktop/Testing tools/DemoGPT/src/prompt_based/app.py", line 16, in generate_response     for data in agent(txt,num_of_iterations):   File "/Users/mchuang/Desktop/Testing tools/DemoGPT/src/prompt_based/model.py", line 69, in __call__     response, error = self.run_python(total_code)   File "/Users/mchuang/Desktop/Testing tools/DemoGPT/src/prompt_based/model.py", line 35, in run_python     process = subprocess.Popen([python_path,tmp.name], env=environmental_variables,stdout=PIPE, stderr=PIPE)   File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 966, in __init__     self._execute_child(args, executable, preexec_fn, close_fds,   File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 1717, in _execute_child     and os.path.dirname(executable)   File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/posixpath.py", line 152, in dirname     p = os.fspath(p) TypeError: expected str, bytes or os.PathLike object, not NoneType
Screenshots

Desktop (please complete the following information):

OS: macOS Monterey ver.12.3.1
Browser: Chrome
Version: 114.0.5735.106

Hey @Yayutan ,
Thank you for your detailed report and for bringing this issue to our attention. We sincerely apologize for any inconvenience caused. It appears that the issue was related to the "which" command runs in the macOS operating system, as you rightly pointed out.
I'm glad to inform you that we've pushed a new update to the repository that should resolve the issue. You should now be able to run the Streamlit app without encountering this problem.
Please update your local copy of the repository and retry running the Streamlit app. If you encounter any further issues, don't hesitate to report them. Your feedback is highly appreciated and helps us improve the overall user experience.
Thank you for your support and contribution to DemoGPT.
Best,
Melih


Docker Server sending empty responses

I have installed the latest docker and then downloaded the docker image as below. Docker terminal shows the following output. However a curl or Google Chrome complains an empty response
Let me know what is going wrong....

Can you try listing the files?
curl localhost:8088/files

Or creating a file?
curl -XPOST --data-binary<EMAIL_ADDRESS>http://localhost:8088/files/create

@lavanyadeepak are you having this issue still?

@lavanyadeepak I'm closing this issue, but if you have problems or questions please reach out on slack.


Issue 380

Cleans up the feature gaps and test gaps in database tools

Please merge other PRs first
[ERROR]   JDBCSearchDateTest>AbstractSearchDateTest.testSearchDate_dateTime_Day_noTZ:640->AbstractPLSearchTest.assertSearchReturnsSavedResource:115 Expected resource was not returned from the search

I flagged a few spots where the formatter inserted an akward line break. Otherwise LGTM.

Got them... Main.java is significantly refactored since this change, so I'm opting to not change (reduce potential conflicts)


Support deep watching

$watch has a 3rd parameter, and when set to true it watches the entire object.  It would be useful to be able to do i.e. ui-validate-watch-deep="..."

Isn't it an almost duplicate of #12 ? would #12 be enough for your use-case ?

I also believe this is a duplicate of #12

$watchCollection only goes 1 level deep, which might not work 100% as needed in my case.

I made a pull request for that feature... https://github.com/angular-ui/ui-validate/pull/16

Closed via #16


[1.12] Added docs for policy exceptions support in the CLI.

Related issue
#1136

Proposed Changes

Checklist

[] I have read the contributing guidelines.
[] I have inspected the website preview for accuracy.
[] I have signed off my issue.

Thanks, please use closing keywords to link your PR to the issue it will close.

#use of -e shorthand letter should be mentioned in docs


Add remote api to configure ovn remotely.

This is not needed anymore as we have native integration.


[Wallet] Change Podfile source

Description
There's an issue in the CocoaPods CDN: https://github.com/CocoaPods/CocoaPods/issues/10078
which causes pod install to intermittently fail. The linked issue suggests reverting this change in a few days when everything stabilizes.

Some check didn't like the fix and it looks like it was fixed by CocoaPods: https://github.com/CocoaPods/CocoaPods/issues/10078 so closing this :)


Note that only zero input to uncompact is no longer an error

Unfortunately this wasn't listed in the v3.4.3 tag, but it is a user visible change that uber/h3-java#44 needed to be updated for.

Coverage remained the same at 100.0% when pulling 8e57f48e2626f07537df958120d968315897c88c on isaacbrodsky:changelog-uncompact-zero into fa76f88c06293ff23c050d691a579a6e8f30919b on uber:master.


vscode-languageserver 3.3.0+ can't process connection via stdio expectedly

I updated vscode-languageserver 3.2.2 to 3.3.0.
My test script uses --stdin option.
test script works fine in v3.2.2, but v3.3.0 is not.
Sorry, I can't investigate what change was occurred this issue.
Reproduction environment. yarn && npm run vscode:update && npm run build && npm run test.
https://github.com/prh/prh-languageserver/commit/9630330f39063c588d6533e5acf33e204b67e199
Test script.
https://github.com/prh/prh-languageserver/blob/9584c0944b32e6f50c4ac7b753059c1b77ca961a/package.json#L14
I am glad if there is information on how to make a good test for language server.

I think this fails since the client and server share the same handles from the parent process. This was never expected to work.
You can debug this by starting the server in break mode and see why the stream doesn't work anymore. Alternatively you could look at the connection.test.ts file in the jsonrpc module. This one uses Duplex streams to run a 'client' and 'server' in the same process (in terms of a connection).


CJK character of the file name is garbled - VisualDiff

The filename is 3. 快捷输入.ahk, cannot be shown correctly with its content also.

Maybe its some unicode issue. Can you post an example script content that fails ?

Seems to have no relationship with the script content. In fact, if I change the file name to English, everything is normal. Similarly, if I leave the content only a simple msgbox, "ABC", but keep the file name is Chinese, like 口.ahk, still there is gibberish and blank content shown.
The problem may be lie in the processing of file name/paths I guess? so the VisualDiff cannot find the right ahk file.

Should be good now ^


show red flags on market portfolio cards for markets expiring after cutoff

Flags are present @cillianhunter0 plz confirm they are in the correct location (remember to uncheck the hide markets post cut-off button to see them)

Spacing between flag and market question should be 20px


Find recommended with higher and lower scores. Shuffle results.

We now find 1 article with same score, 1 higher, 1 lower and 3 with score > (placement-2).
Take first 3 results and shuffle.

Pull Request Test Coverage Report for Build 576

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.0009%) to 99.481%

Totals

Change from base Build 574:
0.0009%

Covered Lines:
852

Relevant Lines:
856

💛  - Coveralls


Afford parameterized casting

When using Changeset.cast/3 with parameterized types, there need to be cast/1 and equal?/2 functions available. Simply providing a default values for opts fixes this.

That's interesting. I haven't found that to be the case in using this on my own projects... out of curiosity, what version of Ecto are you using?
That said, I don't see any reason not to accept these changes. Thanks for the contribution, and hopefully this library is helpful to you!

what version of Ecto are you using?

3.12.5


Fix unportable test(1) operator.

'=' is the standard one, only some shells support '=='.

Thanks!


fix: increase timeout when writing screenshots

Default write timeout is 10 seconds. This timeout can be breached for users with slow upload speeds trying to write screenshots of high resolution or detailed (e.g., with HD plugin) environments. This PR raises the write timeout for such calls to 30 seconds.

What if it was a normal config, visible in the ui?
19 gru 2022 08:14:39 iProdigy @.***>:

@.**** commented on this pull request.

In src/main/java/dinkplugin/message/DiscordMessageHandler.java[https://github.com/pajlads/DinkPlugin/pull/96#discussion_r1051873964]:

public class DiscordMessageHandler {
     private final Client client;
     private final DrawManager drawManager;
     private final OkHttpClient httpClient;
     private final DinkPluginConfig config;
     private final ScheduledExecutorService executor;

+    @Inject
+    public DiscordMessageHandler(Client client, DrawManager drawManager, OkHttpClient httpClient, DinkPluginConfig config, ScheduledExecutorService executor) {
+        this.client = client;
+        this.drawManager = drawManager;
+        this.config = config;
+        this.executor = executor;
+        this.httpClient = httpClient.newBuilder()
+            .addInterceptor(chain -> {
+                Request request = chain.request().newBuilder()
+                    .header("User-Agent", DinkPlugin.USER_AGENT)
+                    .build();
+                Interceptor.Chain updatedChain = chain;
+                // Allow longer timeout when writing a screenshot file to overcome slow internet speeds
+                if (request.body() instanceof MultipartBody && Utils.hasImage((MultipartBody) request.body())) {
+                    updatedChain = chain.withWriteTimeout(30, TimeUnit.SECONDS); // default is 10 seconds
Should we get the timeout seconds from a hidden config setting instead?
—
Reply to this email directly, view it on GitHub[https://github.com/pajlads/DinkPlugin/pull/96#pullrequestreview-1222393292], or unsubscribe[https://github.com/notifications/unsubscribe-auth/AF62MIXLYDDZZRZGKJ4QO2TWOADNNANCNFSM6AAAAAATC3FYM4].
You are receiving this because you are subscribed to this thread. [data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAAAAkSURBVGiB7cExAQAAAMKg9U9tDQ+gAAAAAAAAAAAAAAAA4NQAMv0AAa3l6BAAAAAASUVORK5CYII=###24x24:true###][Obrazek śledzący][https://github.com/notifications/beacon/AF62MIRCE4WC5S24LANRNXTWOADNNA5CNFSM6AAAAAATC3FYM6WGG33NNVSW45C7OR4XAZNRKB2WY3CSMVYXKZLTORJGK5TJMV32UY3PNVWWK3TUL5UWJTSI3Q64Y.gif]Message ID: @.***>

If we decide to expose this as a user-facing setting, I think it should be under a collapsed-by-default category. I'm not against an "Advanced" category with various useful-for-very-few-people settings

The latest commit adds an "Advanced" category at the bottom, which is collapsed by default.
The category itself has a tooltip with a warning for users

It also exposes the retry options from #94

The tooltip for the Image Upload Ti

meout explains exactly what it does


Feat/handler client settings

Adds self.get_client_settings() and subsequently self.client_settings.

Stick this on hold for me please... Just digging into something.

There was some confusion on my behalf that @cwjohnston has cleared up regarding the client values in an event. Will submit another PR to bugfix this without needing this feature branch.


Using CLI against PBIX.

What are you trying to achieve?
I would like to run scripts from the CLI. However, I would need to run the script on a local PBIX file.  Is this possible?
What have you tried so far?
I have demonstrated a functioning CLI, but cannot figure out where to go from there.

You cannot run a CLI directly against a PBIX, as Tabular Editor can't work with PBIX files directly.
Your options are:
A) Launch PBI Desktop first, with the PBIX you need to connect to, then run the Tabular Editor CLI against the Power BI Desktop instance that holds the PBIX. Use the -L switch of the CLI to specify that it should connect to Power BI Desktop (assumes that exactly 1 instance of PBI Desktop is running - otherwise you need to know the port number).
...or...
B) Save the PBIX file as a PBIT (Power BI Template), then run the CLI against that (note: making changes to a PBIT file through 3rd party tools is not supported by MicrosofT).


Fix envoy dashboard with custom namesapce

To fix https://github.com/istio/istio/issues/30691

@shamsher31: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-pilot-multicluster-tests_istio
884c39593cbf929103a62d9033fa930e5bcc570b
link
/test integ-pilot-multicluster-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test integ-pilot-multicluster-tests_istio

Thanks!  Worth cherry-picking to 1.9?

Thanks! Worth cherry-picking to 1.9?

Yes, but will be available in 1.9.1 as we are close to releasing 1.9 tomorrow.

In response to a cherrypick label: new pull request created: #30732


Support variable batch size in throughput callback

What does this PR do?
This PR allows the throughput monitor callback to support variable batch size
Fixes #20235

Before submitting

Was this discussed/agreed via a GitHub issue? (not for typos and docs)
[ ] Did you read the contributor guideline, Pull Request section?
[ ] Did you make sure your PR does only one thing, instead of bundling different changes together?
Did you make sure to update the documentation with your changes? (if necessary)
Did you write any new necessary tests? (not for typos and docs)
[ ] Did you verify new and existing tests pass locally with your changes?
Did you list all the breaking changes introduced by this pull request?
Did you update the CHANGELOG? (not for typos, docs, test updates, or minor internal changes/refactors)

PR review
Anyone in the community is welcome to review the PR.
Before you start reviewing, make sure you have read the review guidelines. In short, see the following bullet-list:

Reviewer checklist

[ ] Is this pull request ready for review? (if not, please submit in draft mode)
[ ] Check that all items from Before submitting are resolved
[ ] Make sure the title is self-explanatory and the description concisely explains the PR
[ ] Add labels and milestones (and optionally projects) to the PR so it can be classified

📚 Documentation preview 📚: https://pytorch-lightning--20236.org.readthedocs.build/en/20236/

hey @alex-hh this is still in draft, are you planning to finish this up? I'll be happy to merge if you add a test


Non-throwing execute/3 function

I have successfully established a connection and queried the remote Cassandra instance I have setup. However in the process of writing tests to try and catch invalid input or connections I have come across a different issue.
So I can successfully connect to a cassandra instance via the following:
result = Xandra.start_link([
  nodes: ["#{config.dbhost}"],
  name: :cluster,
  authentication: {Xandra.Authenticator.Password, [username: config.dbuser, password: config.dbpass]},
])

and run simple queries like
response = Xandra.execute(conn, "use #{keyspace}")

However if the auth details are incorrect the execute/3 (fails correctly like execute!/3 but) always raises an error instead of as per the documentation returning a tuple {:error, reason} I can obviously do a try/rescue but the exception received from the execute is a bit more precise than the generic DBConnection.ConnectionError which returns
** (DBConnection.ConnectionError) connection not available because of disconnection

Am I missing something?

@peterRd the problem is that Xandra still tries to connect to Cassandra even when authentication details are wrong. You can see this by looking at what Xandra logs:

```
13:10:42.718 [error] Xandra.Connection (#PID<0.380.0>) failed to connect: ** (Xandra.Error) Username and/or password are incorrect
13:11:00.762 [error] Xandra.Connection (#PID<0.380.0>) failed to connect: ** (Xandra.Error) Username and/or password are incorrect
13:11:13.240 [error] Xandra.Connection (#PID<0.380.0>) failed to connect: ** (Xandra.Error) Username and/or password are incorrect
13:11:35.105 [error] Xandra.Connection (#PID<0.380.0>) failed to connect: ** (Xandra.Error) Username and/or password are incorrect
</details>

As you can see it treats bad auth details as a normal disconnection/inability to connect and tries to periodically reconnect. When you execute a query on a disconnected connection, you get an error, even with the non-bang version of `execute`. You can verify this by

1. starting the C* server
2. connecting through Xandra (`{:ok, conn} = Xandra.start_link()`)
3. killing the C* server
4. trying to execute a few queries (note the first might not raise because it still didn't detect the disconnection, so it will error and return the error it detected mid-flight)

Closing this as it's related to DBConnection, not really to Xandra. Thanks @peterRd! 💟


exception thrown in server start (boost related)

I'm using boost 1_62, windows 10, running with VS 2013, deploy to win32.
When i do server.start(), the exception below is thrown.
     boost_socket_acceptor.hpp:   boost::system::error_code ec;   this->get_service().open(this->get_implementation(), protocol, ec);   boost::asio::detail::throw_error(ec, "open");
My code is just the server implementation. nothing else.
Client implementation works fine btw., i just can't make the server start.
Do you have any ideas?

Have you tried the v1.3.1 release? I'm curious if I have done some changes since the v1.3.1 release that have broken MSVC compilation somehow.

Also, does the ws_examples.cpp work? It might be that you are using a different port than 8080? Some ports might need administrator rights to bind to I guess.

I tried v1.31, tried boost 1_61, other ports, and tested it on another machine runnig windows7. still have the problem.
Maybe it's somehow related to VS some settings. Any clues?
I was not able to compile the tests, there were several linking errors, so i gave up. However, the client implementation works fine.
Here is the crash btw.:

Not sure what to do here as I do not use Windows. But it seems to be a boost on Windows issue if I'm not mistaken. Could it be the way you install boost?
The tests does not compile with MSVC, since MSVC is missing option to turn off access control (gcc/clang's -fno-access-control). In the future though, I see no reason why not to use clang on Windows, that is, when clang is stable for Windows.


Connections are available, but new connect operation hangs

When my app has been running for 12 hours or more, it seems to "leak" connections. pgAdmin tells me  there are 15 connections open (I set the pool-size to 10), but new requests hang on the connect operation even though there's nothing else using the connections. This may be due to my not closing a connection in some situations, so I'm trying figure out where. I am also trying to figure out ways where I can be notified when, say, 13 connections have already been used, so I can figure out why (this is not an app that's being used very heavily - yet). Hence these questions:

Is there a way to get the current number of open connections? I could set some kind of event send me an email, if so, when it hits a specific number.
Is there a way to know which of those connections are being used? Maybe even a timestamp when ti was last used? I could figure out which ones are not being used, do some recovery stuff.
Are there better ways of trying to figure out WHERE connections are "leaking" other than logging exits? I ask because node-inspector won't help - my troubles occur only every few hours.

Thanks for all the help!

Are you sure this is the right place to post this issue, not https://github.com/brianc/node-postgres ?
Or are you refering to the resource management APIs of bluebird?

Dumb of me to have not checked the API - that will help, thanks!
I did worry about whether this should be on the node-postgres issue list, but I finally (and I see now, correctly!) posted here.


Bump production to 0.33.0

What are you changing?

[ ] Releasing a new version of Notify
[x] Changing kubernetes configuration

Provide some background on the changes
Releasing https://github.com/cds-snc/notification-manifests/pull/326 to production
Checklist if making changes to Kubernetes:

[x] I know how to get kubectl credentials in case it catches on fire

Closing, did it in https://github.com/cds-snc/notification-manifests/pull/338


Added CFDCharge to Types.py and currency to EquitySummaryByReportDateInBase

Added these for my project to work:

currency field to EquitySummaryByReportDateInBase
class CFDCharge to be able to add CFD Charges to the flex query

They work for me.

Forgot 2 missing fields from OpenPositions that cause failure for me if missing, added these as the second commit

CFDCharge, nice one, thanks.


Tenants

Set up two tenants (domains) in Keycloak: ManuFracture and Smithereens just like in the demo cluster. This way we'll be able to demo getting a fresh token and using it to pump data into the system from the shop floor.

actually do it the other way around: RAMP is the auth server. Check: can RAMP issue service tokens, e.g. for pushing data from the shop floor.

done during Nov 2021 demo sprint.


[QUERY]Best way to translate token provider to something in KeyVault Secret

Library name and version
Azure.Security.KeyVault.Secrets
Query/Question
We are migrating from KV to Azure KV Secrets. I'm unable to find how to translate below highlighted code to KV secret. If it was just ITokenProvider, I would have used DefaultAzureCredential() but the below tokenprovider is created with some parameters.
        builder.Register(r =>
        {
            var dynamicConfigurationProvider = r.Resolve<IDynamicConfigurationProvider>();
            var runnerOptions = r.Resolve<IOptions<RunnerOptions>>();
            var certProvider = r.Resolve<ICertificateProvider>();
            **ITokenProvider tokenProvider = new EntryPointTokenProvider(certProvider, runnerOptions.Value.TestType, dynamicConfigurationProvider);**

            var logger = r.Resolve<ILogger<OutgoingRequestDelegatingHandler>>();
            var operationContextAccessor = r.Resolve<IOperationContextAccessor>();

            return new KeyVaultClient((authority, resource, scope) => tokenProvider.GetAccessTokenAsync(resource), new OutgoingRequestDelegatingHandler(logger, operationContextAccessor, dynamicConfigurationProvider));
        }).As<IKeyVaultClient>().SingleInstance();

Environment
No response

I'm not able to highlight code for some reason. The code that needs translation is -> ITokenProvider tokenProvider = new EntryPointTokenProvider(certProvider, runnerOptions.Value.TestType, dynamicConfigurationProvider);

//cc: @christothes

Thank you for your feedback.  Tagging and routing to the team member best able to assist.

@schaabs Could you please answer my query?

Hi @vidya123 - Does something like this work for your scenario? https://github.com/jongio/azidext/blob/master/net/Azure.Identity.Extensions/AzureIdentityTokenProvider.cs

@vidya123, Just to clarify you're transitioning from Microsoft.Azure.KeyVault.KeyVaultClient to Azure.Security.KeyVault.Secrets.SecretClient correct? All the latest SDK libraries (Azure.* libraries) use the TokenCredential abstraction for authenticating with Azure AD. The Azure.Identity library has various implementations of TokenCredential which you can choose from depending on the authentication flow your application wishes to use. In this case, since you are authenticating a service principal with a certificate, you can use the ClientCertificateCredential to authenticate the SecretClient. It should look something like this:
var client = new SecretClient(vaultUri: new Uri(vaultUrl), credential: new ClientCertificateCredential(tenantId, clientId, clientCertificate));


wrong rule: n/no-unpublished-import

in my code I use import { pathsToModuleNameMapper } from 'ts-jest'; but ts-jest is reported as unpublished
I checked all the requirements to consider the package is published

published in npm and not marked as deprecated
installed in my node_modules
doesn't contain files[]
.npmignore doesn't contain dist/index.js

it's warning 'ts-jest' was used, but not listed in the pkg.dependencies. as stated in the docs:
This intends to prevent "Module Not Found" error after npm publish.
💡 If you want to import devDependencies, please write .npmignore or "files" field of package.json.

I am closing this, please re-open this if you provide an example :)


Configure dependabot to have separate minor updates for in-devel deps

The frequenz-client-base and frequenz-microgrid-betterproto dependencies are in-development and every minor update is potentially (and very likely) a breaking change. Because of this we want dependabot to create separate PRs for minor updates for these dependencies.
For patch updates we still want to group them together, because they not supposed to be breaking changes.

Will test if it works out, if it does we can do the same in other projects where it is very annoying that dependabot updates can't be applied because we depend on some 0.x version that gets automatically bumped as a minor update.


Can I stream an individual participant's audio?

When I stream the audio for an individual participant of Teams meeting, it seems that it streams the whole meeting's audio.
Is there a solution for individual audio streaming?

Hi @HaoTao95, at the moment BDK and the SDK's we use don't support isolated audio. There is a workaround but you have to modify the codebase on your own. In the following Bot Media SDK document  we can observe that we can configure the AudioSocketSettings to receive the unmixed buffers. As the documentation says, you will only receive the top four active speakers (you won't be able to receive all participants' audio) and the bot will receive only unmixed audio and not both unmixed and mixed. Also, the unmixed audio is optimized for machine cognition rather than for human perception, so some concealment treatments aren't applied to the received audio streams in the unmixed mode. If you want to move forward with this workaround, you should modify how the local media session is created, and how the audio buffers are handled.


Extend User vs Claims

Is there a link that can explain when we should extend the user and when we should use claims?

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

ID: 431df4fc-4168-cc8f-d053-9b264d2971c1
Version Independent ID: cd157d04-d596-83fa-6edb-24d52193eb34
Content: Add, download, and delete user data to Identity in an ASP.NET Core project
Content Source: aspnetcore/security/authentication/add-user-data.md
Product: aspnet-core
Technology: aspnetcore-security
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

I think putting the claims in stores them in the cookie that is passed arond for every call, so if you want a commonly used parameter for each user (eg an isadmin one) and you do not want to fetch the entire user object, then claims work better - saves you a DB hit.
On the other hand, if you are fetching the user object anyway, then reading the data from there makes more sense. Putting more user claims in means a larger auth cookie.

In the example above the JwtClaimTypes.Role, VS says JwtClaimTypes does not exist in current context and I couldn't find any reference for it. Using just ClaimTypes.Role though seemed to work but I get the following error at runtime:
InvalidOperationException: No policy found: IsAdmin.
Microsoft.AspNetCore.Authorization.DefaultAuthorizationService.AuthorizeAsync(ClaimsPrincipal user, object resource, string policyName)
Sampql.Pages.Shared.Pages_Shared__LoginPartial.ExecuteAsync() in _LoginPartial.cshtml
@if ((await AuthorizationService.AuthorizeAsync(User, "IsAdmin")).Succeeded)

Thank you for contacting us. Due to a lack of activity on this discussion issue we're closing it in an effort to keep our backlog clean. If you believe there is a concern related to the ASP.NET Core which hasn't been addressed, please file a new issue.


remove ope_loss from out update

I came across this issue in the synthetic data generation online/offline learner notebook when the random learner would have ope_loss values in its interaction results (even though it should be NaN).
Stepping through the code it showed the interaction dict had ope_loss set as a field and before the introduced change the ope_loss value would be overridden in out.

This code change fixes the issue but I think ope_loss shouldn't be set in the interaction dict in the first place and I am not quite sure where it comes from.
The whole logic of popping items out of the interaction and then using them in the end to update the output also seems a bit brittle.
Raising this as a draft first to discuss the best path forward, @mrucker

Agreed with all above. The strange behavior you're seeing is the intersection of three things:

You can set additional fields on interactions and they get passed through to the interactions table. This behavior exists because it is useful for experiments. Maybe your interactions come from specific users and you'd like to know if how well you're doing by user. You can put a "UserId" field onto the interactions and it'll be in your pandas dataframe at the end. If I had to guess when you write your interactions table to csv it has 'ope_loss' and then when you create

I'm happy with taking this as is and leaving a bigger refactor of SimpleEvaluation for later. Alternatively, if you want to take a stab at refactoring SimpleEvaluation you completely have my support. I simply ask that if you want to refactor that you make sure to keep the two items I mentioned above still true (i.e., additional fields passing through as is and runtime performance at least at the current level).

Thanks for the context!
Then let's stick with this bugfix for now as I am back on-call from tomorrow 😅


update docs on ova

Coverage remained the same at 51.133% when pulling 588cc375a588518480b25aa31043481212708458 on hainingzhang:master into 8333e54d756400543e9c40067ccc366ad6ce5461 on vmware:master.


Feature Request : Check for Public Orders via 'Place Crafting Order' UI

Right now if I want to check for available Public Orders I can either log in to every one of my crafting alts and check the crafting table, or go to the NPC that places new Public Orders and check each item that all my crafters can make one by one to see if other orders are listed in the 'View similar orders' section.
Both are very tedious, but if possible, the add-on could quickly check the Place Crafting Order interface for all the recipes I know on my account and show if any are currently available.
I don't know if that's possible, or feasible, or worth the effort to include, but in any case thank you for your time. The add-on is excellent!

Seems very very specific and 99% of people would probably not use this.
Its always possible though to create a weakaura or another addon that uses the craftsim api to do this if u really want to see this


training resnet-164 in cifar10 — train accuracy

I want to train resnet-164 in cifar10.
If I use one machine to train (the batch size is 128) ,  the train accuracy is 48% at the end of the first epoch, but if I use two machine to train (kvstore = dist_sync, the batch size is 64 on each machine) , the train accuracy is  only 43% (not 48%) at the end of the first epoch,  why?
because of the loss of gradients precision? anyone can explain it? thx

use batch-norm layer?

@tornadomeet how to use batch-norm layer? I just follow your introductions in https://github.com/tornadomeet/ResNet
'python -u train_resnet.py --data-dir data/cifar10 --data-type cifar10
--depth 164 --batch-size 128 --num-examples 50000 --gpus=0,1'
thx

because resnet has used bn layer, and bn layer will not be the same when using multi-gpu.

i mean your issue is normal, not a problem.

@tornadomeet thx, i got it


Unable to parse Gradle version catalog when using non standard format

Is there an existing issue for this?

[X] I have searched the existing issues

Package ecosystem
Gradle
Package manager version
8.5
Language version
No response
Manifest location and content before the Dependabot update
/gradle/libs.versions.toml
dependabot.yml content
version: 2
updates:
  - package-ecosystem: "gradle"
    directory: "/"
    schedule:
      interval: "daily"

Updated dependency
N/A
What you expected to see, versus what you actually saw
This is a valid libs.versions.toml file for Gradle, but Dependabot is unable to parse it and errors. The file contains an old dependency, so I would expect it to create a PR to update it.
Native package manager behavior
N/A
Images of the diff or a link to the PR, issue, or logs
proxy | 2024/02/10 06:04:01 proxy starting, commit: bd9d653be769ec5f7b059e15d95d9ed3257252f3
proxy | 2024/02/10 06:04:01 Listening (:1080)
updater | 2024-02-10T06:04:01.930819863 [785388618:main:WARN:src/devices/src/legacy/serial.rs:222] Detached the serial input due to peer close/error.
updater | time="2024-02-10T06:04:03Z" level=info msg="guest starting" commit=409d83fb821a7c266460959144006f8ddc985a54
updater | time="2024-02-10T06:04:03Z" level=info msg="starting job..." fetcher_timeout=10m0s job_id=785388618 updater_timeout=45m0s updater_version=4188c3809767fb723b68ef939a75de1a7e7a9372-gradle
updater | 2024/02/10 06:04:06 INFO <job_785388618> Starting job processing
proxy | 2024/02/10 06:04:07 [002] GET https://github.com:443/nikammerlaan/version-catalog-dependabot-bug-repro/info/refs?service=git-upload-pack
proxy | 2024/02/10 06:04:07 [002] * authenticating git server request (host: github.com)
proxy | 2024/02/10 06:04:07 [002] 200 https://github.com:443/nikammerlaan/version-catalog-dependabot-bug-repro/info/refs?service=git-upload-pack
proxy | 2024/02/10 06:04:07 [004] POST https://github.com:443/nikammerlaan/version-catalog-dependabot-bug-repro/git-upload-pack
proxy | 2024/02/10 06:04:07 [004] * authenticating git server request (host: github.com)
proxy | 2024/02/10 06:04:07 [004] 200 https://github.com:443/nikammerlaan/version-catalog-dependabot-bug-repro/git-upload-pack
proxy | 2024/02/10 06:04:07 [006] POST https://github.com:443/nikammerlaan/version-catalog-dependabot-bug-repro/git-upload-pack
proxy | 2024/02/10 06:04:07 [006] * authenticating git server request (host: github.com)
proxy | 2024/02/10 06:04:07 [006] 200 https://github.com:443/nikammerlaan/version-catalog-dependabot-bug-repro/git-upload-pack
updater | 2024/02/10 06:04:07 INFO <job_785388618> Finished job processing
updater | time="2024-02-10T06:04:07Z" level=info msg="task complete" container_id=job-785388618-file-fetcher exit_code=0 job_id=785388618 step=fetcher
updater | 2024/02/10 06:04:10 INFO <job_785388618> Starting job processing
updater | 2024/02/10 06:04:10 INFO <job_785388618> Finished job processing
updater | 2024/02/10 06:04:10 INFO Results:
updater | Dependabot encountered '1' error(s) during execution, please check the logs for more details.
updater | +-------------------------------+
updater | |            Errors             |
updater | +-------------------------------+
updater | | dependency_file_not_parseable |
updater | +-------------------------------+
updater | time="2024-02-10T06:04:10Z" level=info msg="task complete" container_id=job-785388618-updater exit_code=0 job_id=785388618 step=updater

Smallest manifest that reproduces the issue
A libs.verisons.toml file as simple as this will trigger the issue:
versions.guava = "32.1.3-jre"
libraries.guava = { module = "com.google.guava:guava", version.ref = "guava" }

versions.jedis = "5.1.0"
libraries.jedis = { module = "redis.clients:jedis", version.ref = "jedis" }

This slightly different config is parsed without error:
versions.guava = "32.1.3-jre"
libraries.guava = { module = "com.google.guava:guava", version.ref = "guava" }

The issue appears to be related to the specific ordering of declarations.
Here's a full repo that reproduces the issue.

Now we can put catalog declaration in settings.gradle.kts with for example:
dependencyResolutionManagement {
    versionCatalogs {
        create("libs") {
            version("kotlin", "1.9.22")
            version("ktor", "2.3.9")

            plugin("kt-multiplatform", "org.jetbrains.kotlin.multiplatform").versionRef("kotlin")

            library("ktor-core", "io.ktor", "ktor-client-core").versionRef("ktor")
            library("ktor-serialization", "io.ktor", "ktor-client-serialization").versionRef("ktor")

            // optional
            bundle(
                "ktor",
                listOf("ktor-core", "ktor-serialization")
            )
       }
    }
}

And use that in build.gradle.kts:
plugins {
    alias(libs.plugins.kt.multiplatform)
}

// ...

kotlin {
   sourceSets {
      val commonMain by getting {
            dependencies {
                // individual
                // api(libs.ktor.core)
                // api(libs.ktor.serialization)

                // or by bundle
                api(libs.bundles.ktor)
            }
        }
}


Dockerize tor-browser-selenium

Hi guys,
Hope you are doing well !
Is it possible to dockerize tor-browser-selenium ?
Cheers,
X

Sure, I can't see why not.
This can be a starting point: https://hub.docker.com/r/hkjn/tor-browser/dockerfile

Closing due to inactivity. People are welcome to dockerize this library and send PRs


Plugin development: cljs dependency load failure

I'm having an issue with loading an external cljs dependency (in this case "core.logic") in a simple plugin I'm building. Using Lighttable version 0.8.1 (binary version 0.34.5), with Clojure plugin version 0.3.2 if that helps. Using OSX 10.11.4.
I've created a quick little plugin project to demonstrate the issue. See here: https://github.com/bbbates/logic-test-plugin
Steps to reproduce:

Import project above into LT
Open lt/plugins/logic_test_plugin.cljs
Save/touch file to start the automated build
Eval (cmd-shift-enter) and select the Light Table UI client
Execute command "logic-test-plugin: Say Hello"
Note the error in the console.

Invalid behavior: :lt.objs.sidebar.command/exec-command
TypeError: Cannot read property 'prep' of undefined
    at Function.eval (/Users/brendan/dev/logic-test-plugin/src/lt/plugins/logic_test_plugin.cljs[eval1121]:29:419)
    at b (file:///Applications/Lighttable/LightTable.app/Contents/Resources/app/core/node_modules/lighttable/bootstrap.js:6188:14)
    ...

The version of core.logic I've selected has a target cljs version that is the same as LT, so shouldn't be any issue with cljs incompatibilities I would imagine.
Any ideas?

Try restarting LT. I don't think LT is capable of loading the cljs from the dependency/ies. However when you start next it will load the compiled js for your plugin which now should include the resulting js from core.logic too. I had the same issue with core.async. Let me know if that helps.

Yep, that worked! Should've known the answer would be a restart. The answer is always a restart!
Should probably update the plugin developer FAQ - I will do that shortly.


1 Pull

Hi @OprWebmaster for changes specific to your organization, we recommend to push these to your own fork of the repo. We don't take these contributions back to the main branch. Closing this PR.


Import 1Password downstream changes

This PR imports all the changes that we (1Password) had applied to our local version of this crate in order to fix issues we encountered in production.
These include:

Fixing a crash while verifying a certificate on macOS. We're not sure why this was actually happening and we're unable to narrow the cause down, but we suspect someone's system clock or network setup was introducing a bad timestamp somewhere. A short discussion on the rustls Discord server agreed that "...probably makes sense to error out" regardless.
Unconditionally including the trust anchors from webpki-roots on Linux for certificate verification. These are now always mixed into the certificates loaded from the system (if any). In production we've found openssl-probe to be fairly unreliable on older installations of even standard distros, leading to no roots for our server's (one of Amazon's Root CAs) certificate being found.

I believe that only the second change would be controversial, but AFAIK we still need to rework how webpki-roots is used at all in this crate so I don't feel its that big of a deal at the moment and would help accelerate those.

These are now always mixed into the certificates loaded from the system (if any).

Is this always an additive process? Could a native root from the system root store be replaced by something from webpki-roots?

I believe that only the second change would be controversial, but AFAIK we still need to rework how webpki-roots is used at all in this crate so I don't feel its that big of a deal at the moment and would help accelerate those.

Can you expand on the need to rework how webpki-roots is being used? I probably missed any discussions about that.
This feels like a reasonable set of changes but I want to make sure I'm not missing broader context.

Is this always an additive process? Could a native root from the system root store be replaced by something from webpki-roots?

Yes, its always additive. Trust anchors are just appended to a list without any deduplication. Even if they had more handling applied, one would hope that a root with a certain SPKI would be the same in both places 😓

Can you expand on the need to rework how webpki-roots is being used? I probably missed any discussions about that.

Sure, that's my bad for not elaborating more. The previous discussions happened when the crate first got put up here on GitHub and revolved around if we even want to have webpki-roots as a dependency of rustls-platform-verifier, or in what fashion it should remain. I believe this is the final approach we settled on, to balance convenience with misuse resistance:

The use of webpki-roots can be an optional feature enabled with explicit API

After writing all that out, I should really get this into its own issue for tracking.

I made a small change to keep around the error log about the system not providing any CA roots. I think its helpful to have for troubleshooting, even if a connection still works.


Equality

Finally merging equality changes. Check docs/equality.md for further details

Apologies for the repeated PRs. I had to merge with master a few times because time had passed as well as needing to merge from a branch of sl-sh directly rather than from a branch on my fork in order to get bencher to work.
The meat of the PR is the same as before, just a few commits to implement clojure-style =, not=, numeric ==, and  identical?.  Still requires fixing issue #171 misleading opcode.

added changes to resolve #171 by removing opcode implementation of NUMNEQ (not=) and instead using defmacro implementation in core.slosh


feat - migrated auth module from sidebase-nuxt-auth to nuxt-auth-utils

migrated auth module from sidebase-nuxt-auth to nuxt-auth-utils

Let's merge this @aksharahegde  if its working

its working... need to set env