Initial ERD Reorganization

Initial reorganization of ERD packages including development of converters and removal of the erd-related utility files.  Separated out from dishwasher support as this is more complex and will need more discussion/review.  First step for implementing Issue #4.

No worries, completely understand.  I would recommend taking a look at my
fork instead of this request, it's considerably farther along (though I'll
look through the comments here and see if they apply there too).  I've done
the following in the fork:
gekitchensdk:

Restructured the project, breaking up into individual classes and
getting rid of many individual methods in favor of classes.
Implemented/refined support for more devices (fridge heater, cooktops,
dishwasher)
Pushed string conversions from HA to SDK
Made both clients share the same interface
Fixed up some of the authentication stuff (reauth, retries, etc)

ge_kitchen HA:

Similar restructuring to the sdk
Implemented support for the same devices/sensors as SDK
Cleaned up issues that could cause exceptions that kill the integration
Added secondary retry logic when primary (sdk) fails

I think I got most of your TODO items covered, except I didn't clean up the
initial OAuth code logic yet.
Let me know when you have a chance to look and then we can figure out the
path forward.
On Tue, Jan 12, 2021 at 9:54 PM Andrew Marks<EMAIL_ADDRESS>wrote:

@ajmarks requested changes on this pull request.
Hey, sorry for taking so absurdly long to get to this. Things have been a
bit nuts with a new job, but that's no excuse. On the whole this looks
pretty good. It's mostly just nitpicking about staticmethods and such.
In gekitchen/erd/converters/abstract.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556224054:

⬇ Suggested change

In gekitchen/erd/converters/primitives.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556224888:

"erd_encode_bool",

"erd_decode_string",

"erd_encode_string",

"erd_decode_timespan",

"erd_encode_timespan"

+)

+import logging
+from datetime import timedelta
+from typing import Optional

+from .abstract import ErdValueConverter

+_LOGGER = logging.getLogger(name)

+class ErdIntConverter(ErdValueConverter[int]):
These should probably all be decorated @staticmethod since they don't use
any member variables
In gekitchen/erd/converters/abstract.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556225588:

+class ErdValueConverter(Generic[T], ABC):

@abstractmethod

def erd_encode(self, value: T) -> str:

   pass

@abstractmethod

def erd_decode(self, value: str) -> T:

   pass

Is there a reason you chose to use an ABC over a Protocol[T]? I'm not
requesting you change it, just curious.
In gekitchen/erd/registry.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556225939:

ErdCode.UPPER_OVEN_AVAILABLE_COOK_MODES: ErdAvailableCookModeConverter(),

ErdCode.UPPER_OVEN_COOK_MODE: OvenCookModeConverter(),

ErdCode.CONVECTION_CONVERSION: ErdBoolConverter(),

ErdCode.HOUR_12_SHUTOFF_ENABLED: ErdBoolConverter(),

ErdCode.OVEN_CONFIGURATION: OvenConfigurationConverter(),

ErdCode.OVEN_MODE_MIN_MAX_TEMP: OvenRangesConverter(),

Dishwasher

ErdCode.CYCLE_NAME: ErdStringConverter(),

ErdCode.PODS_REMAINING_VALUE: ErdIntConverter(),

ErdCode.TIME_REMAINING: ErdTimeSpanConverter(),

ErdCode.CYCLE_STATE: ErdCycleStateConverter(),

ErdCode.OPERATING_MODE: ErdOperatingStateConverter(),

ErdCode.RINSE_AGENT: ErdRinseAgentConverter(),

+})
⬇ Suggested change
-})
+})

In gekitchen/erd/registry.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556226556:

@@ -0,0 +1,85 @@

+from typing import TypedDict

+from .codes import ErdCode
+from .converters import *

+class ConverterRegistry(TypedDict):

key: ErdCode

value: ErdValueConverter

If all of these methods end up being decorated @staticmethod or
@classmethod, you can change this to Type[ErdValueConverter] and get rid
of all of the instance creation below. Alternatively, if you use a
Protocol instead of an ABC, both instance and classes with static/class
methods can be hinted as ErdConverterProto or whatever you call it.
In gekitchen/erd/converters/primitives.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556227343:

"erd_decode_int",

"erd_encode_int",

"erd_decode_signed_byte",

"erd_encode_signed_byte",

"erd_decode_bytes",

"erd_encode_bytes",

"erd_decode_bool",

"erd_encode_bool",

"erd_decode_string",

"erd_encode_string",

"erd_decode_timespan",

"erd_encode_timespan"

Do these get used anywhere outside of this file?
In gekitchen/erd/registry.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556227407:

@@ -0,0 +1,85 @@

+from typing import TypedDict

+from .codes import ErdCode
+from .converters import *

+class ConverterRegistry(TypedDict):

key: ErdCode

value: ErdValueConverter

+_registry = ConverterRegistry({
This should be renamed to not have a leading underscore since it's being
imported at
https://github.com/ajmarks/gekitchen/pull/7/files#diff-6268e47bd3fc9c879628ce37769b861060990bf078a59827fac63ba6710ff5b2R7
In gekitchen/erd/serializer.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556227962:

   :param erd_code: ErdCode or str, the ERD Code the value of which we want to decode

   :param erd_value: The raw ERD code value, usually a hex string without leading "0x"

   :return: The decoded value.

   """

   if erd_value == '':

       return None

   erd_code = self.translate_erd_code(erd_code)

   if isinstance(erd_code, str):

       return erd_decode_bytes(erd_value)

   try:

       return _registry[erd_code].erd_decode(erd_value)

   except KeyError:

       return erd_decode_int(erd_value)

I know this is something I did, but I'm very on the fence about it. What
are your thoughts on leaving it as a hex string if we don't know how to
decode? I mostly think that would be a better behavior, but I worry that
something somewhere implicitly relies on this fallback.
In gekitchen/ge_appliance.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556228224:

+from .erd import ErdCodeType, ErdSerializer

+from .erd import ErdApplianceType, ErdCode
⬇ Suggested change
-from .erd import ErdCodeType, ErdSerializer

-from .erd import ErdApplianceType, ErdCode
+from .erd import ErdApplianceType, ErdCode, ErdCodeType, ErdSerializer

In gekitchen/erd/values/fridge.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556229419:

NA = "FF"

+class FridgeIceBucketStatus(NamedTuple):
⬇ Suggested change

NA = "FF"

-class FridgeIceBucketStatus(NamedTuple):

NA = "FF"

+class FridgeIceBucketStatus(NamedTuple):

In gekitchen/erd/serializer.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556229836:

@@ -0,0 +1,80 @@

+import logging
+from datetime import timedelta
+from textwrap import wrap
+from typing import Any, Dict, Optional, Set, Tuple, Union

+from .codes import ErdCode
+from .registry import _registry
+from .converters import ErdValueConverter
+from .converters.primitives import *

+_LOGGER = logging.getLogger(name)

+ErdCodeType = Union[ErdCode, str]

+class ErdSerializer:
Is this used anywhere except
https://github.com/ajmarks/gekitchen/pull/7/files#diff-f7dcdaf6a62f6adad7ea90ceca0165811c2efa8cc4a5ac395f5e0cc84ec0a204R27
?
If not, since it doesn't have any instance or class variables, it should
probably just be three functions without the class trappings. They could
either be directly folded into GeAppliance, left here with thin wrapper
methods in GeAppliance, or just invoked directed when needed.
In gekitchen/erd/serializer.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556230033:

def translate_erd_code(self, erd_code: ErdCodeType) -> ErdCodeType:

   """

⬇ Suggested change

def translate_erd_code(self, erd_code: ErdCodeType) -> ErdCodeType:

   """

@staticmethod

def translate_erd_code(erd_code: ErdCodeType) -> ErdCodeType:

   """

In gekitchen/erd/serializer.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556230127:

   """

   if isinstance(erd_code, ErdCode):

       return erd_code

   try:

       return ErdCode[erd_code]

   except KeyError:

       pass

   try:

       return ErdCode(erd_code.lower())

   except ValueError:

       # raise UnknownErdCode(f"Unable to resolve erd_code '{erd_code}'")

       return erd_code

def decode_erd_value(self, erd_code: ErdCodeType, erd_value: str) -> Any:

⬇ Suggested change

def decode_erd_value(self, erd_code: ErdCodeType, erd_value: str) -> Any:

@staticmethod

def decode_erd_value(erd_code: ErdCodeType, erd_value: str) -> Any:

In gekitchen/erd/serializer.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556230164:

   :return: The decoded value.

   """

   if erd_value == '':

       return None

   erd_code = self.translate_erd_code(erd_code)

   if isinstance(erd_code, str):

       return erd_decode_bytes(erd_value)

   try:

       return _registry[erd_code].erd_decode(erd_value)

   except KeyError:

       return erd_decode_int(erd_value)

def encode_erd_value(self, erd_code: ErdCodeType, value: Any) -> str:

⬇ Suggested change

def encode_erd_value(self, erd_code: ErdCodeType, value: Any) -> str:

@staticmethod

def encode_erd_value(erd_code: ErdCodeType, value: Any) -> str:

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ajmarks/gekitchen/pull/7#pullrequestreview-566850862,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOEHFXAH4IQVZY42COAR3O3SZUDPXANCNFSM4VDEAARA
.

No worries, completely understand.  I would recommend taking a look at my
fork instead of this request, it's considerably farther along (though I'll
look through the comments here and see if they apply there too).  I've done
the following in the fork:
gekitchensdk:

Restructured the project, breaking up into individual classes and
getting rid of many individual methods in favor of classes.
Implemented/refined support for more devices (fridge heater, cooktops,
dishwasher)
Pushed string conversions from HA to SDK
Made both clients share the same interface
Fixed up some of the authentication stuff (reauth, retries, etc)

ge_kitchen HA:

Similar restructuring to the sdk
Implemented support for the same devices/sensors as SDK
Cleaned up issues that could cause exceptions that kill the integration
Added secondary retry logic when primary (sdk) fails

I think I got most of your TODO items covered, except I didn't clean up the
initial OAuth code logic yet.
Let me know when you have a chance to look and then we can figure out the
path forward.
On Tue, Jan 12, 2021 at 9:54 PM Andrew Marks<EMAIL_ADDRESS>wrote:

@ajmarks requested changes on this pull request.
Hey, sorry for taking so absurdly long to get to this. Things have been a
bit nuts with a new job, but that's no excuse. On the whole this looks
pretty good. It's mostly just nitpicking about staticmethods and such.
In gekitchen/erd/converters/abstract.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556224054:

⬇ Suggested change

In gekitchen/erd/converters/primitives.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556224888:

"erd_encode_bool",

"erd_decode_string",

"erd_encode_string",

"erd_decode_timespan",

"erd_encode_timespan"

+)

