TabView disappear when wrapped inside a View

Current behaviour
Disappear when wrapped inside a View
Expected behaviour
Should be able to be wrapped inside a View without a problem
Code sample
render() {
	return (
		<View>
			<TabView/>
			{/*TabView's props is same to the sample source code*/}
		</View>
	);
}

What have you tried
The package itself need to be fixed first regardless of whether there is any workaround or hack to solve the issue
Your Environment

software
version

ios or android
android

react-native
0.55.4

react-native-tab-view
1.2.0

node
8.11.4

npm or yarn
6.4.0

Explicitly set the wrapper's height solve this. But I still don't think zero height as default should be considered as a good idea

But I still don't think zero height as default should be considered as a good idea

The TabView will fill the available space. It's not zero-height. Your wrapper View doesn't have something like flex: 1, so there's no space available for the TabView to render.


Make view stable when resizing

I have the issue that I'd like to keep what's on the screen stable while resizing. Currently I have a react list showing N photo collections, each photo collection is a grid of photos. So, from the POV of react-list it's only showing N collections.
Let's say there are 5 collections of 100 photos each above the view and that 5 photos fit per line. If I resize so that 6 photos or 4 photos fit per line then of course the collections each change their height and now what I was looking at has disappeared.
If that's not clear you can think of it as starting in this state
    GroupA
    aaaaaa
    aaaaaa
    aaaaaa
    GroupB
    bbbbbb
    bbbbbb
    bbbbbb
    GroupC
    cccccc
  +--------+  <- view
  | cccccc |
  | cccccc |
  | GroupD |
  | dddddd |
  +--------+
    dddddd
    dddddd

Then I resize so only 4 photos fit per line and get
    GroupA
    aaaa
    aaaa
    aaaa
    aaaa
    aa
    GroupB
    bbbb
    bbbb
    bbbb
  +--------+  <- view
  | bbbb   |
  | bb     |
  | GroupC |
  | cccc   |
  +--------+
    cccc
    cccc
    cccc
    cc
    GroupD
    dddd
    dddd
    dddd
    dddd
    dd

Before the resize it was showing the bottom of GroupC and the top of GroupD but now it's showing the bottom of GroupB and the of GroupC
I'd like to try to get it to be more stable. I know there is no perfect solution but in any case I think I could choose some photo that was on the screen and try to keep it on the screen by computing its offset from the top of the view before resize and setting the react-list scroll position so that it's offset is still that from the top of the view.
I think I could fix this if there was a way to set the scroll position but AFAICT I can only set the scroll index which is not enough.
Is there a way to set the scroll position or some other solution?

never mind. I see that my own container contains the scroll position and I can probably just set it.


Add a hyphen to the version portion of regex

In CentOS, openssl version command shows like OpenSSL 1.0.1e-fips 11 Feb 2013, so ([\w\.]+) doesn't match it.

this solves one flavor of the problem, but misses the case where openssl will put two spaces before the day numeral if the day has only one digit. Example:
OpenSSL 1.0.2g  1 Mar 2016

I think this might be less brittle, but I haven't tested it extensively. Feel free to use it if it's good:
Facter.add(:openssl_version) do
  setcode do
    if Facter::Util::Resolution.which('openssl')
      openssl_version = Facter::Util::Resolution.exec('openssl version 2>&1')
      openssl_version.split(" ")[1]
    end
  end
end

Thank you. This was fixed in #66.


Correctly Call QnA Train API & Handle 204 No-Content Reseponse

Fixes #2518

Description
Currently the SDK sends a malformed payload body to QnA Maker's Train API.
Fix will:

Send correct payload body to Train API
Handle the Train API's response of 204 No-Content properly,

as currently HttpRequestUtils always tries to decode response to json, even when there isn't any content, which will throw a FetchError: invalid json response body at https://xxxxx.azurewebsites.net/qnamaker/knowledgebases/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/train reason: Unexpected end of JSON input

Specific Changes

As expected by the Train API, in the request's payload body, send the actual array of FeedbackRecord's instead of the whole FeedbackRecords object, which has the array as a member.
Handle sending correct QnAMakerResult for no-content responses from QnA Maker service

Pull Request Test Coverage Report for Build 150501

4 of 6 (66.67%)  changed or added relevant lines in 2 files are covered.
9 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.08%) to 81.559%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

libraries/botbuilder-ai/src/qnamaker-utils/httpRequestUtils.ts
2
3
66.67%

libraries/botbuilder-ai/src/qnamaker-utils/trainUtils.ts
2
3
66.67%

Files with Coverage Reduction
New Missed Lines
%

libraries/botframework-streaming/src/webSocket/webSocketTransport.ts
2
80.65%

libraries/botframework-streaming/src/webSocket/webSocketServer.ts
7
66.67%

Totals

Change from base Build 150489:
-0.08%

Covered Lines:
13447

Relevant Lines:
15721

💛  - Coveralls

@Zerryth  Could you test with sample 49, to verify that nothing is broken.

@Zerryth Could you test with sample 49, to verify that nothing is broken.

@vipeketi done and done! I actually made sure to build this up testing off of sample 49.qnamaker-all-features to make sure I didn't break any other qna APIs unexpectedly

@stevengum, I actually think we need to return either null or undefined unfortunately instead of a QnAMakerResult, which yes, this would be different from what you would expect back from the Generate Answer API 😞
So the call stack goes like this:
TrainUtils.callTrain() --> TrainUtils.queryTrain() --> HttpRequestUtils.executeHttpRequest() --> fetch(request)

If you look at TrainUtils, you can see callTrain is already public and returns nothing (does not return result from executeHttpRequest), since queryTrain returns nothing.

As it is currently built executeHttpRequest , expects to always return a json, as indicated by trying to decode the response to JSON, however this is probably where the mistake is

responses from fetch can be all sorts of shapes, including those without content, so therefore it shouldn't always expect a json response

I propose:

Leave callTrain & queryTrain as they currently in the SDK, returning nothing
Return something from executeHttpRequest in all cases. That something can either be:

At least the status code 204 by itself, so it can communicate the Train API's response to the caller
Inject a JSON that conforms to the shape of a QnAMakerResult (from perspective of always trying to make sure the function returns a consistent single type and have a predictable shape)

Ok, I took the approach of:

Leave callTrain & queryTrain as they currently in the SDK, returning nothing
and
for executeHttpRequest: inject an object that conforms to the shape of a QnAMakerResult (from perspective of always trying to make sure the function returns a consistent single type and have a predictable shape)

@stevengum @vipeketi let me know if you would prefer something else otherwise


Pre-rollout tasks fail when an environment is idled in kubernetes

Describe the bug
If an environment is idled in kubernetes by the new lagoon-idler, there is no way to unidle the environment without hitting the ingress first, or ssh-ing into the environment.
This can be problematic for deployments that have pre-rollout tasks that may need to talk to an idled resource.
To Reproduce
Steps to reproduce the behavior:

Wait for an environment to idle.
Trigger a build that contains a pre-rollout task that contacts a potentially idled deployment.
Observe the build failure as it tries to contact something that is idled.

Expected behavior
The environment should be unidled if there are any pre-rollout tasks to perform.
Additional context
This problem does not exist in openshift as idling is done differently, and only recently idling was rolled out to all kubernetes clusters so this has only been discovered recently.

PR https://github.com/amazeeio/lagoon/pull/2583 was merged which unidles environments when an SSH connection is established, so running something like this will bring the environment back up.
lagoon ssh -p $project -e $env -C "echo unidle"
I propose adding the unidling logic from that PR into the kubernetes (not openshift) build-deploy-docker-compose.sh into just before the pre-rollout tasks are run https://github.com/amazeeio/lagoon/blob/master/images/kubectl-build-deploy-dind/build-deploy-docker-compose.sh#L475

I agree, the kubectl should unidle before a deployment!

Is this issue still valid?

Yes, we only unidle the specific service that is called for pre-rollout tasks, not the entire environment: https://github.com/uselagoon/lagoon/blob/main/images/kubectl-build-deploy-dind/scripts/exec-pre-tasks-run.sh


Selecting from Oracle synonym gives ORA-00942: table or view does not exist

DBeaver 6.3.4
Oracle 12cR2
I have a synonym A in schema B that points to a view C in schema D.
SELECT * FROM A; -- gives the table or view not found error
SELECT * FROM B.A; -- works
SELECT * FROM D.C; -- works

Hi @AndrewGabelliTR ,
what schema is active in the toolbar?

I was logged in as user B so I guess it would have been B. I have since rolled back to 6.2.5. which does not have the issue so I can't be 100% certain, but I think 99.999%.

cannot reproduce it for now.
if the issue is still actual - feel free to reopen it.


Support full PyCIEMSS interface

This PR allows multiple models and datasets to be included and templates out the remaining PyCIEMSS operations

