Locking dependencies doesn't actually work

Current Behavior
Changing the version of a dependency doesn't cause the build to fail, even though strict locking is enabled.
Expected Behavior
Gradle sync should fail if the specified version doesn't match the lock file.
Context (optional)
I'm trying to lock down my versions, which has proved to be a lot more difficult than it should be. Multimodule projects are even worse, requiring custom scripts to go generate all the lock files, which is just ridiculous. In Node, dependency locking is on by default and just works. I would like to see gradle make this easier since locking is a best practice for reproducible builds.
Steps to Reproduce

Create a lock file by running ./gradlew dependencies --write-locks from within the folder of my app module. This successfully generates a gradle.lockfile in the same directory.
Change the version of a dependency. In this test, I changed implementation "androidx.hilt:hilt-navigation-compose:1.2.0" to use version 1.0.0.
Run gradle sync, which succeeds.
Build the app, which succeeds.
Also tried Build -> Rebuild Project, which also succeeded.

Interestingly, if I do this in the opposite direction, locking at version 1.0.0 and then upgrading to 1.2.0, I do get a build error. Here are the relevant parts of my build.gradle files:
build.gradle
buildscript {
    configurations.classpath {
        resolutionStrategy.activateDependencyLocking()
    }
}

app/build.gradle
dependencyLocking {
    lockAllConfigurations()
    lockMode = LockMode.STRICT
}

dependencies {
    implementation "androidx.hilt:hilt-navigation-compose:1.2.0"
}

gradle.lockfile (just the relevant line)
androidx.hilt:hilt-navigation-compose:1.2.0=Mirror-Cloud-HardcodedAuth-DebugAndroidTestCompileClasspath,Mirror-Cloud-HardcodedAuth-DebugCompileClasspath,Mirror-Cloud-HardcodedAuth-DebugRuntimeClasspath,Mirror-Cloud-HardcodedAuth-DebugUnitTestCompileClasspath,Mirror-Cloud-HardcodedAuth-DebugUnitTestRuntimeClasspath,Mirror-Cloud-HardcodedAuth-ReleaseCompileClasspath,Mirror-Cloud-HardcodedAuth-ReleaseRuntimeClasspath,Mirror-Cloud-HardcodedAuth-ReleaseUnitTestCompileClasspath,Mirror-Cloud-HardcodedAuth-ReleaseUnitTestRuntimeClasspath,Mirror-Cloud-MdmAuth-DebugAndroidTestCompileClasspath,Mirror-Cloud-MdmAuth-DebugCompileClasspath,Mirror-Cloud-MdmAuth-DebugRuntimeClasspath,Mirror-Cloud-MdmAuth-DebugUnitTestCompileClasspath,Mirror-Cloud-MdmAuth-DebugUnitTestRuntimeClasspath,Mirror-Cloud-MdmAuth-ReleaseCompileClasspath,Mirror-Cloud-MdmAuth-ReleaseRuntimeClasspath,Mirror-Cloud-MdmAuth-ReleaseUnitTestCompileClasspath,Mirror-Cloud-MdmAuth-ReleaseUnitTestRuntimeClasspath,Mirror-Edge-HardcodedAuth-DebugAndroidTestCompileClasspath,Mirror-Edge-HardcodedAuth-DebugCompileClasspath,Mirror-Edge-HardcodedAuth-DebugRuntimeClasspath,Mirror-Edge-HardcodedAuth-DebugUnitTestCompileClasspath,Mirror-Edge-HardcodedAuth-DebugUnitTestRuntimeClasspath,Mirror-Edge-HardcodedAuth-ReleaseCompileClasspath,Mirror-Edge-HardcodedAuth-ReleaseRuntimeClasspath,Mirror-Edge-HardcodedAuth-ReleaseUnitTestCompileClasspath,Mirror-Edge-HardcodedAuth-ReleaseUnitTestRuntimeClasspath,Mirror-Edge-MdmAuth-DebugAndroidTestCompileClasspath,Mirror-Edge-MdmAuth-DebugCompileClasspath,Mirror-Edge-MdmAuth-DebugRuntimeClasspath,Mirror-Edge-MdmAuth-DebugUnitTestCompileClasspath,Mirror-Edge-MdmAuth-DebugUnitTestRuntimeClasspath,Mirror-Edge-MdmAuth-ReleaseCompileClasspath,Mirror-Edge-MdmAuth-ReleaseRuntimeClasspath,Mirror-Edge-MdmAuth-ReleaseUnitTestCompileClasspath,Mirror-Edge-MdmAuth-ReleaseUnitTestRuntimeClasspath,Prod-Cloud-HardcodedAuth-DebugAndroidTestCompileClasspath,Prod-Cloud-HardcodedAuth-DebugCompileClasspath,Prod-Cloud-HardcodedAuth-DebugRuntimeClasspath,Prod-Cloud-HardcodedAuth-DebugUnitTestCompileClasspath,Prod-Cloud-HardcodedAuth-DebugUnitTestRuntimeClasspath,Prod-Cloud-HardcodedAuth-ReleaseCompileClasspath,Prod-Cloud-HardcodedAuth-ReleaseRuntimeClasspath,Prod-Cloud-HardcodedAuth-ReleaseUnitTestCompileClasspath,Prod-Cloud-HardcodedAuth-ReleaseUnitTestRuntimeClasspath,Prod-Cloud-MdmAuth-DebugAndroidTestCompileClasspath,Prod-Cloud-MdmAuth-DebugCompileClasspath,Prod-Cloud-MdmAuth-DebugRuntimeClasspath,Prod-Cloud-MdmAuth-DebugUnitTestCompileClasspath,Prod-Cloud-MdmAuth-DebugUnitTestRuntimeClasspath,Prod-Cloud-MdmAuth-ReleaseCompileClasspath,Prod-Cloud-MdmAuth-ReleaseRuntimeClasspath,Prod-Cloud-MdmAuth-ReleaseUnitTestCompileClasspath,Prod-Cloud-MdmAuth-ReleaseUnitTestRuntimeClasspath,Prod-Edge-HardcodedAuth-DebugAndroidTestCompileClasspath,Prod-Edge-HardcodedAuth-DebugCompileClasspath,Prod-Edge-HardcodedAuth-DebugRuntimeClasspath,Prod-Edge-HardcodedAuth-DebugUnitTestCompileClasspath,Prod-Edge-HardcodedAuth-DebugUnitTestRuntimeClasspath,Prod-Edge-HardcodedAuth-ReleaseCompileClasspath,Prod-Edge-HardcodedAuth-ReleaseRuntimeClasspath,Prod-Edge-HardcodedAuth-ReleaseUnitTestCompileClasspath,Prod-Edge-HardcodedAuth-ReleaseUnitTestRuntimeClasspath,Prod-Edge-MdmAuth-DebugAndroidTestCompileClasspath,Prod-Edge-MdmAuth-DebugCompileClasspath,Prod-Edge-MdmAuth-DebugRuntimeClasspath,Prod-Edge-MdmAuth-DebugUnitTestCompileClasspath,Prod-Edge-MdmAuth-DebugUnitTestRuntimeClasspath,Prod-Edge-MdmAuth-ReleaseCompileClasspath,Prod-Edge-MdmAuth-ReleaseRuntimeClasspath,Prod-Edge-MdmAuth-ReleaseUnitTestCompileClasspath,Prod-Edge-MdmAuth-ReleaseUnitTestRuntimeClasspath,implementationDependenciesMetadata

Gradle version
8.7
Build scan URL (optional)
No response
Your Environment (optional)
No response