+import logging
+from datetime import timedelta
+from typing import Optional

+from .abstract import ErdValueConverter

+_LOGGER = logging.getLogger(name)

+class ErdIntConverter(ErdValueConverter[int]):
These should probably all be decorated @staticmethod since they don't use
any member variables
In gekitchen/erd/converters/abstract.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556225588:

+class ErdValueConverter(Generic[T], ABC):

@abstractmethod

def erd_encode(self, value: T) -> str:

   pass

@abstractmethod

def erd_decode(self, value: str) -> T:

   pass

Is there a reason you chose to use an ABC over a Protocol[T]? I'm not
requesting you change it, just curious.
In gekitchen/erd/registry.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556225939:

ErdCode.UPPER_OVEN_AVAILABLE_COOK_MODES: ErdAvailableCookModeConverter(),

ErdCode.UPPER_OVEN_COOK_MODE: OvenCookModeConverter(),

ErdCode.CONVECTION_CONVERSION: ErdBoolConverter(),

ErdCode.HOUR_12_SHUTOFF_ENABLED: ErdBoolConverter(),

ErdCode.OVEN_CONFIGURATION: OvenConfigurationConverter(),

ErdCode.OVEN_MODE_MIN_MAX_TEMP: OvenRangesConverter(),

Dishwasher

ErdCode.CYCLE_NAME: ErdStringConverter(),

ErdCode.PODS_REMAINING_VALUE: ErdIntConverter(),

ErdCode.TIME_REMAINING: ErdTimeSpanConverter(),

ErdCode.CYCLE_STATE: ErdCycleStateConverter(),

ErdCode.OPERATING_MODE: ErdOperatingStateConverter(),

ErdCode.RINSE_AGENT: ErdRinseAgentConverter(),

+})
⬇ Suggested change
-})
+})

In gekitchen/erd/registry.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556226556:

@@ -0,0 +1,85 @@

+from typing import TypedDict

+from .codes import ErdCode
+from .converters import *

+class ConverterRegistry(TypedDict):

key: ErdCode

value: ErdValueConverter

If all of these methods end up being decorated @staticmethod or
@classmethod, you can change this to Type[ErdValueConverter] and get rid
of all of the instance creation below. Alternatively, if you use a
Protocol instead of an ABC, both instance and classes with static/class
methods can be hinted as ErdConverterProto or whatever you call it.
In gekitchen/erd/converters/primitives.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556227343:

"erd_decode_int",

"erd_encode_int",

"erd_decode_signed_byte",

"erd_encode_signed_byte",

"erd_decode_bytes",

"erd_encode_bytes",

"erd_decode_bool",

"erd_encode_bool",

"erd_decode_string",

"erd_encode_string",

"erd_decode_timespan",

"erd_encode_timespan"

Do these get used anywhere outside of this file?
In gekitchen/erd/registry.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556227407:

@@ -0,0 +1,85 @@

+from typing import TypedDict

+from .codes import ErdCode
+from .converters import *

+class ConverterRegistry(TypedDict):

key: ErdCode

value: ErdValueConverter