If you'd like to test with datasets on staging, try to start the context with this:
{
  "model_configs": {
	"model": "04980719-6be1-46fc-bea3-0c0653b056c0",
	"model2": "04980719-6be1-46fc-bea3-0c0653b056c0"
  },
  "datasets":
  {
    "this.csv": "aef4a0f4-d4b7-4b19-9e3d-799bf0a4e9a8",
    "other.csv": "84cc5da0-29a2-4906-87ec-550c8fb48f86"
  }
}

Note: This is waiting for the Eval to be completed first


Maint/minor pmt cleanup

This removes some uses of tap in the PMT code. There should be no functional change, but the commits either remove dead code or make the code more readable (to my eyes).
This came out of some observations @joshcooper made when reviewing #3427.
/cc @andersonmills

CLA signed by all contributors.


#1 specify color for badge and text

Here's the first part of the #1 issue, in which we handle hex colours.

Looks good from all I can see!
Will try out some scenarios today and merge if all is fine 👏


Update checksum for v3.2/klog-mac-intel.zip

the checksum is not correct

Oh, I had mistakenly entered the checksum of the zipped binary, not of the entire zip archive. Thanks for the fix!
(Note to self: automate the release to prevent this from happening.)


Http/2

Does RingoJs support http/2?

Yes, you have to configure it via Jetty. But I would recommend to use a standard webserver like Nginx or Apache for SSL termination. This is easier to configure and you have automated tooling available.


Inject Juju topology label filters for widgets that use a datasource of type prometheus

The PromQL transform utility allows to inject label filters into PromQL queries. This, coupled with the already-existing Juju topology variables that are automatically injected by the grafana-dashboard library, will result in automatically applying the values of those dashboard variables to the widgets without any additional work by charm authors.

One thing to keep in mind with this approach is that if a user relates two applications of the same type, we'd need to keep multiple copies of the same dashboard, but with different label matchers injected.

Read the issue a bit closer, and with variables rather than actual values my previous comment does not apply.


The "DromedaryCase" bug: myaggregateId GOOD, myAggregateId BAD

CamelCase doesn't work; it assumes that the 'I' in "Id" at the end of aggregate/stream id parameters and properties is the only uppercase char. Fails without les validate error and results in broken les-node API code.
For example:  inventoryitemId vs.  inventoryItemId
This works:
Receive Product-> // productId, description
InventoryItem Stocked // inventoryitemId, sku, description, purchasePrice, quantityAvailable
InventoryitemLookup* // inventoryitemId, productId, description

This passes les validate but results in a broken les-node -b API:
Receive Product-> // productId, description
InventoryItem Stocked // inventoryItemId, sku, description, purchasePrice, quantityAvailable
InventoryitemLookup* // inventoryItemId, productId, description

I'm not quite sure what should be the expected behaviour here.
On this line, we are explicitly making sure that we are changing letters to lower case:
https://github.com/Adaptech/les/blob/master/pkg/convert/emdToEml.go#L300

//Ensure consistent casing for stream Ids: e.g. TimesheetHoursId is represented as "timesheethoursId".

If we want to keep the property's name in the case it is, we just need to change the next line (301) to the following:
event.Event.Properties[index].Name = parameter.Name[:len(parameter.Name)-2] + "Id"

Yes, but if I recall correctly there are side effects caused by this elsewhere in the code. I'll take a look and try it out.


Application plan import: input resource as source of truth

Application plan import command takes as source of truth the imported resource

ready for review @miguelsorianod

Can you provide some context about why do we want the behavior changed? What's the motivation of it? Is there some issue or something where the motivation is explained?
If I understand correctly, we have changed the behavior, where:

Before: When importing application plan, we only import the pricing rules and limits that exist in the import file that at the same time don't exist in the service where we want to import them. It's like sort of a merge behaviour, but we don't merge the ones existing in both sides.
Now: When importing an application plan, if there are any existing pricing rules and limits in the service we want to import to, we delete all of them and we import the ones defined in the import file. It's sort of a set behaviour, where we set what is defined in the import file side

Am I correct?
Thank you.

Can you provide some context about why do we want the behavior changed? What's the motivation of it? Is there some issue or something where the motivation is explained?

https://issues.redhat.com/browse/THREESCALE-3874
https://issues.redhat.com/browse/THREESCALE-3211

Before: When importing application plan, we only import the pricing rules and limits that exist in the import file that at the same time don't exist in the service where we want to import them. It's like sort of a merge behaviour, but we don't merge the ones existing in both sides.
Now: When importing an application plan, if there are any existing pricing rules and limits in the service we want to import to, we delete all of them and we import the ones defined in the import file. It's sort of a set behaviour, where we set what is defined in the import file side
Am I correct?

Yes your are correct. The main implication with the change in the "merge strategy" is that with the SET semantics, existing limits and pricing rules not related with the imported file content will be deleted as well.


Move campus primary to AppSettings

Move campus primary color to AppSettings and make sure any references are updated accordingly.

Done in dev 63eaa0e
Going forward, import AppSettings and use CAMPUS_PRIMARY or CAMPUS_SECONDARY to access campus theme colors


Returning IResult::Error when IResult::Incomplete is correct

I have a parser that checks for the word "VALUE" and then some stuff after it. If I match "V" or "VA" or "VAL", I get IResult::Incomplete. But if I match "VALUE", I get IResult::Error. Because this is a network protocol parser, this is a very likely scenario to actually happen and it's important to be able to tell these cases apart. A test case that fails:
use nom::{space, crlf};

named!(pub parse<&[u8], &[u8]>,
    chain!(
        tag!("VALUE") ~
        space ~
        message: is_not!(" \r\n") ~
        crlf,
        || {
            message
        }
    )
);

#[cfg(test)]
mod tests {
    use super::*;
    use nom::IResult;
    use nom::Needed;

    #[test]
    pub fn tests() {
        let tests: Vec<(&str, IResult<&[u8], &[u8]>)> = vec![
            ("V", IResult::Incomplete(Needed::Size(5))),
            ("VA", IResult::Incomplete(Needed::Size(5))),
            ("VAL", IResult::Incomplete(Needed::Size(5))),
            ("VALU", IResult::Incomplete(Needed::Size(5))),
            ("VALUE", IResult::Incomplete(Needed::Size(5))),
            ("VALUE ", IResult::Incomplete(Needed::Size(5))),
            ("VALUE h", IResult::Incomplete(Needed::Size(5))),
            ("VALUE hello\r\n", IResult::Done(b"", b"hello")),
        ];

        for &(ref response, ref expected_result) in &tests {
            println!("response: {:?}", *response);
            let parsed = parse(response.as_bytes());
            println!("expect:  {:?}", expected_result);
            println!("got:     {:?}", parsed);
            if *expected_result == parsed {
                println!("good!");
            } else {
                println!("bad :(");
            }
            assert_eq!(*expected_result, parsed);
        }
    }
}