This is actually a documentation issue.
When you have 1.2.0 version in the lockfile and declare 1.0.0 in build script, the version is upgraded automatically to 1.2.0 by the dependency resolution mechanism. However, when you have 1.0.0 in the lockfile and try to declare 1.2.0, we can't upgrade to a newer version since the lock uses "strictly" as a modifier.

Thanks for the explanation, I think I understand what's going on now. However, from a user experience point of view, my expectation was that any change in a build script version should cause a build failure if I don't update the lockfile. Even though what it's doing now should technically work assuming packages follow semantic versioning, it differs from other package managers I've used, so it just feels like another "gotcha" that you have to know about. So in my case, I'm guessing if I added "strictly" to my 1.0.0, then that would cause it to report an error?
I'm toying with the idea of how to make locking completely automatic. I'm not 100% sure this would work, but perhaps something where gradle saves the input dependencies in addition to the resolved dependencies, and if the inputs change, then automatically update the lock file for the changed dependencies, like npm does when you run an npm install. Gradle already supports updating the lock for a changed dependency, but you currently have to run a command and manually specify it as an argument, so I'm picturing an automatic version instead. Again, this is more of a separate idea, I may consider submitting a separate feature request for it.
For this issue, it sounds like it actually is working as intended, so we can probably close this. Would there be any docs updates that should be made? It is slightly unintuitive that the build fails for upgrades but not downgrades, even though it does still work, but maybe not many other users have run into this.

For this issue, it sounds like it actually is working as intended, so we can probably close this. Would there be any docs updates that should be made?

Let's keep it open. The docs should be improved.


unhandled exception

I've seen this in my log recently:
Logger: homeassistant.components.sensor
Source: custom_components/powercalc/strategy/linear.py:86
Integration: Sensor (documentation, issues)
First occurred: January 8, 2022, 04:59:21 (1 occurrences)
Last logged: January 8, 2022, 04:59:21

Error while setting up powercalc platform for sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 249, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/powercalc/sensor.py", line 207, in async_setup_platform
    entities = await create_sensors(hass, config, discovery_info)
  File "/config/custom_components/powercalc/sensor.py", line 255, in create_sensors
    return await create_individual_sensors(
  File "/config/custom_components/powercalc/sensor.py", line 349, in create_individual_sensors
    power_sensor = await create_power_sensor(
  File "/config/custom_components/powercalc/sensors/power.py", line 116, in create_power_sensor
    calculation_strategy = calculation_strategy_factory.create(
  File "/config/custom_components/powercalc/strategy/factory.py", line 47, in create
    return self._create_linear(config, light_model, source_entity)
  File "/config/custom_components/powercalc/strategy/factory.py", line 69, in _create_linear
    return LinearStrategy(linear_config, self._hass, source_entity)
  File "/config/custom_components/powercalc/strategy/linear.py", line 47, in __init__
    self._calibration = self.create_calibrate_list()
  File "/config/custom_components/powercalc/strategy/linear.py", line 86, in create_calibrate_list
    list.append((min, float(self._config.get(CONF_MIN_POWER))))
TypeError: float() argument must be a string or a number, not 'NoneType'

What does your configuration look like for this linear sensor?

@RubenKelevra Could you please provide more information about your configuration? Than I will be able to resolve the issue.

Oh sorry, I missed the notification.
Here's my config:
powercalc:
  enable_autodiscovery: true

sensor:

  - platform: powercalc
    manufacturer: EUROPLAST
    model: EET100
    name: Bathroom Exhaust Fan
    fixed:
      power: 15.0
    standby_power: 0.05
    entity_id: switch.bathroom_exhaust_fan
  - platform: powercalc
    name: Ceiling Light Kitchen
    linear:
      max_power: 5.3
    multiply_factor: 3
    multiply_factor_standby: false
    standby_power: 0.05
    entity_id: light.ceiling_light_kitchen_l1
  - platform: powercalc
    entity_id: vacuum.herbie
    standby_power: 0.2
    fixed:
      states_power:
        status|Charging: 20

Do you need anything else?

The problem is in the linear config, powercalc expects min_power to have a value. I will change code to default to 0 or standby_power when it is not supplied.
You can give it a value for now to get rid of the error.
- platform: powercalc
    name: Ceiling Light Kitchen
    linear:
      min_power: 0.05
      max_power: 5.3
    multiply_factor: 3
    multiply_factor_standby: false
    standby_power: 0.05
    entity_id: light.ceiling_light_kitchen_l1

Has been resolved with #510

Well yeah, but the documentation lists this as optional ;)
It shouldn't be assumed as 0 - but just taken as a part of the light's brightness:
If the light is 30/255 points on, the consumption should be assumed to be 30/255s of the maximum power.
So mimum should be 1/255 of the maximum power of not supplied.

Well yeah, but the documentation lists this as optional ;)

This was how it's supposed to be, but it was a bug that an exception was thrown.

If the light is 30/255 points on, the consumption should be assumed to be 30/255s of the maximum power.

Did you test the fix?
This is exactly how it is working now.
Internally powercalc builds two ranges. 1-255 and minpower-maxpower.
When you only supply maxpower 40 it will set the power range to 0-40 now.
And the power will be looked up by ratio, so for 30/255 it will be 30/255s of the max power.

@RubenKelevra I want to close this issue, but I have no confirmation from you yet that this is working as expected now. Could you still verify by installing the latest release v0.16.1?

Hey @bramstroker, the crash is fixed:

But I'm not sure that 1 points of brightness is now 1/255th of the max power consumption as I would expect.

Hi @RubenKelevra, thanks for checking. not sure how to read your graph, and what exact brightness values you had.
With the configuration you shared previously the power values should be the following for brightness:
1: 0.05
255: 5.3
And all other values are calculated by ratio.
So when you have 138 brightness power will be 2.88
I have also added debug logging to the linear strategy. Than you can see more information:
2022-01-28 17:21:48 DEBUG (MainThread) [custom_components.powercalc.strategy.linear] light.spot_bar: Linear mode state value: 3 range(1-255)
2022-01-28 17:21:48 DEBUG (MainThread) [custom_components.powercalc.sensors.power] light.spot_bar: State changed to "on". Power:0.09
2022-01-28 17:21:49 DEBUG (MainThread) [custom_components.powercalc.strategy.linear] light.spot_bar: Linear mode state value: 138 range(1-255)
2022-01-28 17:21:49 DEBUG (MainThread) [custom_components.powercalc.sensors.power] light.spot_bar: State changed to "on". Power:2.88

Hi @RubenKelevra, thanks for checking. not sure how to read your graph, and what exact brightness values you had.

You shouldn't. The graph was just to show that it works now :)

With the configuration you shared previously the power values should be the following for brightness:
1: 0.05
255: 5.3

Well, that's the issue: If I set standby power to 0.05 and max power to 5.3 times 3 I wouldn't expect that the linear mode uses the standby power for 1 points of brightness.
I would expect that it takes 1/255th of the maximum power.
While not that different in my case with the numbers, it's just wrong to use standby power for minimum consumption.
Maybe a better example:
Three bulbs with 100 W and a standby power of 0.05 configured.
Setting the brightness to 0 would lead to 0.05 and setting the brightness to one would lead to 0.05.
While 300 W / 255 is actually 1.17 W.

I understand what you mean. Need to give this is thought especially the combination with multiply_factor.
My reasoning for using the standby_power is that you never consume less than the standby when you turn the light on.
Assume a light which has a standby_power of 0.3 and a max_power of 10 (which is a very common scenario). Than it will take 10 brightness points to get above the standby power, which is even more incorrect than the scenario you described.
I think the correct solution is to change the brightness range for calculation from 1-255 to 0-255. https://github.com/bramstroker/homeassistant-powercalc/blob/master/custom_components/powercalc/strategy/linear.py#L120
Than powercalc will set the following calibration values:
0 => 0.05
255 => 5.3.
Than it wil correctly calculate 1/255 of 5.3 for the brightness level 1.

@RubenKelevra
I have made some changes and also fixed a bug with multiply factor. #538
Also tested with similar configuration as in your example
- platform: powercalc
  entity_id: light.vitrinekast
  standby_power: 0.05
  multiply_factor: 3
  multiply_factor_standby: false
  linear:
    max_power: 100

Powercalc will set 0.05 as the corresponding power for brightness 0 (which reflects the light off state).
When you don't specify a standby_power than 0 watt will be used for brightness 0.
The max_power is set to brightness 255 (when the light is at full brightness). In this case 100.
Powercalc calibrates the light at (0=0.05W, 255=100W)
This results in the following power readings:
0: 0.05
1: 1.32
2: 2.49
3: 3.69
4: 4.86
...
255: 300

The formula will be the following (simplified at littlebit).
power = ((max_power - min_power) * (bri / max_brightness) + min_power) * multiply_factor
So for brightness 1:
((100 - 0.05) * (1 / 255) + 0.05) * 3 = (99.95 * 0.00392 + 0.05) * 3 = 1.32
When you don't configure a standby power than the power on brightness 1 will be 1.17

@bramstroker hey thanks!
But this still doesn't make sense to me:
The standby power has nothing to do with the linear power for 1-255.
So it should be:
(max_power/255)*multiply=min_power
if the user only specifies max_power and standby.

Ah forgive me, pre-coffee me wasn't understanding fully what you did there. :)
LGTM

@RubenKelevra As I said before the standby power should definitely be be included as it will give very inaccurate calculations when we don't. I am not going to change that.
In your example the standby power is very small (not really a real word scenario, as all zwave and zigbee devices use 0.3 watt or more. WiFI devices even as much as 1 watt.
Imagine a max power for a wifi device of 10 watt (on full brightness).
When we don't include standby power in the min calculation, than it will be 0.03 watt or something like that on low brightness levels, which makes no sense at all.
A light can never consume less than the standby power, so we should start the linear calculation at the standby value.

Ah forgive me, pre-coffee me wasn't understanding fully what you did there. :)
LGTM

Haha, no worries ;-). It's also rather complex topic. I am also no mathemetician, so programming this stuff and explaining is also no easy task for me. The linear strategy also has the calibration table (multiple calibration values) and other variables to account for, so it was a lot of work to get it right.
But I'm pretty sure I have got it right now. Did a lot of testing with different scenarios.

Ah forgive me, pre-coffee me wasn't understanding fully what you did there. :)
LGTM

Haha, no worries ;-). It's also rather complex topic. I am also no mathemetician, so programming this stuff and explaining is also no easy task for me. The linear strategy also has the calibration table (multiple calibration values) and other variables to account for, so it was a lot of work to get it right.
But I'm pretty sure I have got it right now. Did a lot of testing with different scenarios.