+_registry = ConverterRegistry({
This should be renamed to not have a leading underscore since it's being
imported at
https://github.com/ajmarks/gekitchen/pull/7/files#diff-6268e47bd3fc9c879628ce37769b861060990bf078a59827fac63ba6710ff5b2R7
In gekitchen/erd/serializer.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556227962:

   :param erd_code: ErdCode or str, the ERD Code the value of which we want to decode

   :param erd_value: The raw ERD code value, usually a hex string without leading "0x"

   :return: The decoded value.

   """

   if erd_value == '':

       return None

   erd_code = self.translate_erd_code(erd_code)

   if isinstance(erd_code, str):

       return erd_decode_bytes(erd_value)

   try:

       return _registry[erd_code].erd_decode(erd_value)

   except KeyError:

       return erd_decode_int(erd_value)

I know this is something I did, but I'm very on the fence about it. What
are your thoughts on leaving it as a hex string if we don't know how to
decode? I mostly think that would be a better behavior, but I worry that
something somewhere implicitly relies on this fallback.
In gekitchen/ge_appliance.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556228224:

+from .erd import ErdCodeType, ErdSerializer

+from .erd import ErdApplianceType, ErdCode
⬇ Suggested change
-from .erd import ErdCodeType, ErdSerializer

-from .erd import ErdApplianceType, ErdCode
+from .erd import ErdApplianceType, ErdCode, ErdCodeType, ErdSerializer

In gekitchen/erd/values/fridge.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556229419:

NA = "FF"

+class FridgeIceBucketStatus(NamedTuple):
⬇ Suggested change

NA = "FF"

-class FridgeIceBucketStatus(NamedTuple):

NA = "FF"

+class FridgeIceBucketStatus(NamedTuple):

In gekitchen/erd/serializer.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556229836:

@@ -0,0 +1,80 @@

+import logging
+from datetime import timedelta
+from textwrap import wrap
+from typing import Any, Dict, Optional, Set, Tuple, Union

+from .codes import ErdCode
+from .registry import _registry
+from .converters import ErdValueConverter
+from .converters.primitives import *

+_LOGGER = logging.getLogger(name)

+ErdCodeType = Union[ErdCode, str]

+class ErdSerializer:
Is this used anywhere except
https://github.com/ajmarks/gekitchen/pull/7/files#diff-f7dcdaf6a62f6adad7ea90ceca0165811c2efa8cc4a5ac395f5e0cc84ec0a204R27
?
If not, since it doesn't have any instance or class variables, it should
probably just be three functions without the class trappings. They could
either be directly folded into GeAppliance, left here with thin wrapper
methods in GeAppliance, or just invoked directed when needed.
In gekitchen/erd/serializer.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556230033:

def translate_erd_code(self, erd_code: ErdCodeType) -> ErdCodeType:

   """

⬇ Suggested change

def translate_erd_code(self, erd_code: ErdCodeType) -> ErdCodeType:

   """

@staticmethod

def translate_erd_code(erd_code: ErdCodeType) -> ErdCodeType:

   """

In gekitchen/erd/serializer.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556230127:

   """

   if isinstance(erd_code, ErdCode):

       return erd_code

   try:

       return ErdCode[erd_code]

   except KeyError:

       pass

   try:

       return ErdCode(erd_code.lower())

   except ValueError:

       # raise UnknownErdCode(f"Unable to resolve erd_code '{erd_code}'")

       return erd_code

def decode_erd_value(self, erd_code: ErdCodeType, erd_value: str) -> Any:

⬇ Suggested change

def decode_erd_value(self, erd_code: ErdCodeType, erd_value: str) -> Any:

@staticmethod

def decode_erd_value(erd_code: ErdCodeType, erd_value: str) -> Any:

In gekitchen/erd/serializer.py
https://github.com/ajmarks/gekitchen/pull/7#discussion_r556230164:

   :return: The decoded value.

   """

   if erd_value == '':

       return None

   erd_code = self.translate_erd_code(erd_code)

   if isinstance(erd_code, str):

       return erd_decode_bytes(erd_value)

   try:

       return _registry[erd_code].erd_decode(erd_value)

   except KeyError:

       return erd_decode_int(erd_value)

def encode_erd_value(self, erd_code: ErdCodeType, value: Any) -> str:

⬇ Suggested change

def encode_erd_value(self, erd_code: ErdCodeType, value: Any) -> str:

@staticmethod

def encode_erd_value(erd_code: ErdCodeType, value: Any) -> str:

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ajmarks/gekitchen/pull/7#pullrequestreview-566850862,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOEHFXAH4IQVZY42COAR3O3SZUDPXANCNFSM4VDEAARA
.


fixing names

running csp.ipynb was giving NameError for australia, usa, france
correcting to australia_csp, usa_csp, france_csp works fine

Thx Josd! It was my mistake: after adding the problems also as SAT I renamed those as CSP as "ausralia_csp", "france_csp", etc. and those as SAT as "australia_sat", "france_sat", etc. but I would have to check also the .ipynb! Sorry. :)


Deprecated module
https://forge.puppet.com/modules/puppet/mcollective
Replacement module
https://forge.puppet.com/modules/choria/choria/readme
What authority do you have for making this request?
It's my module. (github username matches repo owner or contact info provided for verification), I am a Vox Pupuli PMC member
More information
Hi,
we're going to archive the git repo, please deprecate the module and suggest https://forge.puppet.com/modules/choria/choria/readme as the successor.

@bastelfreak Can you confirm if this request has been catered?

looks good, thanks!


Add data monitoring feature

Is your feature request related to a problem? Please describe.
The problem issue is trying to solve is that some users need to check and validate their data as part of their MLOps lifecycle. Since Whitebox already does this for the training and inference dataset, we should be able to extend this functionality to a complete data monitoring solution.
Describe the solution you'd like
A possible solution is to create a data monitoring project, just like we do in model monitoring. The user should be able to specify where the data is located (S3, SQL, and other integrations in the future) and whitebox will run the data monitoring pipelines just it does with model monitoring.
A possible flow is the following:

Create a model monitoring project (through SDK/ UI/ API)
Choose the data to be monitored by specifying the data source and credentials.
Run the data monitoring pipelines and display the findings on the dashboard (like model monitoring)

@momegas what do you mean data monitoring pipelines? Is any of the existing pipelines of whitebox a data monitoring one?


lib.BigNum.one is not a function

An error I kept facing while doing spago repl, I'm not sure if it's intentional or not, but this https://github.com/Plutonomicon/cardano-transaction-lib/blob/2a12009ec2f7fa870c070d7aa05a5f41d723c6f3/src/Types/BigNum.js#L14 calls a nonexistent function:
> const lib = require('@emurgo/cardano-serialization-lib-nodejs');
undefined
> lib.BigNum.one;
undefined
> lib.BigNum.zero;
[Function: zero]

should it be lib.BigNum.from_str('1');? That seems to work

@hyphenrf Are you using npm directly? Do you have a node_modules present? This is something users have reported when using npm install instead of having Nix manage the node dependencies (done automatically with nix develop, but if you have node_modules present in the working directory it will shadow the ones from the Nix store)

should it be lib.BigNum.from_str('1');? That seems to work
No, one is a defined symbol in cardano-serialization-lib

On latest develop:
Welcome to Node.js v14.19.1.
Type ".help" for more information.
> const lib = require("@emurgo/cardano-serialization-lib-nodejs")
undefined
> lib.BigNum.one
[Function: one]
>

thanks, confirmed this works :heart:
I'll pay more attention to my npm calls, forgot the --package-lock-only


X-Ray enhancements

@christiankjaer I had some notes on your Natchez PR and thought it might be easier to start off with this PR.
The Scala 3 build errors probably needs to be incorporated into your PR before it can be merged into Rob's repo.
The other two could wait for a followup, but I think they're pretty useful for AWS Lambda functions, so I'd like to include them if you're open to it.

I am not super familiar with ScalaJS, so I am quite happy that you made it work :+1:
These changes look good to me, and I will happily merge and update the upstream PR when the comments are resolved. I am happy that somebody wants to use it.

LGTM, I'll try and take a pass through of the actual PR too and not the PR of the PR 😉

Ok. I will merge, update the upstream PR and request a review from @armanbilge


Chef 16 add provides to resources

Description
This adds 'provides' to all resources in this cookbook
Issues Resolved
When testing another cookbook I had a resource error due to this behavior not being defined
Check List

[ X] All tests pass. See TESTING.md for details.
[ NA] New functionality includes testing.
[ NA069] New functionality has been documented in the README if applicable.

Actually this is my bad, I didnt realize we had pinned an old version of the cookbook,
I do think this should be merged though. In the nginx cookbook we found that if another cookbook provides a similar resource defined with provides than it will supersede yours.
In that case the chef-nginx cookbook used provides :nginx_site while the sous-chefs cookbook did not.
So although the sous-chefs was referenced first and chef_nginx was a dependency of a dependency the lack of provides made our resource be interpreted as nginx_nginx_site giving the 'nginx_site' provided by chef-nginx priority
Thats obviously an edge case but IMO it should be defined.

I will leave this to @tas50 and @lamont-granquist to advise on best practise here

I think you're mistake about that use case?  If you don't have a provides then nginx/resources/nginx_site.rb should only ever get automatically wired up as nginx_nginx_site and that has never changed.
I think the other way around though there was a problem, if you had a nginx/resources/site.rb without provides and nginx/resources/nginx_site.rb that did define provides :nginx_site then I think it is possible that pre-chef-16 without provides would always lose while post-chef-16 it now depends only on parse order.
( This kind of complexity gets at why I made everyone go through the pain in Chef 16 due to crazy edge conditions like this )
Going forwards though there's no difference in Chef-16, if you don't declare an explicit provides, then the implicit provides is the same "precedence level" so I don't think this matters either way.
At the same time I'm of the opinion that I like explicitness and self-documentation.  My encouragement is to define provides on every resource.
Tim disagrees, and I can't really cite any reason he's wrong.  I definitely have no plans of ever removing the implicit provides based on the cookbook+resource file.
Going forwards this may come down just to personal preference.

Gotcha, thanks for that explanation! I'm glad it has switched in chef 16 to handle that. In that case please either close or merge this at your digression.

I would feel better if we explicitly set the provides but I could go either way.
@tas50 @Xorima thoughts?

If @lamont-granquist recommends it let's do it, at least this way it is the way chef are recommending at this point in time

Heh, well @tas50 recommends not using provides in this case.  I recommend using provides in this case.
So "Chef" is a bit split on the recommendation.
I would love to see sous-chefs play around with the problem and maybe figure out which of us is right and which is wrong (although I like the way Lance thinks...  =) ).
Kind of your chance to shine and figure out which direction we should go.

You should maybe ping Tim in the meeting this week and get his opinion.

any updates? Should I close this?

No sous-chef meetings for the past two weeks, we keep having other stuff scheduled over it.

Cool, thnaks or the feedback!

I confirmed that this isn't needed. Thanks anyway!


How does RPA-Python perform Non-Headless look like in Google Colab?

Hi, Ken Soh
I have just installed /set up everything same as what you recommend in #291 ,  and everything run smoothly without error.
My thought (or understanding) is,  RPA-Python would pop up a new Chrome Tab to perform the search etc.  But nothing was pop up during the test,   Yet I could view and download the result.png screenshot.
I am very newbie in Python, RPA and Google Colab,   so my question:  "is this normal for RPA-Python in Google Colab, because it is web-based?"  or "Shall I expect something pop up to perform the automation visually?"
Thanks
Peter