Which fails like:
response: "V"
expect:  Incomplete(Size(5))
got:     Incomplete(Size(5))
good!
response: "VA"
expect:  Incomplete(Size(5))
got:     Incomplete(Size(5))
good!
response: "VAL"
expect:  Incomplete(Size(5))
got:     Incomplete(Size(5))
good!
response: "VALU"
expect:  Incomplete(Size(5))
got:     Incomplete(Size(5))
good!
response: "VALUE"
expect:  Incomplete(Size(5))
got:     Error(Position(Space, []))
bad :(
thread 'protocol2::tests::tests' panicked at 'assertion failed: `(left == right)` (left: `Incomplete(Size(5))`, right: `Error(Position(Space, []))`)', protocol2.rs:52

failures:
protocol2::tests::tests

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured

As you'd expect, changing tag!("VALUE") ~ space to tag!("VALUE ") (with an extra space) shifts the failure to the next "VALUE " (also with an extra space) test case

Indeed, I should look into space and other combinators

It does look like space can never return Incomplete. But note my previous comment that even eliminating space doesn't fix the problem

This patch fixes my issue:
diff --git a/src/nom.rs b/src/nom.rs
index fc1b898..9793af1 100644
--- a/src/nom.rs
+++ b/src/nom.rs
@@ -129,7 +129,7 @@ pub fn digit<'a, T: ?Sized>(input:&'a T) -> IResult<&'a T, &'a T> where
     &'a T: IterIndices+InputLength {
   let input_length = input.input_len();
   if input_length == 0 {
-    return Error(Position(ErrorKind::Digit, input))
+    return Incomplete(Needed::Size(1))
   }

   for (idx, item) in input.iter_indices() {
@@ -213,7 +213,7 @@ pub fn space<'a, T: ?Sized>(input:&'a T) -> IResult<&'a T, &'a T> where
     &'a T: IterIndices+InputLength {
   let input_length = input.input_len();
   if input_length == 0 {
-    return Error(Position(ErrorKind::Space, input));
+    return Incomplete(Needed::Size(1));
   }

   for (idx, item) in input.iter_indices() {

However it breaks the issue_142 test
thread 'issue_142' panicked at 'assertion failed: `(left == right)` (left: `Incomplete(Size(12))`, right: `Done([32], [12, 34, 5689])`)', tests/issues.rs:97

That test is so simple:
let subject = parse_ints(&b"12 34 5689"[..]);
let expected = IResult::Done(&b""[..], vec![12, 34, 5689]);
assert_eq!(subject, expected);
let subject = parse_ints(&b"12 34 5689 "[..]);
let expected = IResult::Done(&b" "[..], vec![12, 34, 5689]);
assert_eq!(subject, expected)
That I suspect that more is going on there

as of 7ee5d15, space and other functions return Incomplete on empty input. This will appear in nom 2.0


[ci skip] adding user @adrianinsaval

Hi! This is the friendly automated conda-forge-webservice.
I've added user @adrianinsaval as instructed in #26.
Merge this PR to add the user. Please do not rerender this PR or change it in any way. It has [ci skip] in the commit message to avoid pushing a new build and so the build configuration in the feedstock should not be changed.
Please contact conda-forge/core to have this PR merged, if the maintainer is unresponsive.
Fixes #26

@looooo


Fix confusing DontMergeAttributes modification

Mailing List thread:
Use DontMergeClass instead of  confusing DontMergeAttributes modification.
Mark DontMergeAttributes  as deprecated.
Added test for DontMergeClass and fixing docs for it css-selectors.adoc file.

Hi @farmdawgnation, this comment it only explaining why this weird test exists, and mention of fact that modification will not skip merging of class if  replacement  does not contains class attribute.
Do you want me to change comment content?

Nope, that's fine.


wg-performance Status Update 2020-11-23

What was accomplished

Worked on TDD for adding AMP Cache CWV metrics to Page Experience Tool
mjs files now need to be approved when increased in size
build and upload esm tests when integration tests are modified

Lessons Learned
What's Next

Developing Page Experience Tool rule to ensure placeholder inside amp-img uses only data src (no network requests)
experiment design doc to have a hold over A/B test for module vs nomodule performance

What was accomplished

CP to turn off intersect-resources for amp4email (https://github.com/ampproject/amphtml/issues/31232).
Found a bug in Chrome's implementation of IntersectionObserver. Likely causing a4a issues for us. Turns out (to our surprise) that the spec currently doesn't allow cross-document element tracking: https://github.com/w3c/IntersectionObserver/issues/87. TBD if we can change this in the future.
Fixed worker-dom to not-crash in incognito mode (https://github.com/ampproject/worker-dom/pull/1006)
Started Prototyping a Compiler for Bento AMP

Lessons Learned

Chrome doesn't follow /etc/hosts mappings to figure out that other domains are sometimes also localhost. Both Safari and FF do: https://github.com/samouri/chrome-incognito-storage-bug.

What's Next

Fix Android amp4email bugs related to intersect-resources
More InOb fixes / updating polyfill with the latest learnings: https://github.com/w3c/IntersectionObserver/pull/465
AMP Compiler design doc + more prototyping


Production RoadMap

@ohanhi @mk As I understand to go to Production Quality we need to complete quiet a few things and some are out of my control.

[ ] Wrappers for Components, Style, Props and APIs
[ ] Navigator
[ ] UIExplorer / Examples for Android & iOS
[ ] Platform Specific Code
[ ] Single Code Base for all platforms
[ ] Code sharing between Web & Mobile Apps
[ ] Tasks (fetch, AsyncStorage,... )
[ ] Support for 3rd Party React Native Components

The following are completely out of my control

[ ] elm-native-ui available as a library in package.elm-lang.org

[ ] elm-lang/core -> Support for elm-native-ui

[ ] elm-compiler -> Support for elm-native-ui

[ ] elm-lang release with the Support for elm-native-ui

[ ] Maintain Code base for every Release of React Native

So this is what I am going to do...

Work on the fork (https://github.com/elm-native/elm-native-ui)
Build custom elm-native binaries for elm compiler (Mac & Ubuntu/Linux 64Bit only) Lets see if people need 32bit binaries
May be package.elm-native.com to host all packages
Build Native Mobile Apps with Elm!
Maintain elm-native-ui for all future releases of React Native Release. Every 2 weeks or so...
Fun & Profit!

When the library is mature enough I guess things which are out of control will be taken care of by those responsible.
Wish elm Main supported custom types and hooks to handle those custom types... things would have been way easier.

There are some major changes coming in Elm 0.17 for let me check the code and figure things out... :) core 3.0.0 to 4.0.0 has some crazy changes!

Hey @sudhirvkumar, you are of course welcome to fork this repository and keep working on your fork from now on, but please use some distinguishable name for your fork. "elm-native/elm-native-ui" is so close to this original organization/repository that it is very easy to confuse the two.
Another thing is that "Elm Native" is really quite awkward. It is used to refer to the so-called native side of Elm, namely JavaScript modules, as discussed when the project was renamed.
Since this is not really an issue, I will close this now. Thanks for the todo-list though, I might add some of these into the readme at some point! :)

@ohanhi
With regard to elm-native-ui I am not forking. I am starting from scratch and using 0.17 pre-release code to work on the mobile. "Elm Native" is precisely about the Elm Native Modules...
Elm Native will cover Mobile (iOS, Android and Windows) using React Native and also other platforms like Nodejs for building server side applications and also IoT. Other platforms like Tizen etc. which all requires Native bindings :)
most probably the packages for React Native will be
elm-native/mobile
elm-native/mobile-ios
elm-native/mobile-android
elm-native/mobile-windows
"mobile" name is also vague as it also covers Tablet, tvOS...  anyway... naming is quiet difficult :P
I will start with mobile will figure out a different name when that name makes sense.
Thanks!

Okay, a few things here:

Please don't call your organization elm-native.
multiple organizations with the same goal is counter-productive to healthy open source. Why not make PRs against the repos here?
Please don't fragment the elm ecosystem this way.

@eeue56

I have no interest in fragmenting elm ecosystem. I want elm ecosystem to grow and I would love to contribute as much as I can.

I am more than happy to send PRs. I have already done that. (check this PR https://github.com/elm-native-ui/elm-native-ui/pull/34)

The issue here is... @ohanhi is waiting for 0.17 to release and I am not waiting ... instead I want to get this ready so that we can launch along with 0.17 and attract more people to elm because now... they can build web apps and also mobile apps.

The reason why I called organization elm-native was for a silly reason. The reason is... one line in the below file

https://github.com/elm-native-ui/elm-compiler/blob/master/src/Nitpick/TopLevelTypes.hs

nativeUi :: ModuleName.Canonical
nativeUi =
ModuleName.Canonical (Pkg.Name "elm-native-ui" "elm-native-ui") ["NativeUi"]

once its ready... it would be easy to replace elm-native with elm-native-ui
After checking the code and realizing that 0.17 makes the above lines obsolete. Now elm-native doesn't seem silly. I am planning to use elm-native for a lot more native bindings.
I am not sure why we should call Mobile Apps package as NativeUi? Mobile makes better sense?
As we are not longer needed to use Html / Element / NativeUi and we can use Program and Mobile can return a Program.
I am always ready to collaborate. Let me know how! I want to move faster. I don't want to struggle with the React Native tools anymore. So I really really want to move to elm for Mobile app development and also server side development. :)
Most importantly I want to move faster!!! :) I am betting my Company on elm!!!

@eeue56 @ohanhi
I am open for a chat session where we can plan how to move forward faster.

The issue here is... @ohanhi is waiting for 0.17 to release and I am not waiting ... instead I want to get this ready so that we can launch along with 0.17 and attract more people to elm because now... they can build web apps and also mobile apps.

This isn't going to happen. 0.17 is not ready yet, and you are wasting your time by basing things on a unstable API. If you are interested in this, wait for an alpha! Things are still in flux. People are not going to be able to write production elm-native-ui when 0.17 lands. It's just not feasable. It's a noble idea and desire, and I really really appreciate that. But @ohanhi is right in waiting.

once its ready... it would be easy to replace elm-native with elm-native-ui

This is a silly reason - you can literally change any string for any other string. Elm Native already has meaning. It's not great that this org is called elm-native-ui either, but it's a better and more distinct than taking the name of something that already exists.

After checking the code and realizing that 0.17 makes the above lines obsolete. Now elm-native doesn't seem silly. I am planning to use elm-native for a lot more native bindings.

Again, wait for 0.17. By jumping into this without a complete picture of what's coming or the desired API that has been designed with these problems in mind, you are being harmful to your own efforts and the efforts that Evan has been putting in for the last 6 months.
I know it's annoying to wait! I get the same urge every morning when I wake up to just start doing things. However, I think you should trust me when I say you should wait. Evan will tell you the same thing, as will Richard, Ossi, Martin, etc.

I already agreed that its silly to choose elm-native I could have chosen anything... I chose elm-native
I understand that you want me to wait for 0.17 alpha.
You are completely against elm-native organization.
Got the message loud and clear. :)
Let me think about it.

I already agreed that its silly to choose elm-native I could have chosen anything... I chose elm-native

Yep - sorry, I should've put a " 😛 " there, to show I was agreeing with you :)

You are completely against elm-native organization.

I am completely against the naming and rushing into this

Let me think about it.

