Button functionality and styling

Refactor button component to use single event handler function.

@tbtommyb merge master then re-assign me!

@des-des Master merged and reassigned.

Happy to merge as soon as you assign me!


UWP: strange behavior on first and last values

Hi,
with LineSeries I get a vertical line at the beginning and the end of the chart.
http://hpics.li/09d4d93
http://hpics.li/123b82d
Can you please help me with this?
Thanks

Related to #367
UWP will have many fixes soon, this issue will be gone once the mentioned issue is fixed.
I am closing this for now since this issue is already reported, thanks


beacon/state giving 500 error on missing root

if a missing block root is supplied, a 500 error is coming back, need to investigate, a 404 not found is expected, not a 500 error.

NOTE: this should probably be investigated after #1315, as it may well change the outcomes.

so after the DataProvider changes, now we get a not found response.
It's slow because it looks like it times out waiting for the asynchronous storage, but still - a 404 is the ideal outcome, and means there's not a NPE or similar floating about.
On digging a bit further, i realised even valid finalized blocks gave 404, which is less good. raised a PR for loading state by block from storage.


Exclude columns which is primary key with empty value

This PR is based on the issue #19.
Due to the commit eab1a9e, setting the AUTO_INCREMENT tag was obliged, but it is opposed to the default behavior of gorm.Model.
On the other hand, before that, there was a problem that natural keys that are not surrogate_key like auto_increment were also excluded from insertion.
Therefore, I need modification to solve both problems simultaneously, and this PR is a correction to deal with it. Detailed background can be found in this comment.
https://github.com/t-tiger/gorm-bulk-insert/issues/19#issuecomment-559149465
Solving the problem by excluding the column which is primary key with empty value from the insertion.
This is not completely logical implementation, but in normal use cases, the expected behavior is guaranteed. Therefore, I made this modification.

Thanks!


Expose features of secp256k1

I am particularly interested in the recovery feature since gdk is using it by adding explicit secp dependency, but I thought also endomorphism and lowmemory feature could be interesting

Hmm, I don't see why this adds much value over just specifying the secp256k1 dependency yourself if you want those features?
Having a low-memory feature on this crate might also give false impressions that the feature has other meanings.

I simply like to avoid to manually keep the secp version in sync when explicitly added as dep. According to your reasoning, should we remove the rand feature?

We could prefix them with secp- @stevenroose ?
I do think it's valuable to expose these, it's super annoying to add another explicit dep and keep it in sync everywhere.


Simple memory corruption fix

ByteCodeGenerator::StartBindFunction uses a union in a way that allows a ParseableFunctionInfo to be accessed as though it were a FunctionBody. This led to memory corruption when redeferral changed the meaning of a flag that was meant to protect the accesses. Fixed by removing the union and the flag and using IsFunctionBody/GetFunctionBody to guard against illegal access.

@dotnet-bot please test Windows x86_debug

@rajatd, @digitalinfinity can either of you look at this one? (Thanks.)


Interpret every first path element starting with an uppercase letter as coming from std

A simple uppercase check. This allows writing ?doc Vec::new, ?doc String::as_bytes or HashMap::with_capacity in chat while still allowing ?doc bytes::Bytes or ?doc indexmap::IndexMap::from.

Thanks for PR! CI failures seem unrelated. I should fix them some time (but so little time >.<)


Add x-api-key header to avoid rate limiting

See relevant info here from @zone117x

@zone117x can you help me understand all the changes I need to make here? Am I just adding:
'x-api-key': 'aF8BAm9P37EhTCVQPA6e3gYP3UI9GO86',

here: https://github.com/hirosystems/stacks-wallet-web/blob/bf5e8f9839c8885fce21de05c0eabae9897a4455/src/app/common/api/wrapped-fetch.ts#L1

All http requests made to the API need the x-api-key header. That function looks like it should be updated, but I'm not familiar with this codebase and I don't know the various methods to perform http requests -- but they all need updated.
@janniks provided an example of how to add the header when using stacks.js functions, see https://github.com/hirosystems/stacks.js/tree/master/packages/network#use-the-built-in-api-key-middleware
There's also usage of the @stacks/blockchain-api-client lib: https://github.com/hirosystems/stacks-wallet-web/blob/c07a910307a70506c8b206e382428e7c8be3eaf8/src/app/store/common/api-clients.ts
That code already has example of middleware, but here's a more specific one which sets a header:
import { Configuration, AccountsApi } from '@stacks/blockchain-api-client';

// Example middleware to specify an http header.
const apiConfig = new Configuration({
  middleware: [{
    pre: (req) => {
      const headers = new Headers(req.init.headers);
      headers.set('x-api-key', $API_KEY);
      req.init.headers = headers;
      return Promise.resolve({ url: req.url, init: req.init });
    }
  }]
});

// Example usage of middleware config.
const accountsApi = new AccountsApi(apiConfig);
const balance = await accountsApi.getAccountStxBalance({
  principal: 'ST000000000000000000002AMW42H',
});

There's a test endpoint explained in https://github.com/hirosystems/devops/issues/932#issuecomment-1127893730 which will return an http error response if the header is not specified. This can be used to help identify areas in this codebase where API http requests are made.

Ok, great, thanks for the helpful feedback. All of our api requests are using the headers configured in the wrapped-fetch I posted with fetchApi in the link you posted to .../api-clients.ts
https://github.com/hirosystems/stacks-wallet-web/blob/c07a910307a70506c8b206e382428e7c8be3eaf8/src/app/store/common/api-clients.ts#L78
I'll test it out. Thanks!

Waiting for @zone117x to generate a new API key

The key in the linked issue should be usable, are you running into problems?

The key in the linked issue should be usable, are you running into problems?

The one we have is working fine. Are we ok to merge this if we tested it with the test key and endpoint? Right now, this will go unused until the endpoint is live and we get a real api key, correct?

Great! Could you provide private builds to devops and API team so we can test and ensure our backend is working as expected?
We shouldn't merge / deploy this change to production because the new http header will likely cause CORs issues with current production API endpoint. I'll get back to you when we're ready for that.

Great! Could you provide private builds to devops and API team so we can test and ensure our backend is working as expected?

What is the best way to do this so you have the env variables? Do you just want me to upload a zip file somewhere? Also, so you want it using the strict key and endpoint?

@fbwoolf so far this looks good from light auditing of requests on client-side. Could you create a build using the strict kong endpoint (and associated key) for QA and my own testing? It's designed to reject requests that are missing the key.

@markmhendrickson I believe this issue is outdated and can be closed?

Yep 🙏


Run in a framebuffer device

Description
Hello.
As I understand, Hyprland is a standalone implementation of the Wayland protocol.
Which types of output are supported, besides DRM? Is it possible to run Hyprland in a framebuffer device (fbdev)? Thanks for your reply!
I have a portable system without DRM support, that's why I'm asking. It perfectly runs Xorg-based desktops with xf86-video-fbdev driver and the /dev/graphics/fb0 device.
But I would also really like to try Hyprland. Thanks.

I've never run hyprland in such a system, and thus if there isn't some explicit support via drm, then no. Anyways, this is something that aq would have to support anyways. No plans anyways.


Cannot create Delta Lake table from DataFusion data frame with timestamp field with timezone

Environment
0.5.0:
Binding:
None. Rust.
Environment:

Cloud provider: N/A
OS: MacOS Ventura
Other: N/A

Bug
What happened:
When trying to create a Delta Lake table based on an Arrow Schema that contains a field of type timestamp with timezone the following error occurs:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: SchemaError("Invalid data type for Delta Lake: Timestamp(Microsecond, Some(\"UTC\"))")', src/main.rs:220:86

What you expected to happen:
Being able to create a Delta Lake table with a timezone timestamp type.
How to reproduce it:

Create an Arrow Schema arrow_schema with a field of timestamp type with UTC timezone.
Do the following:

let delta_schema = deltalake::Schema::try_from(Arc::new(arrow_schema)).unwrap();

More details:
The issue seems to be found in the converter from ArrowDataType into SchemaDataType found here: https://github.com/delta-io/delta-rs/blob/main/rust/src/delta_arrow.rs#L218.
There is no case when the Arrow Data Type is ArrowDataType::Timestamp(TimeUnit::Microsecond, Some(tz)).
It seems that the Delta Lake format does NOT support timestamp with timezone — it needs to be transformed to UTC first:

Notes
Timestamps with local timezone are internally normalized and persisted in UTC. Whenever the value or a portion of it is extracted the local session timezone is applied.

Quote from https://docs.databricks.com/sql/language-manual/data-types/timestamp-type.html
Possible fixes:

Easy fix for UTC timestamp types — include the timestamp type having the UTC timezone into the current pattern and transform it into the timestamp primitive. This will fix the exact problem described above, specific to UTC.
Permanent fix — transform the timezoned timestamp into UTC time but this requires extensive changes into other areas.

@rtyler this issue has already been resolved, can you close it?


refactor: extract menu component

[ ] fix tests

@lwhiteley I'm flexible about style and if you have a particular style that suits you feel free to update the lint rules for that and I will follow it.

👍 approved :)

yea i can update the lint rules later


Syntax error when running Homebridge on RPI (new install)

Hi,
I've installed Homebridge on my Raspberry PI Zero and created the config.json file, referencing my TPLink smartplug, however, when I try running Homebridge, I get the following error.
I've had some issues getting to this point and was hoping it would work now. :(
(...)
(node:3527) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
[11/10/2018, 23:20:47] There was a problem reading your config.json file.
[11/10/2018, 23:20:47] Please try pasting your config.json file here to validate it: http://jsonlint.com
[11/10/2018, 23:20:47]
/usr/local/lib/node_modules/homebridge/lib/server.js:214
throw err;
^
SyntaxError: Unexpected string in JSON at position 41
at JSON.parse ()
at Server._loadConfig (/usr/local/lib/node_modules/homebridge/lib/server.js:208:19)
at new Server (/usr/local/lib/node_modules/homebridge/lib/server.js:56:38)
at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:30:16)
at Object. (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
(...)
I used Nano to create the file and manually typed in the appropriate lines.
My RPI Zero is on the latest OS version (Raspbian Stretch).
I think I've followed all the necessary steps to get Homebridge up and running, and I've already researched the error, but can't find the cause.
Versions
When running homebridge --version, I get the following:
(node:3547) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
0.4.45
node = v8.11.1
OS = Raspbian v9 (Stretch)
CPU architecture = ARM v61
Configuration
Contents of my config.json file (username and pin removed)...
(...)
{
"bridge": {
"name": "Homebridge"
"username": "xx:xx:xx:xx:xx:xx",
"port": 51826,
"pin": "xxx-xx-xxx"
},
    "description": "This is an example configuration file"

    "platforms": [
            {
                    "platform" : "TplinkSmarthome",
                    "name" : "TplinkSmarthome"

                    "inUseThreshold": 0,
                    "timeout": 5
            }
    ]

}
(...)

I should also add that I’m pretty sure that Homebridge ran, before I created the config.json file.
Can anybody advise what the problem might be?
Maybe something in the config file?

Paste the config file into https://jsonlint.com/ - it will show any parsing
errors.
I use^Wneed it way too often :)
f
On Fri, 12 Oct 2018 at 19:37, alexeyovich<EMAIL_ADDRESS>wrote:

I should also add that I’m pretty sure that Homebridge ran, before I
created the config.json file.
Can anybody advise what the problem might be?
Maybe something in the config file?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/nfarina/homebridge/issues/2035#issuecomment-429490049,
or mute the thread
https://github.com/notifications/unsubscribe-auth/Aka1ZPR4I3LwQtYPuG30hE0f6hWyhvOCks5ukSfSgaJpZM4XYfnk
.

Thanks for the suggestion.
There was a comma missing, so I’ve added it and verified that the JSON file is now valid, however, when I run Homebridge, it doesn’t like the MAC address I’ve entered in the file.
I’ll double check it and then will update here.

MAC address meets the format criteria and matches that of my PI ZERO (I’ve removed the MAC address):
From...
~/.homebridge
$ homebridge
(node:899) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
/usr/local/lib/node_modules/homebridge/lib/server.js:222
throw new Error('Not a valid username: ' + username + '. Must be 6 pairs of colon-' +
^
Error: Not a valid username: xx:xx:xx:xx:xx:xx. Must be 6 pairs of colon-separated hexadecimal chars (A-F 0-9), like a MAC address.
at Server._loadConfig (/usr/local/lib/node_modules/homebridge/lib/server.js:222:13)
at new Server (/usr/local/lib/node_modules/homebridge/lib/server.js:56:38)
at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:30:16)
at Object. (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)

Use this to generate a MAC adress: https://www.miniwebtool.com/mac-address-generator/

Thank you Rayan!!
Reading the information on that page, made me think about the format of the MAC address, so I changed the alphabetical characters to upper case and that resolved the problem.
I can now use SIRI to control my smart home bits and pieces!
I didn’t realise that MAC addresses were case sensitive (I entered it into the config file in the same format that was reported by my PI).
Thanks again and I hope that this helps someone else.


I deployed the Netty service in Tomcat

I deployed the Netty service in Tomcat. The server receives the data normally, but the client cannot receive the data. It is normal for a Netty client not running in Tomcat to receive data
JVM version (e.g. java -version)e
java 1.8  Tomcat8.57
OS version (e.g. uname -a)
win7

More details needed.

This is how I respond to the data to the client
`private void OnoffLoad(NetMessage nms, ChannelHandlerContext ctx) {
if (StringUtils.isNotEmpty( nms.getContent().toString() )) {
		ctx.writeAndFlush(JSON.toJSONString(new NetMessage("",PacketType.ONOFF_LOAD_COMMIT, null)) + "$_$");
	}
}`

The client sent data into this method without any errors,  ctx. writeAndFlush also performs normally.
However, my client could not receive any data
io.netty   version ：4.1.29.Final

My project environment
<dependencies> 			<dependency> 				<groupId>org.springframework.boot</groupId> 				<artifactId>spring-boot-dependencies</artifactId> 				<version>2.1.0.RELEASE</version> 				<type>pom</type> 				<scope>import</scope> 				<exclusions> 					<exclusion> 						<groupId>org.springframework.boot</groupId>                       	<artifactId>spring-boot-starter-tomcat</artifactId>  					</exclusion> 				</exclusions> 			</dependency> 		</dependencies>

This is how I respond to the data to the client
`private void OnoffLoad(NetMessage nms, ChannelHandlerContext ctx) {
if (StringUtils.isNotEmpty( nms.getContent().toString() )) {
		ctx.writeAndFlush(JSON.toJSONString(new NetMessage("",PacketType.ONOFF_LOAD_COMMIT, null)) + "$_$");
	}
}`

The client sent data into this method without any errors, ctx. writeAndFlush also performs normally.
However, my client could not receive any data
io.netty version ：4.1.29.Final

An error is being thrown but you're not catching it. You need a Listener for that.
Try this:
ByteBuf byteBuf = ctx.alloc().buffer();
byteBuf.writeCharSequence(JSON.toJSONString(new NetMessage("",PacketType.ONOFF_LOAD_COMMIT, null)) + "$_$", StandardCharsets.UTF_8);
ctx.writeAndFlush(bytebuf);

Thank you. The problem has been solved.

Make sure to write ByteBuf not just any object.
:)


Add Superconstraint sugar

This adds a lot of sugar to avoid
view.center(in: view.superview!)
in favor of
view.centerInSuperview()

I wasn't sold on these constraints to the superview at first sight, but now I love it!
scrollView.edgesToSuperview(excluding: .bottom)
keyboardHeightConstraint = scrollView.bottom(to: self)

Works awesome!
Thanks again!


BigInteger example does not compile

the BigInterger example does not run via the ".NET Editor" with the Output:
(8,19): error CS0103: The name 'BigInteger' does not exist in the current context

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

ID: 0ae38fce-fc98-9420-6b0b-ceee4e885f2d
Version Independent ID: f23035e0-f271-b48c-f9a9-8582be80b4ad
Content: Standard Numeric Format Strings
Content Source: docs/standard/base-types/standard-numeric-format-strings.md
Product: dotnet
GitHub Login: @rpetrusha
Microsoft Alias: ronpet

With regard to the G format specifier for VB - If you copy and paste the code, the following compiler errors will be displayed:
error BC30037: Character is not valid.
error BC30037: Character is not valid.


Fix bad package name for storagecache in go sdk

This bad package name is causing CI failure in go sdk repo
Latest improvements:
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.
[ ] The OpenAPI Hub was used for checking validation status and next steps.

ARM API Review Checklist

[ ] Service team MUST add the "WaitForARMFeedback" label if the management plane API changes fall into one of the below categories.
adding/removing APIs.
adding/removing properties.
adding/removing API-version.
adding a new service in Azure.

Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs.

[ ] If you are blocked on ARM review and want to get the PR merged urgently, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.
Please follow the link to find more details on API review process.

Automation for azure-sdk-for-python

Automation for azure-sdk-for-go

Something peculiar occurs, please do not merge this pr

Sure, let me know when you are OK with it.
Change seems simple and should only affect go SDK.

Can one of the admins verify this patch?

@openapibot sdkautomation rebuild

Sure, let me know when you are OK with it.
Change seems simple and should only affect go SDK.

Hi, this pr is ready to merge


Report a failure fast if CMAKE_OSX_DEPLOYMENT_TARGET unset on MacOS

Search before asking

[X] I had searched in the issues and found no similar issues.

Motivation
See also https://github.com/apache/incubator-kvrocks/commit/341a989d75783d8dad76bbd5a4473dd345472337#r80998035.
cc @PragmaTwice @xiaobiaozhao
Solution
No response
Are you willing to submit a PR?

[ ] I'm willing to submit a PR!

Hi. I am using MacBook M1. According to https://github.com/apache/incubator-kvrocks/commit/341a989d75783d8dad76bbd5a4473dd345472337#r80998035, If I replace ${CMAKE_OSX_DEPLOYMENT_TARGET} with 11.0, The compilation can be successful. I am not very familiar with cmake. Do you have time to repair it? I noticed that you don't have an apple device to test. I can compile and test for you. @PragmaTwice

Hi. I am using MacBook M1. According to 341a989#r80998035, If I replace ${CMAKE_OSX_DEPLOYMENT_TARGET} with 11.0, The compilation can be successful. I am not very familiar with cmake. Do you have time to repair it? I noticed that you don't have an apple device to test. I can compile and test for you. @PragmaTwice

Hi @tanruixiang, actually you can directly pass the option to cmake, e.g. cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.3 .., MACOSX_DEPLOYMENT_TARGET=10.3 cmake .. or ./x.py build  -DCMAKE_OSX_DEPLOYMENT_TARGET=10.3 rather than modifying cmake files.
If you want to try to fix this problem, you can add an if ... else ... to CMakeLists, i.e. when it is currently in macos and CMAKE_OSX_DEPLOYMENT_TARGET is not configured, an error should be reported and the user will be reminded to configure it.

Hi. I am using MacBook M1. According to 341a989#r80998035, If I replace ${CMAKE_OSX_DEPLOYMENT_TARGET} with 11.0, The compilation can be successful. I am not very familiar with cmake. Do you have time to repair it? I noticed that you don't have an apple device to test. I can compile and test for you. @PragmaTwice

Hi @tanruixiang, actually you can directly pass the option to cmake, e.g. cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.3 .., MACOSX_DEPLOYMENT_TARGET=10.3 cmake .. or ./x.py build -DCMAKE_OSX_DEPLOYMENT_TARGET=10.3 rather than modifying cmake files.
If you want to try to fix this problem, you can add an if ... else ... to CMakeLists, i.e. when it is currently in macos and CMAKE_OSX_DEPLOYMENT_TARGET is not configured, an error should be reported and the user will be reminded to configure it.

The current error report is like this Makefile:320: *** missing: export MACOSX_DEPLOYMENT_TARGET=XX.YY.  Stop.
As a new user, I will be a little confused about this error report. Can we update readme and note that MacOS needs to use the command you gave? Or if MACOSX_DEPLOYMENT_TARGET does not exist, give a default value(like 11.0 before).

My current plan was narrated above:

If you want to try to fix this problem, you can add an if ... else ... to CMakeLists, i.e. when it is currently in macos and CMAKE_OSX_DEPLOYMENT_TARGET is not configured, an error should be reported and the user will be reminded to configure it.

If you want to specify a default value, maybe you need to investigate how to specify a valid default value for most macos version (10.x, 11, ...) that mac users is currently using.