Yeah it looks correct to me now, too :)
I'm currently tapping in similar uncharted territory for me with writing some new stuff on adaptive_lighting, so I can see where you're coming from 😅


Deliver cannon and oimo as optional dependencies in UMD

Moved from https://github.com/BabylonJS/Babylon.js/issues/3730
Cannon and Oimo are both defined using "require" inside the framework.
As we are (soon) using Oimo from npm, we can move them both to be optional dependencies and load only when the developer defines them as needed / includes them.
Basic idea is to change the UMD of babylon itself to check if they exist (global check and require.defined) and TRY (!) loading them, catching the exception if they are not available. Then deliver them to the factory function.
Acceptance tests would be a webpack-built commonjs application , AMD application and most importantly, our playground should work after the changes are integrated.
All changes should have little to no impact on the developer. The only impact I see is adding "externals" to the webpack configuration when building babylon using webpack.
A bonus - add the ability to define optional and required dependencies in gulp's config.json

closed with this - https://github.com/BabylonJS/Babylon.js/pull/3938
Gulp module config can now have a dependencies array, with optional dependencies
Oimo and CANNON are now optional dependencies. Webpac might complain about them not being there. The solution is to set them as externals in the webpack configuration.


[Bug]: Coupons can not be disabled

What happened?

Coupons extension can not be disabled without disabling cart and frontend.

Coupon field is not affected by cart settings nor it's configuration is present somewhere else.

What did you expect to happen?

Coupons extension can be disabled without disabling cart and frontend.

Coupon field is affected by cart settings or it's configuration is present somewhere else.

Version
3.2.0
What browser are you seeing the problem on?
Microsoft Edge
Relevant log output
No response

That is the expected behaviour. The coupons extension is required by the cart extension so disabling the coupon extension will disable the cart extension since it's a dependency.


IsPrecise: Really about "involving" imprecise computations?

Re: SqlFunctionAttribute.IsPrecise Property
Please elaborate and confirm that this really is about if "the function involves precise computations", or if it really is about if the result (returned data) is imprecise?
Also please elaborate how IsPrecise relates to IsDeterministic.
Please also explain why the Sql Server cares about the internal algorithm of a function and not only the the return type and whether it is uses any data beside what's available via it's parameters?
Example, should any of these functions be marked as IsPrecise=false?
[SqlFunction]
public static SqlInt32 GetInt(SqlDouble dbl)
{
    double d = dbl / 3.3D;
    return new SqlInt32(0);
}

// What about this one?
[SqlFunction]
public static SqlDouble GetMaxDouble()
{
    return SqlDouble.MaxValue;
}

// And this?
[SqlFunction]
public static SqlBoolean IsPiGtOne()
{
    return new SqlBoolean(Math.PI>1);
}

@Bartolomeus-649 -- thank you for your questions.
@stevestein -- please look into this issue #4253.

@Bartolomeus-649 - thanks for the feedback.
There's some additional info in the create function article.
The precision and determinism properties of Transact-SQL functions are determined automatically by SQL Server. The data access and determinism properties of CLR functions can be specified by the user.
If your functions are not CLR functions, SQL automatically determines the values. If you're creating CLR functions, then depending on your implementation, you can set the values manually if they should or should not be used in computed columns that can be persisted or indexed.

@stevestein, which part of my qurestion is this the answer to?

@Bartolomeus-649 - re your examples, unless you're creating CLR functions, SQL automatically determines the values, but if you are creating CLR functions then you can set the values manually depending if they should or should not be used in computed columns that can be persisted or indexed.
So SQL Server doesn't literally care about the internal algorithm of a function because it automatically determines the values, but if it's a CLR function and IsPrecise is set to true, but the function's return value isn't really precise, and computed columns that use this function are indexed -- that could cause errors.

@stevestein, still not answering any of my questions. And the way you you keep bring up if it regarding CLR functions make me doubt you even read my question, because there really should be no doubt wheter it is about CLR functions or not.

@Bartolomeus-649, I was being a bit generic. If your functions are used by computed columns that are indexed, then it's up to you to set the properties depending on your implementation. By default, IsPrecise is set to false, so if your function returns precise values and is safe to use for computed columns you can manually set to true.
As far as how IsPrecise relates to IsDeterministic, precision of numbers is different than if a value is deterministic. Here are some examples of Deterministic and Nondeterministic Functions.
Here are some resources for getting assistance:

SQL Server Database Engine
Stack Overflow
DBA Stack Exchange
Reddit
Get help from the community with the #sqlhelp hash tag on twitter

#please-close


Problem with removing uploaded image in form with HTML area