Great. These things are things that will happen, because people clearly want it to happen! And I am more than happy to help enable it if it's done in the right manner. When 0.17 lands, I'm sure the energy put into this project will be crazy productive. Let's channel that energy to be useful!

@eeue56
No worries :)
I have changed the organization to Atomic Elm... I just changed it so that you will be happy. I might change it to something else later.
https://github.com/atomic-elm
There is nothing wrong in waiting for the right things. I believe there are a lot of things that can be done with just elm code and nothing on the native side. So I will make some progress while I wait.
Thanks for your time Noah!

Perfect! That's definitely the right approach for now, focus on the abstract API written in Elm, and revisit making the implementation with Native at a later point when the state of the world is more clear.
Thanks a lot! 💯

Super! Thanks for pitching in, Noah, and thanks for renaming the fork, Sudhir!


feature/Add ChatOpenAI Finetuned

I can not fine ChatOpenAI Fine-Tuned Widget yet. How to fix this?

THX @HenryHengZJ please let me know when you are pushing it - I am also looking forward to use it ! THX

Is it fine-tune the model from document or input message?


remove salvage mob ghost roles for real

last pr forgot these to remove these

minor mistake on my part


Keyboard input not registering

Type
Incorrect behavior
Operating System
MacOS
OS Version

Bug description
Keyboard input stops working solely on Runelite. Both wireless and laptop keyboard operate outside of runelite window.
Screenshots or videos
No response
RuneLite version
<IP_ADDRESS>
Logs
No response

Does your issue persist in safe mode?
In Terminal, run:
/Applications/RuneLite.app/Contents/MacOS/RuneLite --safe-mode

If it does persist:
What input are you trying to press? Is it characters that also have accented versions?
When you say solely on RuneLite, did you test the normal Jagex client or are you comparing RuneLite to other apps on your computer?
Does clicking into a chat box, pressing and holding whatever key for a few seconds, fix your issue?

That command requires me to login but regular login doesnt work as i've moved my account to jagex account.

Swap out --safe-mode with --configure and toggle the safe-mode box in that prompt


About the gravity term in EOM task

Task WbcBase::formulateFloatingBaseEomTask() {
  auto& data = pinocchioInterfaceMeasured_.getData();

  matrix_t s(info_.actuatedDofNum, info_.generalizedCoordinatesNum);
  s.block(0, 0, info_.actuatedDofNum, 6).setZero();
  s.block(0, 6, info_.actuatedDofNum, info_.actuatedDofNum).setIdentity();

  matrix_t a = (matrix_t(info_.generalizedCoordinatesNum, numDecisionVars_) << data.M, -j_.transpose(), -s.transpose()).finished();
  vector_t b = -data.nle;

  return {a, b, matrix_t(), vector_t()};
}

May I ask why there is no gravity term in the b vector in the EOM task？
  vector_t b = -data.nle - data.g;

data.nle corresponds to concatenation of the Coriolis, centrifugal and gravitational effects.


refactor: Remove unused PermissionsMessages and related unused code

remove unused code (AdministrativePermissionForIriGetRequestADM)
remove unused code (ObjectAccessPermissionsForResourceGetADM)
remove unused code (ObjectAccessPermissionsForValueGetADM)
remove unused code (DefaultObjectAccessPermissionForIriGetRequestADM)
remove unused code (DefaultObjectAccessPermissionGetRequestADM)
remove unused code (PermissionByIriGetRequestADM)
remove unused code (DefaultObjectAccessPermissionsStringForResourceClassGetADM)

Pull Request Checklist
Task Description/Number

Issue Number: DEV-
PR Type

[ ] build/chore: maintenance tasks (no production code change)
[ ] docs: documentation changes (no production code change)
[ ] feat: represents new features
[ ] fix: represents bug fixes
[ ] perf: performance improvements
[x] refactor: represents production code refactoring
[ ] test: adding or refactoring tests (no production code change)
[ ] deprecated: Deprecation warning (ideally referencing a migration guide)

Basic requirements for bug fixes and features

[ ] Tests for the changes have been added
[ ] Docs have been added / updated

Does this PR introduce a breaking change?

[ ] Yes

sorry, too late for the party... very nice one! :D


Insert crouton icon in start menu

I would want to have a new feature to the crouton script that if the user want will add an icon in the start menu (as if it was an application), that will launch the command to start the Linux in the chroot.
For example an icon named : wheezy-xfce4
will launch the command : sudo startxfce4
Is it possible to implement, I think it will be useful shortcut to avoid going to the Terminal tab .

See previous discussion at #1468. Still not possible to do this AFAIK.


RequirementMachine: Relax assertions in verifyRewriteSystem() [5.7]