@PragmaTwice @git-hulk Thank you for your reply. Do you think we need to indicate in readme that MacOS needs to use the instructions @PragmaTwice  provide?
Let me share my thoughts as a new user. When I encountered a compilation error on MacOS, I gave up using MacOS directly. The docker installation Ubuntu image is used instead. If there is a MacOS build version in readme, I think I can use it more happily.
$ git clone https://github.com/apache/incubator-kvrocks.git
$ cd incubator-kvrocks
$ ./x.py build # `./x.py build -h` to check more options;
               # especially, `./x.py build --ghproxy` will fetch dependencies via ghproxy.com.
# macOS
./x.py build -DCMAKE_OSX_DEPLOYMENT_TARGET = Appropriate version

Thanks for your contribution and fixing this issue :)


Skip the resize part

Hello,
Thank you for your awesome script, it's very useful!
I was just wondering if it would be possible to not resize the images, to keep them with the same ratio as on the Nasa website.
I assume that you have lots of things to do and don't have time to change the script, but maybe you could just tell me what should I do in the file, like removing this line, etc.
Again, congrats :-)

@Anlaoui
3 year later : if you still wanna do this, just comment out the
if filename is not None:
and
resize_image(filename)
code where it says:
# Download the image
filename = get_image(site_contents)
if filename is not None:
        # Resize the image
        resize_image(filename)
that should be the lines 417 and 419 !

Haha, thank you for answering! I'm not using the script anymore, but I might try it again!


Collections lib terms

This splits all the collections-library related functionality out of LanguageTerms and puts it in a new CollectionsLibTerms class.  The impetus for this is supporting Vavr as an alternative for java.util.{Optional,List,Map}.
This also makes the dropwizard framework collections-lib-agnostic.  I haven't audited the spring framework to see what needs to be changed, and there's currently no need to mess with the scala generators, as I don't know that there's even a need for an alternative collections library there.
In another PR I'll add the actual Vavr support.
Contributing to Twilio

All third-party contributors acknowledge that any contributions they provide will be made under the same open-source license that the open-source project is provided under.

[x] I acknowledge that all my contributions will be made under the project's license.

Codecov Report

Merging #766 into master will decrease coverage by 0.15%.
The diff coverage is 82.72%.

@@            Coverage Diff             @@
##           master     #766      +/-   ##
==========================================
- Coverage   81.53%   81.38%   -0.16%
==========================================
  Files          85       89       +4
  Lines        5574     5566       -8
  Branches      142      150       +8
==========================================
- Hits         4545     4530      -15
- Misses       1029     1036       +7

Impacted Files
Coverage Δ

...n/scala/com/twilio/guardrail/ClientGenerator.scala
100.00% <ø> (ø)

...n/src/main/scala/com/twilio/guardrail/Common.scala
100.00% <ø> (ø)

...ain/scala/com/twilio/guardrail/ProtocolElems.scala
26.47% <ø> (ø)

...scala/com/twilio/guardrail/ProtocolGenerator.scala
98.67% <ø> (ø)

...n/scala/com/twilio/guardrail/ServerGenerator.scala
100.00% <ø> (ø)

...uardrail/generators/Java/DropwizardGenerator.scala
25.64% <ø> (ø)

...ail/generators/Java/SpringMvcClientGenerator.scala
11.11% <ø> (ø)

...guardrail/generators/Java/SpringMvcGenerator.scala
21.62% <ø> (ø)

...ail/generators/Java/SpringMvcServerGenerator.scala
91.89% <ø> (ø)

...a/com/twilio/guardrail/generators/JavaModule.scala
0.00% <0.00%> (ø)

... and 53 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 d4feba9...93356bf. Read the comment docs.


fix: dev: #110: Downloaded byte size should match with the requested one

Pull Request Test Coverage Report for Build 38

0 of 6 (0.0%) changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.05%) to 18.947%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

rubix-bookkeeper/src/main/java/com/qubole/rubix/bookkeeper/BookKeeper.java
0
6
0.0%

Totals

Change from base Build 36:
-0.05%

Covered Lines:
288

Relevant Lines:
1520

💛  - Coveralls

@stagraqubole I think the data read will be less than the expected when there is something wrong during the read. In theory this can happen in normal RemoteRRC execution as well but primarily this is happening because of multiple threads trying to read data at the same time with fs cache being enabled. So the possibility of this happening in case of normal execution is less.
In normal case, the instance of the remotefile system is created by
public CachingFileSystem()
  {
    try {
      this.fs = getTypeParameterClass().newInstance();
    }
    catch (InstantiationException | IllegalAccessException e) {
      log.error("cannot instantiate base filesystem ", e);
      Throwables.propagate(e);
    }
  }

So there won't be resuse of the same instance of filesystem


Just starting

Is there a programmer that could help me implement this ?
I am struggling to set this up

Got it sorry for the confusion,  I read a little further, saw your section on setting up on heroku.  This looks easier than setting up on my own windows server.  I still have a question on the ratelimit, whitelist , blacklist are these just a file with the such as the 1 5 example.com in it , in the lib folder.
Thanks for your help

If you're going to use the default server implementation of CORS Anywhere, then this is the relevant part of the documentation: https://github.com/Rob--W/cors-anywhere#demo-server
More details on the ratelimit syntax is at https://github.com/Rob--W/cors-anywhere/blob/4814647a9d21f14858da282387a4295c17f2851d/lib/rate-limit.js#L3-L20
If the default server is not flexible enough for your needs, then you can create a new server implementation, based on https://github.com/Rob--W/cors-anywhere/blob/4814647a9d21f14858da282387a4295c17f2851d/server.js (the documentation for the server as a library is at https://github.com/Rob--W/cors-anywhere#server)

I have looked through the documentation, where do I set the rate limit for deploying to heroku ?  If I was going use your rate limit  100 3  testdomain.com ?   tried runnning the export from the heroku cli,  Sorry for keep asking questions

Via an environment variable, see https://devcenter.heroku.com/articles/config-vars


kata-deploy: improve debug message, longer cleanup timeout

I am seeing tests fail at times waiting for label cleanup. Let's improve
the error message when this fails, and give the control plane a bit more
time, to improve stability of this test.
Fixes: #846
Signed-off-by: Eric Ernst<EMAIL_ADDRESS>

/test

/AzurePipelines run

/test

/AzurePipelines run

@egernst This needs to be backported.


Assign a special name to the last console output.

Feature Request
I would be cool if you could access the last (and maybe second-to-last) values returned from debug console evaluations via a special name (like maybe "_" and "__"), similar to ipython and other interactive REPL.
> 2
2

> 1
1

> f"last expression: {_}, second-to-last: {__}"
'last expression: 1, second-to-last: 2'

Debug console itself is handled by VS Code. Moving this to the right repo for further discussion.


[core] Update the codesandbox issue templates

Closes #25497

@eps1lon The issue is that the codesandbox are no longer accessible, they seems to have been deleted :/


Testing

We need to change sell.html to contact_form.html or similar and then update any routes/links/etc. Then, sell_2 can become sell_form.html


[list] Select ordering of a list

Is this a BUG REPORT or FEATURE REQUEST?:
feature
What happened:
When using a list like described in https://about.okkur.org/syna/fragments/list/ the list of pages looks like being ordered by their title. (I can't find a documentation of that on this page.)
What you expected to happen:
To be able to set which kind of odering is used as outlined in Lists of Content/Ordering Content of the Hugo documentation - https://gohugo.io/templates/lists/#order-content
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
Environment:

Syna Theme version:  0.15.1
Hugo version:  0.55.6
Others:

Now available within master.


Read Value Callback

Hi there
There is a way to have a read value callback and when peripheral send a value this delegate listen it ?
Thanks

Sorry, didn't see notification.


Add EndpointSlice support

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes #(issue)
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.

[ ] Test A
[ ] Test B

Pull Request Test Coverage Report for Build 278174264

71 of 406 (17.49%)  changed or added relevant lines in 8 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-3.2%) to 47.699%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

test/unit/reflection/util.go
32
36
88.89%

pkg/virtualKubelet/namespacesMapping/namespaceMapper.go
0
8
0.0%

pkg/virtualKubelet/apiReflection/reflectors/outgoing/configmaps.go
0
12
0.0%

pkg/virtualKubelet/apiReflection/reflectors/outgoing/endpointSlices.go
8
20
40.0%

pkg/virtualKubelet/apiReflection/reflectors/apiReflector.go
0
14
0.0%

pkg/virtualKubelet/apiReflection/reflectors/outgoing/apiTypes.go
0
32
0.0%

pkg/virtualKubelet/apiReflection/reflectors/outgoing/services.go
0
109
0.0%

pkg/virtualKubelet/apiReflection/reflectors/outgoing/secrets.go
31
175
17.71%

Totals

Change from base Build 276459291:
-3.2%

Covered Lines:
6064

Relevant Lines:
12713

💛  - Coveralls


Refactor trigger part

refactor trigger part. it reads form e2e config file now.
And modified some logic in httpAction.Do()

Will the trigger part and verify part be implemented in another PR?

Yes, This PR just want to modify trigger to meet the need of controller.
I will add trigger part and verify part and test the e2e run in another PR.


Bug on OptionButton add_item (also PopupMenu)

Godot version:
Last master 3.1 RC1
OS/device including version:
N/A
Issue description:
The description for add_item method in OptionButton states the following:
void add_item( String label, int id=-1 )
Add an item, with text "label" and (optionally) id. If no "id" is passed, "id" becomes the item index. New items are appended at the end.
this is NOT happening, providing no id will make the item id to become "-1" and not its index
EDIT: this falls back to its parent class

@akien-mga it is not a documentation problem, it is a source code problem (default -1 value) is never taken care of

Well it could be the documentation which is wrong, and not the source code.

Who can know that?

There is at least one place in code that handles -1 PopupMenu::activate_item has int id = items[p_item].ID >= 0 ? items[p_item].ID : p_item;, but get_item_id doesn't.


[BUG] Fix the hardcode instance of check for NettyAttribute

What is the bug?
Fix the hardcode instance of check for NettyAttribute. It fails if the HttpChannel is wrapped during the instrumentation.
https://github.com/opensearch-project/security/blob/26e62d5b77300695e3bd94352a5e297e28828b15/src/main/java/org/opensearch/security/filter/NettyAttribute.java#L28
How can one reproduce the bug?
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

