API breaking change between 2.10.6 and 2.11.0 not mentionned in the changelog

isBefore with a invalid date output is not the same for v2.10.6 and v2.11.0
When running the following code:
var moment = require('moment')

var invalidDate = moment([2000, 1, 30, 0, 1]);
var dateBefore = moment([2000, 1, 15, 0, 1]);
console.log(dateBefore.isBefore(invalidDate));

The output with v2.10.6 is true but it is false when updating to v2.11.0.
I see two issues with this change in the API:

this is currently not specified in the CHANGELOG.md
In my opinion a API change like that would have deserved a major version increment believing the semantic versioning specification but maybe this was a bugfix and the documentation was already specifying the result should be false (I could not check that) :

Major version X (X.y.z | X > 0) MUST be incremented if any backwards incompatible changes are introduced to the public API. It MAY include minor and patch level changes. Patch and minor version MUST be reset to 0 when major version is incremented.

Environment:
I have tested this difference using node v6.5.0 on Ubuntu 16.04 and as requested the following code:
console.log( (new Date()).toString())
console.log((new Date()).toLocaleString())
console.log( (new Date()).getTimezoneOffset())
console.log( navigator.userAgent)
console.log(moment.version)

result in:
Fri Sep 30 2016 11:12:45 GMT-0400 (EDT)
9/30/2016, 11:12:45 AM
240
2.11.0

All my answer are here : https://github.com/moment/moment/pull/2624.
Sorry I read the CHANGELOG to quickly so my two points are OK.


Detached-anchors

Add a plugin to support {#my-anchor} syntax for anchors detached from content

let's go for the syntax: {% anchor anchor-id %}
regexp: ^{%[^\S\r\n]*anchor[^\S\r\n]+[\w-]+[^\S\r\n]*%}
since we want to make leaf block node plugin, let's match only paragraphs with that syntax exclusively.
fair example would be:
https://github.com/diplodoc-platform/transform/blob/d0d26512d66c87b6179b5a75fb686f1ad081d360/src/transform/plugins/checkbox/checkbox.ts#L8-L14


Failed resolution of: Landroidx/activity/OnBackPressedDispatcher$Api34Impl$createOnBackAnimationCallback$1; after updating to 8.0.91

Description
I am maintaining a MAUI app, using .Net 8.  The MAUI nuget versions are 8.0.91 (I updated from 8.0.71).
The application runs fine on all my devices and on emulator. But it cannot be released on Google Play, as Google refuses it because of broken functionality (the app crashes on startup).
The Sentry logs are showing two issues:
Issue 1:
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/activity/OnBackPressedDispatcher$Api34Impl$createOnBackAnimationCallback$1;
at androidx.activity.OnBackPressedDispatcher$Api34Impl.createOnBackAnimationCallback(OnBackPressedDispatcher.kt:385)
at androidx.activity.OnBackPressedDispatcher.(OnBackPressedDispatcher.kt:127)
at androidx.activity.OnBackPressedDispatcher.(OnBackPressedDispatcher.kt:77)
at androidx.activity.ComponentActivity$onBackPressedDispatcher$2.invoke(ComponentActivity.kt:622)
at androidx.activity.ComponentActivity$onBackPressedDispatcher$2.invoke(ComponentActivity.kt:621)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at androidx.activity.ComponentActivity.getOnBackPressedDispatcher(ComponentActivity.kt:621)
at androidx.fragment.app.FragmentActivity$HostCallbacks.getOnBackPressedDispatcher(FragmentActivity.java:607)
at androidx.fragment.app.FragmentManager.attachController(FragmentManager.java:2919)
at androidx.fragment.app.FragmentController.attachHost(FragmentController.java:117)
at androidx.fragment.app.FragmentActivity.lambda$init$3$androidx-fragment-app-FragmentActivity(FragmentActivity.java:139)
at androidx.fragment.app.FragmentActivity$$ExternalSyntheticLambda3.onContextAvailable
at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.kt:84)
at androidx.activity.ComponentActivity.onCreate(ComponentActivity.kt:331)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:216)
at crc64a98f21486839a9f0.MainActivity.n_onCreate(MainActivity.java)
at crc64a98f21486839a9f0.MainActivity.onCreate(MainActivity.java:51)
at android.app.Activity.performCreate(Activity.java:7994)
at android.app.Activity.performCreate(Activity.java:7978)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1548)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3406)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3607)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2068)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7680)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:423)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
java.lang.ClassNotFoundException: androidx.activity.OnBackPressedDispatcher$Api34Impl$createOnBackAnimationCallback$1
at androidx.activity.OnBackPressedDispatcher$Api34Impl.createOnBackAnimationCallback(OnBackPressedDispatcher.kt:385)
at androidx.activity.OnBackPressedDispatcher.(OnBackPressedDispatcher.kt:127)
at androidx.activity.OnBackPressedDispatcher.(OnBackPressedDispatcher.kt:77)
at androidx.activity.ComponentActivity$onBackPressedDispatcher$2.invoke(ComponentActivity.kt:622)
at androidx.activity.ComponentActivity$onBackPressedDispatcher$2.invoke(ComponentActivity.kt:621)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at androidx.activity.ComponentActivity.getOnBackPressedDispatcher(ComponentActivity.kt:621)
at androidx.fragment.app.FragmentActivity$HostCallbacks.getOnBackPressedDispatcher(FragmentActivity.java:607)
at androidx.fragment.app.FragmentManager.attachController(FragmentManager.java:2919)
at androidx.fragment.app.FragmentController.attachHost(FragmentController.java:117)
at androidx.fragment.app.FragmentActivity.lambda$init$3$androidx-fragment-app-FragmentActivity(FragmentActivity.java:139)
at androidx.fragment.app.FragmentActivity$$ExternalSyntheticLambda3.onContextAvailable
at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.kt:84)
at androidx.activity.ComponentActivity.onCreate(ComponentActivity.kt:331)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:216)
at crc64a98f21486839a9f0.MainActivity.n_onCreate(MainActivity.java)
at crc64a98f21486839a9f0.MainActivity.onCreate(MainActivity.java:51)
at android.app.Activity.performCreate(Activity.java:7994)
at android.app.Activity.performCreate(Activity.java:7978)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1548)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3406)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3607)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2068)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7680)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:423)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Issue 2:
Java.Lang.Error: Failed resolution of: Landroidx/activity/OnBackPressedDispatcher$Api34Impl$createOnBackAnimationCallback$1;
?, in void InstanceMethods.CallNonvirtualVoidMethod(JniObjectReference, JniObjectReference, JniMethodInfo, JniArgumentValue*)
?, in void JniInstanceMethods.InvokeVirtualVoidMethod(string, IJavaPeerable, JniArgumentValue*)
?, in void Activity.OnCreate(Bundle)
?, in void MauiAppCompatActivity.OnCreate(Bundle savedInstanceState)
?, in void MainActivity.OnCreate(Bundle savedInstanceState)
?, in void Activity.n_OnCreate_Landroid_os_Bundle_(IntPtr jnienv, IntPtr native__this, IntPtr native_savedInstanceState)
?, in void JNINativeWrapper.Wrap_JniMarshal_PPL_V(_JniMarshal_PPL_V callback, IntPtr jnienv, IntPtr klazz, IntPtr p0)
Steps to Reproduce
I don't know how to create such an app, ours is rather complicated.
Link to public reproduction project repository
No response
Version with bug
8.0.91 SR9.1
Is this a regression from previous behavior?
Yes, this used to work in .NET MAUI
Last version that worked well
8.0.71 SR7.1 (on revising history, it might be that no version wint .net 8 would have passed google certification)
Affected platforms
Android
Affected platform versions
No response
Did you find any workaround?
Nope.
Relevant log output
No response

Can you attach a logcat file with your crash? https://learn.microsoft.com/en-us/xamarin/android/deploy-test/debugging/android-debug-log?tabs=windows

Unfortunately I am not even able to reproduce the issue. It is only the Play store that is rejecting our app updates because of crash on startup. And I receive the logs in Sentry from the runs they are having during the verification procedure.

At the moment my best guess is around API versions.
The application is targeting API level 34, and it is also set as minimum API level.
However the Sentry logs say that the app is being tested on an Android 11 phone, SDK level 30.

I have filed a request to let google clarify this.
Based on the Api34Impl name, this is probably an OS level version.

When you test locally, are you only testing by running it from VS in the debugger?
Have you tried testing locally with the final package you are uploading to Google Play?

@jpobst I see that the supportedOSPlatformVersion was set correctly.
This was the line in the csproj at the time of the issue:
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">34.0</SupportedOSPlatformVersion>
In the meantime I posted the question to Google as well, how is it that they install the app to OS versions that are not supported.
https://support.google.com/googleplay/android-developer/thread/302593365/play-console-uses-wrong-os-version-for-app-verification-according-to-sentry?msgid=302653664#
I lowered the version to support Android 11 as well, and danced around a bit in the app, so it does not crash on Android 11. That did the trick for me.
By the way, at the time of the issue, the app would not deploy to an Android 11 emulator (as is expected).
So from my point of view the issue is not on maui end, but at Google, as they seem to deploy the app to OSes that are not declared supported by the app.
Ill come back, if there is any updates from their end.