Fixes rdar://problem/94746399.
The strict assertions here are always true for non-simplified rules, but the old minimal conformances algorithm relied on them being true even for simplified rules, which was hard to guarantee. These invariants were established by extra logic in the completion procedure. Unfortunately, someone found a counter-example. Luckily, everything works in that specific example.
Note that we already did this once (https://github.com/apple/swift/pull/59557). This relaxes the verify assert further.
On the main branch I reworked the minimal conformances algorithm to not look at rewrite loops at all, in PR https://github.com/apple/swift/pull/59861 and https://github.com/apple/swift/pull/59900, and the weird logic in the completion procedure is now gone there.
However on 5.7 I'm keeping everything the same as before, just relaxing the assertion. If this causes any more problems we can cherry pick the rework of minimal conformances to 5.7, but I'd rather not do that at this point since it's a larger change.

@swift-ci Please test

@swift-ci Please test


Fix indentation

@changeworld : Thanks for your contribution! The author, @craigshoemaker, has been notified to review your proposed change.

Thanks for the contribution, @changeworld! #sign-off


Support for react-native-google-analytics-bridge version 6

This is a...

[ ] :beetle: Bug Report
[X] :rocket: Feature Request
[ ] :scroll: Documentation Request

Note: for support questions, please use stackoverflow with the redux-beacon tag. This repository's issues are reserved for feature requests and bug reports.
Which version of Redux Beacon are you using?

v2.0.3

Which target(s) are you using?

[ ] Google Analytics
[ ] Google Analytics (gtag)
[X] React Native Google Analytics
[ ] Google Tag Manager
[ ] React Native Google Tag Manager
[ ] Amplitude
[ ] Segment
[ ] Other/Third Party: ...(please specify here)

:rocket: :scroll: What's missing from Redux Beacon that you'd like to add?
Following up on https://github.com/rangle/redux-beacon/issues/278#issuecomment-434425286. I didn't realize those hitPayload changes are breaking changes that were added to react-native-google-analytics-bridge version 6. Given this, I suppose any changes we embark on here will require bumping the react-native-google-analytics package to version 2.0 already. It seems the best way to support current users and add the new features from v6 of the bridge. Do you agree, @ttmarek?
Can you help out?

[X] :star2: I am a legend and can get started on a pull request right away given the go-ahead.
[ ] :star: I am a superstar and would like to help out given some guidance.
[ ] :disappointed: I won't be able to help out on this one.

I agree @kevinsperrine. Thanks for bringing this up, it's super helpful. It would have completely passed my radar otherwise.
We should also add the bridge version to the peerDependencies section if you can do that as well. There may be a bit more work here. Feel free to do as much as you can. If you make a pull request with some work I will try to add to it and help out.
I have no problem bumping up to 2.0.


Depth API prevents use of content with floor-level features/detail

Description
This is a Scene Viewer bug, but I cant find another bug reporting area for that specific project.
When viewing content that rests on the floor on devices with Depth API support, the objects will phase & flicker through the floor plane due to inaccuracies in depth estimation.

Live Demo

https://glitch.com/edit/#!/join/686693d2-b5f1-468c-8dbb-8fd595e3496c

Version

model-viewer: vX.X.X (all)

Browser Affected

[x] Chrome
[ ] Edge
[ ] Firefox
[ ] IE
[ ] Safari

OS

[x] Android
[ ] iOS
[ ] Linux
[ ] MacOS
[ ] Windows

As far as solutions - I feel like replacing tracked planes' depth information with definite values would be possible, but massively complex once you start introducing more than the floor (lowest tracked plane).
A quick fix would be to have the option to disabled depth API occlusion at start (since the user can do the same via the UI, it shouldn't introduce too many side-effects specific to the toggle).

Indeed, the depth is not particularly accurate, which is why Scene-viewer fades out with depth. Have you tried webXR mode? It doesn't do depth occlusion. I'd also be interested in knowing what makes you choose one mode over the other. @tpsiaki regarding the depth feedback for scene-viewer.

Hi elalish - in my particular use-case I can't use model-viewer's WebXR mode as I'm generating an intent:// link via an API that needs to drop directly into the AR mode without an intermediate webpage or showing any url to the user (as its for a commercial product where the brands do not want users to see the underlying service, or to add webpages to their site). This will be reached via non-website routes like QR codes, email newsletter links etc.
In terms of preferring scene viewer in other cases:
I have tested a WebXR implementation for other use-cases when launching AR on Android from a webpage, but we've received some feedback around the rotation behaviour that's stopped us from proceeding so far - in most of our user-testing users try to use two fingers to rotate, and a single finger to drag. Since models' bounds generally fill the frame they never discover the single-finger rotation.
We've also had a case where a model file's roughness looked very different visually between scene viewer and model viewer, but that may just be a poorly prepared gltf. Unfortunately we didn't chase down the issue to confirm as we had already received the rotation feedback and decided not to proceed. I can dig up the model if it would be of use.
I suspect I'll end up on model-viewer's WebXR implementation eventually (as the end goal is a universal UX & feature-set for iOS/Android AR quicklooks, and model-viewer is extensible in a way that works for that) but we're a very new startup with a considerable roadmap between here and there!

Hi all, we're also having hard times with Depth API. I wish there were a parameter to disable Depth API in Scene Viewer. In my experience, Scene Viewer were more stable than WebXR so we choose to use it.

@60days Thank you for the detailed feedback! I'll make sure to get two-finger rotation into webXR shortly. There is a known issue in scene-viewer where shiny objects appear too rough due to the way ARCore calculates AR lighting.

I'm closing this as I believe the flag disable_occlusion=true should prevent the issue

You can use Depth API's Occlusion Depth Bias from demo scene SceneAPIPlacement


Unhandled rejection ReqlOpFailedError: Changefeed aborted (unavailable)

I'm getting the following error in my tests when explicitly closing a change feed. I think it's because a fetch was sent right before close was called, but I haven't had time to investigate further:
Unhandled rejection ReqlOpFailedError: Changefeed aborted (unavailable) in:
r.table("someTable").changes()
^^^^^^^^^^^^^^^^^^^^^^^^^^

    at Connection._processResponse (/Users/mbroadst/Development/redacted/node_modules/rethinkdbdash/lib/connection.js:229:19)
From previous event:
    at Cursor._fetch (/Users/mbroadst/Development/redacted/node_modules/rethinkdbdash/lib/cursor.js:114:11)
    at Cursor._push (/Users/mbroadst/Development/redacted/node_modules/rethinkdbdash/lib/cursor.js:135:86)
    at Connection._processResponse (/Users/mbroadst/Development/redacted/node_modules/rethinkdbdash/lib/connection.js:391:14)
    at Socket.<anonymous> (/Users/mbroadst/Development/redacted/node_modules/rethinkdbdash/lib/connection.js:150:14)
    at Socket.emit (events.js:107:17)
    at readableAddChunk (_stream_readable.js:163:16)
    at Socket.Readable.push (_stream_readable.js:126:10)
    at TCP.onread (net.js:538:20)

Are you running 2.2?

no this is still 2.1.17
I found the cause of the error from my side was actually that the path to explicitly close the change feed was not being called, so I think the actual root cause of this is a forced disconnect from the server and/or calling dbDrop on a table that has an existing change feed associated with it. Having said that, there still seemed no way for me to hook into catching this error

You need to bind an error listener/handler on the feed to catch this error.

feed.on('error', function(e) { })
// or
feed.next().then(...).error(...)

oh right, that makes sense. thanks!

I am encountering the same problem. When I open a changefeed and (manually) delete the table it relies upon, the ReqlOpFailedError is making node to crash even when a .error() handler is bound and executed.
With the following code (fetchNext being the callback triggered when a new record arrives in the changefeed):
cursor.next(fetchNext).error(function(err){
    console.log("Error spotted!");
    console.log(err.name);
});

give the following output:
Error spotted!
ReqlOpFailedError

/home/dv/project/src/backend/node_modules/rethinkdbdash/node_modules/bluebird/js/release/async.js:61
        fn = function () { throw arg; };
                           ^
ReqlOpFailedError: Changefeed aborted (unavailable) in:
r.table("activations").getAll(["1", "soutien"], {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    index: "game_id_categories"
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
}).filter(function(var_2) {
^^^^^^^^^^^^^^^^^^^^^^^^^^^
    return var_2.hasFields("team_id")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}).changes({
^^^^^^^^^^^^
    includeInitial: false,
    ^^^^^^^^^^^^^^^^^^^^^^
    includeStates: false,
    ^^^^^^^^^^^^^^^^^^^^^
    squash: 1
    ^^^^^^^^^
})
^^

    at Connection._processResponse /home/dv/project/src/backend/node_modules/rethinkdbdash/lib/connection.js:382:15)
    at Socket.<anonymous> (/home/dv/project/src/backend/node_modules/rethinkdbdash/lib/connection.js:201:14)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:172:18)
    at Socket.Readable.push (_stream_readable.js:130:10)
    at TCP.onread (net.js:542:20)

How could I prevent the error from being thrown (isn't that the purpose of catch? :confused: )?

@dvergeylen, please open a new issue and provide a script I can run. As far as I can tell, things are working as intended, the error is caught by your handler, so I'm not sure to understand the problem.


feat: ⨅ i, s i < ⊤ ↔ ∃ i, s i < ⊤

From LeanAPAP
Co-authored-by: Bhavik Mehta<EMAIL_ADDRESS>

Thanks! :tada:
bors merge


warnings in cartpole example

The train_cartpole example generates the following warnings:
 VARIABLES collection name is deprecated, please use GLOBAL_VARIABLES instead; VARIABLES will be removed after 2017-03-02 ~/.local/lib/python3.5/site-packages/numpy/core/fromnumeric.py:2889: RuntimeWarning: Mean of empty slice.   out=out, **kwargs) ~/.local/lib/python3.5/site-packages/numpy/core/_methods.py:80: RuntimeWarning: invalid value encountered in double_scalars   ret = ret.dtype.type(ret / rcount)

none of those prevent the code from working. Pull requests welcome! ;-)


[PSUPCLPL-12244] HAProxy Maintenance Mode

Description
Adding a new procedure to Kubemarine distribution for managing the maintenance mode for HAProxy load balancers.
Fixes # (issue)
https://github.com/Netcracker/KubeMarine/issues/269
Solution

We are developing a new procedure which will help us to enable/disable maintenance mode by a single command as below

How to apply
Once the changes mentioned in this PR, we will have a automated procedure to enable or disable the maintenance mode on HAProxy load balancers.

Go to DVM --> Maintenance Job --> Build with parameters --> Select "haproxy_mntc" procedure from the drop down list --> provide the required argument (--mode enable/disable) --> Run the job
Manual step -
Login to CLI and navigate to kubemarine directory --> run the following command

kubemarine haproxy_mntc --mode enable/disable

Test Cases
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.
TestCase 1
Run haproxy_mntc procedure for the cluster where maintenance mode is not supported.
kubemarine haproxy_mntc --mode enable
ER- procedure should fail with error message "Skiping haproxy maintenance procedure as cluster is not supported for HAProxy Maintenance mode."
TestCase 2
Run haproxy_mntc procedure for the cluster where maintenance mode is supported.

kubemarine haproxy_mntc --mode enable
kubemarine haproxy_mntc --mode disable

ER- Procedure should succeed  with enabling or disabling the maintenance mode on haproxy load balancer.
Checklist

[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] Integration CI passed
[ ] Unit tests. If Yes list of new/changed tests with brief description
[x] There is no merge conflicts

decided to redesign


Feat: Enhancing Contact page

Describe the feature
I want to enhance the contact page by adding icons to it and adding more CSS features.
Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

Sure @harikasayani

@Its-Aman-Yadav can u assign me this issue

@Its-Aman-Yadav Please assign me this issue under GSSOC'24.


x509/crypto: cert expiration error shows timezone comparison mismatch

If the system time is set to anything besides UTC, the timezones in the CertificateInvalidError Error() string are mismatched, with the system time zone displayed for the current time, and UTC for the certificate expiration time. I'd expect both to be the same at least, and most likely UTC for both
What version of Go are you using (go version)?

$ go version
go version go1.17.7 linux/amd64

Does this issue reproduce with the latest release?
Have not attempted. The code around the CertificateInvalidError doesn't seem to have changed, though.
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/kjacque/.cache/go-build"
GOENV="/home/kjacque/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/kjacque/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/kjacque/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.17.7"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-I/home/kjacque/daos_m/install/include -I/home/kjacque/daos_m/install/prereq/debug/spdk/include -I/home/kjacque/daos_m/install/prereq/debug/ucx/include -I/home/kjacque/daos_m/install/prereq/debug/ofi/include"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-L/home/kjacque/daos_m/install/lib -L/home/kjacque/daos_m/install/lib64 -L/home/kjacque/daos_m/install/prereq/debug/spdk/lib -L/home/kjacque/daos_m/install/prereq/debug/ucx/lib -L/home/kjacque/daos_m/install/prereq/debug/ofi/lib"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build2037716181=/tmp/go-build -gno-record-gcc-switches"

What did you do?

Set the timezone of the system to something other than UTC (timedatectl set-timezone America/Denver, for example)

Get an expired x509 keypair. Basically what I did was generate a new keypair with an expiration time that was very soon, and wait.