When resized image inserted into HTML editor in page builder HTML block popup, then when image is removed list to the image isn't removed from HTML area.

Can't reproduce the problem, it looks like it was fixed as part of some another issue


No provider found for dynamic Component -> dynamic  (Location inject)

I updated my angularDart project to dart 2.4.0 and now I can no longer inject Location into the Component Constructor.
I just remove the location of the constructor that stops giving the exception

[ ] Dart SDK Version 2.4.0
[ ] AngularDart Version 5
[ ] Whether you are using Windows
[ ] Whether you are using Chrome

@Component(
  selector: 'orcamento_form',
  styles: [],
  templateUrl: 'orcamento_form_component.html',
  directives: [
    coreDirectives,
    formDirectives,
    MdToast,
    routerDirectives,
    MaterialButtonComponent,
    MaterialSelectComponent,
    MaterialSelectItemComponent,
    MaterialCheckboxComponent,
    AutoDismissDirective,
    AutoFocusDirective,
    MaterialIconComponent,
    MaterialButtonComponent,
    MaterialTooltipDirective,
    MaterialDialogComponent,
    ModalComponent,
    DataTableComponent,
    displayNameRendererDirective,
    EmpresaListComponent,
    TextMaskDirective,
    AnoValidator,
    DateTimeValueAccessor,
    MoneyMaskDirective
  ],
  exports: [RoutePaths, Routes],
)
class OrcamentoFormComponent   {

  final Location _location ;

  OrcamentoFormComponent( this._location);

}

name: siscec2browser
description: A web app that uses AngularDart Components
version: 0.0.1

environment:
  sdk: '>=2.4.0 <3.0.0'

dependencies:
  angular: ^5.3.0
  angular_components: ^0.13.0
  angular_forms: ^2.0.3
  angular_router: ^2.0.0-alpha
  http: ^0.12.0
  stream_transform: ^0.0.19
  sass_builder: ^2.1.3
  firebase: ^5.0.4
  firebase_dart_ui: ^0.1.1
  js: ^0.6.1+1
  money: ^0.2.1
  decimal: ^0.3.4

dev_dependencies:
  angular_test: ^2.3.0
  build_runner: ^1.6.2
  build_test: ^0.10.3
  build_web_compilers: ^2.1.0
  pedantic: ^1.7.0
  test: ^1.6.0

@insinfo Are you making any attempt to provide Location before loading this component?

After breaking my head for two days, I found out what was causing the "No provider found for dynamic 'Component name' -> dynamic" exception.
After many attempts to make my project work correctly with AngularDart 5.3.0 and dart 2.4.0, I find that simply importing the 'dart: html' package to cause the error if I remove the import from the 'dart: html 'the error stops happening
import 'dart:async';
import 'package:angular_router/angular_router.dart';
import 'package:angular/angular.dart';
import 'package:angular_forms/angular_forms.dart';
import 'package:angular_components/angular_components.dart';
//import 'dart:html';

@Component(
  selector: 'recurso-form',
  //styles: [],
  templateUrl: 'fonte_recurso_form_component.html',
  directives: [
    coreDirectives,
    formDirectives,
    routerDirectives,
    materialInputDirectives,
    MdToast,
    MaterialFabComponent,
    MaterialButtonComponent,
    MaterialSelectComponent,
    MaterialSelectItemComponent,
    MaterialCheckboxComponent,
    MaterialIconComponent,
    MaterialButtonComponent,
    MaterialTooltipDirective,
    MaterialDialogComponent,
    ModalComponent,
    displayNameRendererDirective,
    DataTableComponent,
    TextMaskDirective,
    AnoValidator,
    DateTimeValueAccessor,
    MoneyMaskDirective
  ],
  providers: [ClassProvider(FonteRecursoService)],
)
class FonteRecursoFormComponent implements OnInit, OnActivate {
  @ViewChild('toastElement')
  MdToast toastElement;

  FonteRecurso recurso;
  FonteRecursoService _service = FonteRecursoService();
  Location _location;
  int id;
  bool showEmpresasDialog = false;

  FonteRecursoFormComponent(this._service, this._location){
    print(this._location);
  }

  @override
  void ngOnInit() async {

  }
}

Ah yes, this is because both dart:html and package:angular_router export symbols named Location. I believe there's an analysis warning for this, are you using an editor with Dart analysis enabled?
You can simply hide the Location from dart:html if you don't need it
import 'dart:html' hide Location;

or import it with a prefix if you do
import 'dart:html' as html;

@leonsenft I am using visual studio code and it does not display any warning about it. Because in angular 5.2.0 and dart 2.1.0 I didn't have this problem.

Oh interesting. I'm not sure why. My guess would be something in the analyzer (package:analyzer) changed and it affected how our compiler handled a symbol collision like this when reading injected types.

FYI I've seeing the same error, but don't have any Location class. Seems I'm trying to import a service - StudyService in my applicatoin - don't think you found the root cause.
import 'dart:html' as html; Solved my problem. So maybe there are something in dart:html which are the cause.


On Hold: Add withAllRequests API

Issue Link :link:
Fixes #3190
Goals :soccer:
This PR adds a withAllRequests method that allows users to perform actions on every Request in activeRequests.
Implementation Details :construction:
withAllRequests is essentially the same thing as cancelAllRequests but takes a closure to perform the action. Additionally, cancelAllRequests has been reimplemented using withAllRequests.
Testing Details :mag:
An additional test was added for withAllRequests.

Looks good to me 👍

I'm putting this PR on hold due to ongoing discussion around multiple closure syntax, which this API was designed around, and bugs in the current autocomplete experience (SR-12880) which should both be resolved fairly soon.

The unfortunate fact of the matter is that there doesn't seem to be a good solution for usability coming any time soon. In order to fix the conflict between wanting the single closure using the action and the multiple closure's version having the action in the first closure position, we need to overload the API to drop the completion closure in one version. 😢
I'll make the update and we can ship this API.

On second thought, if we give the collection of Requests users can call their own completion.


Falcon API customer ID validation

Unable to supply CrowdStrike Falcon customer ID (masked in the error below) in the FalconNodeSensor custom resource.
FalconNodeSensor.falcon.crowdstrike.com "falcon-node-sensor" is invalid: spec.falcon.cid: Invalid value: "3468aaaaaaaaaaaaaaaaaaaaaaaaaaaa": spec.falcon.cid in body should match '^[0-9a-fA-F]{32}-[0-9a-fA-F]{2}$'

Falcon operator - v1.0.1
EKS v1.29.4-eks-036c24b

Hello,
Looks like you are missing the checksum. Please make sure to add it.

I was looking into the Falcon operator API description but there is no information on how the CID should be obtained. I'm obtaining the CID from the CrowdStrike Falcon Console UI and it doesn't contain the 2 extra chars (checksum).

You need to get it from the sensors download page.

Thank you for the info!
This is the correct URL - https://falcon.crowdstrike.com/hosts/sensor-downloads.


[New Hub] [Phase 3] Hub Setup - queens.2i2c.cloud

Context
Depends on

https://github.com/2i2c-org/infrastructure/issues/4823

Due date for hub deployment: Sep 30, 2024
How many hubs will be deployed?
2
Which cluster will the hub(s) be deployed on?
queensu
Hub Setup Information
For each hub to be deployed, copy the tables below and fill them in.
The tables must be complete for each hub to be considered READY to be
deployed. For a staging/prod pair, a statement such as "Same as staging
but for production" will suffice for the prod hub's specification. Use
the Notes column to provide any contextual information.
Available runbooks:

https://infrastructure.2i2c.org/hub-deployment-guide/runbooks/phase3/