What is the expected behavior?
It shouldn't fail if tracing is enabled.
What is your host/environment?

OS: [e.g. iOS]
Version [e.g. 22]
Plugins

Do you have any screenshots?
If applicable, add screenshots to help explain your problem.
Do you have any additional context?
Add any other context about the problem.

@reta, need your help in fixing this. Thanks!

@Gaganjuneja https://github.com/opensearch-project/security/pull/3514 was supposed to fix that

@reta, yes, this line item was with you. Since that issue is closed so opened the new issue.
https://github.com/opensearch-project/security/pull/3514#discussion_r1366388993


Support for database sequences

It would be great if django-devdata provided support in some form for database sequences. (It would be great if Django did too!)
A couple of ways I think this could work:

a list of them configured in settings so that the export command knows which ones to pull from the database
autodetection of them from the source database during export

Either way, it would be great if they were present after doing an import. I suspect we'd need to preserve the current value of the sequence too, where possible.

@danpalmer just wondered if you had any thoughts on how to approach this? I'd be interested in picking this up at some point, but might be useful to have some pointers towards why this limitation exists/what's already been explored/what you think might be needed here.

@PeterJCLaw this was definitely skipped due to lack of immediate need (at the time) and the fact that they're not represented in Django's models.
As the models are devdata's source of truth there isn't a convenient equivalent to hang the sequences support off. However, because they're simpler we should be able to just always insert them all at the beginning.
Perhaps we could start with:

Introducing a Sequence strategy class

Adding some initial utility implementations with extraction and/or hard-coded start/stop/current value/etc.

Adding a sequence strategies setting, distinct from the model based strategies.
Iterating through each during export
Iterating through each during import and adding to the database before model strategies.

There shouldn't be any interdependencies I don't think so hopefully these should be much simpler than the model equivalents.
What do you think? It's been a while since I've looked at the codebase so I could be a little off on the pieces required.

Having a look at this this evening and it looks like the current Strategy & Exportable classes are (as you say) based around the expectation that there's a model for everything. One option might be to have sequences handled by a different hierarchy of mixins which don't have that limitation (likely we could pull out some common logic though); not sure if that's what you had in mind.
Something else we'll need to think about is how to know which sequences to export. Obviously requiring users to list them manually would work, though doesn't feel ideal. However auto-detecting them would likely require a mechanism to filter out those which are attached to fields (and would thus be created by the schema import).
An idea therefore might be to allow devdata to run against an existing empty database so that users can do their own schema export/import if they want to (which would include sequences, at least on Postgres), sidestepping the need to support them directly. I realise that doesn't fully solve this issue though.

@danpalmer I've ended up going in a slightly different direction here. In #12 I've introduced the idea of "extra" strategies which aren't tied to database models and then implemented sequence export/import within that framework. (In theory I think the Django migrations table export could also fit into that framework, though I've not explored that). Would be good to get your thoughts on that approach.


Serious refactoring necessary

We have two different namespaces in this project which is causing lots of issues relating to getting and setting values from other forms. I am not sure how in gods name Hayden achieved this but we are going to need to create a new project and completely transfer over our code and re-make the forms. Good day.

Thank you


fix: close modal components when outside is clicked and esc is pressed (resolves #1067)

Resolves the issue #1067
Prerequisites
If this PR changes PHP code or dependencies:

[x] I've run composer format and fixed any code formatting issues.
[x] I've run composer analyze and addressed any static analysis issues.
[x] I've run php artisan test and ensured that all tests pass.
[x] I've run composer localize to update localization source files and committed any changes.

If this PR changes CSS or JavaScript code or dependencies:

[x] I've run npm run lint and fixed any linting issues.
[ ] I've run npm run build and ensured that CSS and JavaScript assets can be compiled.

Language modal doesn't close when I click outside of it.


ViewPagerTransforms Do Not Look Right With Vertical ViewPager

After putting the castorflex VerticalViewpager into my project the transforms no longer look correct. They are all scrambled. The cube up now looks like a twist effect and flip vertical is some overlapping and showing edges of both pages.
The horizontal effects are working correctly because the are initialized by the regular ViewPager provided by the v4 support library.
I've checked the implementation and everything is as instructed from this page.
Is there a bug in the code which would cause this? Please check into this.
Thanks

Forget what I said above as it turned out after closer looking it was the math on the cubeout transformer which was affected by the X and Y reversal values in the VerticalViewPager and needed an adjustment on view.setRotationY(-90f * position); . For the benefit of others who run into using these transforms with the castor flex VerticalViewPager below are two fixes to this issue.
Note: If using the default out of box transforms please point these to the Horizontal ViewPager aka v4 support library viewpager (Horizontal) not the Vertical one; because if that be the use case, no change in values are needed.
The suggested code below is only needed with a real vertical view pager like the one castorflex provides as it includes vertical gesture as well as vertical motion.
First suggested fix is to be used on high density devices which use higher resolution which distorts the look of a cube and makes it look more like a wedge if the default value is used -90f which must be changed to -70f so as to make the view look closer to a rectangular cube in vertical motion. Specifically 1440x2560 tested on Nexus 6.
Special Note: the out of box value uses a positive number 90f but for vertical it needs a negative value because a positive value produces an effect of cubein on Vertical View Pagers but a negative 90f produces a cube out effect.
When this is changed to a lower number it produces less of a wedge effect and reshapes the view to make it look more consistent to the look of what out of box does on devices which support 720 based resolution.
High Resolution Example Below (copy and paste these over the default values)
@Override
protected void onTransform(View view, float position) {
    /************** This is for CubeOut Horizontal PageTransformation ********************/
    view.setPivotY(position < 0f ? view.getHeight() : 0f);
    view.setPivotX(view.getWidth() * 0.5f);
    view.setRotationX(-70f * position);
}

@Override
public boolean isPagingEnabled() {
    return true;
}

}
The second is one should use the default value being adjusted for average density devices running medium resolution of 720x1280 or 1080x1920 would need a value of -80f. Again this is only to affect the look of the cube out effect.
@Override
protected void onTransform(View view, float position) {
    /************** This is for CubeOut Horizontal PageTransformation ********************/
    view.setPivotY(position < 0f ? view.getHeight() : 0f);
    view.setPivotX(view.getWidth() * 0.5f);
    view.setRotationX(-90f * position);
}

@Override
public boolean isPagingEnabled() {
    return true;
}

}
The second example should use the default value being adjusted for negative on average density devices running medium resolution of 720x1280 or 1080x1920 would need a value of -80f.
Again this is only done to affect the look of the cube out effect on different resolutions.
So to fully edit the original code it must be changed to read CubeOut Vertical PageTransformation as shown in code snip example below.
@Override
protected void onTransform(View view, float position) {
/************** This is for CubeOut Vertical PageTransformation ********************/
}
I want to make sure others who seek to use a Vertical View Pager like castor flex that has vertical swipe gestures and vertical page transitions verse other solutions on Git which suggest you rotate the whole container view by 90 degree's to produce a fake vertical verses a true vertical; just know that using the fake method produces a strange kind of jank/lag/hesitation/resistance/stutter and page jumping anomaly experienced during our project with the transforms on this portal page of ToxicBakery's. I don't want others to have to suffer the massive time loses it took to unravel the mystery behind the strangeness no one could ever solve or fix including myself who failed in that endeavor.
Being I hate to be defeated by technical issues like this I was not getting sleep and worked obscene hours to get to the bottom of this strange important issue.
I'm glad others all over the Internet ignored my request for help on this issue and treated me the way they did because had they not blown me off I would not have been so fiercely motivated every time they snob nosed me to find a solution.
Which is the reason I'm taking great lengths in this response to provide enough detail that even a noob or junior dev would understand it and not need to ask the self exhalted dev GOD's on the internet who more than likely will get irritated by such a lowly request such as this from a junior or noob.
It's this attitude that I attempt to counter in this response as I'm more than happy the new devs struggling with code. Anyone who reads this and needs help, reach out and I'll do what ever I can to assist without the grief others may serve up.
My fix ended up being using a rewrite of the original viewpager in the v4 support library not using my code skills as nothing I did would fix the issue and I did give up on it in favor of this solution to stop wasting my time.
There are many devs who may say you need to adjust the camera values in order to make the cube out effect look more accurate to a cube shaped view.
This response confirms that is not necessary as shown above.

I am closing the issue now.


Stub zones don't work

We tried running coredns with stubzones enabled but they did not get picked up. After some investigation we found the following issue.
https://github.com/miekg/coredns/blob/master/middleware/etcd/stub.go#L16 is operating on the value receiver. So when a new stubzone is discovered it is added to a different instance of Etcd.
It is possible to confirm it by checking the memory addresses of Etcd inside https://github.com/miekg/coredns/blob/master/middleware/etcd/stub.go#L16 and inside https://github.com/miekg/coredns/blob/master/middleware/etcd/handler.go#L13 they will be different.

A (maybe) less hacky alternative: #198
Still lacks a test case, because it is somewhat non-trivial. Could you check if this works for you?

This is working - could still use a test though, but closing for now.


(1/1) NotFoundHttpException Unable to find the controller for path "/api/login_check". The route is wrongly configured.

I am using "lexik/jwt-authentication-bundle": "^2.6" with "symfony/framework-bundle": "4.2.*",
This is a new project without any other changes from the symfony repo
I have applied all changes in the installation instruction buts I get the following error when making a POST to api/login_check:
(1/1) NotFoundHttpExceptionUnable to find the controller for path "/api/login_check". The route is wrongly configured.
in HttpKernel.php line 134
at HttpKernel->handleRaw(object(Request), 1)in HttpKernel.php line 67
at HttpKernel->handle(object(Request), 1, true)in Kernel.php line 198
at Kernel->handle(object(Request))in index.php line 25

I removed default  security.yaml entries and this now works for me

I removed default security.yaml entries and this now works for me

I have the same problem but I can't find what are the "default entries" ?

I removed default security.yaml entries and this now works for me

I have the same problem but I can't find what are the "default entries" to remove?

This was too long about for me to remember the exact details of the default entries
Here is a snippet of my firewalls and access_control entry. Hope it helps:
`firewalls:
reset_password:
pattern: ^/reset-password
stateless: true
security: false
anonymous: true
    login:
        pattern: ^/login
        stateless: true
        json_login:
            check_path: /login
            success_handler: lexik_jwt_authentication.handler.authentication_success
            failure_handler: lexik_jwt_authentication.handler.authentication_failure

    api:
        pattern: ^/
        stateless: true
        jwt: ~

access_control:
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/,       roles: IS_AUTHENTICATED_FULLY }            `