Read in the PEM data of the expired keypair (ioutils.ReadFile).

cert, err := tls.X509KeyPair(certPEM, keyPEM)

err = cert.Leaf.Verify(tls.VerifyOptions{})

fmt.Printf(err.Error())

What did you expect to see?
x509: certificate has expired or is not yet valid: current time 2023-02-16T01:46:52Z is after 2020-06-04T21:50:47Z
What did you see instead?
x509: certificate has expired or is not yet valid: current time 2023-02-15T18:44:41-07:00 is after 2020-06-04T21:50:47Z

cc @golang/security

My team is still hoping to have this fix, since the current output is a bit confusing to our end users. Do you think this would be a reasonable task for someone new to the Go codebase (like myself, for example) to take on?

Sorry this has flown under the radar for so long. This should be a relatively simple change, and I'd be happy to review it if you wanted to send a CL.
This fix should just be to use the UTC version of now here: https://github.com/golang/go/blob/669d87a935536eb14cb2db311a83345359189924/src/crypto/x509/verify.go#L610-L622 (by using now.UTC(), instead of `now.)


operator [N] [CI] sailoperator (3.0.0-nightly-2023-01-01)

Thanks submitting your Operator. Please check below list before you create your Pull Request.
New Submissions

[x] Are you familiar with our contribution guidelines?
[x] Have you packaged and deployed your Operator for Operator Framework?

[x] Is your submission signed?
[ ] Is operator icon set?

Updates to existing Operators

[x] Did you create a ci.yaml file according to the update instructions?
[x] Is your new CSV pointing to the previous version with the replaces property if you chose replaces-mode via the updateGraph property in ci.yaml?
[x] Is your new CSV referenced in the appropriate channel defined in the package.yaml or annotations.yaml ?
[x] Have you tested an update to your Operator when deployed via OLM?
[x] Is your submission signed?

Your submission should not

[x] Modify more than one operator
[x] Modify an Operator you don't own
[x] Rename an operator - please remove and add with a different name instead
[x] Modify any files outside the above mentioned folders
[x] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[x] Description about the managed Application and where to find more information
[x] Features and capabilities of your Operator and how to use it
[x] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[x] Human readable name and 1-liner description about your Operator
[x] Valid category name1
[x] One of the pre-defined capability levels2
[x] Links to the maintainer, source code and documentation
[x] Example templates for all Custom Resource Definitions intended to be used
[x] A quadratic logo

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file an issue against this repo and explain your need
2 For more information see here

/merge possible

/merge possible

/merge possible

/retest

/merge possible

/retest

/merge possible

/merge possible

/merge possible


Django response binary format support

Requires incompatible change in Response.data to return bytes.

Closing in favor of https://github.com/python-openapi/openapi-core/pull/710


PWA crash in iphone older IOS version when using obscure: true

I publish a Flutter application in the Android and PWA version. All features are fine but in my forms when I use obscure: true for my password text fields, the application crash and can't perform correctly. I see this problem in the older versions of IOS like 9 or 8 but in the new version of IOS, there isn't any problem.

I couldn't find a solution but I finally solved the problem with some changes, I'm sure it is not the best solution.
I wrote my custom textField to handle obscure feature, I check the os type and browser type to handle my text field:

class PasswordTextFormField extends StatefulWidget {
final TextEditingController controller;
final bool enabled;
final AutovalidateMode autoValidateMode;
final bool ignoreValidation;
final String labelText;
final String hintText;
final VoidCallback showSelectionDialog;
final FocusNode focusNode;
final VoidCallback onEditingComplete;
final FormFieldValidator validator;
final TextInputType keyboardType;
final int maxLength;
final TextDirection textDirection;
final TextDirection hintTextDirection;
final String counterText;
final bool obscureText;
final ValueChanged onChanged;
PasswordTextFormField({
@required this.controller,
this.enabled = true,
this.ignoreValidation,
this.labelText,
this.showSelectionDialog,
this.focusNode,
this.hintText,
this.onEditingComplete,
this.validator,
this.keyboardType = TextInputType.number,
this.maxLength,
this.autoValidateMode = AutovalidateMode.onUserInteraction,
this.textDirection = TextDirection.ltr,
this.hintTextDirection = TextDirection.ltr,
this.counterText = '',
this.obscureText = true,
this.onChanged,
});
@override
State createState() => _PasswordTextFormFieldState();
}

class _PasswordTextFormFieldState extends State {
String _value = '';
final TextEditingController _textEditingController = TextEditingController();
final platform = ph.getPlatform();
var browser;
@override
void initState() {
super.initState();
widget.controller.addListener(() {
if (widget.controller.text.isNotEmpty) {
_textEditingController.text = '';
for (int _i = 0; _i < widget.controller.text.length; _i++) {
_textEditingController.text += '•';
}
_value = widget.controller.text;
}
});
if (platform == ph.PlatformType.web) {
browser = ph.Browser();
}
}
@override
Widget build(BuildContext context) {
/// Safari
if (platform == ph.PlatformType.web && browser.browser == 'Safari') {
return TextFormField(
autovalidateMode: widget.autoValidateMode,
onEditingComplete: widget.onEditingComplete,
focusNode: widget.focusNode,
enabled: widget.enabled,
textDirection: widget.textDirection,
keyboardType: widget.keyboardType,
controller: _textEditingController,
validator: (value) => widget.validator?.call(value),
maxLength: widget.maxLength,
textInputAction: TextInputAction.next,
obscureText: false,
maxLines: 1,
onChanged: (value) async {
if (value.isNotEmpty) {
// when value has only dot, it means user remove characters
if (RegExp(r'^(•){0,}$').hasMatch(value)) {
int _baseOffset = _textEditingController.selection.baseOffset;
// offset of changed character
int _deletedCount = _value.length - value.length;
String _part1 = _value.substring(0, _baseOffset);
String _part2 = _value.substring(_baseOffset + _deletedCount);
_value = _part1 + _part2;
_textEditingController.text = '';
for (int _i = 0; _i < _value.length; _i++) {
_textEditingController.text += '•';
}
} else {
// add a character and replace it with a dot
_textEditingController.text = '';
_value = _value + value.replaceAll('•', '');
for (int _i = 0; _i < _value.length; _i++) {
_textEditingController.text += '•';
}
}
} else {
// when user delete all characters
_value = '';
_textEditingController.text = '';
}
widget.controller.text = _value;
// move cursor to end of text
_textEditingController.selection = TextSelection.fromPosition(
TextPosition(offset: _textEditingController.text.length),
);
},
decoration: InputDecoration(
labelText: widget.labelText,
hintText: widget.hintText,
hintTextDirection: widget.hintTextDirection,
counterText: widget.counterText,
),
);
} else {
/// android, chrome & others
return TextFormField(
autovalidateMode: widget.autoValidateMode,
onEditingComplete: () {
widget.onEditingComplete?.call();
},
focusNode: widget.focusNode,
enabled: widget.enabled,
textDirection: widget.textDirection,
keyboardType: widget.keyboardType,
controller: widget.controller,
validator: (value) => widget.validator?.call(value),
maxLength: widget.maxLength,
textInputAction: TextInputAction.next,
obscureText: widget.obscureText,
maxLines: 1,
onChanged: (value) async {
widget.onChanged?.call(value);
},
decoration: InputDecoration(
labelText: widget.labelText,
hintText: widget.hintText,
hintTextDirection: widget.hintTextDirection,
counterText: widget.counterText,
),
);
}
}
}

For checking os and browser type you can use flutter packages.

Hi @MahdiGharooni
Can you please provide your flutter doctor -v
Thank you

I'm working on master channel and it seems doesn't have any problem.

[√] Flutter (Channel master, 1.26.0-18.0.pre.212, on Microsoft Windows [Version 10.0.19041.685], locale en-US)
• Flutter version 1.26.0-18.0.pre.212 at C:\src\flutter
• Framework revision 02d441ea55 (2 days ago), 2021-02-05 17:17:12 -0800
• Engine revision b04955656c
• Dart version 2.13.0 (build 2.13.0-0.0.dev)

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at E:\programming\sdk
• Platform android-30, build-tools 30.0.2
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.

[√] Chrome - develop for the web
• Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 4.1.0)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] Connected device (2 available)
• HTC One M9PLUS (mobile) • FA6ACBD00060 • android-arm64  • Android 5.0.2 (API 21)
• Chrome (web)            • chrome       • web-javascript • Google Chrome 88.0.4324.146

• No issues found!

Hi @MahdiGharooni
Can you please provide which version of Flutter had this issue for you before you upgrade to master?
Thank you

I was in the master branch but I don't know exactly the Flutter version. It was about 1 month ago and think the version was 1.22.5 or 1.22.4.

Hi @MahdiGharooni
That sounds like a quite old master branch, it is even lower than the current stable
if you can reproduce the issue on the stable channel, please comment below, otherwise, this looks it's been fixed
Given your last message I feel safe to close this issue, if you disagree please write in the comments and I will reopen it.
Thank you


order stacks of imports and/or pub mod delcarations