Hub 1: staging (READY)
Phase 3.1: Initial setup

Question
Answer
Notes

Name of the hub
staging

Dask gateway?
No

Splash image URL
Queens logo

Homepage URL

Funded by?

Authentication Mechanism
CILogon for @queensu.ca email

Admin Users (GitHub handles or emails, depending on Mechanism)

At the end of this phase, both 2i2c engineers and the admin users mentioned can login to the hub.
Phase 3.2: Object storage access

Question
Answer
Notes

Scratch bucket enabled?
No

Persistent bucket enabled?
No

Requester pays requests to external buckets allowed?
No

At the end of this phase, both 2i2c engineers and the admin users mentioned can access any object storage setup.
Phase 3.3: Profile List
These are the standard profile list options to start with. They can be customized later.
Use the Notes column to provide extra information, such as specific image tags to use, or deployer generate resource-allocation choices command to use for RAM, etc.

Question
Answer
Notes

Pangeo Notebook?
No

RStudio (with Rocker)?
No

Allow users to specify any image they want to use?
Yes
If Yes, enable unlisted_choice.

Max RAM option allowed

GPU enabled?
No

Default Interface
JupyterLab

Allow multiple concurrent servers per user?
No
If yes, enable allowNamedServers.

At the end of this phase, the admin users mentioned should be able to start a server with their desired environment(s).
Phase 3.4: Authentication tuning

Question
Answer
Notes

Authentication Mechanism
CILogon

GitHub Teams based access?
NA

List of GitHub Teams to be granted access (if required)

Phase 3.5: Profile List finetuning

Question
Answer
Notes

Custom image to be specified?

Hub 2: prod (READY)
Same config as staging

We don't support Auth with Azure identity, they can have CILogon if their uni is registered or GitHub. Otherwise no.

staging.queensu.2i2c.cloud
queensu.2i2c.cloud

There are no admins other than 2i2c currently. These can be added through future support tickets.


Retention cutoff failed leading to compaction failed/spiralling disk usage

What did you do?
I am running Prometheus 2.0.0 in Kubernetes with a 7 day retention interval.
What did you expect to see?
After 7 days, Prometheus expires time series data older than that.
What did you see instead? Under which circumstances?
At 7 days and ~3 hours:
level=error ts=2017-11-20T15:00:57.971198569Z caller=db.go:255 component=tsdb msg="retention cutoff failed" err="remove /prometheus/01BYTQE4494NH3HD88TFMEW2SD/chunks: directory not empty"

Subsequently seeing repeated:
level=error ts=2017-11-20T15:00:57.973249858Z caller=db.go:260 component=tsdb msg="compaction failed" err="plan compaction: open /prometheus/01BYTQE4494NH3HD88TFMEW2SD/meta.json: no such file or directory"
level=error ts=2017-11-20T15:01:59.977086398Z caller=db.go:255 component=tsdb msg="retention cutoff failed" err="read block meta /prometheus/01BYTQE4494NH3HD88TFMEW2SD: open /prometheus/01BYTQE4494NH3HD88TFMEW2SD/meta.json: no such file or directory"

And disk utilisation growing incredibly quickly (~250GB in 24 hours).
Directory looks like:
/prometheus # ls -la 01BYTQE4494NH3HD88TFMEW2SD
total 61436
drwxr-xr-x    3 nobody   42949672      4096 Nov 20 15:00 .
drwxr-xr-x 3193 nobody   42949672    249856 Nov 23 11:34 ..
-rw-r--r--    1 nobody   42949672  62397330 Nov 13 13:00 .nfs0000000000000068000012da
drwxr-xr-x    2 nobody   42949672      4096 Nov 20 15:00 chunks
/prometheus # ls -la 01BYTQE4494NH3HD88TFMEW2SD/chunks/
total 19996
drwxr-xr-x    2 nobody   42949672      4096 Nov 20 15:00 .
drwxr-xr-x    3 nobody   42949672      4096 Nov 20 15:00 ..
-rw-r--r--    1 nobody   42949672  20380371 Nov 13 13:00 .nfs0000000000000df2000012d9

The file preventing deletion of chunks directory is opened by Prometheus:
/prometheus # fuser 01BYTQE4494NH3HD88TFMEW2SD/chunks/.nfs0000000000000df2000012d9
17
/prometheus # ps -ef | grep 17
   17 root     7751:2 /bin/prometheus --config.file=/config/prometheus-2/prometheus --storage.tsdb.path=/prometheus --storage.tsdb.retention=168h --web.console.libraries=/usr/share/prometheus/console_libraries --web.console.templates=/usr/share/prometheus/consoles --web.listen-address=:9091 --web.enable-lifecycle

Looks like a similar result to #3487 but potentially a different root cause.
Environment
Kubernetes 1.7.4

System information:

/prometheus # uname -srm
Linux 4.4.0-98-generic x86_64

Prometheus version:

/prometheus # prometheus --version
prometheus, version 2.0.0 (branch: HEAD, revision: 0a74f98628a0463dddc90528220c94de5032d1a0)
  build user:       root@615b82cb36b6
  build date:       20171108-07:11:59
  go version:       go1.9.2

Alertmanager version:

Not relevant

Prometheus configuration file:

global:
  scrape_interval: 30s
  scrape_timeout: 10s
  evaluation_interval: 30s
  external_labels:
    core_env: kube
alerting:
  alertmanagers:
  - kubernetes_sd_configs:
    - api_server: null
      role: pod
      namespaces:
        names: []
    scheme: http
    timeout: 10s
    relabel_configs:
    - source_labels: [__meta_kubernetes_pod_label_app]
      separator: ;
      regex: alertmanager
      replacement: $1
      action: keep
    - source_labels: [__meta_kubernetes_namespace]
      separator: ;
      regex: default
      replacement: $1
      action: keep
    - source_labels: [__meta_kubernetes_pod_container_port_number]
      separator: ;
      regex: null
      replacement: $1
      action: drop
rule_files:
- /config/prometheus-2/rules
metric_relabel_configs:
  - source_labels: [__name__]
    separator: ;
    regex: go_.+
    replacement: $1
    action: drop
  - source_labels: [__name__]
    separator: ;
    regex: http_.+
    replacement: $1
    action: drop
scrape_configs:
- job_name: prometheus
  scrape_interval: 30s
  scrape_timeout: 10s
  metrics_path: /metrics
  scheme: http
  static_configs:
  - targets:
    - localhost:9091
- job_name: job-N
  scrape_interval: 30s
  scrape_timeout: 10s
  metrics_path: /metrics
  scheme: http
  static_configs:
  - targets:
    -  <snip>
    labels:
      <snip>
  - targets:
    - <snip>
    labels:
      <snip>
.
.
.

We have 100 jobs with around 10000 targets in total.

Alertmanager configuration file:

Not relevant

Logs:
prom.log

It is not recommended to use Prometheus with NFS, as we need a POSIX filesystem. We also expect to be the only thing creating files in our data directory.

@brian-brazil Prometheus is the only thing creating anything in the data directory.
We have no option but to use NFS to get the IOPS required.

NFS is creating files in the directory.
I'd suggest using a local SSD.

@brian-brazil Local SSD is not fast enough.
Sorry you'll have to excuse my ignorance on NFS, but if that file is created by the NFS why does Prometheus have it pinned open?

Yes, 2.0 has a new storage backend with a much reduced need for iops for writes.
I'm not familiar enough with this peculiar detail of NFS to know what's going on.