Yes previous version of the Colab notebook is running in headless mode, but the latest version is running normal Chrome with a virtual display.

A virtual display in Linux means a display that exists in memory and cant be seen on the screen.

Hi Peter, can you share more what do you mean? For running in Colab, you are running on Google Linux servers on the cloud, so you cannot see any Chrome browsers. For the Colab notebook it is using virtual display to run. This mode is better than headless as it works with more websites. Some websites will block headless mode browsers because it is automated user.

Yes, Ken Soh.
You are right, it is all because of my limited knowledge to understand your description correctly.
I haven't started any real Automation project,  should I encounter any issue, I would definitely look for you again,  Thanks !


Add support for preemptible instances.

Added configuration parameter, allocation logic, and tests.

Looks good:

LGTM.


boost::network::http::client questions

Firstly: Does a boost::network::http::client create a lifetime thread? I want to maintain my own thread pool so without the boost::network::http::client internal boost::asio::io_service::work object.
For example:
#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <boost/network.hpp>

int main() {
    boost::asio::io_service io_service;

    // boost::network::http::client expects a shared_ptr<io_service>, so let's give it one
    boost::shared_ptr<boost::asio::io_service> hack_ptr(&io_service, [](boost::asio::io_service*) {
        // do nothing in custom deleter
        });

    boost::network::http::client::options options;
    options.io_service(hack_ptr);
    boost::network::http::client client(options); // does this create a new thread??

    // ... some other stuff is created and a thread pool
    boost::asio::io_service::work work(io_service);

    boost::thread_group pool;
    pool.create_thread(boost::bind(&boost::asio::io_service::run, &io_service));
    pool.create_thread(boost::bind(&boost::asio::io_service::run, &io_service));

    boost::asio::signal_set signals(io_service, SIGINT, SIGTERM);
    signals.async_wait(boost::bind(&boost::asio::io_service::stop, &io_service));
    // ...

    // somewhere during the application a request is done
    boost::network::http::client::request request("http://www.boost.org");
    boost::network::http::client::response response = client.get(request);

    boost::uint16_t status = response.status(); // blocking call
    std::cout << "Response code: " << status << std::endl;
    std::string body = response.body(); // blocking call
    std::cout << "Response body: " << std::endl << body << std::endl;

    pool.join_all();

    return 0;
}

Secondly: Is there a way to do an http request fully asynchronously in the current release (0.11.1-final)? Because the when_ready wrapper is not included yet I guess?

First, yes, it does create a lifetime thread (last I checked).
 I haven't been able to finish the implementation of the whean_ready(...) wrapper.
Do you have time @pdgendt to finish up that implementation? I have a pull request that I suspect you can continue working on to get it to a point where it's useful to you.

Could it be an added value if the internal lifetime thread is made optional? Could be defaulted to true but that it could be overwritten in the options?
I currently don't have any spare time for the when_ready implementation, maybe later. But what still needs to be done for it to be complete?

Yes, making it optional would be very welcome.
For when_ready(...), it's making sure that the exceptions are handled appropriately, and that we make sure the futures are already set up before we try invoking the callback. I think that needed just a little bit more debugging time.


UN Smart Maps Domain name registration?

Purpose
With #149 decided, should we try for a domain name registration?
If we follow the UN Open GIS (https://unopengis.org/) model then we can go with:

[ ] https://unsmartmaps.org

If we want want to go with the UN Mappers model (https://mappers.un.org/) then we can go with:

[ ] https://smartmaps.un.org

Nice. By the way, if we go with unsmartmaps.org, we will face UN-common dillemna that we can be misunderstood as "unsmart" (not-smart) ;-)
If we go with smartmaps.un.org, naturally we need to ask for decision by the UN System. Maybe we may need some time before we can consult with our UN-internal friends on this.
Probably unrelated, but I use optgeo.org for my projects. "Adopt Geodata" is one concept and a subproject under UN Smart Maps. I am using this brand because it would be good to make sure that the adopted geodata are not (always) from the UN.

Haha, good point 🤣  I was thinking about the UN-common dilemma yesterday with the UN Smart Maps! We could use our alias, smartmaps.org since that is currently available!! Should we think about the acronym UNSM too, which kind of reminds me of OSM (OpenStreetMap).
Oh! optgeo.org has a good ring to it! Do you have any example URLs of adopted geodata on there?

Wow, is smartmaps.org still to taken? Looks like we should take it, as long as we have mentioned it openly :-)
Some examples of the use of optgeo.org are:

https://optgeo.github.io/cudi/#17/35.152748/138.777133/34.4/53
https://amx-project.github.io/a/#14.35/36.08311/140.07904

I tend to keep large tileset only on the optgeo.org server and keep the web apps on GitHub Pages.
But I keep 'voxel tiles' on x.optgeo.org and keep PMTiles data on smb.optgeo.org. By the way, smb.optgeo.org is an IPFS Gateway.

Yes, https://www.smartmaps.org is still free! We can always use it to redirect to smartmaps.un.org if we can get that approved!
That makes sense about the large tile sets. Are you hosting them on-premise or are you using a VPS/cloud solution?
I agree that smartmaps.optgeo.org might be a little too long. What I am thinking of proposing is renaming the 7-docs repository to smartmaps so it will end up being:
https://unopengis.github.io/smartmaps
Your thoughts? If you want to reserve the repository name for something else, that is not a problem too!

@albertkun both x.optgeo.org and smb.optgeo.org are Raspberry Pis actually. This is an (open) secret ;-)
I think renaming the 7-docs repository to smartmaps would be a smart idea. I support the idea of "first come, first served" and so unopengis/smartmaps should be yours!

@hfu Oh! That is really cool! For some reason my raspberry pi gets hot quickly so I'm afraid to run it as a web server all the time!
Haha, maybe we can call it a smart maps idea! But, thank you for the support, I'll go ahead a rename the repository tomorrow! I am waiting because we have to switch a bit of live URLs when we make the change!

@hfu I've renamed the repository!
Repository

https://github.com/UNopenGIS/smartmaps/

GitHub Pages

https://unopengis.github.io/smartmaps/

'm going through all of the issues and making sure the 7-docs is no longer being referenced!
Is the MS teams invitation referencing it by chance?

@albertkun Thanks for renaming. I confirmed that a broken link was not included in the invitation to UN Open GIS MS Teams.

@albertkun Thanks for switching the repository name to smartmaps. I think I am successfully following changes on what I have shared with my friends, with a help from @miya0001, too.
Are you using Raspberry Pi 3B or 4B? It was not easy with 3B for performance issues, but I am doing good with 4B when we run a web server using nginx. I have to admit it is not so straightforward with kubo because IPFS takes a lot of computing resources compared with a simple web server. Anyway, I love what we found in this Raspberry Pi exploration ;-)

So it it good to close the issue for the time being, or do you want keep this issue open? > @albertkun

@hfu thank you for the non-broken link confirmation!
I am hace a Raspberry Pi 4B, so a web server like this might be something worth exploring for me!  I love using nginx so that's great to hear such a solution is possible!
Hmm, I think it might be good to keep the issue open until we acquire a domain name! But I will leave the decision to you if you feel like this is something down the line that will take time!
I was thinking of another issue to make of UN Smart Maps groups, like on LinkedIn or maybe even a social media like Twitter or Mastodon. That would probably be better as separate issue, I think!

@albertkun Thank you for sharing your idea let's keep this issue open.

@hfu Sure! Maybe we can change labels and put it as pending or on hold?

Future domain name registration options
1. smartmaps.org
Purchase a domain for us. This would be technically easier, but we need to think about a sustainable funding option, though I understand the amount of money would be small. We do not still have a budget account for us and I doubt we can create one for a foreseeable future (as far was I am concerned).
2. smartmaps.un.org
Ask our UN Secretariat friends to register a name in the un.org domain.
I believe we need to follow UN internal procedures and we probably need to follow UN internal guidance. I am not really sure it is technically possible at all.
3. smartmaps.unopengis.org
Ask our UN Open GIS Initiative Secretariat friends at KRIHS to register a name in the unopengis.org domain. Maybe it would be easier.

As discuesed in #161, priorities are:

smartmaps.un.org
smartmaps.unopengis.org
smartmaps.org

If we pursue option 1. plus 2., we need a help from @k96mz.
@k96mz, no pressure, but we appreciate you could have this issue in mind, as a possible future work item.