I have the same issue, it seems to be mostly during Googles app review only.
ClassNotFoundException. androidx.activity.OnBackPressedDispatcher
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">33.0</SupportedOSPlatformVersion>

Sentry is showing that the device is a OnePlus8Pro, Android 11

Thanks for that workaround. I forget the actual reason now, but I had to set min to 33 (maybe it was Androids new requirement).
Ideally, I’d like to figure out the root cause so I can nip it in the bud.

@rezamohamed This update is about the target API level. The minimum API level can be lower. So you can have API level 34 as target, and 30 as minimum SDK level.
``

SupportedOSPlatformVersion defaults to 21, so this problem only occurs if you set it to 33? IMO it's probably not the best idea to choose this as your app only runs on 33% of devices according to Android Studio:

Can someone make a small sample that shows the issue here? Thanks!


Clearer information regarding RCT_EXPORT_MODULE

I think this update is Critical as I wanted to add a different module name to be the same as the Android module name. I simply lost 6 hours until I found out that the Macro does not accept String syntax. Almost drove me crazy. Please, at least do something about it. Thanks.
Thanks for submitting a pull request! Please provide enough information so that others can review your pull request:

Unless you are a React Native release maintainer and cherry-picking an existing commit into a current release, ensure your pull request is targeting the master React Native branch.

Explain the motivation for making this change. What existing problem does the pull request solve?
Prefer small pull requests. These are much easier to review and more likely to get merged. Make sure the PR does only one thing, otherwise please split it.
Test plan (required)
Demonstrate the code is solid. Example: The exact commands you ran and their output, screenshots / videos if the pull request changes UI.
Make sure tests pass on both Travis and Circle CI.
Code formatting
Look around. Match the style of the rest of the codebase. See also the simple style guide.
For more info, see the "Pull Requests" section of our "Contributing" guidelines.

This is great, thanks for submitting this pull request! I've tweaked the wording a bit for consistency & will merge this in.


Feature Suggestion

Built-in local PHP server/support for live preview
Windows 10 - Brackets 1.9

Already suggested.


How to remove active user from app

Hi, I'm successfully tracking a screen view.
However, when the user quits the app, the Analytics dashboard shows that the user is still there.
To be clear, I don't want to keep the user as a current active user when he's not.
How can I fix this?

My current tracking code:
componentDidMount() {
  tracker.trackScreenView('Home')
}

Nevermind. It's just not so fast as it is to record an active user - but it indeed shows after a certain amount of time. "Real-time", huh?


Should identifier declarations be respected in non-schema locations?

The following quote from the spec was brought up in a slack discussion.
From  JSON Schema Core - Section 9.4.2

Similarly, a reference target under a known keyword, for which the value is known not to be a schema, results in undefined behavior in order to avoid burdening implementations with the need to detect such targets.