https://serverfault.com/questions/201294/nfsxxxx-files-appearing-what-are-those
Found the above reading around the subject - seems like the NFS file's there because of an open file, suggests perhaps there's an issue with files not being closed out? Not sure.
Since we're running this on Kubernetes I don't know that SSD is an option for us even if it's performant enough. The only way would be to pin it to a specific Node and add the SSD there, but then we lose resiliency. Tricky.

@alxmk You can add a SSD as a persistent volume to your pods. Then Kubernetes handles to mount the SSD to the node where the Prometheus pod is running. Did you consider that?

My understanding is that still has the issue that when the node that has the SSD physically attached to it goes down, we lose the volume, even if the prometheus pod is running elsewhere.

This should be fixed by https://github.com/prometheus/tsdb/pull/213 and https://github.com/prometheus/prometheus/pull/3508


ImportError: You must install pydot and graphviz for pydotprint to work.

When I run capsulenet.py, I have this error:
ImportError: Failed to import pydot. You must install pydot and graphviz for pydotprint to work.
But, I have installed pydot and graphviz:
pydot==1.2.3
graphviz==0.8.1
Any idea?

try https://github.com/XifengGuo/CapsNet-Keras/issues/7

Solved. I commented the plot_model line.
Thanks you. Good code @XifengGuo

hi @bukosabino, can you tell me what you commented out to get the plot_model to work?

hi @brownpanther ,
I think my reply doesn't make sense now because this line is out of current code.

hi @bukosabino, can you tell me what you commented out to get the plot_model to work?

I got this to work by "brew install graphviz".

sudo apt-get install graphviz

pip install graphviz solved it for me

hi @bukosabino, can you tell me what you commented out to get the plot_model to work?

I got this to work by "brew install graphviz".

This fixed it for me on my Mac.

Just in case someone using windows might need it, modify the pydot.py file.
It should be in <python_install_path>\Lib\Site-packages\pydot.py.
Besides pip install pydot and pip install graphviz, also install graphviz software. And add the software bin directory to the system's path.
And in class Dot(Graph), change self.prog = 'dot' to
self.prog = 'dot.exe'
Seems that the package was written for *nix system. So in windows, assign it to be an .exe file.

I was able to get it to work with Tensorflow 2 on Ubuntu with:
pip install pydot
pip install pydotplus
apt-get install graphviz
pip install graphviz

@swun90 Thank you for your solution. It works for me :)

Just in case someone using windows might need it, modify the pydot.py file.
It should be in <python_install_path>\Lib\Site-packages\pydot.py.
Besides pip install pydot and pip install graphviz, also install graphviz software. And add the software bin directory to the system's path.
And in class Dot(Graph), change self.prog = 'dot' to
self.prog = 'dot.exe'
Seems that the package was written for *nix system. So in windows, assign it to be an .exe file.

Also I needed to open CMD with administrator privileges and run dot -c or dot.exe -c.

Install pydot, graphviz using conda/pip
Add a couple of changes in <python_install_path>\Lib\Site-packages\pydot.py as below:
def get_executable_extension():
    # type: () -> str
    if is_windows():
        #return '.bat' if is_anacoda() else '.exe'
        return '.exe'
    else:
        return ''

return.bat didn't exist in Graphviz install directory.
class Dot(Graph):
    """A container for handling a dot language file.

    This class implements methods to write and process
    a dot language file. It is a derived class of
    the base class 'Graph'.
    """

    def __init__(self, *argsl, **argsd):
        Graph.__init__(self, *argsl, **argsd)

        self.shape_files = list()
        self.formats = [
            'canon', 'cmap', 'cmapx',
            'cmapx_np', 'dia', 'dot',
            'fig', 'gd', 'gd2', 'gif',
            'hpgl', 'imap', 'imap_np', 'ismap',
            'jpe', 'jpeg', 'jpg', 'mif',
            'mp', 'pcl', 'pdf', 'pic', 'plain',
            'plain-ext', 'png', 'ps', 'ps2',
            'svg', 'svgz', 'vml', 'vmlz',
            'vrml', 'vtx', 'wbmp', 'xdot', 'xlib']

        #self.prog = 'dot' # Unix
        self.prog = r'C:\Program Files\Graphviz\bin\dot' # Windows absolute path

For some reason subprocess.Popen was not able to find 'dot.exe' from my system (I had Graphviz/bin to the system path variables), used absolute path instead and it worked!

conda install graphviz

conda install graphviz solved the problem for me 👍

conda install graphviz
solved the problem for me

The following commands solved the problem for me
pip install pydot
pip install pydotplus
sudo apt-get install graphviz


Missing ownerReference information in created resources by the kubevela operator

Describe the bug
Kubernetes has the concept of ownership of resources (see here). It is meant to avoid interfering of objects that do not belong to a controller, e.g. it can happen that based on the label selector two deployments think they own a ReplicaSet and start to modify it. To avoid that to controllers think they own the ReplicaSet a special field is set by the controller which created the ReplicaSet.
Kubevela acts here as an owner of several resources, but is not setting an ownerReference. This should be fixed to follow the standard way how operators and controllers work in Kubernetes
To Reproduce
Apply the following app definition
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
  name: app
spec:
  components:
  - name: app
    type: webservice
    properties:
      image: traefik/whoami:v1.8.1
      port: 80
    traits:
    - properties:
        domain: app.<IP_ADDRESS>.nip.io
        http:
          /: 80
      type: gateway
    - properties:
        cpuPercent: 80
        max: 5
        min: 2
      type: cpuscaler

kubevela creates several resources like deployment, service, hpa and ingress but none of the resources has an ownerReference.
kubectl get deployment app -o jsonpath='{.metadata.ownerReferences}'
kubectl get service app -o jsonpath='{.metadata.ownerReferences}'
kubectl get ingress app -o jsonpath='{.metadata.ownerReferences}'
kubectl get hpa app -o jsonpath='{.metadata.ownerReferences}'

Kubevela also creates an applicationrevision and sets the ownerReference correctly.
kubectl get applicationrevisions.core.oam.dev app-v1 -ojsonpath='{.metadata.ownerReferences}' | yq -P '.'
- apiVersion: core.oam.dev/v1beta1
  controller: true
  kind: Application
  name: app
  uid: fef924af-6825-41e2-a1aa-5ed765e51e60

Expected behavior
Kubevela shall set the same ownerReferences to all directly created resources as it does for the applicationsrevisions and shall update it if the Application uid changes.
It shall ignore all transitively created resources (e.g. replicasets which are created by the deployment controller and not kubevela)
The same shall happen for all created resources from other traits or properties (like secrets or configmap)
KubeVela Version
Controller Version: 1.4.1
CLI Version: 1.4.5
Cluster information
Kubernetes Version: 1.24.1
Additional context
See Kubernetes documentation for more details

Thanks for the very detailed answer. The multicluster deployment support is the topology feature, right?
I think I misunderstood Kubevela, or didn't read in detail as I limited it to an operator which just simplifies the resources needed for a deployment to a more application centric view. I didn't give much thought on the topology and workflow part as it overlaps with a lot of tools for workflow handling or gitops.
So I think I need a deeper look how to combine or even replace some tools with Kubevela.
Still sad that the OwnerReference didn't work out for you, but I understand the reasoning.

topology

Thanks for the raised discussion. :)
The multicluster deployment support is the topology feature. Compared to simple multicluster delivery, KubeVela application manages the lifecycle of resources, which makes it much harder since it needs to track the dispatched resources across clusters. It is true that in limited scenarios OwnerReference can work very well.

@tommy1199 BTW, what is the particular scenario that without ownerreference you can't accomplish?