@hfu Sure! My understanding of this issue is that we would like to get a domain instead of "https://unopengis.github.io/smartmaps/" because we would like to do branding our "smart maps".  In order to get the domain "1.smartmaps.un.org" or "2. smartmaps.unopengis.org", we need to consult with UN staff in charge. I will keep it in mind for future work.

@k96mz Thank you for rephrasing the idea. Yes, it is correct. In practice, we will be learning what is the requirement if we are allowed to have smartmaps.un.org assigned to our GitHub Page. Then Smart Maps Community will be deciding whether and how the Community can meet the requirement.

Let's revisit this when it is appropriate to do so.


Multiple step definitions accepted, causing issues while reporting

Given the following spec
Users should be able to start the game

User "user"should be able to join the game
User should be able to access the site

tags: join
User should be able to join an existing game
tags: search
If there is a failure in the step, the error is getting reported twice(as many number of step definitions)
index.html 2.zip

The language runners will have to take care of this. There is an issue in each of the repos.

https://github.com/getgauge/gauge-java/issues/43
https://github.com/getgauge/gauge-csharp/issues/55
https://github.com/getgauge/gauge-ruby/issues/20


implement node-config

overview
This is a mostly backwards compatible implementation of node-config.
It closes #25 and should be able to merge separately from #26 if we think we want to release it without all the other goodies described in that epic.
change log

constructor arguments will no longer set path, folder or disable deep assignment
custom configs are now set the node-config way using NODE_CONFIG_DIR and NODE_ENV
you can now override your configuration with with cli arguments as well
you can call the configuration() constructor directly to get the full config object

release
Since there is still a pretty major breaking API change within the constructor I think we should release this as 0.4 or 1.0 in Auk and then release #26 as next stable during Buzzard.

Looks good to me. @slajax can you maybe add what the old signature used to be vs. the new signature (ie. better highlight the breaking changes).
I think we can release this as v0.4. Anything below < 1.0 that has breaking changes is fine to be a minor release. Since @daffl wrote all of this he should be the one to give the ship.

Ah right on, good point. Yeah I'll make it v0.4 and update the readme to better highlight the change log like I did in the issue body. Agreed @daffl should review.

Looks great, thank you! I'll release it later today. We might want to update https://docs.feathersjs.com/configuration/readme.html as well.

Released in v0.4.0


Add the ability to jump to a given step/end of the tour

Right now the only way to navigate over the steps is to use Prev and Next buttons.
It would be nice to represent all the steps as bullets in order to let the user to jump from the step1 to the stepN. Also this could be used to show the tour's progress. See the images:

or

You can use simple javascript to create a jump function
  $('#jumpbutton').on('click', function() {             var temp = document.getElementById('step_number').value;             tour.goTo(temp-1);       });
step_number is the current step you are on in bootstrap tour


bundleAssets fails with css like bootstrap's

I think it is related to how they are adding font-faces.

This is probably the offending css:
@font-face {
  font-family: 'Glyphicons Halflings';

  src: url('../fonts/glyphicons-halflings-regular.eot');
  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}

I bet the regex here is not detecting the # and ? symbols.

I'm working on this now.

Being tracked at: https://github.com/stealjs/steal-bundler/pull/5

This is fixed, verified in donejs-chat.


please

hey,I have some questions.
firstly,in your code :  total_loss=domain_loss + predict_loss.
but in the paper total_loss= domain_loss -  lamda*predict_loss.
secondly,this is because GRL layer?

I have these questions, too.

@116705792 other way around. The paper is finding a saddle point of the objective function E = predict_loss - lambda*domain_loss by finding the parameters that minimize predict_loss and maximize domain_loss. Maximizing is the same as minimizing the inverse, so this is identical to finding the parameters that jointly minimize predict_loss + lambda*domain_loss. The lambda is implemented as l in the gradient reversal layer, flip_gradient.py.

thank  you  very much! i m learn a lot


Fix unit conversion as part of element.set_value().

@T-Nicholls here's the fix for the bug you found.

Coverage remained the same at 94.541% when pulling 6b756f2a502b40a47b281e2e6bab6485596abc74 on set-values into d66a02382c08628412aca9f3c98d73914ef2b812 on master.


Integration Between EKS IAM Roles And Spring Boot

Hi guys,
Is there a recommended way to integrate a Spring Boot application running on EKS with IAM authentication?
We would like to enable our Spring Boot application to access AWS services (such as RDS, ES, etc.) with an IAM Access Token instead of  using simple (insecure) username and password authentication.
Is there a configuration we can use (e.g. in the same way a connection string can be "just configured" in Spring)?
If not are you guy aware of another way to integrate Spring with EKS IAM Service Account Creds?
(The way IAM integrates with EKS is: An Identity Token is being mounted to the pod and the pod uses the Identity Token to receive AWS credentials in order to access AWS services.)
Thanks and Best Regard,
Ofek.

I think you are interesting in https://github.com/spring-cloud/spring-cloud-aws/pull/617

@eddumelendez referenced PR is now closed. Does spring-cloud-aws work with EKS ServiceAccount provided roles? I could not find aws-sdk-sts included anywhere, which is a requirement for this EKS+IAM to work

Its closed but not merged. The issue still remains. We are happy to take a new PR.

@maciejwalkowiak is there a workaround to make it work, without patching spring-cloud?

I am not 100% sure if its enough byt you can provide custom credentials provider bean, just name it "credentialsProvider".


Add HyprePILUT as the interface to HYPRE_ParCSRPilut

Please
1). Format the code style.
2). Check what are the best default parameters for PILUT.
3). Test and Review carefully.

Hi @adam-sim-dev, please add the ready-for-review label when this PR is ready for review.

This PR is now under review (see the table in the PR description). To help with the review process, please do not force push to the branch.

Hi @adam-sim-dev, thanks for this contribution. I noticed based on the Hypre docs that PILUT is no longer supported by the Hypre team and they recommend instead using Euclid which they say "is more versatile and in general more efficient, especially when used with many processors." You can already use Euclid from MFEM via the HypreEuclid solver. Another alternative for newer Hypre versions is the hypre-ILU solver, available in MFEM as HypreILU.
I am thinking if either HypreEuclid or HypreILU meets your needs then it would be preferable over adding a new interface to deprecated functionality in Hypre for PILUT. This would avoid maintenance burden down the road. Could you give these a try for your applications and report back here?

For Euclid, I think the current interfaces lack support to the option -ilut (float).

You can use the Hypre API to adjust any settings not made available in the MFEM wrapper classes for Hypre solvers, using the cast to HYPRE_Solver to get the underlying object. In this case, you should be able to use
HYPRE_EuclidSetILUT(solver, drop_tol)

where solver is an MFEM HypreEuclid object (from the Hypre docs).
I believe the approach for the interface classes to Hypre in MFEM is to define a good set of defaults and minimal options for configuration but expect users to use the Hypre API to go about further customizations.

@adam-sim-dev what is the state of this, did you get a chance to try HypreEuclid or HypreILU as Sebastian suggested? @v-dobrev can we remove the in-review until the approach is settled?

I have tried HypreILU. Due to the magnetic vector potential A-phi formulation of Maxwell problem I am solving, neither HyprePILUT nor HypreILU works well.  HyprePILUT works for some simple models.

I am ok if the developers don't want to add PILUT into mfem.

@vladotomov, do you agree that we can close this PR?

I agree. If HypreILU is supposed to replaceHyprePILUT, but HyprePILUT still works better on some problems, then this sounds like an issue for the hypre team.


[EMB-125] Add analytics tracking for all route transitions

Purpose
Add analytics tracking to all route transitions in ember-osf-web, so we can tell whether people are using quickfiles.
Summary of Changes
Add logic to the router to track route transitions, à la ember-metrics docs
Side Effects / Testing Notes
On initial load and each page transition, check that a GET request is made to https://www.google-analytics.com/collect with appropriate query params.
Ticket
https://openscience.atlassian.net/browse/EMB-125
Reviewer Checklist

[ ] meets requirements
[ ] easy to understand
[ ] DRY
[ ] testable and includes test(s)
[ ] changes described in CHANGELOG.md

IIRC, we need the add needs: ['service:metrics'] to the failing tests to get them passing. https://github.com/CenterForOpenScience/ember-osf-preprints/blob/develop/tests/unit/routes/application-test.js#L5

Oops; fixed.

Coverage decreased (-0.2%) to 4.425% when pulling 4c939813ac814a58ec3144af3f861d6458f3da56 on aaxelb:emb-125--analytics-fix into f3d34198bbc60940743c42944ae1ce85a9a1d01a on CenterForOpenScience:develop.