I'm looking to apply rustfmt to a couple projects. So far my experience is good except for one surprise when I opt to order my imports it seems like the ordering only applies to a single line of imports, those within brackets. It would be nice to also have this order stacks of use declarations and for bonus points pub mod declarations.  It this is not doable let me know. If it easy doable and you can point me in the right direction, also let me know. I'd love to contribute something like this.

I think this is both doable and desirable, however it is not super-easy, but you could certainly have a go. You should look at how we format import items already, specifically look at src/imports.rs and visit_item in src/visitor.rs.
When we walk the AST, we visit one item at a time. In order to format all imports at once, we would need to collect all the import nodes (presumably in a separate pass over the AST) and format them at once. Note that we only want to do this for a given scope, if we were to look at all imports from a walk, we'd get every import in every module. This means we probably need to do a different walk over items in visit_mod (which we don't currently override, see https://dxr.mozilla.org/rust/source/src/libsyntax/visit.rs#61).
If you're keen and have questions once you've looked over that code, feel free to ping me on irc with questions.

Oh, and I would start with just imports and do mod declarations as a followup, they will be similar, but different and will want separate options.
It would be really cool to see this done!

cool. like the fun! label :)

(fun because (I think) it will be the first bit of non-local reformatting)

There may be some prior art that can be stolen from https://github.com/servo/servo/pull/7546 .

going to take a stab at this this weekend. thanks for the links

NB: for the mod re-ordering, we need to take exported macros into account...

@nrc I'm almost done with the lint at servo/servo#7546. Now, we think that it makes more sense here, than at Servo. Can you have a look at it, so that I shall submit a PR for that?

There might be some things to take from Wafflespeanut/rust-sorty.

cool, I started looking at this again last night. look for pr soon

I would also like to see reorder_imports order extern crate declarations as well.

Now that Rust RFC 2126 has landed, all use paths will have a more rigid structure. In particular, it will now be much easier to determine whether a use is for an std path (if it starts with std::), for a path in the current crate (if it starts with crate::), or for some other external crate (if it starts with anything else).
Given that, maybe it's now doable to have use ordering that also separates standard library imports, local imports, and external crate imports!

@jonhoo: In effects, standard library imports will now be adjacent after a global sort already. So I'd consider a feature to discern path types in the sorting logic a nice-to-have, while I consider automatic sorting and normalizing of imports very important. Agree?

@sanmai-NL I'd like them to not just be adjacent, but also to be separated from the main list of imports. That is, I want three "blocks" of use statements: std, crate, and others. If we just used normal lexiographic sorting, std and crate would appear somewhere in the middle of the use list.
That said, I do completely agree that this is a secondary concern, and that the primary goal should be to have sorting+normalizing.
In terms of existing features vs new features, here's what I would like (though I assume there'll be some contention here):

reorder_imported_names should be true by default
reorder_imports should be true by default
a new config join_imports should be added, which, if present, will place all use statements in a single list, implicitly enable reorder_imports, and thus re-order them
reorder_imports_in_group becomes irrelevant (or rather, equivalent to reorder_imported_names) when join_imports is true.

I personally would like to enforce that one name is imported per line. Similar to some Python styles. My motivation is that importing multiple names per line adds to both the writing and reading time of code, in modern IDEs. A lesser argument is that such import lines are harder to grep against.

@sanmai-NL so if I understand you correctly, you'd like separate_imported_names, which turns
use foo::{Bar, Baz};

into
use foo::Bar;
use foo::Baz;

? Seems very verbose for me, but as a config option I could see it. Seems potentially unrelated to this particular issue though?

@jonhoo: It's generally unrelated to sorting indeed, but related as in related to normalizing imported names. If a programmer normalizes import lines like this, he or she wouldn't prioritize any features related to improving import statements that import multiple names. So depending on how many programmers support what (sub)features, this feature request influences prioritization of work.
When is the verbosity a problem? I’m only rarely confronted with my import statements unnecessarily when coding, so is it a real issue? Whenever a programmer removes an imported name, its costs more time to revise multi-name import statements than it does to drop a line in IDEs/editors (simple key combo). These small time wastes may add up in larger projects. Sometimes the intuition in programmers to make all code more terse and elegant is counterproductive I think.

I'm not saying it's a problem, just that it's not my personal style. In particular if the import list ends up becoming longer than one screenful (which I could totally see if becoming for particularly complex pieces of code). And the advantage of the use being easily grep-able is lower priority for me. Once we go to nested imports though, then it becomes really tricky, and some flattening may be nice.
The title of this issue is "order stacks of imports and/or pub mod delcarations [sic]", which I would say precludes dealing with ordering of names per import. We could change the issue title, but I think this'd be worth opening a new issue for. I don't think it's reasonable to completely remove the ability to not flatten use imports, and therefore the two features can be developed in isolation.

To be clear, I wasn’t implying the verbosity thing must be an objective (‘serious’) problem, just asking when you would find it a problem yourself.
I agree with you.