Yes I solved it just after I posted here. It was a issue with the orders of the firewalls. But thanks you anyways It could have solve this issue too.

Yes I solved it just after I posted here. It was a issue with the orders of the firewalls. But thanks you anyways It could have solve this issue too.

Ahhh yes, firewall order issue. It's a classic :)


Made flatpickr capable of being used within the context of a web component

Changed document references to window.document so all events are
handled at the window document level, even when flatpickr is present
inside a web component with its own document element.
Added two checks in documentClick that inspect the event path to see
if either the input or altInput elements have been selected when
flatpickr is run within a web componet. If it is, then the event target
will point to the web component. The path will contain the input
elements if they're a part of the event.

Looks like this breaks Safari. I'm seeing this error in the console:

TypeError: undefined is not an object (evaluating 'e.path.indexOf')

Looks like Event.path is only supported in Chrome: http://stackoverflow.com/a/39245638


Add ETC Counter [New Feature]

This pull request adds an additional estimated time of completion (ETC) counter to the ffuf stdout functionality.
Let me know if this will suffice to be included to master, as I will probably be using ffuf with this feature from now on 👍

Thanks for the PR!
I'll have to leave this to sit for a while, as there are currently issues with the status bar being too wide.
In general the feature is a good one, but there are a few things that I'd like to see taken into account:

Include queued jobs in the estimation
As the req/sec calculation for ffuf is close to realtime, and takes only the most recent requests into account and that value can fluctuate quite a bit, I fear that the time estimation jumps all around and might be hard to read for the user.


front_end: could give better diagnostic for missing arguments

pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart:1690:64: Error: The argument type '({growable: dart.core::bool}) → dart.core::List<js_ast::LiteralString>' can't be assigned to the parameter type 'dart.core::List<js_ast::Expression>'.
Try changing the type of the parameter, or casting the argument to 'dart.core::List<js_ast::Expression>'.
      node.value = js.ArrayInitializer(names.map(js.quoteName).toList);

The advice here should be to try adding '()' or another argument list to call the method.

I agree, this is bad.
If we want to suggest a way to get from "actual" to "expected" then we should compute a plausible way to do that (not "try casting function to list").  Otherwise we should avoid suggesting anything.
We are actively working on improving the situation.


WIP: First attempt at showing specificity in a css selector hover.

This is a pull request to show the specificity score of a css selector on hover.

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

I'm kind of new to this. How do I reference https://github.com/Microsoft/vscode/issues/7299 with this pull request while I'm working on it?

I can fix the unit tests Saturday morning.

@aeschli I'm finished with this and all the tests pass. Do I need to do anything else to get this into vscode?

@kumarharsh Thank you. I've applied your suggested code changes to fix the typos.

Very cool, thanks, @Ragnoroct !

How can we hide this popup?


Monitor the uptime of our sites and alert us if a site goes down

There have been a number of occasions where our users have been first to inform us our sites have stopped working.
Here we are looking to introduce an external uptime monitoring service which will alert us immediately if any of our sites go down.
Note that here we are purely looking at whether a site is live or not. Functionality & 'smoke' tests will be covered separately.
We have considered using:

Pingdom
Pingdom via MoJ shared account
Freshping

Freshping serves our purpose well and is free. To complete setup and close this ticket we need to configure freshping to:

[x] Monitor our main website (production)
[x] Monitor Apply site (production)
[x] Monitor Assessments site (production)
[x] Monitor Admin site (production)
[x] Monitor Apply site (staging)
[x] Monitor Assessments site (staging)
[x] Monitor Admin site (staging)
[ ] Send email alerts to digital team
[x] Send slack alerts to our status/alerts channel

@warrensearle  - What is the progress of this ticket?

We are trying out a free tool called freshPing and it looks to cover everything we need.
I have updated this ticket accordingly and the plan is to complete the setup / rollout this month (dec 2022).

@nickaddy can you help @tomlovesgithub authorise the following email address:
<EMAIL_ADDRESS>

@warrensearle Unsure what is required here? Can confirm an email has been received to the Digital inbox:
[Freshping]<EMAIL_ADDRESS>added you as a contact in a Freshping account


Use astropy.units more consistently across POPPY