@wonderflow it is not that I can not accomplish something with the current setup, but as @Somefive already mentioned, some tools are using the ownerreference for the object graph e.g. for visualization (like ArgoCD).
I can just imagine that it could interfere with other tools if it is missing as the ownership is not clear and tools would expect the ownerReference to check if a resource is owned by someone else as this is the defacto default provided by Kubernetes. But I do not have an example at the moment which could lead to problems.

Thanks for clarification. I think we can somehow add a feature flag (when users only use single cluster scenario for abstraction) if there're some important scenarios that were blocked.

That would be awesome if this is possible. Thanks

We actually have the same use case, the team is very used to using the ArgoCD graph visualisations for seeing the result of an app deployment as well as performing basic operations like restarting a Deployment.
Having that convenient visualisation back would be fantastic.

Slightly off-topic but may help your use case @tommy1199. We mitigated this entirely by switching ArgoCD's tracking method to "annotation" based on https://argo-cd.readthedocs.io/en/stable/user-guide/resource_tracking/#choosing-a-tracking-method. That combined with this recently merged bugfix https://github.com/argoproj/argo-cd/issues/8683, has completely resolved this use case. Effectively, ArgoCD now shows the KubeVela resources alongside the deployed OAM Application.
With a tracking method "annotation" used, ArgoCD automatically adds a tracking-id annotation to the OAM Application resource, the interesting side effect of this, that I assume is a feature of KubeVela, is that annotations on the OAM Application resource get replicated to the resources that KubeVela deploys. Now as this tracking-id is pointing to the OAM Application and not what ArgoCD would otherwise generate for the deployed resource, ArgoCD assumes that something else is managing it therefore not marking it for pruning. Best of both worlds, you get to keep the resources visible in ArgoCD and the resources aren't marked for pruning.

@wtaylor-ovo Thanks for the information. As far as I can see, this solves "only" the issue that resources created by Kubevela get auto-pruned by ArgoCD, but not the visualization, right? So resources created by Kubevela are not linked to the Kubevela Application, but directly to the root ArgoCD application. Nevertheless, I will try it out.

I'm also bumping into this issue with ArgoCD+Kubevela. This is one of the main blockers making me skeptical about the kubevela design and divergence from the native k8s API features.

KubeVela application needs fine-grained resource recycle instead of directly let the Kubernetes garbage collector to collect them. For example, in KubeVela, resources managed by different component can have dependencies. However, it is impossible to let the owner reference mechanism to do the fine-grained recycle.

Hey @Somefive, I don't think it is impossible? Kubernetes natively supports finalizers which allow to not get deleted until certain conditions are met. This is the native k8s way of handling complex garbage collection logic.
From the docs:

Finalizers are namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources marked for deletion. Finalizers alert controllers to clean up resources the deleted object owned.

👉🏽 Here's a great blog post on how you could implement a custom finalizer delete API.


Chrome OS Detection

Hello and good day,
I will be straightforward and I just want to report that your tool Sir cannot detect Chrome OS so far. Instead it returns 0.
Here is a sample user-agent for Chrome OS: 'Mozilla/5.0 (X11; CrOS x86_64 6680.78.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.102 Safari/537.36'.
Thanks a lot and may the Force be with you.

Fixed on dev-master :)

Thanks a lot.


Problem with ximea camera

Describe the Bug
I would like to use a Basler and a Ximea camera for my application. My code with the Matrix Vision Producer works pretty well with the Basler camera. The problem occurs with the Ximea camera.
Here the first problem is that I cannot use the Ximea camera with the Matrix Vision Producer because the Producer does not recognize the Ximea camera.
For this reason, I use the Producer directly from Ximea.
There the camera is recognized and I can also grab a picture. But when I call the stop_acquisition() function the following error occurs:
SystemError: <built-in function DataStream__revoke_buffer> returned NULL without setting an error
To Reproduce
from harvesters.core import Harvester
harvester = Harvester()
harvester.add_file(r"C:\XIMEA\GenTL Producer\64bit\ximea.gentl.64.cti")
harvester.update()
cam_serial_number       = harvester.device_info_list[0].serial_number
cam = harvester.create_image_acquirer(serial_number = cam_serial_number)
cam.start_acquisition()
with cam.fetch_buffer() as buffer:
    print(buffer)
cam.stop_acquisition() #<--- this is where the error occurs
cam.destroy()
harvester.reset()

Expected Behavior
I would have thought that I could use the code normally for the Ximea camera as with the Basler camera but with a different producer.
I don't know what to change to make it work or if there is a bug somewhere.
Configuration

OS: [Windows 10]
Python: [3.8.10]
Harvester: [1.3.2]
GenTL Producer: [Ximea/Matrix Vision]
Camera: [Ximea]

@TobiasBaasch Hi,

I cannot use the Ximea camera with the Matrix Vision Producer

I do not know which camera from Ximea you are using now but I'd guess MATRIX VISION should be able to work with theirs. A scenario that I can imagine if the camera is a U3V model is... is Ximea driver still being attached to the device? Regards, Kazunari.

By the way, no matter where the root cause was, the issue you are facing would not be fixed by Harvester itself. I would recommend you to not expect the Ximea TL-based solution. Let's try to get your Ximea camera working with MATRIX VISION TL.

Hey @kazunarikudo,
thanks for the quick feedback.

I do not know which camera from Ximea you are using now

I am using the Ximea xiQ MQ013CG-E2 which is a USB3 Vision camera.

is Ximea driver still being attached to the device

I think the driver is not attached to the camera. When I connect the camera to the PC without the XIMEA Windows Software Package installed, the camera cannot connect to the PC.

Let's try to get your Ximea camera working with MATRIX VISION TL.

Since the two producers differ, this would also be the better solution for me

Thank you for your reply.

When I connect the camera to the PC without the XIMEA Windows Software Package installed, the camera cannot connect to the PC.

Wow, really? Do their cameras run on only the computers that have installed their software package?!

Don't their cameras run on any computers that have not installed their software package?!

I have tried it on three different PCs now. If nothing else is installed, the camera keeps connecting and disconnecting within a few seconds. I have not found a standalone driver outside of the software package yet either.
But maybe I am missing something big

Could you check again if MATRIX VISION's U3V device driver has been attached to the target camera, please? I guess you can do that for at least Basler's one so you have confirmed that you can acquire images from the Basler camera. I would expect that you can do this for Ximea's one as well.

Could you check again if MATRIX VISION's U3V device driver has been attached to the target camera, please?

Where can i download the MATRIX VISION's U3V device driver and how can i check if the driver is attached?
This is what i get from the wxPropView info:

and this is the current driver for the ximea camera

that you can acquire images from the Basler camera

I am using the Basler acA2500-14gc GigE Vision Camera and i can acquire images from it.

I can't precisely recall but MATRIX VISION should install a utility application that shows the U3V capable devices in the system and you can attach their driver for an arbitrary device. The screenshot should be just a view from MATRIX VISION's app as a GenTL consumer. GigE Vision devices do not require U3V style drivers so you can use them without any extra effort that you need to work for U3V devices. Again, please find a way to attach MATRIX VISION's U3V driver to the Ximea U3V camera. Good luck!


Implement a skeleton for style.get_prop()

Closes #136
Not all cases currently covered, can be in the future though as requested

@cydergoth is there anything missing from this?


Update Set-ExchangeServer.md

Updated the doc with the new user configurable cmdlet parameter  InternetWebProxyBypassList.
This parameter is available to the customer starting ExchangeServer CU 11.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/organization/Set-ExchangeServer.md
:white_check_mark:Succeeded
View (exchange-ps)

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.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/organization/Set-ExchangeServer.md
:white_check_mark:Succeeded
View (exchange-ps)

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.


Cannot able to apply any theme