flynn pg restore from file not restoring installed extensions. Also same for flynn import --file

Results while importing an app whose database has extensions installed:
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 262; 1259 31619 TABLE activity ff9fe19ae07b53dc09dc1a4422ae8ef5
pg_restore: [archiver (db)] could not execute query: ERROR:  function public.gen_random_uuid() does not exist

Repro:
Create a flynn app,
In the app's database run CREATE EXTENSION IF NOT EXISTS pgcrypto; and CREATE EXTENSION if not exists pg_trgm;
Create some data in the database.
Run flynn -c mycluster -a myapp export --file myapp.tar
Run flynn -c mycluster -a myapp pg dump -f myapp.dump
Run flynn -c mycluster -a myapp import --file myapp.tar (optionally, --name myapp2)

and the database in the app won't restore, as the db expects the extensions to be installed. In our case it's looking for gen_random_uuid() from pgcrypto.
I can get around this manually by restoring the app, then installing the extensions manually, and then running flynn -c mycluster -a myapp pg restore -f myapp.dump
But, is it possible for the import command to be aware of pg extensions and install as required before restoring the database?
(update) It is possible that this -n public in the pg_restore  (in file cli/pg.go) will only restore objects that are in the named schema ("public"), and like it's sibling option in pg_dump, does not include any extensions.
(update 2)
confirmed.  But by adding this prior to the pg_restore, it will restore extensions.
pg_restore -l myapp.dump | grep -i extension > exts.list
pg_restore  --clean --create --no-acl --no-owner -d postgres -L exts.list myapp.dump
pg_restore  --clean --if-exists --no-acl --no-owner -n "public" -d postgres myapp.dump

works, though needs a thorough test.

Workaround - putting the extensions you need in the template1 db will create them in any new database prior to the import...

Flynn is unmaintained and our infrastructure will shut down on June 1, 2021. See the README for details.


Add typeName to ArgumentException message in CodeArtifact

The name of type which leads to ArgumentException in CodeArtifact ctor can help to analyse problems in invalid schema.
Background
Observed this ArgumentException in Visual Studio. (CodeGeneration with Unchase plugin). Analyzing reason was very difficult because of missing type name which was invalid in my big schema. This patch helps to find the concerned part in schema.

Thx for the PR.


support multiple mime types in android

This PR will allow Android to support input of multiple mime types. Not just one.
Previously Android only accepted one mime type even though we could send an array. Now if there is an array of more than one mime type we send this as EXTRA_MIME_TYPES to the Intent.
This makes selection and exclusion of file types much easier.

This is already implemented in v3.

@dantman Thanks! Do you have an idea of when v3 would be released?

@dantman I'm also needing this feature. v3 isn't on npm it's on 2.3. Any idea when this will be pushed to npm?

Would really appreciate having this feature! Will v3 be published on npm?

Thank you @Elyx0 !
Will you publish a new 2.x version?

I think I'll try to release v3 as master it's been too long on v2


Allow kubervirt to run on minishift and minikube

Provide add-ons for the usual demo setups:

[ ] https://github.com/minishift/minishift-addons/issues/28
[ ] https://github.com/kubernetes/minikube/issues/2178

@fabiand Minikube already has most (if not all) needed components in the Minikube ISO. Although we can use this ISO for Minishift, we likely need to add something to the CentOS ISO. Would be a good idea to inventorise what is needed here.

Yes. To me the first step is to start playing with it, and see what is needed, then we can enumerate.
I'm just trying to see who is motivated to work on this :)

More than willing to assist 'that person'.
--
Gerard Braad | http://gbraad.nl
[ Doing Open Source Matters ]

@yuvalif have you been working on part of this?

For the minikube case, I tried the kubevirt demo, it it works. Also, tried a local CentOS7 VM, with my own PV and PVC, and it worked as well (note that you have to start minikube with the correct features gates fir the local VM case to work).
For the minishift case, there was some privilages issues, I tried adding the following, before trying to install kubvevirt, but could not make it work:
$ oc adm policy add-scc-to-user privileged -z kubevirt-controller -n kube-system
$ oc adm policy add-scc-to-user privileged -z kubevirt-testing -n kube-system
$ oc adm policy add-scc-to-user privileged -z kubevirt-privileged -n kube-system
$ oc adm policy add-scc-to-user privileged -z kubevirt-handler -n kube-system

For the kubevirt installation, I just used "oc" instead of "kubectl":
$ oc create -f \
https://github.com/kubevirt/kubevirt/releases/download/v0.3.0/kubevirt.yaml

Minishift will surely miss some packages in the CentOS LiveCD we use

Today we are easily able to run on minikube.
We need to validate the state of minishift.

We are dropping support to use the Minikube ISO with Minishift. So we might
have to re-evaluate what is needed on tje CentOS ISO side to make this work.

@gbraad yeah ... To me minishift is really a dedicated bunch of work, as it diverged from minikube so much that it's pretty much the same things over again. (aka backporting nesting, aka kmods for kvm and plugin code)

What is needed on either Fedora or CentOS (from the OS) to make this work?
I would expect libvirt and the kvm modules, but what else?
On Fri, May 25, 2018, 10:59 Fabian Deutsch<EMAIL_ADDRESS>wrote:

@gbraad https://github.com/gbraad yeah ... To me minishift is really a
dedicated bunch of work, as it diverged from minikube so much that it's
pretty much the same things over again. (aka backporting nesting, aka kmods
for kvm and plugin code)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubevirt/kubevirt/issues/736#issuecomment-391988952,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAHZuoREPsiWrSiFGVRX_9Th-7gmOJwks5t18fegaJpZM4SFU_r
.

What is needed on either Fedora or CentOS (from the OS) to make this work?

It should work on both, nothing special is required from our side.
Actually - if it's a stock centos or fedora, then we probably do not
need any modification as both of them have the modules we need.

I would expect libvirt and the kvm modules, but what else?

Userspace wise nothing is needed. We bundle all our deps in containers
(including libvirt).
The only requirements are on kmods - The only dependecy I remember is
on the kvm* kmods and associated kernel flags.


[CAMEL-18880] Upgrade to maven-resolver 1.9.4

Description

Target

[ ] I checked that the commit is targeting the correct branch (note that Camel 3 uses camel-3.x, whereas Camel 4 uses the main branch)

Tracking

[ ] If this is a large change, bug fix, or code improvement, I checked there is a JIRA issue filed for the change (usually before you start working on it).

Apache Camel coding standards and style

[ ] I checked that each commit in the pull request has a meaningful subject line and body.

[ ] I formatted the code using mvn -Pformat,fastinstall install && mvn -Psourcecheck

Only checkstyle test failed, but not in the changed code.


Support of haptic feedback (vibration) on drag start

Hello,
I tried implementing haptic feedback on drag start by adding HapticFeedback.vibrate() in onDragStarted in gridOrbiter.dart like this:
 onDragStarted: () {
        HapticFeedback.vibrate();
        setState(() {
          _isDragStart = true;
     });
  },

But it didn't provide any vibration. So, I'm thinking if you can provide a way to enable haptic feedback in this plugin then it would be great.
Thanks.

It did work when I made these changes in _dragItemBuilder in gridOrbiter.dart like this:
  Widget _dragItemBuilder(Widget mainWidget, int pos,
      {bool isFromArrange = false}) {
    final feedback = widget.feedback;
    final childWhenDragging = widget.childWhenDragging;

    if (_isDragStart == true) {
      HapticFeedback.lightImpact();
    } // change

    return LongPressDraggable(
      data: isFromArrange ? "h$pos" : "$pos",
      child: mainWidget,
      feedback: widget.isCustomFeedback && feedback != null
          ? feedback(pos)
          : mainWidget,
      childWhenDragging:
          widget.isCustomChildWhenDragging && childWhenDragging != null
              ? childWhenDragging(pos)
              : mainWidget,
      axis: isFromArrange
          ? widget.isVertical
              ? Axis.horizontal
              : Axis.vertical
          : null,
      onDragStarted: () {
        setState(() {
          _isDragStart = true;
        });
      },
      onDragCompleted: () {
        setState(() {
          _isDragStart = false;
        });
      },
    );
  }

but it is causing vibrations every time the object is dragged which is fine for me but it would be great to see vibration only long-press and not every time the object is moved.

Would you like to contribute to this project?

Would you like to contribute to this project?

Yeah, sure I can contribute to this project.