As discussed this morning it would be useful to automatically handle datasets with units other than meters. @josePhoenix  the test for units that keeps things backwards compatible in fresnel.py is (https://github.com/mperrin/poppy/blob/master/poppy/fresnel.py#L50-L54):
    if isinstance(z, u.quantity.Quantity):
        self.z_m = z.to(u.m)  # convert to meters.
    else:
        _log.debug("Assuming meters, phase {:.3g} has no units for Optic: " .format(z) + self.name)
        self.z_m = z * u.m

I think we would want to make it a general function, since it's reused several place. If there's an easy way to enforce it with a decorator that sounds like it could be a more elegant solution.

See here for the astropy QuantityInput decorator source: http://docs.astropy.org/en/stable/_modules/astropy/units/decorators.html
This is different from what you suggest - because it raises a TypeError if the argument lacks a unit, instead of applying a default one - but the code could easily be modified to behave as you describe.
Mock code:

    @back_compatible_quantity_input(radius=u.m)
    def some_function(self, radius=1.0*u.m, more_args)
         code...

And it would apply units of meters and print that log debug message if the parameter lacks units, or raise an error if it has incompatible units, or just pass through the argument if given something with units of length.

I now have a working version of a decorator with the desired functionality. (It may seem like "a more elegant solution" on the outside; inside it's dark magic with Python metaprogramming that I kludged up based on the astropy decorator example).
Right now I've applied that decorator to the Wavefront constructor so that the wavelength and diam parameters can be provided as astropy Quantity lengths (in , or just as floating point values, in which case they are automatically turned into Quantity lengths in meters. This basic part all seems to work, yay.
Of course, now a huge fraction of the unit tests fail because the rest of the code chokes on having Quantities...
This is in a private branch for now but I could post it here if others are interested in working on it and trying to get the tests passing. Let me know if interested.

Much progress - this is nearing a state where I could merge it, with all tests passing.
But it's a slippery slope: once you add units support for wavelengths, it's temping to add it for all the pupil radii and other distances defined in all the optics. And then what about the units on the OPD arrays themselves? And so forth.  It's actually somewhat problematic to only go part way on this, because then various combinations that are supposed to cancel out don't end up being dimensionless, and that breaks all the trig function arguments etc.
Not sure how far it's worth taking this - I'm tempted to say what I have thus far with all wavelengths allowed to have units is good enough, and not apply dimensional quantities self-consistently throughout all the optics.


Add extra debug information to extract email source

Add emailmessage information when not able to extract the sender email

Code change looks good - what do we need to fix in the setup-environment script so that it's working properly? @ubajze ?

Yes, @ubajze  is working on this in a different branch


Add CLA Group Setup Status/Percentage

Summary
Add or Enhance the EasyCLA API to include CLA Group Setup Status/Percentage complete.
Background
The PCC requires that the EasyCLA application returns a concept of a setup completion percentage. Although, generally, the CLA group is either enabled or not (0% setup or 100% setup), it could be considered partially setup if no GitHub repositories are attached to the newly created CLA Group.  This ticket establishes an API (or extends an existing API) to return a setup status/percentage.
User Story

As a project manager, I want to show the CLA setup status for my project.

Acceptance Criteria
The "done" criteria when this feature or problem is resolved. Such as:

Unit Tests added and running in CI
Functional Tests updated to cover feature, if applicable
Demonstrate the set of capabilities to the product team while the code is running in the STAGING environment.

References

Provide any code or specification references that would be helpful for the developer implementing this feature.

Created PR: https://github.com/communitybridge/easycla/pull/2434
Added percentage setup attribute setup_completion_pct to the List CLA Groups associated with a foundation or project
API response (https://api-gw.dev.platform.linuxfoundation.org/cla-service/v4/api-docs#operation/listClaGroupsUnderFoundation):
Example Response in DEV for {{EASYCLA_API}}/foundation/:projectSFID/cla-groups using SFID a096s0000003ZFmAAM:
{
    "list": [
        {
            "ccla_enabled": true,
            "ccla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/2a72d5fe-6a7f-4138-9215-0a5cbca10105/template/ccla-2020-10-13T15-03-22Z.pdf",
            "ccla_requires_icla": false,
            "cla_group_description": "description1",
            "cla_group_id": "2a72d5fe-6a7f-4138-9215-0a5cbca10105",
            "cla_group_name": "asha-clagrp1",
            "foundationLevelCLA": false,
            "foundation_name": "asha-foundation",
            "foundation_sfid": "a096s0000003ZFmAAM",
            "icla_enabled": true,
            "icla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/2a72d5fe-6a7f-4138-9215-0a5cbca10105/template/icla-2020-10-13T15-03-22Z.pdf",
            "project_list": [
                {
                    "project_name": "asha-project1",
                    "project_sfid": "a096s0000003ZFrAAM",
                    "repositories_count": 11
                }
            ],
            "repositories_count": 0,
            "root_project_repositories_count": 0,
            "setup_completion_pct": 80,
            "total_signatures": 1
        },
        {
            "ccla_enabled": true,
            "ccla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/82c7aa4e-0cb5-46b3-a12b-9db4b58fd381/template/ccla-2020-11-27T13-17-05Z.pdf",
            "ccla_requires_icla": true,
            "cla_group_description": "asha cla group",
            "cla_group_id": "82c7aa4e-0cb5-46b3-a12b-9db4b58fd381",
            "cla_group_name": "asha-clagrp5",
            "foundationLevelCLA": false,
            "foundation_name": "asha-foundation",
            "foundation_sfid": "a096s0000003ZFmAAM",
            "icla_enabled": true,
            "icla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/82c7aa4e-0cb5-46b3-a12b-9db4b58fd381/template/icla-2020-11-27T13-17-05Z.pdf",
            "project_list": [
                {
                    "project_name": "asha-project5",
                    "project_sfid": "a096s0000003i4XAAQ",
                    "repositories_count": 0
                }
            ],
            "repositories_count": 0,
            "root_project_repositories_count": 0,
            "setup_completion_pct": 80,
            "total_signatures": 0
        },
        {
            "ccla_enabled": true,
            "ccla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/c12b31cc-3080-448d-a351-855292d8ce08/template/ccla-2020-11-23T10-26-56Z.pdf",
            "ccla_requires_icla": false,
            "cla_group_description": "desc2",
            "cla_group_id": "c12b31cc-3080-448d-a351-855292d8ce08",
            "cla_group_name": "asha-foundation-clagrp2",
            "foundationLevelCLA": false,
            "foundation_name": "asha-foundation",
            "foundation_sfid": "a096s0000003ZFmAAM",
            "icla_enabled": true,
            "icla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/c12b31cc-3080-448d-a351-855292d8ce08/template/icla-2020-11-23T10-26-56Z.pdf",
            "project_list": [
                {
                    "project_name": "asha-project2",
                    "project_sfid": "a096s0000003cUAAAY",
                    "repositories_count": 0
                }
            ],
            "repositories_count": 0,
            "root_project_repositories_count": 0,
            "setup_completion_pct": 80,
            "total_signatures": 0
        },
        {
            "ccla_enabled": true,
            "ccla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/f2253898-30be-44fb-b57d-633476a5e154/template/ccla-2020-11-11T05-31-13Z.pdf",
            "ccla_requires_icla": false,
            "cla_group_description": "asha-foundation-clagrp3",
            "cla_group_id": "f2253898-30be-44fb-b57d-633476a5e154",
            "cla_group_name": "asha-foundation-clagrp3",
            "foundationLevelCLA": false,
            "foundation_name": "asha-foundation",
            "foundation_sfid": "a096s0000003ZFmAAM",
            "icla_enabled": true,
            "icla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/f2253898-30be-44fb-b57d-633476a5e154/template/icla-2020-11-11T05-31-13Z.pdf",
            "project_list": [
                {
                    "project_name": "asha-project3",
                    "project_sfid": "a096s0000003cUFAAY",
                    "repositories_count": 0
                }
            ],
            "repositories_count": 1,
            "root_project_repositories_count": 1,
            "setup_completion_pct": 100,
            "total_signatures": 0
        },
        {
            "ccla_enabled": true,
            "ccla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/cc6069ff-13b4-4b70-abbb-f04e49573bef/template/ccla-2020-11-11T07-28-20Z.pdf",
            "ccla_requires_icla": false,
            "cla_group_description": "Test Description 4",
            "cla_group_id": "cc6069ff-13b4-4b70-abbb-f04e49573bef",
            "cla_group_name": "asha-foundation-clagrp4",
            "foundationLevelCLA": false,
            "foundation_name": "asha-foundation",
            "foundation_sfid": "a096s0000003ZFmAAM",
            "icla_enabled": true,
            "icla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/cc6069ff-13b4-4b70-abbb-f04e49573bef/template/icla-2020-11-11T07-28-20Z.pdf",
            "project_list": [
                {
                    "project_name": "asha-project4",
                    "project_sfid": "a096s0000003cUKAAY",
                    "repositories_count": 1
                }
            ],
            "repositories_count": 0,
            "root_project_repositories_count": 0,
            "setup_completion_pct": 80,
            "total_signatures": 0
        },
        {
            "ccla_enabled": true,
            "ccla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/e4784a68-22a8-42fd-9366-da15d24a5e3d/template/ccla-2020-11-24T10-39-04Z.pdf",
            "ccla_requires_icla": false,
            "cla_group_description": "desc6",
            "cla_group_id": "e4784a68-22a8-42fd-9366-da15d24a5e3d",
            "cla_group_name": "asha-foundation-clagrp6",
            "foundationLevelCLA": false,
            "foundation_name": "asha-foundation",
            "foundation_sfid": "a096s0000003ZFmAAM",
            "icla_enabled": true,
            "icla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/e4784a68-22a8-42fd-9366-da15d24a5e3d/template/icla-2020-11-24T10-39-04Z.pdf",
            "project_list": [],
            "repositories_count": 0,
            "root_project_repositories_count": 0,
            "setup_completion_pct": 80,
            "total_signatures": 0
        },
        {
            "ccla_enabled": true,
            "ccla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/9cf2f03b-b35f-4742-961e-759d317ef3a4/template/ccla-2020-12-04T14-38-46Z.pdf",
            "ccla_requires_icla": false,
            "cla_group_description": "desctest",
            "cla_group_id": "9cf2f03b-b35f-4742-961e-759d317ef3a4",
            "cla_group_name": "project6-clagrp",
            "foundationLevelCLA": false,
            "foundation_name": "asha-foundation",
            "foundation_sfid": "a096s0000003ZFmAAM",
            "icla_enabled": false,
            "icla_pdf_url": "",
            "project_list": [
                {
                    "project_name": "asha-project6",
                    "project_sfid": "a096s0000003iLLAAY",
                    "repositories_count": 6
                }
            ],
            "repositories_count": 6,
            "root_project_repositories_count": 6,
            "setup_completion_pct": 100,
            "total_signatures": 0
        }
    ]
}

Created PR: https://github.com/communitybridge/easycla/pull/2434
Added percentage setup attribute setup_completion_pct to the List CLA Groups associated with a foundation or project
API response (https://api-gw.dev.platform.linuxfoundation.org/cla-service/v4/api-docs#operation/listClaGroupsUnderFoundation):
Example Response in DEV for {{EASYCLA_API}}/foundation/:projectSFID/cla-groups using SFID a096s0000003ZFmAAM:
{
    "list": [
        {
            "ccla_enabled": true,
            "ccla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/2a72d5fe-6a7f-4138-9215-0a5cbca10105/template/ccla-2020-10-13T15-03-22Z.pdf",
            "ccla_requires_icla": false,
            "cla_group_description": "description1",
            "cla_group_id": "2a72d5fe-6a7f-4138-9215-0a5cbca10105",
            "cla_group_name": "asha-clagrp1",
            "foundationLevelCLA": false,
            "foundation_name": "asha-foundation",
            "foundation_sfid": "a096s0000003ZFmAAM",
            "icla_enabled": true,
            "icla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/2a72d5fe-6a7f-4138-9215-0a5cbca10105/template/icla-2020-10-13T15-03-22Z.pdf",
            "project_list": [
                {
                    "project_name": "asha-project1",
                    "project_sfid": "a096s0000003ZFrAAM",
                    "repositories_count": 11
                }
            ],
            "repositories_count": 0,
            "root_project_repositories_count": 0,
            "setup_completion_pct": 80,
            "total_signatures": 1
        },
        {
            "ccla_enabled": true,
            "ccla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/82c7aa4e-0cb5-46b3-a12b-9db4b58fd381/template/ccla-2020-11-27T13-17-05Z.pdf",
            "ccla_requires_icla": true,
            "cla_group_description": "asha cla group",
            "cla_group_id": "82c7aa4e-0cb5-46b3-a12b-9db4b58fd381",
            "cla_group_name": "asha-clagrp5",
            "foundationLevelCLA": false,
            "foundation_name": "asha-foundation",
            "foundation_sfid": "a096s0000003ZFmAAM",
            "icla_enabled": true,
            "icla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/82c7aa4e-0cb5-46b3-a12b-9db4b58fd381/template/icla-2020-11-27T13-17-05Z.pdf",
            "project_list": [
                {
                    "project_name": "asha-project5",
                    "project_sfid": "a096s0000003i4XAAQ",
                    "repositories_count": 0
                }
            ],
            "repositories_count": 0,
            "root_project_repositories_count": 0,
            "setup_completion_pct": 80,
            "total_signatures": 0
        },
        {
            "ccla_enabled": true,
            "ccla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/c12b31cc-3080-448d-a351-855292d8ce08/template/ccla-2020-11-23T10-26-56Z.pdf",
            "ccla_requires_icla": false,
            "cla_group_description": "desc2",
            "cla_group_id": "c12b31cc-3080-448d-a351-855292d8ce08",
            "cla_group_name": "asha-foundation-clagrp2",
            "foundationLevelCLA": false,
            "foundation_name": "asha-foundation",
            "foundation_sfid": "a096s0000003ZFmAAM",
            "icla_enabled": true,
            "icla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/c12b31cc-3080-448d-a351-855292d8ce08/template/icla-2020-11-23T10-26-56Z.pdf",
            "project_list": [
                {
                    "project_name": "asha-project2",
                    "project_sfid": "a096s0000003cUAAAY",
                    "repositories_count": 0
                }
            ],
            "repositories_count": 0,
            "root_project_repositories_count": 0,
            "setup_completion_pct": 80,
            "total_signatures": 0
        },
        {
            "ccla_enabled": true,
            "ccla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/f2253898-30be-44fb-b57d-633476a5e154/template/ccla-2020-11-11T05-31-13Z.pdf",
            "ccla_requires_icla": false,
            "cla_group_description": "asha-foundation-clagrp3",
            "cla_group_id": "f2253898-30be-44fb-b57d-633476a5e154",
            "cla_group_name": "asha-foundation-clagrp3",
            "foundationLevelCLA": false,
            "foundation_name": "asha-foundation",
            "foundation_sfid": "a096s0000003ZFmAAM",
            "icla_enabled": true,
            "icla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/f2253898-30be-44fb-b57d-633476a5e154/template/icla-2020-11-11T05-31-13Z.pdf",
            "project_list": [
                {
                    "project_name": "asha-project3",
                    "project_sfid": "a096s0000003cUFAAY",
                    "repositories_count": 0
                }
            ],
            "repositories_count": 1,
            "root_project_repositories_count": 1,
            "setup_completion_pct": 100,
            "total_signatures": 0
        },
        {
            "ccla_enabled": true,
            "ccla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/cc6069ff-13b4-4b70-abbb-f04e49573bef/template/ccla-2020-11-11T07-28-20Z.pdf",
            "ccla_requires_icla": false,
            "cla_group_description": "Test Description 4",
            "cla_group_id": "cc6069ff-13b4-4b70-abbb-f04e49573bef",
            "cla_group_name": "asha-foundation-clagrp4",
            "foundationLevelCLA": false,
            "foundation_name": "asha-foundation",
            "foundation_sfid": "a096s0000003ZFmAAM",
            "icla_enabled": true,
            "icla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/cc6069ff-13b4-4b70-abbb-f04e49573bef/template/icla-2020-11-11T07-28-20Z.pdf",
            "project_list": [
                {
                    "project_name": "asha-project4",
                    "project_sfid": "a096s0000003cUKAAY",
                    "repositories_count": 1
                }
            ],
            "repositories_count": 0,
            "root_project_repositories_count": 0,
            "setup_completion_pct": 80,
            "total_signatures": 0
        },
        {
            "ccla_enabled": true,
            "ccla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/e4784a68-22a8-42fd-9366-da15d24a5e3d/template/ccla-2020-11-24T10-39-04Z.pdf",
            "ccla_requires_icla": false,
            "cla_group_description": "desc6",
            "cla_group_id": "e4784a68-22a8-42fd-9366-da15d24a5e3d",
            "cla_group_name": "asha-foundation-clagrp6",
            "foundationLevelCLA": false,
            "foundation_name": "asha-foundation",
            "foundation_sfid": "a096s0000003ZFmAAM",
            "icla_enabled": true,
            "icla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/e4784a68-22a8-42fd-9366-da15d24a5e3d/template/icla-2020-11-24T10-39-04Z.pdf",
            "project_list": [],
            "repositories_count": 0,
            "root_project_repositories_count": 0,
            "setup_completion_pct": 80,
            "total_signatures": 0
        },
        {
            "ccla_enabled": true,
            "ccla_pdf_url": "https://cla-signature-files-dev.s3.amazonaws.com/contract-group/9cf2f03b-b35f-4742-961e-759d317ef3a4/template/ccla-2020-12-04T14-38-46Z.pdf",
            "ccla_requires_icla": false,
            "cla_group_description": "desctest",
            "cla_group_id": "9cf2f03b-b35f-4742-961e-759d317ef3a4",
            "cla_group_name": "project6-clagrp",
            "foundationLevelCLA": false,
            "foundation_name": "asha-foundation",
            "foundation_sfid": "a096s0000003ZFmAAM",
            "icla_enabled": false,
            "icla_pdf_url": "",
            "project_list": [
                {
                    "project_name": "asha-project6",
                    "project_sfid": "a096s0000003iLLAAY",
                    "repositories_count": 6
                }
            ],
            "repositories_count": 6,
            "root_project_repositories_count": 6,
            "setup_completion_pct": 100,
            "total_signatures": 0
        }
    ]
}

As updated by @tejasadg , this one already merged & available on Dev env.

As updated by @tejasadg , this one already merged & available on Dev env.


xClusterProperty: New resource

Pull Request (PR) description
New DSC resource to set cluster properties such as SameSubnetDelay, QuarantineThreshold etc.
This Pull Request (PR) fixes the following issues:
Fixes #169
Task list:

[x] Change details added to Unreleased section of CHANGELOG.md?
[x] Added/updated documentation, comment-based help and descriptions in .schema.mof files where appropriate?
[x] Examples appropriately updated?
[x] New/changed code adheres to Style Guidelines?
[x] Unit and (optional) Integration tests created/updated where possible?

This change is

@johlju I've been away so only managed to do a bit of work on this but I'll send over my code in the next week or so.

@markgossa Awesome! No hurry, I know how busy the day job and life can be. 😄

Review status: 6 of 8 files reviewed at latest revision, 33 unresolved discussions.

CHANGELOG.md, line 5 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

xFailoverCluster

Saw now that there is a typo here, could you please help correct it? Should be xFailOverCluster (upper 'O').

Done.

CHANGELOG.md, line 23 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…
Maybe we could move this entry under - Changes to xFailOverCluster?

Done.

README.md, line 178 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

Configures cluster properties on a
failover cluster.

Maybe we should use the same description as in the ToC?
"Configures cluster properties on a failover cluster."

Done.

README.md, line 187 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

Uint32

Could we change this to UInt32 (upper 'I')? Throughout in the README.md, in the code and schema.mof.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 24 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

CheckingClusterProperties

Could we change this a separate message, like GettingClusterProperties with a text something like Returning current values from cluster '{0}'.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 26 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…
This helper function seems unnecessary? Could we do it using the hash table instead? Thinking of something like this.
$returnValue = @{
    AddEvictDelay = $null
    ClusterLogLevel = $null
    # ... and the rest of the properties
 }

$clusterProperties = $returnValue.Clone()
foreach ($clusterProperty in $clusterProperties.Keys)
{
    $returnValue[$clusterProperty] = $cluster.$clusterProperty
}

# This adds key 'Name' to the hash table and sets the value
$returnValue['Name'] = $Name

It's simpler to just add values to the hashtable keys as it's being created rather than creating a hashtable with null values then setting the values. This is what I've done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 28 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

$Cluster

Please use camelCase for variables. Throughout.
Except parameters that should use PascalCase.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 40 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…
Please remove blank row.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 105 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…
Please remove blank row.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 112 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…
Could we change this to System.UInt32 (full name of the type, and upper 'I' in Int). Throughout.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 168 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…
Could we change this to System.String (full name of the type). Throughout.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 194 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

$PSBoundParameters

I think you should .Clone() the hash table, otherwise you are removing the keys from both $PSBoundParameters  and $Params.

$PSBoundParameters is actually not a hashtable so it doesn't have the .Clone() method. There is a .CopyTo() but this doesn't do the same as .Clone().

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 194 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

$Params

Could we change this to $boundParameters (let's avoid using abbreviations).

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 195 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

| Out-Null

Is Out-Null necessary, I don't see Remove() method returning anything? Non-blocking if it do return a value in certain scenarios.

This does return an output in some scenarios so I've left it in.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 195 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

"Name"

Please use single-quotes. Same for the row below.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 200 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

""$($Param.Value)""

We can add for example '{0}' directly in the localized string in the psd1 file so you don't need to this. Please use single-quotes in the localized string, unless it's more appropriate to use double-quotes in this scenario.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 202 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

($Param.Value)

Parenthesis around here should not be necessary.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 202 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

(Get-Cluster -Name $Name)

Could we run Get-Cluster once before the foreach-block so we get an object back that we can update instead?

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 270 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…
Please remove blank row.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 360 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

$Params

Could we change this to $boundParameters (let's avoid using abbreviations).

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 360 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

$PSBoundParameters

I think you should .Clone() the hash table, otherwise you are removing the keys from both $PSBoundParameters  and $Params.

$PSBoundParameters is actually not a hashtable so it doesn't have the .Clone() method. There is a .CopyTo() but this doesn't do the same as .Clone().

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 361 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

| Out-Null

Is Out-Null necessary, I don't see Remove() method returning anything? Non-blocking if it do return a value in certain scenarios.

This does return an output in some scenarios so I've left it in.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 361 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

"Name"

Please use single-quotes. Same for the three rows below.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 370 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

$Param

Could we change this to $parameter (let's avoid using abbreviations).

Done. Changed to $boundParameter.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 372 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

($Param.Value)

We should not need parenthesis here?

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 374 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

""$($Param.Value)""

We can add for example '{0}' directly in the localized string in the psd1 file so you don't need to this. Please use single-quotes in the localized string, unless it's more appropriate to use double-quotes in this scenario.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 375 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

Write-Debug

I think we should use Write-Verbose here as well. I think the user would be interested in that information in the verbose output.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 382 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…
Remove duplicate blank row.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.schema.mof, line 5 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…
Please use the same description as in the README.md. Throughout.

Done.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.schema.mof, line 6 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

Uint32

Could we change to UInt32 (upper 'I'). Throughout.

Done.

DSCResources/MSFT_xClusterProperty/en-US/MSFT_xClusterProperty.strings.psd1, line 4 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…
Could we end each localized string with a full stop ... properties.. Throughout.

Done.

DSCResources/MSFT_xClusterProperty/en-US/MSFT_xClusterProperty.strings.psd1, line 7 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

Cluster property {0} is not equal to {1}

The word 'equal' feels a little wrong to me. Thinking that something like this is better; `Cluster property '{0}' has value '{1}', expected it to have value '{2}'. But this is my personal opinion, so leaving this as non-blocking. :smile:

Done.

Examples/Resources/xClusterProperty/1-SetClusterProperties.ps1, line 19 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…
Could we move Name to the top of the list (since that is the key)?

Done.

Comments from Reviewable

@johlju - Thanks for your patience. I've made the reviewable changes and resolved the merge conflicts. Let me know what you need next.

@markgossa I will get to this tomorrow I hope, if not then, then during the weekend 😄

Awesome work! Saw that I messed up with the $PSBoundParameters vs Clone() :)
Just a couple of easy review comments left. After that I think this looks good to me!

Reviewed 7 of 8 files at r3.
Review status: all files reviewed at latest revision, 3 unresolved discussions.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 26 at r1 (raw file):
Previously, markgossa (Mark Gossa) wrote…
It's simpler to just add values to the hashtable keys as it's being created rather than creating a hashtable with null values then setting the values. This is what I've done.

LGTM. I couldn't acknowledge this. Maybe you can now that I marked it as satisfied. If not, write Done on this so that I can acknowledge it. :smile:

Tests/Unit/MSFT_xClusterProperty.Tests.ps1, line 30 at r3 (raw file):

"Cluster1"

Please use single quotes. Throughout.

Tests/Unit/MSFT_xClusterProperty.Tests.ps1, line 124 at r3 (raw file):

            }

            Context "$($script:DSCResourceName)\Test-TargetResource" {

There are also tests on line 50 for Test-TargetResource - could these be concatenated? Maybe by using another Context inside the first context block to tell the different tests apart?
Context "$($script:DSCResourceName)\Set-TargetResource" {
    Context 'When something 1...' {
    }

    Context 'When something 2...' {
    }
}

Comments from Reviewable

Review status: all files reviewed at latest revision, 2 unresolved discussions.

DSCResources/MSFT_xClusterProperty/MSFT_xClusterProperty.psm1, line 26 at r1 (raw file):
Previously, johlju (Johan Ljunggren) wrote…
LGTM. I couldn't acknowledge this. Maybe you can now that I marked it as satisfied. If not, write Done on this so that I can acknowledge it. :smile:

Done.

Tests/Unit/MSFT_xClusterProperty.Tests.ps1, line 30 at r3 (raw file):
Previously, johlju (Johan Ljunggren) wrote…

"Cluster1"

Please use single quotes. Throughout.

Done.

Tests/Unit/MSFT_xClusterProperty.Tests.ps1, line 124 at r3 (raw file):
Previously, johlju (Johan Ljunggren) wrote…
There are also tests on line 50 for Test-TargetResource - could these be concatenated? Maybe by using another Context inside the first context block to tell the different tests apart?
Context "$($script:DSCResourceName)\Set-TargetResource" {
    Context 'When something 1...' {
    }

    Context 'When something 2...' {
    }
}
</blockquote></details>

Actually, I found that the tests at line 50 were duplicate tests, just worded differently so I've removed them. There's just the one context for Test-TargetResource now.

---

*Comments from [Reviewable](https://reviewable.io:443/reviews/powershell/xfailovercluster/171)*
<!-- Sent from Reviewable.io -->

@johlju - thanks for the good feedback. I've made the changes so please take a look when you get the chance. Thanks.

Reviewed 1 of 1 files at r4.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable

@markgossa it is now merged! Awesome work on this one! 😄 Thank you!

@johlju - my pleasure. Have a good one and perhaps I'll bump into you again on another PR :smile:

@johlju - and thanks for merging!

@markgossa hope we will, please send in more PR's 😄


Update the Readme.md

Few things it should include,
1⃣ Need to provide a clear and easy to follow, steps for installing and using the extension/add-on.
2⃣ Warn about the auto-update downside in manual install.
3⃣ Add relevant screenshots for ease of understanding.

Fixed with respect to ab007cb this commit.


Minimap Bug report

The map toggle hotkey won't turn the map off/on even after remapping the button and after changing the size of the map to smaller than "1.0" the minimap ends up looking like what's in the screenshot.

Wow, that's a weird one. Will take a look at, today. I have another update pending, anyways.

Happened to find a workaround for this issue.
Change the enable map option to false, then while in game hit your toggle minimap key.
It will bring up the minimap without these issues, it wont close with the toggle key but will when you open a menu.


[NEW UI] Add loader on welcome page button

Questions
Answers

Description?
Add loader on welcome page button when clicking on "Get started"

Type?
improvement

BC breaks?
no

Deprecations?
no

Fixed ticket?
-

Sponsor company
@PrestaShopCorp

How to test?
Go to the welcome page in the module (NEW UI), select an option, and click 'Get Started.' A loader should appear on the button until the page changes.

PR merged, well done!
Message to @PrestaShop/committers: do not forget to milestone it before the merge.


inttypes.h not available for Microchip XC16 compiler

CO_trace.c now includes <inttypes.h> to use %PRIu32 data type instead of %lu for printf function.
Unfortunately the Microchip XC16 compiler for dsPIC30/dsPIC33 has no inttypes.h implementation.
That leads to a fatal compile error:
../CANopenNode/stack/CO_trace.c:48:22: fatal error: inttypes.h: No such file or directory
Example of the code change:
NEW: return snprintf(s, size, "%PRIu32 ";%" PRId32 "\n", timeStamp, value);
OLD:  return snprintf(s, size, "%lu          ;%ld              \n", timeStamp,  value);

For me there was already an error about snprintf with this same compiler. This is not the case for you ?

I'm not sure if I understand your question.
The dsPICS as the other 16 bit processors of Microchip uses the XC16 compiler. They compiled fine until the data types in snprintf changes to PRIu32, which are normally defined in inttypes.h. But this header does not come with the XC16, only with the XC32 (Microchips 32 bit compiler for PIC32)
Both compiler based on gcc.

Ok I had already compilation error with snprintf and xc16 before this change.

I think the simplest solution would be to guard CO_trace.c/h with #if CO_NO_TRACE > 0 so the code isn't compiled if trace isn't being used (the default).

@trojanobelix did #137 fix your issue?

Does this fix this issue ?
We could also revert the commit to keep CO_Trace compatible with XC16 and similar compilers that implements snprintf but doesn't have inttypes.h ?

@wilkinsw did not seen you posted too 😄

I have no problem, with the changes in #137, but it does not fix this problem.
The microchip XC16 compiler for the dsPIC33 driver doesn't define
uintptr_t, intptr_t, PRIu32 and other "modern" stuff that came with C99 and later.
Therfore using PRIu32 instead of lu in printf generates an error.
It is more  a Microchip problem, as they do not add support for a 20 year old standard in a currently sold compiler.
But it is unlikley that microchip will change that. It might be the best way to declare the missing types to the dsPIC driver files should work as those are included in everything.

What if you download inttypes.h and include it with your source?  If it doesn't exist already there would be no conflicts.

Yes, I took inttypes.h from
https://github.com/openbsd/src/blob/master/include/inttypes.h
and it works.

@trojanobelix is your issue resolved, then?

Yes, the issue is solved.
But it might be helpful for newbies if the example projects in
CANopenPIC (CANopen demo implementation for PIC microcontrollers)
could be compiled with latest XC compiler and latest CANopenNode


Wrong behavior of bind propagation in local volumes

Rancher Server Setup

Rancher version: 5.2.8
Installation option: Docker

Information about the Cluster

Kubernetes version: 1.21
Cluster Type: Custom

Describe the bug

Mount propagation doesn't propagate mounts existing in a volume before the pod creation
Pod cannot be deleted before mounts propagated to the volume are unmounted

To Reproduce

Create empty folders /local and /local/bar on the host
Edit cluster YAML to add the necessary bind mount with the rslave option:

services:
  kubelet:
    extra_binds:
      - "/local:/local:rslave"

Save and wait for cluster update to complete
Create a Persistent Volume of type Local, pointing to /local
Create a PV Claim to claim the PV
Create a Pod that mounts this PVC at /foo, with the mountPropagation: HostToContainer option
On the host, bind-mount some non-empty folder like /bar at /local/bar (mount --bind /bar /local/bar)
Execute shell in the pod and observe that /foo/bar is not empty (good - the new mount propagates)
Delete the pod and notice that it never completes (bad - pod should be deleted)
Unmount /local/bar on the host (umount /local/bar)
Observe that now the pod can be deleted
Again mount /local/bar on the host
Then create a pod like the previous one (after the mount)
Execute shell in the pod and observe that /foo/bar is empty (bad - preexisting mount doesn't propagate)

Result

Existing mounts don't propagate to pod
Pods with new mounts propagated cannot be deleted

Expected Result

Existing mounts should propagate
Pods with new mounts propagated should be deleted normally

Additional context
My thread on the Rancher forum: https://forums.rancher.com/t/bind-external-folders-to-kubelet-with-mount-propagation/36137
Useful command: findmnt -o SOURCE,TARGET,PROPAGATION | grep local
Useful docs:
https://rancher.com/docs/rke/latest/en/config-options/services/services-extras/#extra-binds
https://kubernetes.io/docs/concepts/storage/volumes/#local
https://kubernetes.io/docs/concepts/storage/volumes/#mount-propagation
https://docs.docker.com/storage/bind-mounts/
https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt

/reopen

Could you please reopen this issue and take a look? I'm facing the same issue with. All mounts within a PV are shown empty until remounted at the host.
K8s: v1.23.6+rke2r2
Rancher: v2.6.6

@micheleIT I would reopen but I don't have this option :(


Executing a route without a template

This has been opened and closed a few times

https://github.com/angular/angular.js/pull/1901
https://github.com/angular/angular.js/issues/1838

I may have found a use case where it's a valid to execute a route that doesn't have an associated template.  Imagine a page that launches various modal windows with the requirement to be able to deep-link directly to the page with a dialog open.
The only difference between the modals are the title & text, so the $rootScope is responsible for setting up and launching a modal, and the controller simply provides route specific content.
A workaround is to set { controller: 'fooCtl', template: ' ' }, but it'd be nice to leave the template property out altogether.
Here's a fiddle that shows the problem and workaround: http://jsfiddle.net/EGfAX/5/

For example when templateUrl is false:
var app = angular.module('myApp.foo', ['ngRoute']);

app.config(['$routeProvider', function($routeProvider) {
  $routeProvider.when('/foo', {
    templateUrl: false,
    controller: 'fooCtrl'
  });
}]);

Angular loads all controllers again and then the console throws this:

Finally the browser tab is frozen.

well that's messed up and worth investigating, but setting templateUrl to false doesn't accomplish what you want, so why are you doing that?

Maybe, but sometimes I need angular route don't load by default an template. Because I can load manually my custom template and compile it on the fly.

Right, but you could just use template: "" to achieve that.

in particular, setting templateUrl to false will try to resolve the string "false" as a URL, which should be resolved relative to the current location of the frame (which is almost certainly not what you want)

Thanks, I will try this

The problem with having an empty or false templateUrl is tracked here: https://github.com/angular/angular.js/issues/12176
Since you can do template: '', it's very easy to have a route "without" a template


Invalid Decimal error hangs approve forever

Describe the bug
Error in console:
invalid decimal value (argument="value", value="6.26317723391e-7", code=INVALID_ARGUMENT, version=bignumber/5.7.0)

To Reproduce
Steps to reproduce the behavior:

Bridge from ETH to Gnosis with 25000 USDC

Additional context
Add any other context about the problem here.

Seems like not happening anymore? Closing for now.


[CARBONDATA-1529] Resolved the partition Table link in README.md

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/306/

Build Success with Spark 1.6, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/181/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/937/

LGTM


SAK-39994: assignments > assign grade to participants without a grade, decimals multiplied by 100 (display issue)

https://jira.sakaiproject.org/browse/SAK-39994
In assignments, when you use the "Assign this grade to participants without a grade" feature and assign a decimal value, the grades are applied correctly, but the "Assign this grade..." text field is re-populated with the input value multiplied by 100.

This bug does not affect the 12.x branch.

So this isn't present in 12.x because SAK-34083 hasn't been merged in yet?

Correct. If SAK-34083 gets merged to 12.x, this should as well.

Could we just get rid of "GRADE_NO_SUBMISSION_DEFAULT_GRADE" its only used in 3 places? This property makes very little sense?

I don't really have a strong opinion on keeping it or getting rid of it; we're just trying to fix it because it's a historical feature.
I think if there is a desire to get rid of the feature, it should be proposed to the T&L group for their opinions.

Yeah I'm not advocating the removal of the "feature" just that this property is added to the assignment and then persisted and it seems practically useless.

It's only used to pre-populate the field on the UI after the 'assign grade to participants without a grade' function is used, so that the instructor/maintainer is aware that they've used the feature in the past, and that the grade they assigned using the feature is readily evident.

@ern, I moved the lines as discussed.