@sanmai-NL well, it's tricky, because I also prefer when my imports aren't grouped, but only up to a point (and I don't know exactly where that point is). In general, if I have more than 3-4 lines for one package, I'd want them to be grouped. I'd also dislike it if the list of imports is long enough that I can't easily scan what modules the file depends on, which'd probably be around half a screenful.

This is implemented, but buggy. Closing this issue.

See also #2185


Update Android.gitignore

Ignore .idea/assetWizardSettings.xml for Android Studio 3.1
Reasons for making this change:
This file was created when I create Image Asset or Vector Asset. It contains the full path to where my Android Studio is installed.
See here.
Links to documentation supporting these rule changes:
I haven't found any.

Why not ignore complete .idea folder??

@leesah thanks!


Demo\FilesSelector is not working under iOS 14

I am using RAD 10.4.2 with iPhoneX (OS ver 14)
Just deploy FilesSelector demo to iphone and it get nothing.
Any advice? Tks.

What do you mean by "it get nothing."? Does nothing at all appear? This is what I see when it starts:

Thanks for quick response.
Of course, it should be. What I mean is click pics, popup a empty content form, nothing from MediaLibrary.

I don't see photo gallery in your screen capture.
Yes, not sure why that is. I'll be looking into it

hi, have any update?

Not as yet, sorry. I have put it on my to-do list to attend to within the next few days.

Is it unsolvable?
RAD is good but is not friendly for iOS coding.

I don't know whether it is unsolvable. I need to take a look at it

Apologies that it has taken a while to address this, however I've just pushed some changes that will show the relevant picker for images in the media gallery if you use TFileKind.Photo for the FileKinds property.
Note that this method does not actually give direct access to the image file, however using the OnImageStream event you can either use the image in the stream however you need to (in the demo the images are loaded into instances of TImage), and the original filename of the image is supplied in that event, so if you desire, you can save it to a file somewhere.


testing against php 7.4 final

Codecov Report

Merging #22 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #22   +/-   ##
=========================================
  Coverage     92.28%   92.28%
  Complexity     1606     1606
=========================================
  Files            32       32
  Lines          3927     3927
=========================================
  Hits           3624     3624
  Misses          303      303

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 0f1e00d...e393dbb. Read the comment docs.


Suggestion

I suggest adding hardwareAccelerated = true in project's AndroidManifest.xml, If minSdkVersion above 11(Android 3.0).
        <activity
            android:name=".ImagePreviewActivity"
            android:hardwareAccelerated="true"
            android:theme="@android:style/Theme.Black.NoTitleBar"/>

It will Improve fluency very well. You can add it in README or WiKi to tell coders
Sorry my english is not good.T_T
Do you understand?

Hardware acceleration is on by default for apps targeting SDK 14+, which should be all apps by now. It will only be disabled if a developer has chosen to disable it, so I don't think there's a need to document this.


MM-38841: fix retro timeline dates

Summary
Re: https://github.com/mattermost/mattermost-plugin-playbooks/pull/830 / MM-38841, retro timeline dates off, can potentially result in white-screen errors with Invalid date console errors.

Checklist

[ ] Telemetry updated
[ ] Gated by experimental feature flag
[ ] Unit tests updated

/cherry-pick release-1.21

Cherry pick is scheduled.

Error trying doing the automated Cherry picking. Please do this manually

/cherry-pick release

Error trying doing the automated Cherry picking. Please do this manually
fatal: No such remote 'upstream'

+++ Returning you to the master branch and cleaning up.

Cherry pick is scheduled.


use chocolateyguicli instead of chocolateygui for setting config values

fixes GH-716

@mwallner your changes have been merged, thanks for your contribution 👍


DotNetCliToolReference restore does not seem to be implicit

Starting with .NET Core 2.0, you don't have to run dotnet restore because it's run implicitly by all commands that require a restore to occur, such as dotnet new, dotnet build and dotnet run.

At 2.0.4 and 2.0.7, DotNetCliToolReferences do not restore automatically. I have to run dotnet restore to get those to resolve. I cannot find documentation supporting this and have not found any issues raised. Is this expected behavior or should I file a bug? And which repo should the issue be reported in?

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

ID: 0b256dc4-c4ad-c115-f4e2-40310bc3505a
Version Independent ID: 0b993779-65a2-6092-4047-2fc2ec16170b
Content: dotnet restore command - .NET Core CLI
Content Source: docs/core/tools/dotnet-restore.md
Service: dotnet-core
GitHub Login: @mairaw
Microsoft Alias: mairaw

Hi @Aethon. Let's first confirm the right behavior and see if this is a doc issue or a product issue.
@KathleenDollard @livarcocc can you guys help with this question?

@rrelyea to comment.

@rrelyea can you please help?

There are no issues that I'm aware of in this space.
DotnetCLIToolReference restore is similar to any project restore.
I verified that quickly by running:
dotnet new mvc
dotnet build /v:n
In logs I see
Committing restore...
         Tool assets file has not changed. Skipping assets file write. Path: C:\Users\user\.nuget\packages\.tools\microsoft.visualstudio.web.codegeneration.tools\2.0.4\netcoreapp2.0\project.assets.json
         Restore completed in 45.63 ms for C:\Users\user\Documents\Code\NuGet\Test\newtooltest\newtooltest.csproj.

This indicates that the tools did get restored.
Maybe the customer is facing some other problems?

@Aethon can you provide more information on your problem?

@nkolev92 did you test in a 2.0 version?
@Aethon could you install .NET Core 2.1 and try this again?

It was 2.0.x. I will try 2.1 and report that it works or gone a replication
path. Thanks!
On Wed, Jun 27, 2018, 9:48 AM Kathleen Dollard<EMAIL_ADDRESS>wrote:

@nkolev92 https://github.com/nkolev92 did you test in a 2.0 version?
@Aethon https://github.com/Aethon could you install .NET Core 2.1 and
try this again?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/dotnet/docs/issues/5315#issuecomment-400700155, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAnF0a6umFRUQ7ly4p9htn2ncaKGHC6Oks5uA5stgaJpZM4T7tox
.

Closing this issue due to the lack of response.


@bentley/imodeljs-native 3.0.31

@aruniverse @calebmshafer I may need your help in figuring out this:
.\src\common\DisplayPerfRpcInterface.ts
You attempted to import D:\j2\s\imodeljs\common\temp\node_modules\.pnpm\@babel+runtime<EMAIL_ADDRESS>which falls outside of the project src/ directory. Relative imports outside of src/ are not supported.
You can either move it inside src/, or add a symlink to it from project's node_modules/.

common\temp\node_modules.pnpm<EMAIL_ADDRESS>doesn't exist; 7.16.7 does.


setTimeout warnings popup repeatedly

Take a look at those images, I don't know where the errors come from
http://i.imgur.com/zvUUrr9l.png
http://i.imgur.com/cb6BTcpl.png

Hey @thaibeouu
You're right - that's an annoying issue. I've double checked and it looks as though that warning is coming from the Firebase dependency.
Please let me know if you come to a different conclusion, or find something that we can improve in this repo.


Expanded tests for BitMask

Originally opened in #410 , but rebase messed up the diff.
~One thing I noticed is that the test case that is commented out in CreateScanlineInvertTestCases is failing. I'm not sure why. It may be my mistake, some bug in BitMask, or some bug in NUnit. In any case, it would be good to find out why.~
P.S. I found out why the test is failing. I conflated test cases I shouldn't have, but now they are separate, conceptually correct, and passing.

I found out why the test is failing. I conflated test cases I shouldn't have, but now they are separate, conceptually correct, and passing.


Spiderfier view of the same location markers

Hi @venits  and all contributors of this library,
I had submitted this issue with different account for my requirement then I check this library doesn't support this. I thought this is the opportunity for me to contribute something. I did something to achieve that functionality that you might like. Please have a look and if you need any change then please let me know. Thank you.
This is the result of the markers with same coordinates:

@chetanparmar95 wow, that looks amazing :D
I am going to test and merge it this week 👍

@venits Why you did not merge my changes? for me its showing only 0 line contribution :(

Hmm I did merged your pull request into master. I don't know why it shows 0 lines 🤔

Hmm I did merged your pull request into master. I don't know why it shows 0 lines 🤔

I can see your new branch with the changes

Hmm I think I found a problem.
This repo doesn't include .prettierrc.
I forked your pull request to make some minor changes and it turned out that my default prettier config is different than yours. It resulted in slightly changing all the lines of code you provided.
Nevertheless you still have Contributor badge so you can still pin this repo in your GitHub profile 👍


Upgrading to 1.1.x causes a crash at runtime

Error: Cannot find module '@nestjs/graphql'
Require stack:
-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>- /home/tristan957/Projects/myma-store/server/src/authentication/authentication.controller.ts
- /home/tristan957/Projects/myma-store/server/src/authentication/authentication.module.ts
- /home/tristan957/Projects/myma-store/server/src/app.module.ts
- /home/tristan957/Projects/myma-store/server/src/index.ts
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:982:15)
    at Function.Module._load (internal/modules/cjs/loader.js:864:27)
    at Module.require (internal/modules/cjs/loader.js:1044:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (/home/tristan957/Projects/myma-store/server/node_modules/@nestjsplus/cookies/dist/interceptors/clear-cookies.interceptor.js:11:19)
    at Module._compile (internal/modules/cjs/loader.js:1158:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
    at Module.load (internal/modules/cjs/loader.js:1002:32)
    at Function.Module._load (internal/modules/cjs/loader.js:901:14)
    at Module.require (internal/modules/cjs/loader.js:1044:19)

Looks like the dependency on the graphql package somehow bubbled up even when I am not using graphql in my project. I checked the package.json but I didn't see why this would happen.

Got the same error, I'm not using @nestjs/graphql

Sorry guys.  Unintended side effect.  Have to think about how to solve this so the package works in both GraphQl and non-GraphQL contexts.
Short term work around would be to go back to 1.1.0 (only diff is that version doesn't support GraphQL), or install @nestjs/graphql.  😢  Sorry for not having a better answer right now.

@johnbiundo I believe a way around this would be to dynamically load the graphql package using a similar technique which is discussed at https://github.com/nestjs/terminus/pull/593#discussion_r399824081. If you follow the line of code linked, maybe that could provide you with an idea. Thanks for your work.

@tristan957 thanks for the pointer.  I need to come back and spend some time on this, which will have to wait a bit due to some other current work.  Thanks for your support.

No problem.


Add quiet flag to dtool copy that only returns the URI copied to

This is needed so that one can programatically discover where the data was copied to when transferring data from different backends. Below is the output of the current behaviour in going from iRODS to local file storage.
$ dtool copy irods:///jic_archive/f13ef963-37f0-4c3c-a96c-da99e036ea10 ~/junk2
Copying dataset  [------------------------------------]    0%
Dataset copied to file:///Users/olssont/junk2/my-another-dataset

From this it is difficult to programatically work out where the dataset has been put. The behaviour below would be a solution to this problem.
$ dtool copy -q irods:///jic_archive/f13ef963-37f0-4c3c-a96c-da99e036ea10 ~/junk2
file:///Users/olssont/junk2/my-another-dataset

Fixed in 2415bd4


How about mentioning User method

Using slacklistener.client.PostMessage or SendMessage is not bad for use attachments, but how about make specific method for mentioning or dm to specific user?

I know it can be add text area like <@userId>, but It could be easier to make method like SendUserMention(channel, text string, id string, params PostMessageParameters) *id is User.ID(Maybe we can just do it for User.Name)... If it sounds like not shit, I'll get it on my own

IMO, I don't think this should be implemented, given it's a very trivial to prefix the message with such a field, as well as there is no common/standard way to do such things. Some users may not prefer the type of format of the message (e.g. some may just prefer @user: <message> or [@user] <message>, rather than <@user> <message>), and as such I don't think it should be the job of this package to impose such methods.
It's.. been more than a few months, so I'm sure you've already made your own wrappers for these types of things anyway.


[] Upgrade to latest dependencies

Cron. -knative-prow-robot
/cc knative-sandbox/source-wg-leads
/assign knative-sandbox/source-wg-leads
Produced via:
./hack/update-deps.sh --upgrade --release v0.21
./hack/update-codegen.sh

Details:
bumping knative.dev/reconciler-test 9b25146...6fe6ef6:
  > 6fe6ef6 upgrade to latest dependencies (# 74)
bumping knative.dev/hack d946d25...4422dca:
  > 4422dca Set GOBIN in codegen-library.sh (# 44)
bumping knative.dev/pkg acbf2af...1bbf0a6:
  > 1bbf0a6 add LabelSelector to InformerFactory so that the informers only list and watch resources with the given labels (# 1940)
  > 75d66b5 preserve the stable webhook logger names we had before (# 1994)
  > 22f4898 upgrade to latest dependencies (# 1990)
  > 5bb97df fix duration logging (# 1992)
  > a74906c Use structured logging to augment our logger vs. naming (# 1991)
  > f0ea5e6 Use special error type to designate skips. (# 1988)

Out of date.

Out of date.