exit status 251 / http error 500

Expected Behavior
Render PDF on the first call after strat
Current Behavior
The first call in the series always results to the error.
Possible Solution
May be the gotenberg need  a some sort of warm up???
Steps to Reproduce (for bugs)
I am running 5 instances of gotenberg in my CI on different ports 3000-3005. Then in series a some testing code do requests to the one of instances. Lets say to the instance on the port 3003.
Logs (LOG_LEVEL="DEBUG")

{"level":"info","msg":"Gotenberg 6.2.1","op":"main","time":"2020-05-07T15:59:37Z","trace":"system"}
{"level":"info","msg":"http server started on port '3003'","op":"main","time":"2020-05-07T15:59:42Z","trace":"system"}
{"level":"error","msg":"exit status 251","op":"xhttp.officeHandler: xhttp.convertSync: printer.officePrinter.Print: printer.unoconv: xexec.Run","time":"2020-05-07T16:05:13Z","trace":"itbo9bVy2O8gsYoQEtFrZ1ClPPWVnLWL"}
{"bytes_in":"20457","bytes_out":"79","host":"gotenberg.3003:3003","latency":"74870463736","latency_human":"1m14.870463736s","level":"error","method":"POST","msg":"request failed","op":"context.Context.LogRequestResult","path":"/convert/office","referer":"","remote_ip":"<IP_ADDRESS>","status":500,"time":"2020-05-07T16:05:13Z","trace":"itbo9bVy2O8gsYoQEtFrZ1ClPPWVnLWL","uri":"/convert/office","user_agent":"GuzzleHttp/6.5.3 curl/7.58.0 PHP/7.1.33-3+ubuntu18.04.1+deb.sury.org+1"} {"bytes_in":"20457","bytes_out":"99838","host":"gotenberg.3003:3003","latency":"13670959476","latency_human":"13.670959476s","level":"info","method":"POST","msg":"request handled","op":"context.Context.LogRequestResult","path":"/convert/office","referer":"","remote_ip":"<IP_ADDRESS>","status":200,"time":"2020-05-07T16:07:36Z","trace":"hrwFwduJue6y3DRDcSXYEA6FZKHMkrpj","uri":"/convert/office","user_agent":"GuzzleHttp/6.5.3 curl/7.58.0 PHP/7.1.33-3+ubuntu18.04.1+deb.sury.org+1"}
{"bytes_in":"22472","bytes_out":"63451","host":"gotenberg.3003:3003","latency":"2210972164","latency_human":"2.210972164s","level":"info","method":"POST","msg":"request handled","op":"context.Context.LogRequestResult","path":"/convert/office","referer":"","remote_ip":"<IP_ADDRESS>","status":200,"time":"2020-05-07T16:07:41Z","trace":"ob1BozpMYLFpLAPVwQajvFrUDT3G3vxM","uri":"/convert/office","user_agent":"GuzzleHttp/6.5.3 curl/7.58.0 PHP/7.1.33-3+ubuntu18.04.1+deb.sury.org+1"}

Context

Your Environment

Version used: 6.2.1
Operating System and version: Ubuntu 18.04
Link to your project:

Sorry! The problem was related with stale docker containers on the same machine and port!


Add docker to dependencies

@AaronDewes is this needed if we manually install Docker?
https://github.com/getumbrel/umbrel-os/blob/2e743a21504afc42736fae613bad203e64cfcb9b/stage2/03-install-umbrel/01-run.sh#L11

@AaronDewes is this needed if we manually install Docker?
https://github.com/getumbrel/umbrel-os/blob/2e743a21504afc42736fae613bad203e64cfcb9b/stage2/03-install-umbrel/01-run.sh#L11

We install it in the final system. The depends file checks for host dependencies, and because Docker doesn't work in the chroot, it's pulled on the host https://github.com/getumbrel/umbrel-os/blob/2e743a21504afc42736fae613bad203e64cfcb9b/stage2/03-install-umbrel/01-run.sh#L77.

We install it in the final system. The depends file checks for host dependencies, and because Docker doesn't work in the chroot, it's pulled on the host https://github.com/getumbrel/umbrel-os/blob/2e743a21504afc42736fae613bad203e64cfcb9b/stage2/03-install-umbrel/01-run.sh#L77.

Got it, thanks!

Got it, thanks!


revert(collapse): remove $animateCss

This reverts commit 6f9f1fc.
$animateCss is giving lots of side effects and I see no real reason to have it. Reading the official docs I can read:

$animateCss is designed to be used inside of a registered JavaScript animation that is powered by ngAnimate.

So it seems that using $animateCss here is a bit overkill and it is adding lot of weird complexity and issues. I tried to fix them, but only more issues were coming out. It is better to leave it as it was before because it works perfect with all the angular versions we support.
The majority of issues comes without ngAnimate activated
Let's see those side issues.
First one: If there is a hidden element on screen, $animateCss will computate its height:
Broken Plunker, no ngAnimate
Broken Plunker, ngAnimate
no $animateCss, no ngAnimate
no $animateCss, ngAnimate
Second one: I don't know how to explain this one, but with $animateCss, it is not showing the navbar correctly (just drag it for the responsive behavior):
Broken Plunker, no ngAnimate
(Works with ngAnimate)
no $animateCss, no ngAnimate
(Works the same with ngAnimate)
Third one: Nested accordions not being rendered correctly:
Broken Plunker, no ngAnimate
(Works with ngAnimate)
no $animateCss, no ngAnimate
(Works the same with ngAnimate)
So the biggest issues are when we don't use ngAnimate (people not caring about animations) and in some other cases even with Animation.
I will probably raise an issue at the angular repo, but even if it ends being a bug, we cannot force all the users to move to the fixed version (not everyone can update) and the fix could take weeks. So I propose to revert this and if someday we see a real reason to use $animateCss we will use it, but the docs suggest me that we are barking to the wrong tree with this implementation.
Fixes #4647
Fixes #4628
Fixes #4561

Well, I am not happy if I don't really find the source. I tried to reproduce it and it seems like it was fixed in 1.4.5. Still, there is an issue with the current implementation so I will open a new PR.

thx, fixed my issue.


SolaceIO.Write: Convert the state and timers to GroupIntoBatches

Simplifying the pipeline - previously the solution used state and timers to control parallelism. This PR coverts this approach to GroupIntoBatches which can achieve the same.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

@sjvanrossum could you take a look?


Output file not created when using tail

Hi,
When I use "tail", pipe and "--output" the output file is not created. Not while goaccess is running and not after I signal it to stop (Ctrl+C).
tail -F /var/log/nginx/access.log | /usr/local/bin/goaccess --output=/tmp/report.html --time-format='%T' --date-format='%d/%b/%Y' --log-format='%h - %^ [%d:%t %^] "%r" %s %b "%R" "%u" "%^" %T %^ %^ %^'
Output is Parsing... [10] [0/s]
I tried with "--output=/tmp/report.json" but same result. The output file wasn't created.
I saw that you have an example with tail and an output file so from that I understand it is a supported option (https://github.com/allinurl/goaccess/blame/master/README.md#L390)
Without an output file (interactive) it works properly:
tail -F /var/log/nginx/access.log | /usr/local/bin/goaccess --time-format='%T' --date-format='%d/%b/%Y' --log-format='%h - %^ [%d:%t %^] "%r" %s %b "%R" "%u" "%^" %T %^ %^ %^'
With an input file (without tail) it works properly:
/usr/local/bin/goaccess /var/log/nginx/access.log --output=/var/www/html/report.html --time-format='%T' --date-format='%d/%b/%Y' --log-format='%h - %^ [%d:%t %^] "%r" %s %b "%R" "%u" "%^" %T %^ %^ %^'
With tail and --real-time-html it works properly:
tail -F /var/log/nginx/access.log | /usr/local/bin/goaccess --output=/var/www/html/report.html --time-format='%T' --date-format='%d/%b/%Y' --log-format='%h - %^ [%d:%t %^] "%r" %s %b "%R" "%u" "%^" %T %^ %^ %^' --fifo-in=/tmp/goaccess.in --fifo-out=/tmp/goaccess.out --real-time-html
My setup
$ goaccess --version
GoAccess - 1.3.
For more details visit: http://goaccess.io
Copyright (C) 2009-2016 by Gerardo Orellana

Build configure arguments:
  --enable-debug
  --enable-utf8
  --with-openssl
$ cat /etc/centos-release
CentOS Linux release 7.7.1908 (Core)

Thanks.

I saw that if I use SIGPIPE (kill -13) on the "tail" command, the goaccess exists softly and the output file is written.
In my case, I have a Java program that searches the ELK API and writes the response into a goaccess process. In the Java program, I know when I finished writing all the messages to the process but I don't know how to make goaccess stop listening for more.

Can I ask you to try adding the additional single dash to the pipe? e.g.,
tail -F /var/log/nginx/access.log | /usr/local/bin/goaccess - --output=/tmp/report.html --time-format='%T' --date-format='%d/%b/%Y' --log-format='%h - %^ [%d:%t %^] "%r" %s %b "%R" "%u" "%^" %T %^ %^ %^'

Hi,
Thanks for replying. The dash did not help. I also tried tail -f instead of tail -F but same result (I did Ctrl+C after few some time)
$ tail -f /var/log/nginx/access.log | /usr/local/bin/goaccess - --output=/tmp/report.html --time-format='%T' --date-format='%d/%b/%Y' --log-format='%h - %^ [%d:%t %^] "%r" %s %b "%R" "%u" "%^" %T %^ %^ %^'
^Crsing... [10] [0/s]]
SIGINT caught!
Closing GoAccess...