This brings into question a few of the tests in the suite. (There may be others. These are the ones I'm aware of.)

https://github.com/json-schema-org/JSON-Schema-Test-Suite/blob/main/tests/draft2020-12/id.json#L211-L261
https://github.com/json-schema-org/JSON-Schema-Test-Suite/blob/main/tests/draft2020-12/anchor.json#L84-L141
https://github.com/json-schema-org/JSON-Schema-Test-Suite/blob/main/tests/draft2020-12/unknownKeyword.json

These tests require that identifier declarations ($id or $anchor) in locations not known to be schemas are ignored. However, the quoted passage above would seem to indicate that the behavior is undefined in this situation and therefore we should not have tests that require a behavior in this case.
Full Disclosure: My implementation doesn't pass these tests and I don't intended to fix it. Although the removal of these tests is in my best interest, I'm only interesting in getting to the bottom of what is required by the spec. I've been content to skip those tests and if we decide they actually do belong in the suite, I'll just continue skipping them.

Your reading sounds right to me seeing that line quoted. "Reference target" in this case is "the thing with $id in it" (not the schema with $ref in it, which is probably how I've read that paragraph un-carefully before) -- and the spec is saying "referencing that thing is undefined behavior", so it indeed would sound like to me they should go in optional unless someone points out what we're missing about that paragraph.

I'm happy to put them in optional.
For the record, my implementation does pass these.  (Not a boast, just a consequence of how I process schemas.)

@karenetheridge said in Slack,

I think the only change we could make is to remove those ref-to-nonschema tests entirely — leaving them in optional/ may be confusing, if it’s intepreted as “this is something you could implement but you don’t have to”.

I'm inclined to agree with Karen on this. Unless someone can point to something in the spec that indicates that this is expected-but-not-required behavior, rather than undefined behavior, then it probably doesn't belong in "optional" either.

Why would it appear in the spec? That isn't what optional means (c.f. of course the PR which clarifies what it means explicitly). Optional is any behavior that isn't required by the spec that an implementer may implement, and allows any implementers doing so to share the tests for such a thing rather than rewriting them themselves. These kinds of tests have been in the suite since literally day 1 when I wrote it, what possible benefit is there in removing them? There's no evidence anyone has been confused in the way indicated there, can you recall any case ever of someone showing up and saying "hey should I implement this, I see it in the folder"?

This calls back to the idea that we need to split the tests according to requirement level.  It sounds like a single "optional" is insufficient.

Fair enough. I've always ignored the optional tests, so I haven't kept up on what they're for. Sorry, I misunderstood the purpose.

I don't think this is optional behaviour - I think we should (and we do, iirc) have tests that check that such identifiers are NOT recognized. Properties that look like identifiers in non-schemas are absolutely not keywords, they are just plain data.

For reference, the conversation in Slack stemmed from #697.
Also from 9.4.2 (linked above):

Therefore, having a reference target in such an unrecognized structure cannot be reliably implemented, and the resulting behavior is undefined.

This is the sentence before the one that @jdesrosiers quoted.  His pertains to known locations, and this pertains to unknown locations.  Both indicate that the behavior is undefined.
Under @Julian's perspective that any undefined behavior that's actually implemented should be an optional test, I think this test specifically should be an optional test.
Other tests that only include direct references into unknown locations should be non-optional.

I think we should (and we do, iirc) have non-optional tests that check that such identifiers are NOT recognized.

I can't find any language in the spec that says implementations MUST NOT support this.

This kind of optional test essentially defines an undefined behaviour for a particular implementation, for specific input of a kind we (sadly but inevitably) meet in the real world.
Is there any reason for not having the orthogonal optional tests that verify whether it does work in that particular implementation (in those specific circumstances)?
It feels like a set of tests that could live in their own folder in the "optional" hierarchy, and it allows consumers to track if "undefined" behaviour that they depend on for their real-world use case has changed in their implementation.
It also encourages implementers to understand when they are straying into the realms of the Undefined, and to understand the implications.

This kind of optional test essentially defines an undefined behaviour for a particular implementation, for specific input of a kind we (sadly but inevitably) meet in the real world.

(I'm not sure if by "particular implementation" you mean one specific concrete implementation of JSON Schema, i.e. mine, but I definitely don't think I'm the only one who has this behavior. Perhaps you mean one way of implementing JSON Schema, in which case I agree).

Is there any reason for not having the orthogonal optional tests that verify whether it does work in that particular implementation (in those specific circumstances)?
It feels like a set of tests that could live in their own folder in the "optional" hierarchy, and it allows consumers to track if "undefined" behaviour that they depend on for their real-world use case has changed in their implementation.

That's essentially what #590 does, or sets us up for, which simply needs more people saying they do or don't understand where files are ending up.

(I'm not sure if by "particular implementation" you mean one specific concrete implementation of JSON Schema, i.e. mine, but I definitely don't think I'm the only one who has this behavior. Perhaps you mean one way of implementing JSON Schema, in which case I agree).

That's exactly what I mean, yes.

That's essentially what #590 does, or sets us up for, which simply needs more people saying they do or don't understand where files are ending up.

And yes - that's exact;y the "more granular" situation I was thinking of. I hadn't spotted #590.

Properties that look like identifiers in non-schemas are absolutely not keywords, they are just plain data.

Unfortunately, I think the spec is a little more complicated than that. I think Section 9.4.2 is acknowledging that any reference target could be interpreted as a schema, but the behavior is undefined for locations not known to be a schema.
{
  "anyOf": [
    { "$ref": "#/$defs/foo/const" },
    { "$ref": "/$defs/foo" }
  ],
  "$defs": {
    "foo": {
      "const": { "type": "string" }
    }
  }
}

This is a valid schema, but it contains some undefined behavior. When /$defs/foo is evaluated, the value of const is just data, but when /$defs/foo/const is evaluated, it could be interpreted as a schema. The "type" property in const is sometimes just data and sometimes a keyword depending on the context in which it's being evaluated. The behavior here is technically specified as undefined, but I think it's expected that this would work. I think the intention of section 9.4.2 is to recognize that things get messy when identifiers are introduced and that's why the behavior is left undefined.
{
  "$id": "https://example.com/schema",
  "$ref": "/foo",
  "$defs": {
    "foo": {
      "const": {
        "$id": "/foo",
        "type": "string"
      }
    }
  }
}

In the previous example, there was no ambiguity about the target of the reference, but in this case, it could be argued that the reference target doesn't exist because the $id in const isn't a keyword until a reference resolves to that location and the reference can't resolve to that location until $id is a keyword. It's a chicken and egg problem.
What do you all think? According the spec (not any particular implementation), does this case fall under the "undefined" behavior specified in 9.4.2, or must this be interpreted as a bad reference? My take is that this should be considered undefined behavior. I think it's reasonable for an implementation to consider this a bad reference, but it's also reasonable for an implementation to identify /$defs/foo/const/$id as a possible reference target (even though it's in const) and allow $ref to target that location as a schema.

(I agree with all of your above analysis.)

@gregsdennis

@karenetheridge would you then expect only the tests which have pointer $refs that go into non-schema locations be moved to optional? That would leave any tests which use $id-based $refs in required.

I'm not following the distinction you're making here. Can you give an example?

The difference:

A schema with only a pointer $ref to an unknown location (the first example in your previous comment) would be able to follow the pointer and interpret the value there as a schema.  It could be argued that any implementation can follow the pointer, but whether it interprets the value as a schema is undefined.
A schema with $id-based $refs to unknown locations (the second example in your previous comment) is indeterminable because the implementation isn't expected to look in those locations for identifiers.

The question now is what's optional vs forbidden.
Rereading the spec, I don't think it makes the above distinction (although they are two different cases).  The spec simply mentions "reference targets."
Multi-level structures of unknown keywords are capable of introducing nested subschemas, which would be subject to the processing rules for "$id". Therefore, having a reference target in such an unrecognized structure cannot be reliably implemented, and the resulting behavior is undefined.
It could be argued that "reference target" here means "objects in unknown locations that have $id/$anchor," but that only serves to leave pointer-$refs unspecified for unknown locations.
To me, this text means that both of these cases are undefined and optional.
That said, the tests in #707 don't actually test any of this.
The test $anchor inside an enum is not a real identifier and its $id counterpart also define a valid $anchor/$id to resolve.  The test would need to only have an $anchor/$id in an unknown location in order to test this behavior.  But then the implementation could (correctly) error due to a failed resolution, which the test suite isn't set up to cover.  Alternatively, with the tests as they are, an implementation could (correctly) error because multiple $anchors/$ids are registered with the same value.  Again, the suite doesn't handle errors.
So as far as these tests are concerned.  I think they just need to be removed.

So as far as these tests are concerned, I think they just need to be removed.

Given the way Julian has defined the purpose of "optional" tests, I think it's reasonable that these tests could be in "optional". However, I agree that the tests should be more focused and in their current state there's so many different outcomes that could be considered spec compliant that it's awkward to include tests just for one of those outcomes. I think the best course of action is to remove them for now and more focused tests can be added to "optional" later, but I'm ok with leaving them how they are as well as long as they are optional.

@karenetheridge, do you have any comments before we move back to the PR stage?

According the spec (not any particular implementation), does this case fall under the "undefined" behavior specified in 9.4.2, or must this be interpreted as a bad reference? My take is that this should be considered undefined behavior. I think it's reasonable for an implementation to consider this a bad reference, but it's also reasonable for an implementation to identify /$defs/foo/const/$id as a possible reference target (even though it's in const) and allow $ref to target that location as a schema.

I disagree with this conclusion. It's not reasonable for an implementation to proactively examine non-schema locations for identifiers (as it must do for schema locations) and treat them as if they are actual schema locations. It could even be considered a security risk, if some tooling reads in data from external sources e.g. for populating "description" properties with markdown, in allowing what should be opaque data to hijack a namespace.
I think what we have now in the tests is mostly correct:

things that look like identifiers, in opaque data e.g. "const", "enum", "examples" are not recognized as identifiers and cannot be addressed (therefore, a test can "redefine" an identifier inside such data and there be no errors during evaluation)
attempting to $ref inside such a non-schema "might" work, or it might not, depending on what's there (I agree with the spec wording that says expecting implementations to detect and prevent such scenarios could pose a high burden)

We could benefit from another test alongside the existing optional tests:

evaluate a $ref to a non-schema location, that contains an $id in it (that duplicates an existing known-good identifier)
evaluate another $ref to the identifier in question, and confirm that it still goes to the original location and hasn't been overwritten to point to the new non-schema location

things that look like identifiers, in opaque data e.g. "const", "enum", "examples" are not recognized as identifiers and cannot be addressed (therefore, a test can "redefine" an identifier inside such data and there be no errors during evaluation) - @karenetheridge

I think this is the sticking point for me and the tests as they are.  Currently they're using a pointer $ref to get inside of those opaque values.  I 100% agree that this is undefined behavior and should be optional.
However, placing an $id inside one of those opaque values and attempting to $ref directly to the $id MUST error, and the test suite isn't set up to check for errors, so this can't be tested currently.  I think this scenario, specifically, is what 9.4.2 is talking about, not a pointer into a non-schema location.

It sounds like we agree then.
I described a scenario where we could catch some errors, depending on how tooling is implemented -- after referencing a non-schema location that contains an $id, then evaluate a $ref to that location and confirm it still goes to the previously-defined location and not the new non-schema location (an implementation that treated such constructs as identifiers might throw a "duplicate identifier" error, or it might even overwrite the good location with a bad one and therefore the $ref will go to the wrong place).

it's also reasonable for an implementation to identify /$defs/foo/const/$id as a possible reference target (even though it's in const) and allow $ref to target that location as a schema.

It's not reasonable for an implementation to proactively examine non-schema locations for identifiers (as it must do for schema locations) and treat them as if they are actual schema locations. It could even be considered a security risk, if some tooling reads in data from external sources e.g. for populating "description" properties with markdown, in allowing what should be opaque data to hijack a namespace.

There might be some confusion from my use of the word "reasonable". By "reasonable", I meant that the spec seems to allow it. Your response gives reason why it might be difficult to implement or not be a good idea, but we're not trying to decide what we think the behavior should be, we're trying to determine what the spec says about this behavior. What wording in the spec says that a reference to a $id in a non-schema MUST NOT be respected? 9.4.2 says,

Multi-level structures of unknown keywords are capable of introducing nested subschemas, which would be subject to the processing rules for "$id".

It goes on to say that such behavior is a burden to implement and therefore not required. I don't see anything that says it's not allowed. It seems pretty clear that 9.4.2 thinks that the spec expects $ids in non-schema locations to be respected if 9.4.2 didn't exist and 9.4.2 was included to relieve implementers of that perceived complexity.
Is there a way to interpret 9.4.2 that excludes references to $ids in non-schema locations? If not, is there something else in the spec that contradicts 9.4.2?

I'm not sure why we're arguing about this.
The current tests don't need the bad $ids/$anchors since they're not referencing them.  The tests aren't checking the thing they were created to check.  Further, I don't think the test suite can handle such tests because it requires that evaluation results in an error.
{
  "$schema": "https://json-schema.org/draft/next/schema",
  "$defs": {
    "const_not_anchor": {
      "const": {
        "$anchor": "not_a_real_anchor"
      }
    }
  },
  "if": {
    "const": "skip not_a_real_anchor"
  },
  "then": true,
  "else": {
    "$ref": "#/$defs/const_not_anchor"
  }
}

This is testing that "$ref": "#/$defs/const_not_anchor" can be resolved and that the value there {"$anchor": "not_a_real_anchor"} is interpreted as a schema.  The interpretation of this value as a schema is the undefined behavior.  Thus this is an optional test.
That said "$anchor": "not_a_real_anchor" doesn't impact this test at all (because it's not being referenced directly), and only serves to confuse what the test is checking.  A better test would be
{
  "$schema": "https://json-schema.org/draft/next/schema",
  "$defs": {
    "const_not_anchor": {
      "const": false
    }
  },
  "if": {
    "const": "skip ref"
  },
  "then": true,
  "else": {
    "$ref": "#/$defs/const_not_anchor"
  }
}

For an implementation that interprets the $ref target as a schema, this will pass for "skip ref" and fail for anything else.
For an implementation that doesn't interpret the $ref target as a schema because it's a known non-schema location, the $ref resolution will fail, producing an error.

If you want to test whether a $id/$anchor located in a non-schema location is a recognized identifier, you need to actively reference it.  Something like
{
  "$schema": "https://json-schema.org/draft/next/schema",
  "$defs": {
    "const_not_anchor": {
      "const": {
        "$anchor": "not_a_real_anchor"
      }
    }
  },
  "if": {
    "const": "skip not_a_real_anchor"
  },
  "then": true,
  "else": {
    "$ref": "#not_a_real_anchor"
  }
}

For an implementation that recognizes "$anchor": "not_a_real_anchor" as an identifier, this will pass for all values.
For an implementation that doesn't recognize "$anchor": "not_a_real_anchor" as an identifier, this will error.

I'm not sure why we're arguing about this.

I'm not trying to argue. I'm trying refocus the discussion on what I think is the most important outcome of this discussion. To me the important outcome is to come to a consensus about what the spec says. What we do with the tests is just a consequence of that outcome.
I totally agree that that test doesn't make sense as it is and should be removed or improved, but I think this test does make sense and should be a required test if we decide identifiers in non-schemas MUST NOT be treated as valid reference targets. I believe this test is an example of the scenario Karen is talking about in this discussion. If we decide the behavior of identifiers in non-schemas is undefined, then several different results are possible and it belongs in "optional" or should be removed.

if we decide identifiers in non-schemas MUST NOT be treated as valid reference targets.

The spec is very clear that this is undefined behavior.
As such, that's an undefined test. I agree that implementations should code so that that test passes, but the spec doesn't require it.  As the spec is worded, an implementation could

process the schema as we expect it should, not being confused by the $id in the enum
error due to a duplicate $id
register one of the $ids, then overwrite it with the other one, and continue processing the schema.

I'd argue that an implementation should only do the first one, but I don't read that the spec requires it to.

That sounds like we're very much on the same page. I'm just confused because that seems to contradict what you and Karen were just arguing. I feel like I'm missing some nuance here and it's making hard for me to understand where people stand.
@karenetheridge, do you agree with Greg's assessment in the previous comment? If so, I think we have consensus to move the tests to optional.

I may have said a thing and then performed actual research allowing me to form an informed opinion.

we're not trying to decide what we think the behavior should be, we're trying to determine what the spec says about this behavior

That's not what I was doing. I was arguing for what we should allow. If the spec is vague and open to interpretation, I don't want the tests suggesting a specific behaviour for it, especially one opposite to how we think it should be.
I think the spec is clear enough about this, but that wasn't my main point in replying here.

If the spec is vague and open to interpretation, I don't want the tests suggesting a specific behaviour for it

Great. Sounds like we all agree with moving the tests to "optional".

I agree that the not_a_real_anchor test is no good, and should go.

Agreed. I'll update the PR to remove this one instead of moving it to "optional".

FWIW: I think fixing this section of the spec to be less ambiguous should be on the shortlist of fixes for the next interim draft release (there is still one happening before another "major" release, right?)

Unfortunately, spec work is on hold for the time being.


[Bug]: Compose v1 fails

What happened?
The 'npm run update' command fails because it uses Compose v1, this version does not support all override features e.g. !reset tag.
This is my docker-compose.override.yml:
services:
  api:
    ports: !reset []

The docker-compose down (v1) command fails, but docker compose down (v2) works fine.
This project should be using Compose v2 everywhere to enable all override features.
Steps to Reproduce

Set override.yml as above
Run 'npm run update'
Observe error

What browsers are you seeing the problem on?
No response
Relevant log output
><EMAIL_ADDRESS>update
> node config/update.js

Are you using Docker? (y/n):
> y
Are you using the default docker-compose file? (y/n):
> y
Starting update script, this may take a minute or two depending on your system and network.
Fetching the latest repo...
Switching to main branch...
Already on 'main'
Your branch is up to date with 'origin/main'.
Pulling the latest code from main...
From https://github.com/danny-avila/LibreChat
 * branch              main       -> FETCH_HEAD
Already up to date.
Removing previously made Docker container...
docker-compose down
ERROR: yaml.constructor.ConstructorError: could not determine a constructor for the tag '!reset'
  in "./docker-compose.override.yml", line 75, column 12
(node:297635) UnhandledPromiseRejectionWarning: Error: Command failed: docker-compose down
    at checkExecSyncError (child_process.js:635:11)
    at execSync (child_process.js:671:15)
    at /home/odin/LibreChat/config/update.js:86:5
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
(node:297635) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:297635) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Screenshots
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Thanks I’ll update the scripts to use v2


Keep complex attribute content

Fixes https://github.com/dotnet/razor/issues/9346.

Before
After

@dotnet/razor-compiler for reviews, thanks

@chsienki @dotnet/razor-compiler for a second review, thanks


HANA xsc not working

Please note below screenshot I have the HANA express installed in the VM (I believe)
However unable to start XS engine and webide from browser please advise
And this is what I see when I login and I am able to login using hxeadm

However when I try to run hana XSC command as seen in the link below Step 1 it shows nothing
https://developers.sap.com/australia/tutorials/hxe-ua-test-vm-xsa.html

Same issue with webide it shows app started but I am unable to login from browser:

Hi @vinita-k
In HXE 2.0, the XS Classic feature is disabled (and may be gone completely).
Therefore, port 8090 is not used anymore.
You should use port 39030 (330) to check that your server is up and running.
However, it doesn't mean that all the other service like the Web IDE are up and running too.
But anyway, in order to use hxehost in your URLs from a remote host, you need to update your remote host file as documented in:
https://developers.sap.com/tutorials/hxe-ua-hosts.html
For sure Step 1: Test XSC should be removed from:
https://developers.sap.com/tutorials/hxe-ua-test-vm-xsa.html
along with the same details from the help:
https://help.sap.com/viewer/8c3bbc4a904d42efac77c09da0bccf64/2.0.03/en-US/0377017816dc46b09db7b2e13bfabc0a.html
Regards

Hi @vinita-k,
For your first screenshot, all apps that the requested state is "STARTED", should have 1/1 instances, then you can connect to that app. ( 1/1 means 1 instance is started, 0/1 means no instance is started).
For webide can not be connected issue, please make sure you modified the host file to add the hxehost info like:
[vm_ip] hxehost.localdomain hxehost

Modify the etc hosts file on the client machine that you use browser to logon webide. if you use windows, the etc hosts should be C:\Windows\System32\drivers\etc\hosts.
And make sure the network access between the hxe VM and the client machine is OK.

Hi @vinita-k
In HXE 2.0, the XS Classic feature is disabled (and may be gone completely).
Therefore, port 8090 is not used anymore.
You should use port 39030 (330) to check that your server is up and running.
However, it doesn't mean that all the other service like the Web IDE are up and running too.
But anyway, in order to use hxehost in your URLs from a remote host, you need to update your remote host file as documented in:
https://developers.sap.com/tutorials/hxe-ua-hosts.html
For sure Step 1: Test XSC should be removed from:
https://developers.sap.com/tutorials/hxe-ua-test-vm-xsa.html
along with the same details from the help:
https://help.sap.com/viewer/8c3bbc4a904d42efac77c09da0bccf64/2.0.03/en-US/0377017816dc46b09db7b2e13bfabc0a.html
Regards

Hey @adadouche
I checked the link you shared and I understand now I dont have to check for XSC  but only XSA?
So when I login I get below when I do xs-admin-login

My host file is updated as below

now I try to check XSA on browser and it still shows an error

Then I start for step 4 which is check Webide and it shows running instance 1/1 and started

Now I again check in browser and webide does not start as well

What could be the reason that it still does not work?
Note that during the inital setup I actually used the default time zone and did not change would that be an issue? Do I need to change it now and how?
Thanks a lot for your help !
Regards
Vinita

Modify the etc hosts file on the client machine that you use browser to logon webide. if you use windows, the etc hosts should be C:\Windows\System32\drivers\etc\hosts.
And make sure the network access between the hxe VM and the client machine is OK.

Thanks that is updated!
Regards
Vinita

Hello Vinita,
From the screenshot, your HXE VM IP should be ..*.*71 (you removed the front part, but I can see it ends with 71). And the etc hosts you showed, the IP address is <IP_ADDRESS>.
Maybe this is the issue?

Hello Vinita,
From the screenshot, your HXE VM IP should be ..*.*71 (you removed the front part, but I can see it ends with 71). And the etc hosts you showed, the IP address is <IP_ADDRESS>.
Maybe this is the issue?

Hey @lin1161
I see what you mean I have corrected the host IP in the file now

Still the same

regards
Vinita

Hello Vinita,
Please double check the following items:

the network access is OK between the client machine ( which you used to browner webide )  and the HXE VM.
modify the hosts file on client machine add the one line "[vm_ip] hxehost.localdomain hxehost", don't forget to save the file.
restart the browner and try again. (or try on Chrome?)

Hi @vinita-k
To check if the host file is properly configured, open a command prompt and run:
ping hxehost

The output should display the IP address resolved. You may receive also messages saying that the host cannot be resolved but this may not be relevant because ping is not always enabled on host.
To check that you can access your hxehost, open a command prompt and run:
telnet hxehost 39030

This should return a black screen, and if not then you have a firewall/proxy configuration issue.
You can easily enable telnet from the Windows Features.
Another quick one to test, have you tried using the IP address instead of the hxehost in the URL for https://:39030 in your browser?
If this is not working then you are definitely having a firewall/proxy issue.
Then you will need to try disabling your firewall or proxy (using an internet connection that doesn't require one).
Regards

Hi @vinita-k
To check if the host file is properly configured, open a command prompt and run:
ping hxehost

The output should display the IP address resolved. You may receive also messages saying that the request timed out but this may not be relevant because ping is not always enabled on host.
C:\>ping hxehost

Pinging hxehost [<IP_ADDRESS>] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for <IP_ADDRESS>:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

To check that you can access your hxehost, open a command prompt and run:
telnet hxehost 39030

This should return a black screen, and if not and you receive the following then you have a firewall/proxy configuration issue.
C:\>telnet hxehost 39030
Connecting To hxehost...Could not open connection to the host, on port 39030: Connect failed

You can easily enable telnet from the Windows Features.
Another quick one to test, have you tried using the IP address instead of the hxehost in the URL for in your browser?
https://<IP>:39030

If this is not working then you are definitely having a firewall/proxy issue.
Then you will need to try disabling your firewall or proxy (using an internet connection that doesn't require one).
Regards

Hey @adadouche
Firstly thanks a lot for helping me with this it is also so new and I am getting very confused
So, now I did a ping and it shows exactly what you mentioned time out but request packet is sent and received

if I understand correctly I need to run this in host system right?
I tried to first run as below in my host system but it doesnt connect even after 10 mins

Then I tried in VM and it says connected

Would you please advise if I cant open in the host system?
I wanted to check the webide tool which is the https://<IP_ADDRESS>:53075/
This also does not work

I have disabled firwall in my system and I am trying from a home network so should not be that issue?
PLease let me know if you  find time!
Thanks so much!
Regards
Vinita

Hi @vinita-k
This is really strange.
Let's go back to the beginning for second and correct me if I'm wrong:

you are using the HXE VM (server + apps)
you are using VMWare to run it
you are using the initial network configuration provided with the VM (bridged)

Can you confirm that?

Hi @vinita-k
This is really strange.
Let's go back to the beginning for second and correct me if I'm wrong:

you are using the HXE VM (server + apps)
you are using VMWare to run it
you are using the initial network configuration provided with the VM (bridged)

Can you confirm that?

HI @adadouche
I am using the below link to download hana express engine
https://www.sap.com/cmp/ft/crm-xu16-dat-hddedft/index.html
With this there was a getting started guide which I followed
I am using VMWare Workstation 15 player to open hxexsa OVA file in my virtual machine
THe only configuration part I have missed is time zone as I selected the default value and dont know how to change it should that matter?
Does that answer your question?
Thanks a lot for your help
Regards
Vinita

Hi Vinita,
Can switch the network to NAT, wait a minute get the IP from the VM and pinging it from your laptop?
Can you also try traceroute using NAT and share the results?
Cheers,
Lucia.

Hi Vinita,
Can switch the network to NAT, wait a minute get the IP from the VM and pinging it from your laptop?
Can you also try traceroute using NAT and share the results?
Cheers,
Lucia.

Hey
Sorry I am probably quite new to this what is NAT I tried to google but not sure if i need to download something to send you the traceroute using NAT could you explain a bit more
Regards
Vinita

Hi @vinita-k
First let me share a few information about network configuration and virtual machines.
When using the "bridge" mode, your VM will appear like a standalone machine on your network.
This implies a few things:

the ip address will be provided by the network your host machine is connected on
if your host machine network use a proxy or filter on mac address etc then your vm machine will also be impacted by that
if you have no network, you won't be able to reach it as the vm will have no network to connect
if you switch network, the VM ip address will change

When using the "host only" mode:

only your host machine will be able to connect to the VM
the VM will not have access to the internet (if available)
the VM will be provided an ip address even if your host machine is not connected to a network (it will use a virtual network setup by VMWare)
the ip address of the VM should not change, even when your host machine switch network

When using the "NAT" (Network Address Translation) mode:

the VM will have access to the internet (if available)
the VM will be provided an ip address even if your host machine is not connected to a network (it will use a virtual network setup by VMWare)
the ip address of the VM should not change, even when your host machine switch network
anyone could access your VM, as long as you configure the address translation

So, from my pov, NAT is probably the best mode to be used in this context.
When you open VMWare, select your VM then click on Edit virtual machine settings:

Then choose Network adapter on the left side list, then select NAT:

Click on OK.
If you VM is already running, you will need to wait for the change to take effect. If not, just click on Play virtual machine.
Then from the VM console, execute the following command (after login in as hxeadm):
sudo ifconfig

You can now use  the address marked with the big red 1 which  is starting with 192.168. (FYI: The VM address will remain the same until the MAC address, but I hope you won't have to do that)
The IP address displayed before the login prompt (marked with the big red 2), is not always accurate, so don't use this one.
Now, from your host machine machine, you can update your hosts file (located in C:\Windows\system32\drivers\etc).
And you should be all set
Let us know if this helped.

Hi @vinita-k
First let me share a few information about network configuration and virtual machines.
When using the "bridge" mode, your VM will appear like a standalone machine on your network.
This implies a few things:

the ip address will be provided by the network your host machine is connected on
if your host machine network use a proxy or filter on mac address etc then your vm machine will also be impacted by that
if you have no network, you won't be able to reach it as the vm will have no network to connect
if you switch network, the VM ip address will change

When using the "host only" mode:

only your host machine will be able to connect to the VM
the VM will not have access to the internet (if available)
the VM will be provided an ip address even if your host machine is not connected to a network (it will use a virtual network setup by VMWare)
the ip address of the VM should not change, even when your host machine switch network

When using the "NAT" (Network Address Translation) mode:

the VM will have access to the internet (if available)
the VM will be provided an ip address even if your host machine is not connected to a network (it will use a virtual network setup by VMWare)
the ip address of the VM should not change, even when your host machine switch network
anyone could access your VM, as long as you configure the address translation

So, from my pov, NAT is probably the best mode to be used in this context.
When you open VMWare, select your VM then click on Edit virtual machine settings:

Then choose Network adapter on the left side list, then select NAT:

Click on OK.
If you VM is already running, you will need to wait for the change to take effect. If not, just click on Play virtual machine.
Then from the VM console, execute the following command (after login in as hxeadm):
sudo ifconfig

You can now use the address marked with the big red 1 which is starting with 192.168. (FYI: The VM address will remain the same until the MAC address, but I hope you won't have to do that)
The IP address displayed before the login prompt (marked with the big red 2), is not always accurate, so don't use this one.
Now, from your host machine machine, you can update your hosts file (located in C:\Windows\system32\drivers\etc).
And you should be all set
Let us know if this helped.

HI There
Thanks a lot for your response
It has not been resolved and is quote frustrating
I have tried to use the NAT settings as well as bridge but still unable to run Webide or any of the tests mentioned in the link as successful
Issue 1: hxehost:53075 does not run still

Issue 2 VM keeps asking to reinstall again as below. I have got the install confirmation message already but every time I login it asks me to setup the configuration again

This is even though I have got the confirmation last time I worked on the VM

Pl advise issue 2 is more important to resolve than issue 1 it seems to me now
Thanks for your support and sorry to bother
Regards
Vinita

Took this to where it belongs: https://answers.sap.com/questions/745374/hana-express-edition-installation-issues-and-askin.html


Added options to DominantColors instances

Along with :image_type, you can also pass a custom :color_count when creating an instance of DominantColors. This allows you to override the global option Miro.options[:color_count].

@jonbuda any interest in merging this update?

@jonbuda any interest in merging this?

@joelvh seems simple enough. sorry about the egregious delay on this. if you could provide some tests for it, I'd be happy to merge it in.


Slow loading /users and /assets listings

I'm noticing the /users (and the /assets) page can take seconds to load if there are many organisation accounts. Internally, the /api/v3_0/users?account_id=<id> endpoint is getting called as many times as there are organisation accounts that the user has access to, so there is great potential to speed this up. Two options that come to mind:

Allow passing account_id multiple times to the users listing endpoint, so we only need to call it once. This would probably require the permission_required_for_context decorator to be enhanced to support a list of accounts.
Alternatively, we stop relying on the internal API so much. For example, instead of users += get_users_by_account(account.id, include_inactive) (which uses the InternalAPI), use users += account.users and then filter out the inactive users if needed.

Arguably, option 2 is easier to implement, but option 1 actually improves API and auth capabilities.

I endorse this idea, we need to improve loading times.
In order to have a more informed process, I would like to create a script to load dummy data and perform a benchmark on this endpoint. We can try loading times with different combinations of account/users/assets. What do you think?
Among the two alternatives, I would favor more (1) as it doesn't break with the status quo.

We had the idea for a benchmark script here but didn't find the right underlying approach yet.

Thanks for the reference! #949 apparently benchmarks fetching data from the DB (via calling show beliefs command). I was planning to create something that actually hit the endpoint to see the response time. What do you think?

I agree the approach needs not to call CLI commands, also due to their initial loading time. I thought about calling code directly (and first establishing an app context), then we can call whatever function we like.
But probably simply using the API might be more straightforward.

I have create a WIP PR to speed up the loading times of the /users and /assets page. It relies on the fact that the we already propagate authentication to the internal API and we can use the index methods instead of calling get methods on the individual accounts, as suggested by @Flix6x .
Benchmark script
import requests
from bs4 import BeautifulSoup
import time

session = requests.Session()
session.max_redirects = 3

# get CSRF Token
response = session.get("http://localhost:5000")
soup = BeautifulSoup(response.text, "html.parser")
csrf_token = soup.find("input", {"id" : "csrf_token"})["value"]

## Login
response = session.post(
    "http://localhost:5000/login",
    data={
        "email"<EMAIL_ADDRESS>        "password" : "victorvictor",
        "submit" : "Login",
        "next" : "",
        "csrf_token" : csrf_token
    },
)

for _ in range(10):
    t = time.time()
    response = session.get("http://localhost:5000/assets")
    print(time.time() - t)
    soup = BeautifulSoup(response.text, "html.parser")
    print(soup.title.get_text())  # we should see  Asset listing  - FlexMeasures


Can’t find driver editor

Where exactly is the driver editor? I want to edit the growth rate

The growth rate is in Staff_DriverData. The "Improvability" value determines the growth rate as roughly XP multiple = 2 * (Improvability / 100). I'm not looking at the numbers now, but I think I had a multiple of 1.03 for a driver with an improvability of .51, so the multiple was .01 more than the formula I listed. I don't know any more than that!

And editing the attributes should be under the same tab as well correct? It’s just really hard to use cheat table this way, I can’t find stuff

Driver attributes can be found in "Staff_PerformanceStats" table.
StaffID is related to "Staff_CommonData"
StatID is related to "Staff_Enum_PerformanceStatTypes


Add link to "see below" for setting up Project ID/Credentials

DOC: It would be useful to add a hyperlink to the "see below" section for setting up Project ID/Credentials for the added commands.
Section here: https://github.com/google/clasp#advanced-commands-1
Link to section: https://github.com/google/clasp#projectid-optional
Could be labeled as a good first issue if people agree that it'd be useful!

(Note: Non-breaking issues are likely not to be prioritized. Please consider a PR in addition to your issue)

Expected Behavior
N/A
Actual Behavior
N/A
Steps to Reproduce the Problem

Specifications
N/A

Node version (node -v):
Version (clasp -v):
OS (Mac/Linux/Windows):

Is this strictly a documentation issue? Can anyone volunteer for a PR?

Hello, can I be assigned this??


Analyze result: Array element cannot be nil

XCode "analyze" complains of API misuse (array element cannot be nil) in the method (UIImage *)selectedBackgroundImage
NSArray *segmentGradientColors = @[(id)segmentGradientTopColor.CGColor, (id)segmentGradientBottomColor.CGColor];

There just needed to be a check around that block of code where it sets up the gradient colors to ensure segmentGradientTopColor and segmentGradientBottomColor aren't nil before accessing and adding to the array. This should be fixed in my most recent commit.


Add a get bot name API

Feature Request
Is your feature request related to a problem? Please describe.
I want get my bot name.
Describe the solution you'd like
Maybe we can add a API for context to get bot name.
Describe alternatives you've considered
None
Teachability, Documentation, Adoption, Migration Strategy
None

With the latest Probot version (v10), you can do
// https://docs.github.com/en/free-pro-team@latest/rest/reference/apps#get-the-authenticated-app
const { name, slug } = context.github.apps.getAuthenticated()

Does that work for you

With the latest Probot version (v10), you can do
// https://docs.github.com/en/free-pro-team@latest/rest/reference/apps#get-the-authenticated-app
const { name, slug } = context.github.apps.getAuthenticated()

Does that work for you

I will check it tomorrow. Thanks for your reply.

@gr2m maybe this can help me with me contributing correctly

Hi @lostnco1 are you looking for an issue that you can contribute to? We don't currently have any simple issues, but a good place to find some on GitHub is https://github.com/issues?q=is%3Aopen+is%3Aissue+label%3Afirst-timers-only

@gr2m cool thanks for the heads up

It's work for me. Thanks!


Error when building PyMuPDF

I'm trying to install the project on a python virtual environment. I keep getting  this error:
      running bdist_wheel
      running build
      running build_py
      running build_ext
      building 'fitz._fitz' extension
      swigging fitz/fitz.i to fitz/fitz_wrap.c
      swig -python -o fitz/fitz_wrap.c fitz/fitz.i
      error: command 'swig' failed: No such file or directory
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for PyMuPDF
Successfully built videocr
Failed to build PyMuPDF
ERROR: Could not build wheels for PyMuPDF, which is required to install pyproject.toml-based projects

@glu8716 what Python version are you using? Is it between 3.7-3.10? I've seen the PyMuPDF error in newer versions of Python.


Added reference to PostgreSQL extension 'file_fdw' back as part of superuser-only extensions

What changed, and why it matters
I have added the PostgreSQL extension file_fdw back to our list of extensions as part of the superuser-only section. This extension was previously removed (see issues #705 and #706). However, since file_fdw is part of PostgreSQL itself: https://www.postgresql.org/docs/current/file-fdw.html we can not delete it from the output of pg_available_extensions.
There were a number of other extensions that were listed in pg_available_extensions but could not be installed, which is why @mble created PR #1225.
This PR adds file_fdw to the list introduced by Matt.

@pparmin do we need to add a warning about this specific extension on this page? I understood that the user may not be able to use it, correct?

@laysauchoa all of the extensions in the "superuser-only" extensions cannot be installed by the user, but are there for posterity as they can be seen in pg_available_extensions.

Clear to me @mble would be possible to help us to review this PR as you are familiar with this feature? Many thanks!


Add benchmarks, remove default_perf_config_file

This PR:

Adds some benchmarks to the gpu target pipeline
Removes default_perf_config_file, and correspondingly updates the perf scripts and inlines the defaults into the remaining perf config files (to preserve behavior). Next, we can unify those yaml files.

I added the breaking label, as the coupler uses the ClimaAtmos yaml configs. xref


Add missing GitLab token patterns

Description:
GitLab introduced prefixes for a few more types of tokens last year. This adds them here. See also:
https://gitlab.com/gitlab-com/gl-security/threatmanagement/redteam/redteam-public/token-hunter/-/blob/master/regexes.json#L10-13
(I didn't add the second GitLab Registration Token pattern as it's unclear to me if that's really used :thinking:.)
I took the liberty of renaming Gitlab() to GitlabPat() for clarity as is done in the github provider, let me know if I should revert that :)
Checklist:

[x] Does your PR pass tests?
[x] Have you written new tests for your changes?
[x] Have you lint your code locally prior to submission?

/cc @zricethezav, I guess you spend more time on GitLab.com these days so this is less visible but I think you'll probably be familiar with these patterns already :sweat_smile:

@nejch lovely! thanks for opening this PR. LGTM 🚀


Is it possible to set the color using an ascii escape, rather than 8bit xterm code?

Some terminals (for examples iTerm2) support more than 8-bit colors ... and the color scheme I'm currently using in my terminal makes use of full RGB colors. Is there a way to set the colors using the ansi escapes rather than RGB values so that they'll be displayed using my terminal emulator's color theme?

Still playing around with this. Tmux correctly displays 24-bit rgb color (assuming your terminal emulator does), and I've got tmuxline configured to use my custom color mappings (0..15), still trying to figure out how to calculate and override the the xterm extended color palette with consistent truecolors calculated from the base.

Since https://github.com/tmux/tmux/commit/427b8204268af5548d09b830e101c59daa095df9 tmux has true color, any plan to support it?

Here's how solarized in vim-airline and tmuxline not match when I activate true color in tmux

This discussion will help one to activate true color in tmux https://github.com/tmux/tmux/issues/34
I use this one https://github.com/tmux/tmux/issues/34#issuecomment-241527745

Here's how to check true color in terminal https://gist.github.com/XVilka/8346728

I use this solarized theme https://github.com/frankier/neovim-colors-solarized-truecolor-only

For example, I see generated tmux theme are using ctermfg from theme. If I use guifg value, I successfully get true color.
Here example for OceanicNext theme:
https://github.com/mhartington/oceanic-next/blob/master/colors/OceanicNext.vim
Generated theme:
https://gist.github.com/rawaludin/e2fd38c29ddc32507a76a7178be350c1
What it should be:
https://gist.github.com/rawaludin/ab862046bdc6ac1bc5ed62d9ba13f54f
I use this setup:
let g:tmuxline_preset = {
      \'a'               : '#{?client_prefix,#[reverse][P]#[noreverse] ,}#{?window_zoomed_flag,#[reverse][F]#[noreverse] ,}#S',
      \'win'             : ['#I', '#W'],
      \'cwin'            : ['#I', '#W'],
      \'x'               : '#(focus)',
      \'y'               : ['%a, %b %d'],
      \'z'               : '%R #(bat)',
      \'options'         : {
        \'status-justify'  : 'left'}
      \}
" simple
let g:tmuxline_separators = {
    \ 'left' : '',
    \ 'left_alt': '|',
    \ 'right' : '',
    \ 'right_alt' : '|',
    \ 'space' : ' '}

Oh, and set -g status-utf8 "on" is deprecated.


Build out-of-vocabulary word fom data.bin

Because the advantage of subword model is that we can create the new words from pre-trained characters, I wonder how can I create a new word vector from the data.bin file. Does that .bin file contain characters and their vectors?
Thanks.

The .bin files are fasttext model files.  They're slightly out of date, but if you apply the script from https://github.com/Kyubyong/wordvectors/issues/14 you can use the fasttext program to generate word vectors for new words.

Yeah. Thank you, but I seem don't know how to use the script. I have the .bin file and your script and fasttext program, and how exactly I can apply your script to generate new words?

Oh I know it now. The first and second argument in your script is the old and new .bin file respectively. After we got the new .bin file, we can use fasttext to generate a new word embedding.
Thanks a lot for your script!

Hi , I am using hindi language word2vec hi.bin  so when i am using my corpus to find vector of word   then for some number like 3740 ( ३७४० )   it give out of vocabulary.  what should i do for this.


Added "market" parameter

I need to get the search results in Japanese, so I want to add "market=JP" to the parameter.
Is there any way?

Do you have a reference for that? I couldn't find anything 😕

Defnitely possible - from the documentation for reference:

Optional.
An ISO 3166-1 alpha-2 country code or the string from_token. If a country code is specified, only artists, albums, and tracks with content that is playable in that market is returned.
Note:

Playlist results are not affected by the market parameter.
If market is set to from_token,  and a valid access token is specified in the request header, only  content playable in the country associated with the user account, is  returned.
Users can view the country that is associated with their account in the account settings. A user must grant access to the user-read-private scope prior to when the access token is issued.

Thank you for the quick response!


Beginning of a SCITT template of icons and imagery

Signed-off-by: Steve Lasker<EMAIL_ADDRESS>

@henkbirkholz is there a precedent we should be aware of for adopting templates, icons, etc. for IETF WGs?


Reception Route issue tracker

use unit-of-work/transactional db
add tests
support Documenso

Tickets
Make sure secrets are unique, or pass the ticket id in the qrcode

Fix https://github.com/aeecleclair/Hyperion/pull/544 issues


这是文本错误还是特殊设定

添加右手但显示的是left hand

Fixed in https://github.com/huchenlei/sd-webui-openpose-editor/commit/b5d80988281edf313c8dda1709bb27c96c76c908.
You should see the effect in the next release.
Sorry about it I messed up the translation.


Development tasks should support watch mode for re-running when "dependsOn" have changes in their "inputs"/"outputs"

Which project is this feature idea for?
Turborepo
Describe the feature you'd like to request
When creating a dev task in a pipeline that "dependsOn" codegen there is no automatic "watch mode" that will re-trigger the pipelines when the root "inputs" changes, eg a hypothetically ./codegen.config file is manually edited.
{
  "pipeline": {
    "dev": {
      "dependsOn": ["codegen"],
      "cache": false,
      "persistent": true
    },
    "codegen": {
      "inputs": ["./codegen.config"],
      "outputs": ["./codegen-outputs/**"]
    }
  }
}

Describe the solution you'd like
To further improve development workflows, turbo should detect persistent nodes and apply "watch mode" to any dependencies in the related graph.
Describe alternatives you've considered
I could write an explicit js script myself to watch for changes and re-trigger my "codegen" commands, but that is not ideal.

Thanks for the feedback! We're aware of this and are considering it!

Closing in favor of https://github.com/vercel/turbo/issues/986


Jest 23

An alternative approach to #82, using dynamically selected tsconfigs

Coverage remained the same at 100.0% when pulling 79eddc8c834b839984ebcb9accc611e84468653f on feature/jest-23 into 6906f73cc40cf1a6b05936f77bdce8592e9801fd on master.

If you drop support for lts/argon (v4.0.0), could you change the TS target to es2016 which lts/boron (v6.0.0) supports.
If the tsconfig.jest-compat.json uses the same target as tsconfig.json (es5), could you just not use that tsconfig instead of making a separate tsconfig.jest-compat.json?

It would look like this.

As a sidenotice, I would prefer if travis always ran the tests with the same target as the npm run build. Obviously there shouldn't be any situation where the different target should work/fail but just to be sure.
Maybe use a --debug or --es2017 flag that we check for in the jest.config.js. And we only allow the tsconfig.jest.json to be responded if that flag is provided. Then modify the test:watch to pass the flag --debug so that you can debug when developing but CI will always use the same config as build.


Update serde_bytes and bump version

@bors-servo r+

:pushpin: Commit 257853b has been approved by nox

:hourglass: Testing commit 257853bb92cdb8bcf54d535869bf15b340a20d8d with merge 0138aa63cfa07b5dff5c1b86f339360904c3d07b...

@bors-servo r-

@bors-servo r+

:pushpin: Commit 31a9cee has been approved by nox

:hourglass: Testing commit 31a9ceebfa99db4fe2b827cdc48c5b2b420a0043 with merge 92a6b79056fe9b8857d0bf2eec7c66486c1e930b...

:sunny: Test successful - checks-travis
Approved by: nox
Pushing 92a6b79056fe9b8857d0bf2eec7c66486c1e930b to master...


Number of pings

The ping function executes only one ping, regardless of the "count" parameter value.

what kind of chip have you got ?

ESP32 DEVKIT 1. No worries. It's no longer a problem. I tinkered with the library and noticed that the ping function works correctly. I thought that the function would return the number of succesfull pings, but it only returns true or false. My bad.


Swagger 3.0

Any plans for Swagger 3.0? If not how cookie authentication would be enabled?

Hi @sankalpbohra,
At the moment, swag supports only OAS 2.0 specs which don't support cookie authentication.
We are thinking of supporting OAS 3, but the development road is long and complicated. At the same time, this is an Open Source project, and any contribution is greatly appreciated.
Duplicated: #548.


libsForQt5.mauikit: init at 1.2.1

Motivation for this change
Maybe use it on my PinePhone one day.
Questions I have:

Should I fetch the source from https://download.kde.org/stable/maui/ instead?
Should I include all dependencies listed at https://invent.kde.org/maui/index-fm#dependencies even though it builds and runs fine without?
Should I put stuff like kirigami2 in mauikit's propagatedBuildInputs?

Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

cc @NixOS/qt-kde

Should I fetch the source from https://download.kde.org/stable/maui/ instead?

I think either is fine.

Should I include all dependencies listed at https://invent.kde.org/maui/index-fm#dependencies even though it builds and runs fine without?

Maybe some of these are propagated already?

Should I put stuff like kirigami2 in mauikit's propagatedBuildInputs?

Why? Mauikit apparently does not need it itself, so it should not be an input for itself.

Maybe some of these are propagated already?

Seems to be the case, according to nix why-depends.

This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 115242 run on x86_64-linux 1

1 package failed to build and already failed to build on hydra master:

libsForQt512.mauikit: log was empty

3 packages built:

index-fm
libsForQt5.mauikit (libsForQt515.mauikit ,plasma5Packages.mauikit)
libsForQt514.mauikit

Please mark it broken for Qt512.

Done


Animated value NaN on animation with duration 0

    <Spring
      from={{ height: 100 }}
      to={{ height: 100 }}
      config={{ duration: 0 }}
    >
      {({ height }) => (
        <animated.div style={{ height }}>
          <div />
        </animated.div>
      )}
    </Spring>

https://codesandbox.io/s/jz03o39v55
In the first render, height will be NaN. I have isolated this to the following line: https://github.com/react-spring/react-spring/blob/master/src/animated/Controller.js#L319
I might be able to have a look at this myself but it won't happen before new year at least.

There's a native missing:
<Spring native from={...} to={...} config={...} />

If i set it all is well, as well as using a non-native spring with div instead of animated.div

My application code definitely had native before I reduced this issue to this sandbox.. weird

I'll flag this as a bug, even if native isn't present, no reason for it to produce NaN

Seems like this was fixed by the FrameLoop changes.

I have this when changing the app theme with immediate: true. The first render produces rgba(NaN, NaN, NaN, 1).

it's probably fixed, but could you show your code, just to make sure

My issue was definitely fixed at least

My code is a normal useSpring, the difference may be that it is in a context and being shared with dozens of components.
Ideally I should create a small reproducible demo but if you could fork and run it would be so much easier 😄 otherwise I can try it in a few days or week
Note: The warning shows only on react-native, but probably happens on web as well and css ignores it
https://github.com/devhubapp/devhub/blob/master/packages/components/src/components/context/SpringAnimatedThemeContext.tsx

@brunolemos If you can still reproduce, please open a new issue with a minimal repository that shows it. Thanks! 👍


fix(BUX-578): not working build because of date-fns

Pull Request Checklist

[x] 📖 I created my PR using provided  : CODE_STANDARDS
[x] 📖 I have read the short Code of Conduct: CODE_OF_CONDUCT
[x] 🏠 I tested my changes locally.
[ ] ✅ I have provided tests for my changes.
[x] 📝 I have used conventional commits.
[x] 📗 I have updated any related documentation.
[x] 💾 PR was issued based on the Github or Jira issue.

testing


get more rstudio orgs into github action beta

r-lib
tidyverse
tidymodels

I just had a call with some of the github actions team, and they promised that they're going to get any org on the beta asap. Just need a full list.


Local File?

Hey @nihgwu! I finally got this working in my project! I had a problem in the beginning loading #import "RCTImageUtils.h" into it, and with you being so kind to add this package I knew it was something enough tinkering could figure out!
I have run into a roadblock however. Whenever I try to load a local file with the require method it seems to get a weird error of trying to convert the src of the file to JSON.
<FLAnimatedImage
    style={styles.slideImage}
    src={require('../img/test.gif')}
    resizeMode="contain"/>

Have you tried loading any files locally?

thanks for your report, I think I tried to load local GIFs, but I will try it again later,
RCTImageUtils.h is in the react-native\Libraries\Image package, to get the size of the image, includes the right path to the Header Search Paths would be OK

Got that part working! 👍

src should be a string, I get this value from source, but right now this component doesn't support local files, I will try to release a new version
Thank you, I missed this because I don't use local GIFs in my apps

@DClark5218 I've publish a new version to the npm

This works like charm :) Thank you!

@nihgwu - Actually may have to reopen this issue... for some reason the module stops working when you compile react in release.
Can you confirm?

I can confirm that

@DClark5218 have you test the latest version?

@nihgwu Yes. Works phenomenal! Thank you.


AppCache iframe src is relative

If i land on a page like http://example.com/test/123 the iframe src appcache/manifest.html fails. Shouldn't there be an option to make this absolute: /appcache/manifest.html?
Or is the intention for this to be handled by a redirect rule on the server?

Yes, you can set use absolute paths there. Add this options:
new OfflinePlugin({
  relativePaths: false,
  publicPath: '/'
})

This will set public path for loading AppCache/SW files and for assets URLs inside them.

Okay, closing this. Feel free to re-open or create another issue if this doesn't work for you.


deflakes test-delete-service and test-killed-instances

Changes proposed in this PR

deflakes test-delete-service and test-killed-instances

Why are we making these changes?
We would like all our tests to run and catch regressions.

Will merge once the build is green

Build is green.


provide log-scale option for depletion and F_std; and provide multi-yr averaging

Imported from redmine, Issue #83055
Opened by @iantaylor-NOAA on 2020-09-21
Status when imported: Resolved
In an email conversation (Sept 16-17 with subject "Wish List for ss3diags"), Henning Winker requested logBratio and logFratio in derived quantities.
Rick proposed adding a option+10 input for the log alternatives for all options:
1 # Depletion basis:  denom is: 0=skip; 1=rel XSPB0; 2=rel SPBmsy; 3=rel XSPB_styr; 4=rel X*SPB_endyr
so options 11, 12, 13, 14 would be ln(options 1-4)):
However, for F_std_basis, this could be confusing as the 10s digit is already used for the multi-year trailing average. A 1 in the 10s digit wouldn't be used for the multi-year option since the 1-year average is already the default, but it wouldn't be possible to combine the multi-year average with the log scale option.
An alternative implementation would be to use negative values to choose the log scale for both the Depletion basis and the F std basis (e.g. -22 would calculate the log(F/FMSY) with a 2-year trailing average).
Ideally, r4ss could detect the presence of the log-scale output and convert the values used in the time series plots to standard units (where the uncertainty interval would be representative of a lognormal distribution which is a better approximation to MCMC estimates, hence the request from Henning).

@Rick-Methot-NOAA I just tried this with simple, but changing the line
2 # Depletion basis:  denom is: 0=skip; 1=rel X*SPB0; 2=rel SPBmsy; 3=rel X*SPB_styr; 4=rel X*SPB_endyr

in the starter file to:
102 # Depletion basis:  denom is: 0=skip; 1=rel X*SPB0; 2=rel SPBmsy; 3=rel X*SPB_styr; 4=rel X*SPB_endyr

(I left this line in the starter, which maybe I need to change?)
0 # F_report_basis: 0=raw_F_report; 1=F/Fspr; 2=F/Fmsy ; 3=F/Fbtgt

I'm not sure this is working properly, as the output I see in echo input looks a little different:
102  depletion_basis as read; this is also known as Bratio and is a std quantity; has multi-yr and log(ratio) options
Parse into: depletion_log(ratio): 1 depletion_multi-yr: 0 depletion_basis: 102
1  depletion_level
4  SPR_reporting
3  F_reporting quantity, e.g. 3=sum(apical Fs)
0  F_std basis as read
Parse into: F_std_log(ratio): 0 F_std_multi: 0 F_std_basis: 0
For Kobe plot, set depletion_basis=2; depletion_level=1.0; F_reporting=your choose; F_std_basis=2

Here is how the labels look in ss_summary.sso:
#_F Basis= _abs_F;_with_F=sum(full_Fs)

#_Depletion Basis= ;log
Bratio_1973 10.8163 0.0277665

Ok, I ran a better comparison, where Bratio and Fratio were calculated on the nominal scale in 1 model, then on the log scale in the other. To reproduce this model, just change 2 lines in the starter file of simple; on the left is the log scale file, on the right is the nominal scale starter file

I think some of these values are not lining up(i assume that taking the natural log of the nominal value could provide the value of the log scale point estimate, although perhaps there is also a correction that needs to be made?) - thanks to @Henning-Winker for suggesting this was the case.
Here are some of the Fs, where the values on the left are log scale and on the right are nominal scale:

Here are some of the bratio values, log on left and nominal on right:

The code is really, really simple:
after calculating F_std in which it is divided by the reference point to
get a ratio,
if(F_std_log==1) F_std = log(F_std);
On Thu, May 6, 2021 at 1:52 PM Kathryn Doering @.***>
wrote:

Ok, I ran a better comparison, where Bratio and Fratio were calculated on
the nominal scale in 1 model, then on the log scale in the other. To
reproduce this model, just change 2 lines in the starter file of simple; on
the left is the log scale file, on the right is the nominal scale starter
file
[image: 2 files each with 2 lines of text highlighted, where 102 are the
inuts for the log scale Bratio and F ratio and 2 are the inputs for the
nominal scale values]
https://user-images.githubusercontent.com/48930335/117363146-07c7bc80-ae71-11eb-9857-8f7a94ccda87.png
I think some of these values are not lining up(i assume that taking the
natural log of the nominal value could provide the value of the log scale
point estimate, although perhaps there is also a correction that needs to
be made?) - thanks to @Henning-Winker https://github.com/Henning-Winker
for suggesting this was the case.
Here are some of the Fs, where the values on the left are log scale and on
the right are nominal scale:
[image: image]
https://user-images.githubusercontent.com/48930335/117363659-ba981a80-ae71-11eb-8126-14d5f410f3ee.png
Here are some of the bratio values, log on left and nominal on right:
[image: image]
https://user-images.githubusercontent.com/48930335/117363718-cedc1780-ae71-11eb-8ee2-f10686904108.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nmfs-stock-synthesis/stock-synthesis/issues/89#issuecomment-833857265,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABPV4IGMTSAZZLAZSXAED7LTML6Q3ANCNFSM4TLVS3AQ
.

That makes sense to me! Why don't these numbers line up then (or maybe I am miscalculating?)
Nominal scale:
#_F Basis= (F)/(Fmsy);_with_F=sum(full_Fs)
F_1972 0.0200349 0.00357247
Log scale:
#_F Basis= ;_with_F=sum(full_Fs);log
F_1972 -6.16068 0.0409965
log(0.0200) = -3.912023
Maybe I am missing a correction factor?

something strange.  I'll investigate and report back to you
On Thu, May 6, 2021 at 2:36 PM Kathryn Doering @.***>
wrote:

That makes sense to me! Why don't these numbers line up then (or maybe I
am miscalculating?)
Nominal scale:
#_F Basis= (F)/(Fmsy);_with_F=sum(full_Fs)
F_1972 0.0200349 0.00357247
Log scale:
#_F Basis= ;_with_F=sum(full_Fs);log
F_1972 -6.16068 0.0409965
log(0.0200) = -3.912023
Maybe I am missing a correction factor?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nmfs-stock-synthesis/stock-synthesis/issues/89#issuecomment-833884438,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABPV4IHOA4SB2PU6S6Y6553TMMDWFANCNFSM4TLVS3AQ
.

got it.
read value of 102 was not getting transformed to 2, so the switch statement
was not working right.  thanks for finding this problem
On Thu, May 6, 2021 at 3:40 PM Richard Methot - NOAA Federal <
@.***> wrote:

something strange.  I'll investigate and report back to you
On Thu, May 6, 2021 at 2:36 PM Kathryn Doering @.***>
wrote:

That makes sense to me! Why don't these numbers line up then (or maybe I
am miscalculating?)
Nominal scale:
#_F Basis= (F)/(Fmsy);_with_F=sum(full_Fs)
F_1972 0.0200349 0.00357247
Log scale:
#_F Basis= ;_with_F=sum(full_Fs);log
F_1972 -6.16068 0.0409965
log(0.0200) = -3.912023
Maybe I am missing a correction factor?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nmfs-stock-synthesis/stock-synthesis/issues/89#issuecomment-833884438,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABPV4IHOA4SB2PU6S6Y6553TMMDWFANCNFSM4TLVS3AQ
.


Feature: Using Lithiums curl instead of own implementation

The Helpers and one Adapter are using a self written curl connection. Why not using lithium´s curl capability?

Where? Link?

If Lithium's cURL stuff works the same then sure. I'd always use Lithium methods and classes where possible instead of re-coding something, but if you see some sort of dupe, it's likely just because I didn't know it already existed.


Recheck _ViewImports.cshtml for RazorRuntimeCompilation

Following https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-5.0&tabs=visual-studio
Conditionally enable runtime compilation in an existing project
Runtime compilation can be enabled such that it's only available for local development. Conditionally enabling in this manner ensures that the published output:

Uses compiled views.
Doesn't enable file watchers in production.

We cannot apply runtime compile for mixcore

Following https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-5.0&tabs=visual-studio
Conditionally enable runtime compilation in an existing project
Runtime compilation can be enabled such that it's only available for local development. Conditionally enabling in this manner ensures that the published output:

Uses compiled views.
Doesn't enable file watchers in production.

We cannot apply runtime compile for mixcore