I try to change to another theme, but besides the while default theme, I cannot able to change it to anything else.
When I try to change to another theme, it only can make to font change in some theme otherwise nothing happened.
Is there anyone facing the same issue?

The compatible issue with the new version of Spotify. (>v1.1.56)


ConfirmDialog and choiceDialog not recognize the response in different locales (only en-us works)

Describe the bug
we have a multi languages bot project template started from BotComposerFramework.
The bot responses are localized with correct languages set in the client (for example from bot emulator)
But we notice that if we use a confirm dialog o choice dialog the localization of conversation seems not correctly recognized.
Example with locale it-IT:
with ConfirmDialog works only with Yes and No responses (not Si No)
with ChoiceDialog works only engligs ordinals First, second, Third responses  (not with Primo, Secondo, Terzo)
Note that the intents that uses prebuilt ordinal or number entities works well.
Version
Version:  2.1.2
Electron: 8.2.4
Chrome: 80.0.3987.165
NodeJS: 12.13.0
V8: 8.0.426.27-electron.0
Browser

[X] Electron distribution

OS

[ ] macOS
[x] Windows
[ ] Ubuntu

To Reproduce
Steps to reproduce the behavior:

create a multi language dialog (es. en-gb, it-it)
Connect it to Bot Emulator with it-it languageg
call the confirmDialog e respond with Si (yes in en-gb)
The bot non recognized

Expected behavior

Hi @pscompa,
Which programming language is your Composer bot based on? Once I know that, I can attempt to reproduce this.

C# dot.net core 3.1
Thanks @anishprasad01

@pscompa
When you created your Confirm and Choice prompts and translated the prompt itself, did you modify the choices and trnaslate those as well? For example, in the confirm prompt:

Which would result in (forgive any poor translations, I do not know Italian and have relied on Google Translate. I am asking the user if they like to fly):

With Composer, everything has to be manually translated.

Closing this issue due to inactivity. If you still require assistance, please comment and we can reopen the issue.


[spike] Investigate a way to keep yarn.lock updated

We recently hit some bugs resulting from not testing our packages with the latest possible dependency versions.
Like JSV specifies:
  "dependencies": {
    "@stoplight/json-schema-tree": "^1.1.0",
    // ...
  },

but actually its tests fail with JST v1.1.2. (see https://github.com/stoplightio/json-schema-viewer/pull/121) Of course this is mainly JST's problem, but we still want a way to verify that Elements works correctly (e.g. all unit tests pass) with the latest versions of deps as well. (Because this is what future customers are getting, right?)
A weekly dependabot round might be the solution although it misses the important ability to have duplicate configs. https://github.com/dependabot/dependabot-core/issues/2390 We can of course keep using dependabot for security and another product like Renovate (https://github.com/marketplace/renovate). As these simply keep sending PRs, setting up is relatively painless and they are even usually free.

Reopening this until Monday 😇


Add Carthage support

Fixes #93
Changes:

Add FLAnimatedImage.xcworkspace; Remove .xcworkspace from gitignore
Move FLAnimatedImage/ to the root folder, update podspec accordingly
Change framework and demo projects deployment target to iOS 8.0+
Update framework and demo projects to recommended settings
FLAnimatedImage added to demo project by linking a framework

Is this possible to merge this ?

NAVER - http://www.naver.com/
<EMAIL_ADDRESS>님께 보내신 메일 <Re: [FLAnimatedImage] Add Carthage support (#95)> 이 다음과 같은 이유로 전송 실패했습니다.

받는 사람이 회원님의 메일을 수신차단 하였습니다.

Unfortunately, this project hasn't been maintained for month.

Change framework and demo projects deployment target to iOS 8.0+

Wondering why you did this. I'll likely merge anyways, but doesn't seem necessary to support Carthage. Is it?

Thanks for this PR! Just merged at 1a6960acc3039a38496ad470edc774def0f15700.

Wondering why you did this. I'll likely merge anyways, but doesn't seem necessary to support Carthage. Is it?

Demo now links to FLAnimatedImage.framework (questionable change) and frameworks are only available on iOS 8 or later.

I also just spotted that instead of importing headers from the linked framework (#import <FLAnimatedImage/FLAnimatedImage.h>) they are imported directly from "User Header Search Paths", which isn't nice.

Will update. Also noticed that if you're using Cocoa Lumberjack Logger that linking with the built library doesn't work because a header references non-modular headers. Filed an issue for that here https://github.com/Flipboard/FLAnimatedImage/issues/107.

@kean planning on having this in a PR sometime to address your feedback.


Run ADI hive queries on amo (bug 1061734)

Fixes bug 1061734
Only merge when we want to "flip the switch" and stop running the CRONs on
peach-gw (so disable the CRONs over there).
The commit has been improperly associated to bug 1070238, while it's in fact linked to bug 1061734.

Do we need to coordinate with @jasonthomas for this?  I can help facilitate if we're ready.

Desarrolladores y líderes de Mozilla, que son travestis culo!
Alguien debe colgar ustedes para arriba en sus propias bolas y dejar que su perro muerda su caricatura de una polla!
Posteriormente deben ponerlo tiempo que sea necesario por la garganta hasta que traga a sí mismos en el suicidio!
Ustedes Mozilla está ... Estúpido de mierda coños!
Developers and leaders of Mozilla, which are shemales ass!

They should then put it long as needed by the throat until he swallows themselves in suicide!
You Mozilla is...

The ops team is in the process of moving the servers to different datacenters, so it's clearly not the moment to test/debug this. We'll reopen in the future if needed.


Fixes #9913, rmi protocol supoort group and version

see 9913 bug.
I added support for grouping and versioning in the RmiProtocol doRefer(), createExporter() method. A test method is written in RmiProtocolTest to verify its correctness.

Codecov Report

Merging #9951 (14d0ea4) into master (3a8e5e6) will decrease coverage by 0.91%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##             master    #9951      +/-   ##
============================================
- Coverage     60.92%   60.00%   -0.92%
+ Complexity      449      444       -5
============================================
  Files          1100     1100
  Lines         44557    44515      -42
  Branches       6486     6454      -32
============================================
- Hits          27145    26713     -432
- Misses        14446    14857     +411
+ Partials       2966     2945      -21

Impacted Files
Coverage Δ

...org/apache/dubbo/rpc/protocol/rmi/RmiProtocol.java
0.00% <0.00%> (ø)

...ookeeper/ZookeeperDynamicConfigurationFactory.java
0.00% <0.00%> (-66.67%)
:arrow_down:

...gcenter/wrapper/CompositeDynamicConfiguration.java
0.00% <0.00%> (-63.34%)
:arrow_down:

...pport/zookeeper/ZookeeperDynamicConfiguration.java
0.00% <0.00%> (-60.00%)
:arrow_down:

...fig/configcenter/TreePathDynamicConfiguration.java
31.42% <0.00%> (-54.29%)
:arrow_down:

...a/org/apache/dubbo/rpc/filter/AccessLogFilter.java
28.35% <0.00%> (-50.75%)
:arrow_down:

.../dubbo/metadata/report/MetadataReportInstance.java
12.50% <0.00%> (-40.63%)
:arrow_down:

...va/org/apache/dubbo/rpc/support/AccessLogData.java
53.16% <0.00%> (-37.98%)
:arrow_down:

.../configcenter/support/zookeeper/CacheListener.java
0.00% <0.00%> (-32.44%)
:arrow_down:

...ntext/event/AwaitingNonWebApplicationListener.java
48.48% <0.00%> (-24.25%)
:arrow_down:

... and 61 more

Continue to review full report at Codecov.

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