$ ls /tmp/report.html
ls: cannot access /tmp/report.html: No such file or directory

I am OK with closing the stream into goaccess in order to gracefully shut it down and have the output file but if you want to pursue this, I will be happy to help if I can.

Try timeout command preceding tail:
timeout 1m tail -F ....
and it will end gracefully.
See the manual. You can also specify the signal sent to the command ahead.

By the way, are you running this as root? it seems centos has some sort of issue when reading a log as a user. Maybe related to #868?


With google Slides plugin, and draw.io/diagrams in dark theme, the diagram is white-on-black in app, but not in slides.

Preflight Checklist

[X ] I agree to follow the Code of Conduct that this project adheres to.
[ X] I have searched the issue tracker for a feature request that matches the one I want to file, without success.

You must agree to search and the code of conduct. You must fill in this entire template. If you delete part/all or miss parts out your issue will be closed.
If you are technical, you should reporting bugs along the lines of https://marker.io/blog/how-to-write-bug-report. If you are not technical, we will make allowances, please try to make an effort to understand the process.
Describe the bug
With google Slides plugin, and draw.io/diagrams.net in dark theme, the diagram is white-on-black in app, but not in slides.
See the picture below.
To Reproduce
Steps to reproduce the behavior:

Install diagrams plugin for Slides.
Create a diagram in diagrams.net
Set diagrams to dark theme - the diagram will auto-switch its colours to white-on-black.
Create a slide with a black background
Insert the created diagram with the slides plugin.
The slide will fail to reverse the colours as it does in the app.

Expected behavior
I would expect the diagram in draw.io/diagrams.net (I've tried both), to look the same in google Slides when embedded with the plugin, as it does in the app.
Or at the very least, that there's an option in the plugin, which allows me to select an appropriate "theme" setting: light/dark/(auto/match app).
Screenshots
If applicable, add screenshots to help explain your problem.

draw.io version (In the Help->About menu of the draw.io editor):

draw.io version 22.0.2

Desktop (please complete the following information):

OS: [e.g. iOS] MacOS 13.3.1
Browser Chrome
Browser Version 117.0.5938.149 (Official Build) (arm64)

I tested the problem in incognito/private mode with all browser extensions switched off, write "yes" below:
Yes
Additional context
Add any other context about the problem here.

Note to self, slides doesn't have a dark mode so we probably could detect where the request is coming from and also export in light.

Google Slides only has a light mode, diagrams need to be designed in light mode to match. If Google Slides ever has a dark mode and allows us to indicate that during the image creation, we'll use that.


Add core dump support to the runtime

This adds a configuration option and machinery to capture a core dump when
a trap occurs and attach it to the resulting anyhow::Error that gets bubbled up to
the caller. I've created a CoreDumpStack structure in the runtime, which is
currently just a backtrace until we design a way to recover the locals and
stack values when a trap occurs. When that CoreDumpStack gets converted to
a wasmtime::WasmCoreDump, we add additional information from the Store such
as globals, memories, and instance information.
A lot of this is mechanistically similar to how backtraces
are captured and attached to errors. Given that they both are attached as
context to anyhow::Errors, setting coredump_on_trap to true will supersede
any setting for wasm_backtrace.

Also in order to downcast the anyhow error to a WasmCoreDump, it needs to #[derive(Debug)]. To make that work I switched the Vec<Module> on the WasmCoreDump to be a vec of just the module names for now. Otherwise it seems like I would have to add #[derive(Debug)] to a whole bunch of things (Module, ModuleInner, Engine, EngineInner, Config, etc) which seemed a bit wide-sweeping.

Ah, I think it would actually be better to make a custom Debug impl for WasmCoreDump than to derive(Debug) in this case. We can start with something like the following, and update it with useful diagnostic information over time as needed.
impl std::fmt::Debug for WasmCoreDump {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        write!(f, "<wasm core dump>")
    }
}

This avoids needing to do derive(Debug) on Module or anything like that and lets us continue to hold onto the modules inside WasmCoreDump.


Fix bug where aggregates and commands have capitalized names

I haven't noticed a problem generating commands. Are you able to provide some more info?


MySQL NOT operator support

Closes #44

Suppot for NOT operator in MySQL, similarly as in PostgreSQL.
Add test to verify NOT EXISTS query in MySQL

@joonash Thanks for you merge request. Looks good.


middleware/file what does "from" actually do?

file zones.db {
  transfer from <IP_ADDRESS>
}

As the zones are served from a file getting and serving changes from another DNS server seems counterintuitive.
I might misunderstand the use so.
For me "transfer to" notifies and transfers changes to another server.
"transfer from" would get transfers from another server.
Thanks for clarifying

Transfer form for file does not make sense. This is a bug.
Probably cause is the sharing of code between the secondary and file middleware.


Strip unnecesary CNI details

CNI spec covers much more diverse cases that the ones required by kubernetes that just need to create an interface and assigne one or two IPs to the pod.

Simplify the CNI plugin to use IP unnumbered, so the model is much simpler and reliable as it does not have to deal with subnets in the Pod, each Pod has an IP that is routable as a /32 or /128 depending on the IP address.
IPAM is served by the kindnet daemon, this allows to dynamic configure new ranges for Pods (TODO)

Finally, missing the portmap with ipv6, seems is a known bug in nftables<EMAIL_ADDRESS>

superseded by https://github.com/aojea/kindnet/pull/107


LDAP group style options are too limited / missing RFC 2307 support

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[x] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Is your feature request related to a problem? Please describe.
Configuring authentication server is missing LDAP group configuration settings.
I want use RFC 2307 based schema where memberOf is not the default group membership identifier.
Describe the solution you like
pfSense has integrated these options quite well in their interface.
Describe alternatives you considered
I could implement RFC 2307bis format but since memberOf is being deprecated in future OpenLDAP versions, and the instructions to configure similar functionality using dynlist is yet very limited, Opnsense should provide support for the default OpenLDAP formats.
Additional context
pfSense configuration options

Might be worth checking if changing OpenLDAP's configuration isn't the easier approach here, I don't think they deprecated rfc2307bis, but merely seem to change to a different implementation for it https://github.com/ltb-project/slapd-cli/issues/42 (slapo-memberof vs slapo-dynlist).

I have recently also encountered this issue. I am using JumpCloud services and they use RFC 2307 in there LDAP implementation. I have seen other forum posts about support for RFC 2307.
https://jumpcloud.com/support/configure-pfsense-vpn-to-use-cloud-ldap


language option doesn't work

I don't think It's a dependency error since I loaded datepicker.js and datepicker.css successfully and seems everything works fine except language option.
html
<b-form-input data-toggle="datepicker" type="text" placeholder="날짜 선택"></b-form-input>

js
$('[data-toggle="datepicker"]').datepicker({
    language: 'ko-KR',
    autoPick: true
});

Did you load the language file (i18n/datepicker.ko-KR.js)?

@fengyuanchen didn't know i had to load the language file manually, Thanks for help :)


Feat: Add Nuxtsite construct

This PR adds the NuxtSite construct referenced in issue #2314.
It does not support lambda@edge.

Thanks, I'll ask Frank to take a look!


ONNX models

Hello, can you release the pretrained models in ONNX format?
Thanks.

While both the code and weights have been released in this repository, you have the flexibility to convert them into the format that best suits your requirements.