the viewer changes, but the navigator occasionally doesn't

 var viewer = OpenSeadragon({
      prefixUrl: './images/',
      tileSources: tileSource.value,
      ...OpenSeadragonConfig
    })

viewer.destory()

 var viewer = OpenSeadragon({
      prefixUrl: './images/',
      tileSources: tileSource.value,
      ...OpenSeadragonConfig
 })

Create the viewer instance again, and occasionally the navigator will not change

var viewer = OpenSeadragon({
      prefixUrl: './images/',
      tileSources: tileSource.value,
      ...OpenSeadragonConfig
    })

viewer.close()

viewer.open(tileSource.value)

Call the close method and then the open method. The viewer view changes, but the navigator view occasionally does not

Sounds like a timing issue. Ideally you would wait until the viewer is finished opening before closing or destroying it. To make your code more reliable, use viewer.addHandler('open', function() { /* destroy or close here */ });.
But of course it would be good for OSD to be resilient to such things, or at least give a proper error message. Let me know if you'd like to investigate a fix and I can point you toward the right part of the code. Otherwise hopefully someone else will pick up this issue.

I have almost solved this problem by adding a random number to the string of urls
 const tileSource = {
  Image: {
    xmlns: 'http://schemas.microsoft.com/deepzoom/2008',
    Url: 'http://<IP_ADDRESS>:5001/slide_files/' + **Math.random()** + '/',
    Overlap: 1,
    TileSize: 256,
    Format: 'jpeg',
    Size: {
      Width: 54016,
      Height: 54492
    }
  }
}

I have almost solved this problem by adding a random number to the string of urls
const tileSource = {
  Image: {
    xmlns: 'http://schemas.microsoft.com/deepzoom/2008',
    Url: 'http://<IP_ADDRESS>:5001/slide_files/' + Math.random() + '/',
    Overlap: 1,
    TileSize: 256,
    Format: 'jpeg',
    Size: {
      Width: 54016,
      Height: 54492
    }
  }
}

Interesting. Have you tried the addHandler approach?

Interesting. Have you tried the addHandler approach?

yes

And I assume the addHandler approach didn't fix the issue. But the random number is fixing it? Very odd. I'm not sure what's going on here.
Would you like to try debugging it in the OSD code? If so, I think I would recommend starting by adding $.console.log calls to the opening and closing functions to see the sequence. In particular, you want the spots where the loading completes after whatever asynchronous work is being done.
For that matter, you might be able to do some of that debugging without getting into the OSD code, just using the events that OSD produces.
Btw, another question: In your example code at the top it looks like you are passing the same tilesource in both times, in which case the image should stay the same. Is that true or just a simplification in your example? If it is true, what are you expecting to see change?


wrangler: add AI related commands

What this PR solves / how to test:
This PR adds the CLI commands related to AI functionality.
Author has included the following, where applicable:

[x] Tests
[x] Changeset (Changeset guidelines)

Reviewer is to perform the following, as applicable:

Checked for inclusion of relevant tests
Checked for inclusion of a relevant changeset
Checked for creation of associated docs updates
Manually pulled down the changes and spot-tested

Rerunning the windows test job which failed


#1682: fix help tests

Part of #1682
In this PR help tests are fixed.
As part of the change, I re-organized build_host_function_parameters to return either previous result or help message. All callers up the stack now respect this behavior.
Why
Previously, we were using clap's get_matches_from that exits with code 0 (printing help message). This made our tests exit with code 0 as well (when calling --help).
As part of the change we handle DisplayError returning help message, and keeping existing behavior for all other clap errors.
Known limitations
Some of the tests are now failing in CI. They were previously effectively ignored, as the whole suite was exiting as soon as help tests were running.
This tests are fixed in other PRs (see #1682 )

This tests are fixed in other PRs (see #1682 )

What needs to merge before this PR can be merged?

@leighmcculloch we can either merge all listed PRs at the same time or merge all of them here first

#1734
#1736
#1737
#1738

This is looking great! Thanks for digging into it - it was driving me crazy ;p

we can either merge all listed PRs at the same time or merge all of them here first

W/r/t when to merge this and the other PRs, i like the idea of merging those test fixing into this PR first.


First run of uncss. Needs work...

Lots of CSS missing, so it looks like Phantom is just hitting the log in form.
Need to feed login deets through uncss somehow.

@SteveBarnett Do you want to keep this PR around? Is this superceded by #1283.

@hodgestar Let's close this PR. It's not quiet superceded by #1283. This PR is tidying up our existing CSS. The other one is more 'ensure best practices going forward.'


⚠ RPC server - Figment Solana has degraded performance

In 6e1ff3f, RPC server - Figment Solana ($FIGMENT_SOLANA_RPC_URL) experienced degraded performance:

HTTP code: 429
Response time: 111 ms

Resolved: RPC server - Figment Solana performance has improved in c2cd14d.


Improve re-organization safety

Currently within the daemon re-orgs are mostly unaccounted for w.r.t to channel operation.
There are two cases that need to be accounted for:

We're waiting for a channel to open, and a "negative" confirmation takes place possibly re-orging out the funding transaction.
The channel is currently active, and the funding transaction gets re-orged out.

Another case that's unhandled is in contractcourt/chain_watcher.go closeObserver() method.  It notifies once on the spend (which requires only 1-confirmation), and then exits out after "handling" the confirmed commit tx.  If the commit tx gets re-orged out, the chain_watcher will be unaware, and the contractcourt subsystem will not properly handle this event.

Other call-sites that use RegisterSpendNtfn:

breacharbiter.go
contractcourt/commit_sweep_resolver.go
contractcourt/htlc_outgoing_contest_resolver.go
sweep/sweeper.go
I haven't checked if the ones listed above properly handle re-orgs. I can update this issue once I check.

Historical dispatch occurs from [height, height+1]
The desired confirmation has occurred at height-1
Sub-system grabs the blocks from its BlockEpochRegistration channel, finally updating its height to height+1.

This requires a 2-block re-org.  Re-orgs are a global event, so while this race is unlikely, one re-org could affect one very unlucky user out of the thousands on the network.

Additionally, the onus seems to be on the sub-system or caller to handle re-orgs.


[TF2.2rc3] dict of ragged tensors as an input of keras layer does not support serialization

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): linux
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): 2.2rc3
Python version: 3.6
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:

Describe the current behavior
We have a layer that takes a dict of ragged tensors as input:
class EmbeddingMerger(tf.keras.layers.Layer):
  def __init__(self, list_features, **kwargs):
    super().__init__(**kwargs)
    self._supports_ragged_inputs = True
    self.embeddings = {feature: Embedding(10, 3) for feature in list_features}
    self.mean = tf.keras.layers.Lambda(tf.reduce_mean, arguments=dict(axis=1))
  def call(self, inputs):
    tensors = [self.embeddings[col](inputs[col]) for col in inputs]
    tensors = [self.mean(inp) for inp in tensors]
    return Add()(tensors)

before saving it the model works well:
list_features = ['feature_1', 'feature_2']
feature_1 = tf.ragged.constant([[0], [1, 3]])
feature_2 = tf.ragged.constant([[1, 2], [4]])
f = {'feature_1': feature_1,
     'feature_2': feature_2}
f_inputs = {'feature_1': Input(shape=(), name='feature_1', ragged=True),
            'feature_2': Input(shape=(), name='feature_2', ragged=True)}
out = EmbeddingMerger(list_features)(f_inputs)
model = Model(f_inputs, out)

truth = model.predict(f)
truth

array([[-0.01802131, -0.01703345,  0.0267079 ],
[ 0.0096956 , -0.05128085, -0.04486313]], dtype=float32)

If we serialize the model and reload it :
model.save('/tmp/test')
model_reloaded = tf.keras.models.load_model('/tmp/test')
model_reloaded.predict(f)

ValueError: Layer embedding_merger does not support RaggedTensors as input. Inputs received: {'feature_1': tf.RaggedTensor(values=Tensor("model/Cast_1:0", shape=(None,), dtype=float32), row_splits=Tensor("RaggedFromVariant/RaggedTensorFromVariant:0", shape=(None,), dtype=int64)), 'feature_2': tf.RaggedTensor(values=Tensor("model/Cast_3:0", shape=(None,), dtype=float32), row_splits=Tensor("RaggedFromVariant_1/RaggedTensorFromVariant:0", shape=(None,), dtype=int64))}. You can try converting your input to an uniform tensor.

Describe the expected behavior
The model should work as well serialized and not serialized and keep its support for ragged inputs in the dict.
Standalone code to reproduce the issue
https://colab.research.google.com/gist/tanguycdls/552347a77758674c39b37471f72c3bdf/copie-de-untitled5.ipynb
TF nighlty
I found that https://www.tensorflow.org/guide/concrete_function#nested_arguments that stands that TF 2.3 will support that usage in a concrete function. I tried but its actually worse the model does not even support dict of ragged in the non serialized model: https://colab.research.google.com/gist/tanguycdls/e78f2c5329f85b84a8d8db7d1b6a40f1/copie-de-untitled5.ipynb
TF 2.1.0
Same as nightly breaks even non serialized on another error:

ValueError: Error when checking input: expected feature_1 to have 1 dimensions, but got array with shape (2, None)

https://colab.research.google.com/gist/tanguycdls/996ea1f53de753c14cb837f1071e509c/copie-de-untitled5.ipynb

@tanguycdls
I have tried in colab in TF 2.1.0 and 2.2-rc3 and was able to reproduce the issue.Please, find the gist here.Thanks!

There's a bug in your code: the shape you pass in when constructing Input isn't correct.  In particular, you're using shape=(), which means that each batch has a single scalar value.  But in reality, each batch has a vector value of unknown size -- i.e., shape=[None].  So you should change it to:
f_inputs = {'feature_1': Input(shape=[None], name='feature_1', ragged=True),
            'feature_2': Input(shape=[None], name='feature_2', ragged=True)}

And then it works as expected.


Circlet not slotting

Hi! New Valheim modder here. I am having trouble getting the Dvergr Circlet to slot into the Circlet slot. It only slots into the Helmet slot which is not ideal... please advice!!!

CircletExtended has its own quality progression system where you should upgrade Circlet to lvl2 to be able to wear it along with helmet.


Filter events on Update from the Controller (UpdateControl)

For InformerEventSource we implemented a feature that makes it possible to not trigger reconciliation if the update of a secondary resource is made by the controller.  This functionality could be ported also for  ControllerResourceEventSource. Although we already support filtering for generation updates (so that only spec updates will trigger reconciliation), this could be still useful when the generation filtering is turned off, or the changes to the CR spec are made by the operator.

Was investigating this further, since for update of the status we allow to use patch (actually advice), this would be quite complex to implement, and we already do generation filtering, that already solves this problem for most of the cases (or standard cases). For now will close this issue.


feat: organize endpoints & remove redundant code

What
To request video info, YouTube.js used to rely on a function from Actions called getVideoInfo. In fact, it was the only function that could make requests to /player in v1 - v2.
After a while, Actions#execute was implemented, thus rendering getVideoInfo redundant. In this PR, that function is removed and endpoints are organized into classes so we don't have to declare a payload object every time we want to send a request.
Additional Improvements

Player.ts - Client version is now appended to deciphered URLs.
HTTPClient.ts - Set userAgent, osName, osVersion and platform for Android clients.
From now on, userAgent is only included in the payload of Android clients.

As those classes contain purely static properties and have no state, they could be converted to const variables and functions instead. While they wouldn't get treeshaken, as they are referenced by other parts of YouTube.js that don't get treeshaken, it would still benefit projects that import YouTube.js and use a bundler, as they can inline functions and varialbes and they also tend not to mangle the names of class properties (javascript is very dynamic so renaming class properties could break stuff), but they'll happily mangle the names of functions and variables.
Just thought I would mention it, as this is a new feature, so making changes to this PR now wouldn't be breaking any existing functionality.
you could use a naming scheme like this (feel free to pick a completely different one of course):
variables: <NAME>_ENDPOINT_PATH e.g. BROWSE_ENDPOINT_PATH
functions: build<Name>EndpointPayload e.g. buildBrowseEndpointPayload

@absidue
Thank you for the suggestions.
I won't be going with pure functions such as buildNotificationGetUnseenCountEndpoint because it would be too verbose and difficult to maintain. I'm thinking of refactoring this to a single file called Endpoints and put everything there as objects.
Here's an example:
// ...

export const BrowseEndpoint = {
  PATH: "/browse" as const,
  /**
   * Builds a `/browse` request payload.
   * @param opts - The options to use.
   * @returns The payload.
   */
  build: (opts: BrowseEndpointOptions): IBrowseRequest => {
    return {
      ...{
        browseId: opts.browse_id,
        //....
      },
    };
  }
};

And since TypeScript 5.0 supports the export type * from 'mod' syntax, we can just do something like this:
export * from './Endpoint.js'; // This only exports the objects.
export type * from './Endpoint.js'; // This exports the types.

Let me know if you have anything else in mind.

Looks good to me 😄

Should probably rename this to something else. I ended up refactoring way more than I first intended.


Fix POST queries not getting cancelled in profiling queries

Checklist

[x] Manual verification
[ ] Unit test coverage
[ ] E2E test coverage
[x] Needs manual QA?

Summary
Issue addressed:
We are still seeing issues with query cancellation outside of dashboard.
Details:
Adding signal setting to all POST profiling queries.
Steps to Verify

Ya it didnt make too much of a difference. My guess is the http request queue handles it all. But if there was a timeseries request in flight then this could help.


SqlBuilder cannot parse sql for large queries

I have finally been able to reproduce a problem with large queries which might explain some weird errors. Entity Framework v6.4.4 changes the query plan and SqlBuilder cannot parse the query.
Add the following test case to UpdateFromQueryAsync:
        [TestMethod]
        public async Task With_Many_Value()
        {
            var dbContext = SetupDbContext(true);
            var ids = new long[10000]; // CHANGE HERE, number of ids to find
            int rowUpdated = await dbContext.Orders.Where(a => ids.Contains(a.Id)).UpdateFromQueryAsync(a => new Order { Price = 25.30M });
        }

The test case will produce the following exception:
Message:
Test method N.EntityFramework.Extensions.Test.DbContextExtensions.UpdateFromQueryAsync.With_Many_Value threw exception:
System.Data.SqlClient.SqlException: Incorrect syntax near the keyword 'SET'.
Incorrect syntax near the keyword 'AS'.

Stack Trace:
DbContextExtensionsAsync.UpdateFromQueryAsync[T](IQueryable'1 querable, Expression'1 updateExpression, Nullable'1 commandTimeout, CancellationToken cancellationToken) line 634
UpdateFromQueryAsync.With_Many_Value() line 34
ThreadOperations.ExecuteWithAbortSafety(Action action)

Using 10,000 ids will generate the following sql:
SELECT
    [Project1].[C1] AS [C1],
    [Project1].[C2] AS [C2],
    [Project1].[C3] AS [C3],
    [Project1].[C4] AS [C4],
    [Project1].[C5] AS [C5],
    [Project1].[C6] AS [C6],
    [Project1].[C7] AS [C7]
    FROM ( SELECT
        [Extent1].[Id] AS [C1],
        [Extent1].[ExternalId] AS [C2],
        [Extent1].[Price] AS [C3],
        [Extent1].[AddedDateTime] AS [C4],
        [Extent1].[ModifiedDateTime] AS [C5],
        [Extent1].[Trigger] AS [C6],
        [Extent1].[Active] AS [C7]
        FROM [dbo].[Orders] AS [Extent1]
    )  AS [Project1]
    WHERE ([Project1].[C1] IN (cast(0 as bigint), ...repeated 9998 times..., cast(0 as bigint))) AND ([Project1].[C1] IS NOT NULL)

Using 100 ids will generate the following sql:
SELECT
    [Extent1].[Id] AS [Id],
    [Extent1].[ExternalId] AS [ExternalId],
    [Extent1].[Price] AS [Price],
    [Extent1].[AddedDateTime] AS [AddedDateTime],
    [Extent1].[ModifiedDateTime] AS [ModifiedDateTime],
    [Extent1].[Trigger] AS [Trigger],
    [Extent1].[Active] AS [Active]
    FROM [dbo].[Orders] AS [Extent1]
    WHERE [Extent1].[Id] IN (cast(0 as bigint), ...repeated 98 times... cast(0 as bigint))

I don't know the exact threshold when to expect Entity Framework to change the query plan but it would nice if SqlBuilder could parse the updated query.

I know this is old, but SQL Server limit is 2100 parameters

This item will be addressed in the next release.
@PabloFerroDev: The code does not use parameters but instead relies on the SQL generated from an IQuerable object. I don't think we need to worry about this limitation then?

This issue was addressed in v1.8.3


Macro: After pressing Snake mode, attachment points stick out in different directions and not attached to the bonds

Steps to Reproduce

Switch to Macro mode
Make monomers sequence connected by bonds
Hover over monomer and move away mouse cursor when bonds freezes
Press Snake mode

Actual behavior
After pressing Snake mode, attachment points stick out in different directions and not attached to the bonds.
Expected behavior
After pressing Snake mode, bonds are connected to monomers and attachment points do not stick out in different directions.
Screenshots
https://github.com/epam/ketcher/assets/62464241/1a107c96-e30a-4f75-9b89-f579294707c3
Desktop (please complete the following information):

OS: Windows 11
Browser Chrome
Version 112.0.5615.138 (Official Build) (64-bit)

Ketcher version
[Version 2.18.0-rc.1]

Test added to the automation table.

Bug is still reproducing

Verified as fixed for CI Version
2.21.0-rc.1 Build at 2024-04-26
Indigo Toolkit
Version 1.20.0-dev.1.25-gafde2b35-wasm32-wasm-clang-12.0.0
OS: Windows 11
Browser Chrome
Version 112.0.5615.138 (Official Build) (64-bit)

Tested on release 2.21.0-rc.2
Fixed.
https://github.com/epam/ketcher/assets/62464241/c4e05701-4c96-4b8c-932a-50a26064c7ad


Implement and use an abstraction that represents a multi-buffer workspace

This seems Ok as a hotfix. However we should hide details in some suitable abstraction instead hacky code here and there. In this specific case, I can propose some class that can represents metrics of a workspace that logically consists of two sub-buffers, each with its own size and alignment. Very basic example:
WorkspaceBuf2Traits wt(size_0, size_1, alignment_1);
...
wt.GetSize(); // total workspace size
wt.GetOffset1(); // offset of subbuffer 1

Originally posted by @atamazov in https://github.com/ROCmSoftwarePlatform/MIOpen/issues/1324#issuecomment-985808818

FYI C++ features related to alignment: https://en.cppreference.com/w/cpp/memory/align

OK, I will do it.

@atamazov
Kernel arguments are a great example of such abstraction. Everything has already been thought up, just need to add a buffer to save pointers.
https://github.com/ROCmSoftwarePlatform/MIOpen/blob/c701af3ba83f8fb99d7efab30ee0b22de57f2f42/src/include/miopen/hipoc_kernel.hpp#L140-L159


Add tx/rx packets checkpoint in POWER-HIBERNATE-SRIOV case

Add a checkpoint in POWER-HIBERNATE-SRIOV case:
After resuming, verify the VF NIC tx/rx packets keep increasing.(Bug 1876527 - [Azure][RHEL-8]TX/RX packets stop increasing after hibernation/resume in VM with CX4 VF NIC)

This bug hasn't been fixed yet so if the VF card is CX4 this case will fail in RHEL-8.3.

Verify VF tx_queue and interrupt only if VF NIC exists.

Azure test result:

CX3 card (the result is PASS)

09/11/2020 02:16:22 : [INFO ] Successfully verified TX packets increasing
09/11/2020 02:16:22 : [INFO ] Successfully verified RX packets increasing

[LISAv2 Test Results Summary]
Test Run On           : 09/11/2020 01:26:29
Test Category         : Functional
Total Test Cases      : 2 (2 Passed, 0 Failed, 0 Aborted, 0 Skipped)
Total Time (dd:hh:mm) : 0:0:51

   ID TestArea             TestCaseName                                                                TestResult TestDuration(in minutes)
-------------------------------------------------------------------------------------------------------------------------------------------
    1 POWER                POWER-HIBERNATE                                                                   PASS                20.17
      OsVHD: http://walaautol2.blob.core.windows.net/vhds/RHEL-8.3.0-20200909.1.vhd, OverrideVMSize: Standard_D8s_v3, TestLocation: eastus2, VMGeneration: 1, Kernel Version: 4.18.0-235.el8.x86_64
    2 POWER                POWER-HIBERNATE-SRIOV                                                             PASS                 21.8
      Networking: SRIOV, OsVHD: http://walaautol2.blob.core.windows.net/vhds/RHEL-8.3.0-20200909.1.vhd, OverrideVMSize: Standard_D8s_v3, TestLocation: eastus2, VMGeneration: 1, Kernel Version: 4.18.0-235.el8.x86_64

CX4 card (the result is FAIL)

09/11/2020 03:25:40 : [ERROR] First collected TX packets: 2529. Second collected TX packets: 2529
09/11/2020 03:25:40 : [ERROR] EXCEPTION : TX packets stopped increasing after waking up. at line: 318

[LISAv2 Test Results Summary]
Test Run On           : 09/11/2020 02:59:33
Test Category         : Functional
Total Test Cases      : 1 (0 Passed, 1 Failed, 0 Aborted, 0 Skipped)
Total Time (dd:hh:mm) : 0:0:28

   ID TestArea             TestCaseName                                                                TestResult TestDuration(in minutes)
-------------------------------------------------------------------------------------------------------------------------------------------
    1 POWER                POWER-HIBERNATE-SRIOV                                                             FAIL                22.55
      Networking: SRIOV, OsVHD: http://walaautol2.blob.core.windows.net/vhds/RHEL-8.3.0-20200909.1.vhd, OverrideVMSize: Standard_D8s_v3, TestLocation: eastus2, VMGeneration: 1, Kernel Version: 4.18.0-235.el8.x86_64

Signed-off-by: Yuxin Sun<EMAIL_ADDRESS>

About "7. [SRIOV]Verify the tx_queue count and interrupts count are not changed":
After resuming, some of the MSI interrrupt counters in /proc/interrupts should also keep increasing, but the script here thinks "Tx queue counts changed after waking up" is an error?

I saw queue counters reset after VM resume. I am not sure if this requirement is correct. The only true requirement is counters increasing up on the traffic after VM resume.

About "7. [SRIOV]Verify the tx_queue count and interrupts count are not changed":
After resuming, some of the MSI interrrupt counters in /proc/interrupts should also keep increasing, but the script here thinks "Tx queue counts changed after waking up" is an error?

Hi @dcui,
Thanks for reviewing! Hi @juhlee-microsoft , could you please help to have a look? I just added the intro here but I don't know much about this checkpoint. Thanks!

About "7. [SRIOV]Verify the tx_queue count and interrupts count is not changed":
After resuming, some of the MSI interrrupt counters in /proc/interrupts should also keep increasing, but the script here thinks "Tx queue counts changed after waking up" is an error?

Hi @dcui,
Thanks for reviewing! Hi @juhlee-microsoft , could you please help to have a look? I just added the intro here but I don't know much about this checkpoint. Thanks!

If I remember correctly, I took the tx/rx queue counts from ethtool statistics counts. I verified the queue count of each interface, they should be the same before and after hibernation/resume. This means the resume process does not screw up the interface queue setup. So here is my comment. The increment of MIS interrupt counters in /proc/interrupts is correct. It supposed to be. And the tx/rx queue counts should be the same.

About "7. [SRIOV]Verify the tx_queue count and interrupts count is not changed":
After resuming, some of the MSI interrrupt counters in /proc/interrupts should also keep increasing, but the script here thinks "Tx queue counts changed after waking up" is an error?

Hi @dcui,
Thanks for reviewing! Hi @juhlee-microsoft , could you please help to have a look? I just added the intro here but I don't know much about this checkpoint. Thanks!

If I remember correctly, I took the tx/rx queue counts from ethtool statistics counts. I verified the queue count of each interface, they should be the same before and after hibernation/resume. This means the resume process does not screw up the interface queue setup. So here is my comment. The increment of MIS interrupt counters in /proc/interrupts is correct. It supposed to be. And the tx/rx queue counts should be the same.

Yes, Ju is correct.

About "7. [SRIOV]Verify the tx_queue count and interrupts count is not changed":
After resuming, some of the MSI interrrupt counters in /proc/interrupts should also keep increasing, but the script here thinks "Tx queue counts changed after waking up" is an error?

Hi @dcui,
Thanks for reviewing! Hi @juhlee-microsoft , could you please help to have a look? I just added the intro here but I don't know much about this checkpoint. Thanks!

If I remember correctly, I took the tx/rx queue counts from ethtool statistics counts. I verified the queue count of each interface, they should be the same before and after hibernation/resume. This means the resume process does not screw up the interface queue setup. So here is my comment. The increment of MIS interrupt counters in /proc/interrupts is correct. It supposed to be. And the tx/rx queue counts should be the same.

Hi @juhlee-microsoft ,
Thanks for your explanation! Let me try to confirm here:

I move the tx_queue_count and interrupt_count verification parts into "VF only" branch because in the origin code it only collect tx_queue_count and interrupt_count if ($vfname -ne ''). Is it as expected?
In the origin code it's:

			if ($interrupt_count1 -ne $interrupt_count2) {
				Write-LogErr "Before hibernation, MSI interrupts of mlx driver - $interrupt_count1. After waking up, MSI interrupts of mlx driver - $interrupt_count2"
				throw "MSI interrupt counts changed after waking up."
			} else {
				Write-LogInfo "Successfully verified MSI interrupt counts matching"
			}

If the correct result is "MSI interrupts should keep increasing", this should be "if ($interrupt_count1 -eq $interrupt_count2) { throw xxx }" right?
3. With the current code the test has passed, which means the current result is "$interrupt_count1 is equal to $interrupt_count2". Is there any bug here?(I'll double check it manually later)
Thanks again!

If the correct result is "MSI interrupts should keep increasing", this should be "if ($interrupt_count1 -eq $interrupt_count2) { throw xxx }" right?
Correct. We should report an error if $interrupt_count1 == $interrupt_count2.
Actually, IMO it's better to do this: after resuming, get interrupt_count1, sleep 10 seconds, and get interrupt_counte2, and we should report an error if interrupt_count1 <= interrupt_count2.

With the current code the test has passed, which means the current result is "$interrupt_count1 is equal to $interrupt_count2". Is there any bug here?(I'll double check it manually later)
If the NIC is CX4, then yes, there is a bug: https://bugzilla.redhat.com/show_bug.cgi?id=1876527

If the correct result is "MSI interrupts should keep increasing", this should be "if ($interrupt_count1 -eq $interrupt_count2) { throw xxx }" right?

Correct. We should report an error if $interrupt_count1 == $interrupt_count2.
Actually, IMO it's better to do this: after resuming, get interrupt_count1, sleep 10 seconds, and get interrupt_counte2, and we should report an error if interrupt_count1 <= interrupt_count2.

With the current code the test has passed, which means the current result is "$interrupt_count1 is equal to $interrupt_count2". Is there any bug here?(I'll double check it manually later)

If the NIC is CX4, then yes, there is a bug: https://bugzilla.redhat.com/show_bug.cgi?id=1876527

No it's also happened in CX5. But in CX5 the tx/rx packets indeed keep increasing. So it looks like the "interrupt_count" and "tx/rx packets" are not the same thing.
Here's the command to get the interrupt_count:
cat /proc/interrupts | grep -i mlx | grep -i msi | wc -l

It seems that this command is used to get the IRQs but not the interrupts value?

If the correct result is "MSI interrupts should keep increasing", this should be "if ($interrupt_count1 -eq $interrupt_count2) { throw xxx }" right?

Correct. We should report an error if $interrupt_count1 == $interrupt_count2.
Actually, IMO it's better to do this: after resuming, get interrupt_count1, sleep 10 seconds, and get interrupt_counte2, and we should report an error if interrupt_count1 <= interrupt_count2.

With the current code the test has passed, which means the current result is "$interrupt_count1 is equal to $interrupt_count2". Is there any bug here?(I'll double check it manually later)

If the NIC is CX4, then yes, there is a bug: https://bugzilla.redhat.com/show_bug.cgi?id=1876527

No it's also happened in CX3. But in CX3 the tx/rx packets indeed keep increasing. So it looks like the "interrupt_count" and "tx/rx packets" are not the same thing.
Here's the command to get the interrupt_count:
cat /proc/interrupts | grep -i mlx | grep -i msi | wc -l

It seems that this command is used to get the IRQs but not the interrupts value? For this command, the interrupt_count should not be changed before and after hibernation.

"IRQs" and the "interrupt_ount" mean the same thing. For both CX3 and CX4, after resuming, both the TX/RX packets and the interrupt_count should keep increasing.

If the correct result is "MSI interrupts should keep increasing", this should be "if ($interrupt_count1 -eq $interrupt_count2) { throw xxx }" right?

Correct. We should report an error if $interrupt_count1 == $interrupt_count2.
Actually, IMO it's better to do this: after resuming, get interrupt_count1, sleep 10 seconds, and get interrupt_counte2, and we should report an error if interrupt_count1 <= interrupt_count2.

With the current code the test has passed, which means the current result is "$interrupt_count1 is equal to $interrupt_count2". Is there any bug here?(I'll double check it manually later)

If the NIC is CX4, then yes, there is a bug: https://bugzilla.redhat.com/show_bug.cgi?id=1876527

No it's also happened in CX3. But in CX3 the tx/rx packets indeed keep increasing. So it looks like the "interrupt_count" and "tx/rx packets" are not the same thing.
Here's the command to get the interrupt_count:
cat /proc/interrupts | grep -i mlx | grep -i msi | wc -l

It seems that this command is used to get the IRQs but not the interrupts value? For this command, the interrupt_count should not be changed before and after hibernation.

"IRQs" and the "interrupt_ount" mean the same thing. For both CX3 and CX4, after resuming, both the TX/RX packets and the interrupt_count should keep increasing.

Hi @dcui @juhlee-microsoft ,
I just checked it manually in a CX3 VM and the interrupt_count before and after hibernation are both 9. This command:
cat /proc/interrupts | grep -i mlx | grep -i msi | wc -l

Please notice that it counts the lines but not value. I really cannot understand that why it should keep increasing...

Before hibernate:
[root@LISAv2-OneVM-walaautodev-KO28-20200911222910-role-0 ~]# cat /proc/interrupts | grep -i mlx | grep -i msi |wc -l
9

After hibernate:
[root@LISAv2-OneVM-walaautodev-KO28-20200911222910-role-0 ~]# cat /proc/interrupts | grep -i mlx | grep -i msi |wc -l
9

[root@LISAv2-OneVM-walaautodev-KO28-20200911222910-role-0 ~]# cat /proc/interrupts | grep -i mlx | grep -i msi |
 24:          0          0        405          0          0          0       4037          0  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-async@pci:56e8:00:02.0
 25:          5          0          0        163          9          0          0        255  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-1@56e8:00:02.0
 26:          0         81          0          0        546          0          0          0  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-2@56e8:00:02.0
 27:          0          0          3          0         45          1          0        946  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-3@56e8:00:02.0
 28:          0          0        325          9          0          0          1          0  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-4@56e8:00:02.0
 29:          0          0          0          0          5        438          0          1  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-5@56e8:00:02.0
 30:          0          1          0        332          0          4          0          0  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-6@56e8:00:02.0
 31:        281          0          1          0          0          0          3          0  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-7@56e8:00:02.0
 32:          0        350          0          1          0          0          0          0  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-8@56e8:00:02.0

Before hibernate:
[root@LISAv2-OneVM-walaautodev-KO28-20200911222910-role-0 ~]# cat /proc/interrupts | grep -i mlx | grep -i msi |wc -l
9

After hibernate:
[root@LISAv2-OneVM-walaautodev-KO28-20200911222910-role-0 ~]# cat /proc/interrupts | grep -i mlx | grep -i msi |wc -l
9

[root@LISAv2-OneVM-walaautodev-KO28-20200911222910-role-0 ~]# cat /proc/interrupts | grep -i mlx | grep -i msi |
 24:          0          0        405          0          0          0       4037          0  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-async@pci:56e8:00:02.0
 25:          5          0          0        163          9          0          0        255  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-1@56e8:00:02.0
 26:          0         81          0          0        546          0          0          0  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-2@56e8:00:02.0
 27:          0          0          3          0         45          1          0        946  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-3@56e8:00:02.0
 28:          0          0        325          9          0          0          1          0  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-4@56e8:00:02.0
 29:          0          0          0          0          5        438          0          1  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-5@56e8:00:02.0
 30:          0          1          0        332          0          4          0          0  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-6@56e8:00:02.0
 31:        281          0          1          0          0          0          3          0  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-7@56e8:00:02.0
 32:          0        350          0          1          0          0          0          0  Hyper-V PCIe MSI<PHONE_NUMBER>-edge      mlx4-8@56e8:00:02.0

I think he meant the number of counters is static but the counter values are increasing. If you go back to the original condition, I wanted to check the resume process did not break down the number of interrupts. If it was 9, then it should be 9 after resume. Dexuan and I explained the counter values like 4037 should be increasing. I assume it could be 2000 or 3000 before hibernation, after resume, it keeps increasing.

I think he meant the number of counters is static but the counter values are increasing.

Sorry for the confusion. :-) Yes, I mean after resuming we should have the same amount of IRQ lines (i.e. cat /proc/interrupts | grep -i mlx | grep -i msi |wc -l), but at least some of the counters of the IRQ lines should keep increasing, since the VF NIC generates interrupts when it transmits or redeives Ethernet frames.

I think he meant the number of counters is static but the counter values are increasing.

Sorry for the confusion. :-) Yes, I mean after resuming we should have the same amount of IRQ lines (i.e. cat /proc/interrupts | grep -i mlx | grep -i msi |wc -l), and at least some of the counters of the IRQ lines should keep increasing, since the VF NIC generates interrupts when it transmits or redeives Ethernet frames.

Thanks @dcui and @juhlee-microsoft ! Much clearer now :) So there's no need to change code here right?

I think he meant the number of counters is static but the counter values are increasing.

Sorry for the confusion. :-) Yes, I mean after resuming we should have the same amount of IRQ lines (i.e. cat /proc/interrupts | grep -i mlx | grep -i msi |wc -l), and at least some of the counters of the IRQ lines should keep increasing, since the VF NIC generates interrupts when it transmits or redeives Ethernet frames.

Thanks @dcui and @juhlee-microsoft ! Much clearer now :) So there's no need to change code here right?

Correct.


Question: best strategy for parsing bash command substitution

Hi,
I am writing a Bash parser using Chevrotain which has been quite fun so far. I don't have previous experience with compilers so having this DSL is very helpful.
I have been able to cover many basic cases, but I am stuck in one case so would like to ask your recommendation. If you think this type of issue should not be here (e.g. in StackOverflow instead), apologies and feel free to close it.
I would like to be able to parse command substitution, which in Bash can happen in many forms:
foo $(echo bar)
e$(echo c)h$(echo o) foo

This should trigger an error echo $( (unterminated command substitution) but this is fine: echo $\(.
So I have been thinking for a while: Should be the logic to extract this be in the parser or in the visitor?
If in the parser, I can't think of a regex that would include the command substitutions (which can have spaces) when within other characters.
If in the visitor, then not sure how would the fragments inside the parentheses be differentiated.
Thought of using a custom token matcher (i.e. using a function in the pattern property of the createToken function) for the IDENTIFIER token, but haven't managed to make it work, the parser gets stuck (probably misuse, following the example for this).
Hope the question makes some sense, it is mostly for a recommendation of how would you approach generating the CST for this.
Thanks a lot for the library. Cheers

Hello @igncp
The github issues can be used for these types of questions...
is not the command substitution just a form of grammar?
commandSub:
   "$(" command ")"
;

command:
  echoCommand |
  catCommand |
  lsCommand
;

echoCommand:
  "echo" atomic
;

atomic:
  stringLiteral |
  commandSubstition
;

In which case, you don't have to "consume" the whole command substitution in a single regExp
but define it as a parser rule. It seems similar to a parenthesis rule in a math expression grammar.

Thanks for the so quick reply. Will try this approach.
I can see it working on the first case, but can't understand it well yet for the second case: e$(echo c)h$(echo o) (two command substitution, one top-level atomic?). Will take some time to try so closing this for now :clap:

I can see it working on the first case, but can't understand it well yet for the second case
e$(echo c)h$(echo o)

I do not fully understand this bash syntax.
What is the second case?

e$(echo c)

is this equivalent to (with space?)

e $(echo c)

Naively I see two commands using substitution for one of their elements one after the other.
meaning that it is just a  sequence:
commands:
   command*
;

But maybe I misunderstand something here?

Yeah Bash syntax is a bit weird sometimes.
This: e$(echo c)h$(echo o) foo would translate into: echo foo
It is not the same as: e $(echo c) h $(echo o) which would translate into: e c h o (command e with options c, h o.
Not expecting that the parser would resolve the command substitution expressions (I guess that logic would be in the interpreter). But trying to get a different parser result for e$(echo c)h$(echo o) foo than for e $(echo c) h $(echo o).
Ideally for e$(echo c)h$(echo o) foo it would generate: 2 CommandBlock (for example, not the same name using in the parser) and in e $(echo c) h $(echo o) 4 CommandBlock.

It seems like the problem is related to whitespace sensitivity.
You want to recognize different syntax depending on the existence or lack thereof of whitespace in
a specific "point". But you also want the grammar to be mostly white space insensitivte
The naive way to do so is to not ignore whitespace, so you would have a conditional
whitespace rule between every two grammar constructs. and in the one place you want to enforce the whitespace you would not add that conditional grammar rule.
The smarter way is to continue ignoring whitespace in 99% of the grammar
and conditionally enable certain paths depending on whitespace in specific places in the grammar.
This is done using grammar GATES, you can see an example in the CSS grammar
https://github.com/SAP/chevrotain/blob/master/examples/grammars/css/css.js#L434-L455

Aha, that looks promising. Read about the GATES concept in the docs but not about the this.LA so this example is very helpful.All the rules I've been using so far are MANY, AT_LEAST_ONCE, SUBRULE, OPTION, OR and CONSUME, so learning it brings more flexibility.
I will also take your advice about ignoring whitespaces for the parser rules.
Will try this out on the weekend so feel free to close the issue (fine by me if open too). Thanks for taking the time.

Great.
I will close it for now and you can re-open it if you have any other questions. 😄

Hi @igncp
The behavior is as expected because every match is greedyand tries to consume as many tokens as possible.
To resolve this you will need to avoid matching a '$' followed by a '(' in the identifier regExp.
The "best" way to accomplish this would probably be using negative lookahead assertion.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#assertions

Other possible ways:

Never allow an Identifier to end with a $ sign:
   /[a-z$]*[a-z]/

Implement a custom token pattern and write the logic yourself.

Understood, much appreciated the quick and complete answer.

Cheers 😄


.gitignore not being properly parsed

If I use the "!" notation to reinclude subdirectories ag doesn't cope.
eg my .gitignore
*
!/editor-config
!/editor-config/*

ag will not search editor-config. This is quite a major issue preventing me using helm-ag instead of helm-rg.

Here's a "me too!" from me. I ran into this issue and found this page via google.

Here's a "me too!" from me. I ran into this issue and found this page via google.

Just hit this today and though not ideal the -u works around the problem.  Small price to pay for an amazing tool.

Just hit this today and though not ideal the -u works around the problem. Small price to pay for an amazing tool.

Yup it is / was. I moved onto ripgrep which parses globs properly in a hierarchical manner. And it's faster I think: certainly I had more success inside emacs with counsel-ripgrep over other implementations.

This is not the only problem with .gitignore.  I'm finding if I have a path starting with '/' (eg, '/node_modules') and I run 'ag' from the same directory as the .gitignore, it correctly ignore the node_modules folder.
However if I run the same query from the parent directory, it misinterprets the '/node_modules' and proceeds to scan the '/repo/node_modules' folder.
I would expect a path starting with a '/' in a .gitignore (or any ignore file) would implicitly mean <subdir>/exclusion where <subdir> is the path to the ignore file.
Does this make sense?

Sorry for hijacking this, but for me, .gitignore doesn't work at all (see #1381), not even for a simple entry like target. I have to symlink it to .ignore to make it work.
Apparently for you it works without the link? Could you quickly confirm?


New Communication addresses for SMV and GSE don't respect AccessPoints in IEDs

Describe the bug
Disclaimer: It is late, I am tired - if this doesn't sound right, it probably isn't, gentle mockery appreciated! :wink:
When we add a SubNetwork and then add ConnectedAPs to it, we instantiate GSE and SMV elements in the communication section.
After some (more, belated) testing, I am not sure we do this correctly.
If I have access points for an IED: S1, G1, M1 where:

S1 - MMS traffic
G1 - GOOSE traffic
M1 - SV traffic

I take my SCD file, I delete all Subnetworks. I then add a new Subnetwork.
I then add a ConnectedAP and choose a S1 AccessPoint which only has ReportControlBlocks in it (no SMV and no GOOSE).
I do not expect to see GSE or SMV elements instantiated.
However they are.
I think this may be because the code doesn't include the AccessPoint when using the selector for the SampledValueControl or GSEControl blocks and goes across the whole IED.
For instance, in:
https://github.com/openscd/open-scd/blob/d5f8bb7ed8ceeb9c2ca14a91d3624afda7a43513/src/wizards/connectedap.ts#L54-L88
In L#69 we do not do any AccessPoint check. GSEControls are similar.
If I am correct, we need an additional check:
Instead of:
Array.from(ied?.querySelectorAll('SampledValueControl') ?? [])

We need something more like:
Array.from(ied?.querySelectorAll('AcessPoint[name="connectedAp.getAttribute('apName')"] > SampledValueControl') ?? [])

To Reproduce
XAT_Prot1_MAC_Updated_SEL_Sub.scd.zip
Steps to reproduce the behavior:

Open the attached scd file.
Delete all subnetworks.
Add a new subnetwork, e.g. 'Test'.
Add a XAT_2202_M1 IED ConnectedAPs which ends in "S1". This only has ReportControl blocks. There are no ServerAt directives.
After doing this, look at the first item in the Communication section. Both GSE and SMV are instantiated against this AccessPoint.

Expected behavior
When a ConnectedAP is created, we can only instantiate control blocks (e.g. ReportControl, GSEControl, SampledValueControl) which match the ConnectedAP apName within the IEDs AccessPoint name.
Environment
Using openscd.github.io

I am not sure. I was of the impression that one IED can only have on Server element and that if you want to have two access points acting as a server you can define on the other on a ServerAt element pointing to an existing element.
The files that you have posted do have a server per access point. I have to do a bit research where I got this idea from and will come back.
However: the solution you are proposing will not work with vendors using the ServerAt element. E.g. for SIEMENS IEDs this is the case.

I have not found any restriction in one Server. I think I got the idea from object references. They go
IEDnameLdevice/prefixLogicalNodeInst.controlBlockName
I wonder if it is possible to have the same control block in the same logical device in two separate serves on two separate access points.

I have not found any restriction in one Server. I think I got the idea from object references. They go
IEDnameLdevice/prefixLogicalNodeInst.controlBlockName
I wonder if it is possible to have the same control block in the same logical device in two separate serves on two separate access points.

I sometimes think when I look at the implementation required to meet Part 6, that the standard authors should have been required to provide an open-source minimal API implementation in some language before being allowed to say, "this is how it should be done" :stuck_out_tongue_winking_eye:


Use component adapter to fetch workspace envs in autoselection module

Please also see the review comments for more context.

Codecov Report

Merging #15173 (784b1e0) into main (767c52c) will decrease coverage by 0%.
The diff coverage is 45%.

@@          Coverage Diff           @@
##            main   #15173   +/-   ##
======================================
- Coverage     65%      65%   -1%
======================================
  Files        560      560
  Lines      26551    26572   +21
  Branches    3813     3816    +3
======================================
+ Hits       17289    17300   +11
- Misses      8556     8564    +8
- Partials     706      708    +2

Impacted Files
Coverage Δ

src/client/interpreter/contracts.ts
100% <ø> (ø)

src/client/pythonEnvironments/legacyIOC.ts
32% <5%> (-4%)
:arrow_down:

...nt/interpreter/autoSelection/rules/workspaceEnv.ts
98% <100%> (+<1%)
:arrow_up:

...se/locators/lowLevel/workspaceVirtualEnvLocator.ts
100% <100%> (ø)

src/client/common/platform/fileSystemWatcher.ts
22% <0%> (ø)

.../pythonEnvironments/common/externalDependencies.ts
64% <0%> (+3%)
:arrow_up:

...pythonEnvironments/common/pythonBinariesWatcher.ts
52% <0%> (+17%)
:arrow_up:

Codecov Report

Merging #15173 (784b1e0) into main (767c52c) will decrease coverage by 0%.
The diff coverage is 45%.

@@          Coverage Diff           @@
##            main   #15173   +/-   ##
======================================
- Coverage     65%      65%   -1%
======================================
  Files        560      560
  Lines      26551    26572   +21
  Branches    3813     3816    +3
======================================
+ Hits       17289    17300   +11
- Misses      8556     8564    +8
- Partials     706      708    +2

Impacted Files
Coverage Δ

src/client/interpreter/contracts.ts
100% <ø> (ø)

src/client/pythonEnvironments/legacyIOC.ts
32% <5%> (-4%)
:arrow_down:

...nt/interpreter/autoSelection/rules/workspaceEnv.ts
98% <100%> (+<1%)
:arrow_up:

...se/locators/lowLevel/workspaceVirtualEnvLocator.ts
100% <100%> (ø)

src/client/common/platform/fileSystemWatcher.ts
22% <0%> (ø)

.../pythonEnvironments/common/externalDependencies.ts
64% <0%> (+3%)
:arrow_up:

...pythonEnvironments/common/pythonBinariesWatcher.ts
52% <0%> (+17%)
:arrow_up:

@ericsnowcurrently I disagree that we need to do this now. This is much simpler, and I don't see why we need to replicate the entire logic of autoselection in the component adapter, when we can simply do what we have been doing, which is just replicate the methods from the new discovery component which are needed. In this case: getWorkspaceEnvironments().

@ericsnowcurrently I disagree that we need to do this now. This is much simpler, and I don't see why we need to replicate the entire logic of autoselection in the component adapter, when we can simply do what we have been doing, which is just replicate the methods from the new discovery component which are needed. In this case: getWorkspaceEnvironments().


Understanding Android Studio Project Structure

Understanding Android Studio Project Structure
Introduction
Android Studio is the official IDE (Integrated Development Environment) developed by JetBrains community which is freely provided by Google for android app development.
In this tutorial, we will learn about android app project structure created using android studio, during this process we will learn about different android file structure like build.gradle ,gradlew and folders like app/src etc.
Key takeaways:

An understanding on android studio project structure
Knowledge on how to create a new project
Understanding all the files and folders contained in android studio

References:
Tutorial wing

Good afternoon and thank you for submitting your topic suggestion. @anne-sogoli
Your topic form has been entered into our queue and should be reviewed (for approval) as soon as a content moderator is finished reviewing the ones in the queue before it.

We thank you for submitting your topic. After some careful consideration it struck us that this topic may be a bit over saturated throughout other blog sites and official documentations. Feel free to suggest another topic. Thanks


[ENH] Convert data automatically

Closes #170.

Changes proposed in this pull request:

Plans for automatic conversion have been dropped, so I'm going to close this.


Automatically infer the types and use better Column names like offset and limit

What do you want to change?
https://docs.sqlc.dev/en/stable/howto/named_parameters.html
Not working for postgresql.
original:
...
when 'all' = $1::varchar then true
...

OFFSET $2::int LIMIT $3::int;
tried both ways in docs :
sqlc.arg(exchange) and @exchange
but get errors:
queries/queries.sql:1:1: could not determine data type of parameter $1
WHY bother? Because its annoying/unclear to have to use the following in the code.
    Column1 string
    Column2 int32
    Column3 int32

What database engines need to be changed?
PostgreSQL
What programming language backends need to be changed?
Go

In this old thread Kyle mentioned this would be broken indeed: https://github.com/sqlc-dev/sqlc/pull/209


iOS can't build after migrate to swift 4.2

I really can't build when using<EMAIL_ADDRESS>I'm using add-swift-support version 4.2, and x-code version 10.2.1 (in x-code, swift 4.2 is selected).
My platform is<EMAIL_ADDRESS>When I try build I get the follow errors:
error: QrScanner-Bridging-Header.h file not found

The following build commands failed:
     PrecompileSwiftBridgingHeader normal armv7
     CompileSwiftSources normal armv7 com.apple.xcode.tools.swift.compiler
     PrecompileSwiftBridgingHeader normal arm64

If I remove qrscanner plugin works perfectly.
There is my config.xml iOS:
<preference name="UseSwiftLanguageVersion" value="5" />

And my plugin list:
cordova-plugin-add-swift-support 2.0.2 "AddSwiftSupport"
cordova-plugin-badge 0.8.8 "Badge"
cordova-plugin-datepicker 0.9.3 "DatePicker"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-dialogs 2.0.1 "Notification"
cordova-plugin-firebase 2.0.5 "Google Firebase Plugin"
cordova-plugin-geolocation 4.0.1 "Geolocation"
cordova-plugin-local-notification 0.9.0-beta.2 "LocalNotification"
cordova-plugin-qrscanner 3.0.1 "QRScanner"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova.plugins.diagnostic 4.0.12 "Diagnostic"

Already tried with swift 4.2.0 and 5 too, not worked.
Please help?

Try with this version of: <plugin name="cordova-plugin-add-swift-support" spec="1.7.2" />

Try with this version of: <plugin name="cordova-plugin-add-swift-support" spec="1.7.2" />

mac:OvoFacil Desenvolvimento$ cordova plugin
cordova-plugin-add-swift-support 1.7.2 "AddSwiftSupport"
cordova-plugin-badge 0.8.8 "Badge"
cordova-plugin-bluetooth-peripheral-usage-description 1.0.0 "Bluetooth Peripheral Usage Description"
cordova-plugin-bluetoothle 4.5.5 "Bluetooth LE"
cordova-plugin-datepicker 0.9.3 "DatePicker"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-dialogs 2.0.1 "Notification"
cordova-plugin-firebase 2.0.5 "Google Firebase Plugin"
cordova-plugin-geolocation 4.0.1 "Geolocation"
cordova-plugin-local-notification 0.9.0-beta.2 "LocalNotification"
cordova-plugin-qrscanner 3.0.1 "QRScanner"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova.plugins.diagnostic 4.0.12 "Diagnostic"

Having same issue.
Cordova version: 8.1.2
iOS platform version: 5.0.1

Seems to be related to cordova-iOS version. I'm testing with 4.5.5. Version 5 has breaking changes (I guess).

For ios 5.0.0+ try adding to config.xml:
<preference name="SwiftVersion" value="4.2" />


T8codeMesh: Open TODOs

This issues compiles a list of open TODOs:

[ ] 3D support
[ ] MPI parallelization support

Duplicate issue https://github.com/trixi-framework/Trixi.jl/issues/1556


samuela packages: add mandatory PR notice

Description of changes
I frequently find that changes are made to packages that I maintain without my notice or consent. This behavior is intrusive and disruptive to maintenance, esp. considering that these changes are often poorly conceived. This PR simply adds a comment to the beginning of the files of packages that I maintain notifying contributors that changes made to these packages are expected to go through the usual PR process.
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

If no one objects I'll go ahead and merge tomorrow

This has no support at all in the tooling used by the python ecosystem maintainers which gets used in python-updates runs. We could probably add support for it or just manually skip those packages. Nothing unsolvable.
But more importantly depending on how strict those packages pin their requirements this could make your maintainer situation (far) worse. Dependencies will still get updates and your packages will then just stay broken regardless if it would be easily fixable or not.
Also please keep in mind that you have really high standards for the unstable channel of a distributon. On Debian unstable and sometimes even on testing the dependencies of packages haven't been promoted yet, making it impossible to update/install some packages.
I suggested you already multiple ways how to collaborate more closely in the python-updates runs where you can always chime in and check if packages  would break and suggest ways how to fix them (which can be reverts of update) ahead of them breaking on staging. So far I couldn't get you excited about that.
The only suggestions I got from your posts where that pythonPackages moves a lot slower or python-updates runs would stop. With the current maintainer participation in pythonPackages that won't work. Also I suspect that would move the maintenance burden more onto staging people. If you are looking for a slower moving channel I highly recommend you to consider switching to stable where breaking changes are rare. Or you could manage your python packages in a local project with poetry2nix where you can update entirely on our speed.
Finally I don't think this will make collaboration easier or better and currently I am against merging this as is.

I'm not happy with the phrasing of this message, but I very much sympathize with the intent. That said, it's not clear that this would have prevented any recent breakage and I don't see any recent objectionable commits to these files, except perhaps wandb's patch failure.
It is a truth that there are packages which require more care than average when touching, but the general expectation, which I think is good, is that non-maintainers touching packages is okay. An obvious note that touching a particular package may require lots of time, or particular hardware, or specific knowledge to test properly is very reasonable, along with a request to have someone familiar sign off. I'm just not convinced this is it.
If anything, you do need to clarify that by "maintainer" in the warning you mean somebody listed in the meta.maintainers attribute. I initially read it as thinking that e.g. one of the Python package set maintainers would be a suitable "maintainer" to approve changes, but I'm pretty sure now this is not your intention.
I've put some more thoughts on Matrix too if you want to talk more there.

I'm not happy with the phrasing of this message, but I very much sympathize with the intent. That said, it's not clear that this would have prevented any recent breakage because I don't see any recent objectionable commits to these files, except perhaps wandb's patch failure.

Yeah, if there were a ton of instances where things broke for your packages because of you not being able to review things, I think my opinion on this may be different. I don't agree with this as a solution, because no other packages have it, and I don't think it helps a lot in the long run (I also think the wording is unnecessarily stern). Simple updates can usually be merged without requiring a maintainer's sign off, and any complex changes/things that people are unsure about usually should/do go through the maintainers.

I've put some more thoughts on Matrix too if you want to talk more there.

@tpwrules Were these in private? (I ask since I can't find any messages from you publicly.)

It was in the Nix CUDA room as samuela is a big part of the CUDA maintainers team, and CUDA/data science/ML/etc packages is where a lot of his frustration is centered I think.

I sympathize with the maintainer burdenship. A practical solution would just be to rename all of the files that you don't want to be automatically bumped to something other than default.nix, as we don't want to update packages that are purposefully pinned to a major (or minor) version.

It is frustrating to see packages break over time, and it causes a headache also for me, having rather large environments of complex packages. Having your Python package in python-packages.nix means you get a lot of work done by others for free in the form of dependencies that are provided, but since the ecosystem is so brittle it also means it breaks often, as is the topic here.
I think you need to re-evaluate your expectations. We're talking about the master branch here which is considered unstable. Working with leaf packages that have many dependencies that change a lot and are brittle means you are at risk.
Going forward, I think what we can do is better indicate when large Python updates happen. I don't know how often they happen these days either, but it may be worth reducing how often they happen and perhaps even schedule them. Of course, people that want a rolling release will be unhappy then. Trade-offs.

If anything, you do need to clarify that by "maintainer" in the warning you mean somebody listed in the meta.maintainers attribute. I initially read it as thinking that e.g. one of the Python package set maintainers would be a suitable "maintainer" to approve changes, but I'm pretty sure now this is not your intention.

Good point! Fixed in https://github.com/NixOS/nixpkgs/pull/185079/commits/0e75f96100cc0eff61b7a6b6308cb2074baee327.

Thanks everyone for all your comments. I never expected this change to garner so much attention. I just thought I'd touch on a few notes...
This PR was born out of frustrations from multiple incidents across many months. There was no single individual, breakage, or incident that prompted me to make this change. Instead, it has been more like a "death by a thousand paper cuts" story. I do not think that anyone has been engaging with ill intentions, and I do not take offense to any of the transgressing commits. Nevertheless in order to maintain sanity as a package maintainer, I require the ability to at least stay up-to-date with the changes being made to the code that I am responsible for.
Code reviews are a widely accepted best practice across the industry, not only because they catch bugs but because they are an essential form of information dissemination among people collaborating on a shared codebase. In Nixpkgs, we expect changes to go through the PR process and committing directly to master is strongly looked down upon. Why should staging/python-updates be any different?
Note that I am not opposed to being involved in python-updates. Rather I am never notified when changes in python-updates touch my packages. As a package maintainer I'm left in the dark. I am happy to review PRs targeting staging/python-updates. But please at least send me a PR.

On multiple occassions I came by the CUDA maintainers room on Matrix and mentioned that a python-updates run was commencing. That happened with the intention that all of you could take a look at the changes.
I explicitly mentioned you when I noticed jax/jaxlib needed an update to handle the numpy update, but you don't seem to be reachable via Matrix the last month.
Python-updates tooling touches all packages that have a default.nix below pkgs/development/python-modules/, see Jon's comment here: https://github.com/NixOS/nixpkgs/pull/185079#issuecomment-1204754136. If there is a new version for any of these packages the tooling will touch it.

The stability of master is somewhat orthogonal to the issue this PR is intended to address, and I have already recorded some of my thoughts on stability in "Nixpkgs’s current development workflow is not sustainable". But at the risk of engaging on this tangent, I'll just say: every time python-updates/staging gets merged into master a lot of packages I maintain/rely on are broken. And whenever I file issues or point out these build failures I hear the usual refrain "Your stability expectations are too high". How else should I participate to fix build failures? Should I not file issues?  Should I not submit fixes?
I know that master is unstable. I am reminded of that every month or so. But every time I try to get these builds back to green, it feels like the response is "why? who cares if your builds aren't green?". It's exhausting.

I know that master is unstable. I am reminded of that every month or so. But every time I try to get these builds back to green, it feels like the response is "why? who cares if your builds aren't green?". It's exhausting.

The sustainable way to address this is, why are there so many consistent failures. I generally try to upstream fixes when they are the idiomatic correct thing to do for a given ecosystem.
But I have also given up on certain projects like onnx-runtime as I don't think the culture and trajectory would ever align.

And whenever I file issues or point out these build failures I hear the usual refrain "Your stability expectations are too high". How else should I participate to fix build failures? Should I not file issues?  Should I not submit fixes?

In the past you opened issues in an automated way. Sometimes multiple ones for the same build problem only for different consumers of the package. Please do a minimal amount of debugging and triaging before opening an issue. We don't need an issue for every (temporary) build problem. Also please include logs of the failure. Only linking the failed hydra job is not very time efficient if multiple people need to dig up the same log lines.

I am reminded of that every month or so.

Just to put that into perspective: I am reminded of that multiple times a week and because of that I feel like I started to maintain every other package listed in my configuration.

But I have also given up on certain projects like onnx-runtime as I don't think the culture and trajectory would ever align.

I get the same feeling for many AI/ML projects.

The comment adds nothing that should not be done everywhere already. I'd rather see some efforts to improve the situation nixpkgs-wide, and in a more sustainable way (i.e. some automation; comments are easily ignored).

Now, this is an idea I can get behind! However considering the unusual pushback that I'm receiving for only a handful of comments just on the packages I maintain, I don't see a path forward to doing this automatically and tree-wide, at least at the moment. That said, I'm absolutely open to ideas. Did you have a solution in mind?

My personal vision is to have functional tooling that pings all relevant people, and a merge bot system that allows more granular write access to this repository. Having so many people with write access to the entire repository does not scale well, and is causing problems (including yours). IMHO, the current meta.maintainers approach has failed and we should migrate to some file based code owner approach instead. See #143441 and #155440 for more discussion and experiments on this topic.
I'd like to expand on my "The comment adds nothing that should not be done everywhere already" from above. Specifically, I was referring to "Changes made to this file […] MUST be approved by a member of meta.maintainers before merging." In an ideal world, this would already be the case everywhere. However, many packages are simply unmaintained, or have unresponsive official maintainers and are effectively maintained by somebody else. Therefore, it is difficult to enforce this as a rule, and people have gotten used to work independently of the official maintainers. Some time, as a community, we will have to have a talk about what it means to be a nixpkgs package maintainer. We will need some proper expectation management and then also enforce rules that make sure that all packages are well maintained. I've already seen some occasional private conversations on this topic (you are far from being the only frustrated person) and I hope that they will lead to an RFC eventually. As a tangential, there is also https://github.com/NixOS/rfcs/pull/127 which should lay the ground for automatically ensuring that all our packages are properly maintained.

I think it's best to close this PR, please try adding yourself in .github/CODEOWNERS instead. Let me know if this ends up not working well for you (preferably in #143441).

@piegamesde Thanks for you thoughtful response. It sounds like this is a known issue across the community.
I'm hesitant to go the CODEOWNERS route in this case because of all the failures brought up in #143441. What's the official doctrine on CODEOWNERS, meta.maintainers and the like? Is adding myself to CODEOWNERS mutually exclusive to the comment-based approach in this PR?

I'm hesitant to go the CODEOWNERS route in this case because of all the failures brought up in #143441

Basically you might receive a notification to much when people do a bad rebase and force push and none for very big PRs like the staging ones. But it is the best tool we have right now and most of the time it works like it should.

What's the official doctrine on CODEOWNERS, meta.maintainers and the like?

Normally meta.maintainers should be enough but sometimes you have files where that does not work or want to receive notifications for an entire directory and then codeowners are used.

Is adding myself to CODEOWNERS mutually exclusive to the comment-based approach in this PR?

You can always add yourself to meta.maintainers and to codeowners if there is a compelling reason which I think we have here or meta.maintainers does not work. Going the comments approach was voted against earlier in this thread.

I'd like to add that the situation around CODEOWNERS has already improved a bit since I opened the issue.

GitHub has a built-in lint for changes to the file that are semantically invalid
We have figured out how to do rebasing without pinging everyone. People are still learning it, but the random pings I've gotten have definitely gotten less over time.


transformSchema simplifies schema returned from makeExecutableSchema

Here is an example which you can use to replicate the problem:
https://github.com/taylorgoolsby/graphql-directive-private/tree/graphql-tools-transform-bug
The README on that branch explains the bug in detail.
And this file has code to reproduce the bug:
https://github.com/taylorgoolsby/graphql-directive-private/blob/graphql-tools-transform-bug/__tests__/main-test.ts
I need this because I want my SchemaDirectiveVisitor to visit object, fields, and whatnot, and I want to mark each object or field with some special markings.
Then I want to use transformSchema to discover these markings and transform the schema accordingly.
This is my workaround right now:
const firstSchema = makeExecutableSchema({
  typeDefs,
  schemaDirectives: {
    deprecated: DeprecatedDirective
  }
});
console.log('first schema', firstSchema._typeMap.User.customFlag)
const thirdSchema = transformSchema(firstSchema, [{
  transformSchema: (secondSchema: any) => {
    // ignore secondSchema and transform firstSchema instead.
    console.log('first schema reference directly used in here', firstSchema._typeMap.User.customFlag)
    return firstSchema
  }
}])

This looks to me like a naming issue, which your second answer resolved by creating new variable names for all the schemas you're working with here. You're linter should have caught that you're trying to reassign a const variable in your first implementation when building transformSchema.

@slaymance Oh sorry about that. I didn't test that example.
Here is a working example which anyone can run to reproduce the bug: https://github.com/taylorgoolsby/graphql-directive-private/tree/graphql-tools-transform-bug

@taylorgoolsby Ah thanks for putting together that repo, it's super helpful for understanding this behavior!
When calling transformSchema, the tool recreates the schema passed in originally (the one created by makeExecutableSchema). That recreated schema is based upon the GraphQLNamedType defined by the GraphQL spec, so any custom properties that were added to the schema won't be carried over as they would break that contract definition.
This brings up some interesting discussion points regarding schema transforms. Should the GraphQL spec include the possibility of custom properties for GraphQL types? If not, should the Apollo transformSchema tool still allow for the carrying over of custom type properties when transforming a schema? I think this would be really useful functionality, since transformSchema implies you're manipulating the schema passed in to the function in its entirety.
By the way, the cause of this behavior is a function in graphql-tools called recreateType. You can see the behavior you want by going into node-modules/graphql-tools/dist/stitching/schemaRecreation.js and changing lines 10-19:
const recreatedGraphQLObject = new graphql_1.GraphQLObjectType({
            name: type.name,
            description: type.description,
            astNode: type.astNode,
            isTypeOf: keepResolvers ? type.isTypeOf : undefined,
            fields: function () {
                return fieldMapToFieldConfigMap(fields_1, resolveType, keepResolvers);
            },
            interfaces: function () { return interfaces_1.map(function (iface) { return resolveType(iface); }); },
        });
return { ...type, ...recreatedGraphQLObject };

That should cause the tests in your bug demonstration repo to pass.

@slaymance Thanks for the explanation. Now, I understand why the custom properties are lost, but I also agree that I was expecting the parameter into the Transform functions to be equal to the schema passed into transformSchema's first argument.
I don't think it's a big deal, since even though custom properties are lost, the directives are not, so you can still reference schema._typeMap.User.astNode.directives[0].name.value inside a Transform function.

Closing.
See solution above in https://github.com/apollographql/graphql-tools/issues/1006#issuecomment-443544707
Additional comments are tracked in #1056


Is GTK# in active state or dead?

I am watching this project for many months, but there is no change in this project.

Still active, of course. What happens is that the issues and PR are managed from the official repository of Xamarin.Forms: https://github.com/xamarin/Xamarin.Forms/pulls?q=is%3Apr+is%3Aclosed+label%3Ap%2Fgtk

Are you working on this still or are other people. I have tried many things , but I cannot get it to work under Windows, basically because there is no gtk-sharp-2 anymore and most of the libraries for Windows for gtk-sharp-2 are hard to use, incompatible with many things and so forth. It seems the world moved to GTKSharp which is GTK 3.  That all seems stable and to work well with the pacman setup process.
Do you know what the plans are for going for GTK  3 (GtkSharp) and possibly making it so that it works with the standard NuGet packages and 64 bit repositories?

(sorry, saw this question was already asked, but I found this question while searching if GTK Forms was alive or not)

Good questions. Yes, I'm still working on the project, continue adding support to new features as well as bug fixes. I'm not the only one doing PRs and applying improvements or fixes to the GTK backend. Any member of the community can help.
Related to GTK 3. Soon the backend will use an official gtk sharp 2.12 NuGet package. Currently everything works on Windows, macOS and Linux although you must install gtk sharp on each system and add references by hand. The NuGet package will avoid steps and possibly problems. As soon as we have the GTK3 bindings completed at the official level (official NuGet, etc), we will propose to update the Xamarin.Forms GTK backend to version 3. Meanwhile, it is based on version 2.12.

Ok, thank you for the explanation. I did the install and added the references, but the projects keep crashing with some dll loading issue; if I compile with AnyCPU, it cannot load gtk-sharp-win32-2.12.dll (which is the one recommended install as far as I can find); if I compile with x86, then my project dll will not load (even though it is just hello world). It goes further than your demo projects, none of which compile because none of the dependencies can be found on nuget (of the particular versions you use).
Is there a 64bit version of 2.12 gtk-sharp or a nuget package I am missing? I cannot figure it out ;( It works fine under Linux by the way.

Ignore the previous stuff; it was some DLL hell :( Apparently there is a lot of stuff on my laptop which adds it's directories to the PATH and have GTK / GLIB stuff in it. I started VS with the PATH in a batch file and all works now. Hope the future will make this easier!

Thanks!


Mesos

Not really an issue but just wanted to know whether can I use the driver on mesos and I would assume I will need the driver on the mesos-slaves. Correct?

I haven't been keeping up with this as much as I should, if there's interest I'm happy to get back into it.  As far as your question, Mesos has support for direct calls into the docker-volume api.  So as long as the docker-volume api is good to go it will work.
I haven't updated for the current version of docker though, so you may run into some things not working.  If you give it a try let me know how it goes.  I'll look into reworking some things and providing an update here shortly.


Add ability to parse entire AssemblyInfo

As requested in GH-372, in addition to being able to create an
AssemblyInfo file with all required parameters, it should also be
possible to parse all of these properties for later
inspection/retrieval.
Fixes #372

@patriksvensson  @devlead looks like the Travis Build failed due to not being able to connect to Nuget.  Is there a way to kick this?

@gep13 Yes, the way to kick it is to ask me. Will kick it now :D

Perfect, thank you! :smile_cat:

@gep13 or ask me :smile:  , worst case trigger a new commit and it will rebuild.

Looks good to me :smile:

@patriksvensson sweet :smile_cat:

@patriksvensson @devlead so is this PR ready to be pulled in?  I think I got the nod from both of you :+1:

@devlead @patriksvensson just rebased this one on develop as well, and again, assuming the builds pass, I think this one is ready to be pulled in.

Should I delay merging this due to #476 or do you want to fix that one in a separate PR?

Happy to create a new PR, since they are separate issues.  I know you like to keep PR's specific to the issues that they are addressing.  I can branch from this PR locally, and then rebase onto develop once this PR is merged.

Merged (rebased it against develop, so GitHub won't recognize it as closed) :+1:


Chords from intervals

I'm looking for a way to convert a set of intervals to the chords they make (the inverse of chord.intervals)
Instinctively I've tried tonal.chord.detect('1P 3M 5P') but it didn't work.
It looks like all the information is there but I'm not sure the api allows me to do this. Is there a clever way to do this I didn't see ?
Thanks !

you could maybe do something like
function intervalsToType(input) { // input = '1P 3M 5P'
  var input_array = input.split(' '); // -> ['1P', '3M', '5P']
  var chordInC_array = input_array.map(int => tonal.transpose('C4', int)); // -> ['C4', 'E4', 'G4']
  var chordInC_string = chordInC_array.join(' ');
  var chord = tonal.chord.parse(chordInC_string); // => {tonic: 'C', type: 'M'}
  return chord.type // 'M'
}

I haven't tested that but something along those lines might work

Thanks for the reply @mrjacobbloom :+1:
Just a note: tonal can work with arrays or strings, there's no need of conversion. So your code can be simplified to:
const input  = '1P 3M 5P'
tonal.chord.detect(tonal.harmonize(input, 'C')) // => ['CM', 'Em#5']

Thanks !

Solution for tonal 1.0.0:
const intervals = ["1P", "3M", "5P"];
const chroma = Tonal.PcSet.chroma(intervals);
Tonal.chord.names(chroma); // => ["M", "Maj"]


doc: add timeout-minutes to workflow

fix to Issue - https://github.com/di-sukharev/opencommit/issues/184

Nice!


Breaking Change(Cross Version) should not compare against old preview

In PR 21606 the Breaking Change(Cross Version) checks compared the new api version to the most recent stable, 2022-05-01, and to an older preview version, 2021-04-01-preview.

There is no point in reporting differences to a preview that is older than the most recent stable api version. This clutters the report with issues that are not relevant and potentially wastes reviewers time investigating these issues.

@jianyexi , looks like the preview version earlier than last GA can be excluded from comparison as per the guidance https://github.com/Azure/azure-rest-api-specs/blob/main/documentation/ci-fix.md#breaking-change-check.

This is by design, as the breaking change (cross-version) will select the latest version which exists in the main branch to compare with the new version in the PR

It looks to me like 2022-05-01 exists in the main branch and is newer than 2021-04-01-preview, which would make 2022-05-01 the latest version in the main branch. So what is the reason for comparing against 2021-04-01-preview?

Discussed in REST API Tooling meeting. Concluded that we want to compare against the most recent GA version (if one exists). We also compare against the latest preview version but only if it is more recent than the latest GA, and these reported as warnings. This rule applies for both new GA version and new preview version.

I'd argue it's worth reporting, but not as a required check. I've seen cases where a couple previews in flight should have both gotten fixes but didn't, and the breaking change was a good indication of that.

@mikekistler could you clarify what is the required behavior change here? Not exactly clear to me upon reading through the discussion. Thank you!

The desired behavior is described in this comment and we should make whatever changes are needed to make this be the actual behavior.

There exists an open PR that is supposed to potentially address this:

https://devdiv.visualstudio.com/DevDiv/_git/openapi-alps/pullrequest/450147

This work item was mentioned by @mikekistler in recent discussion on comparing to RPSaaSMaster. The discsusion on Teams is here.

Additional context in Teams, here


We should include the path in the sha, since its inside the produced …

…json

Yeah thats true, static binaries is maybe a stronger guarantee(bazel doesn't have this one). but yes if its an entry point that follows on and shells out to different app/or it points into a folder somehow then yep this sha cannot capture that :s


i need help i am new to this

Describe your problem here.
hi so when i open the psych engine, it justs stopped working

please help me
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No response

did you even wait for it to finish loading?

did you even wait for it to finish loading?

i did but it didnt work i even deleted it and reinstalled it and again it was the same error and its the newest i downloaded it and try other versions and 0.6.3 is working fine for me but its have some errors like i cant see the custorm back grounds from other mods

Looks like a PC problem. What PC are you using?


PHPunit now runs in php-fpm

Which is better, because php-fpm is also the service running the PHP intepretor when using the API

I am not fully happy with this yet, expecting a '?' in the output just feels bad to me. I am considering making a test that excepts X failures (wher X would probably be 1).
This way the tests convey the way I want to see/use the function: A (close) approximation of transliteration, but just not quite perfect.


Update style-guide-for-guide-articles.md (Wording Fix)

Fixed wording in opening sentence

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Thanks for the PR, I have landed this change in https://github.com/freeCodeCamp/freeCodeCamp/commit/0dae4f6aaed46b26df29934b2e4ef8feb089fd42


Platform Configuration

Hello, Item 4 of the Register a Client App section specifies that the app authentication platform should be "Web".
However, the platform config in Azure warns that "This app has implicit grant settings enabled. If you are using any of these URIs in a SPA with MSAL.js 2.0, you should migrate URIs." Is that an issue?
Thanks!

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

ID: 520b9821-ecef-20af-a601-ea36c4297d88
Version Independent ID: da9c8ac9-4d7a-4b40-56a2-a4bfe7083567
Content: Secure an ASP.NET Core Blazor WebAssembly hosted app with Azure Active Directory B2C
Content Source: aspnetcore/blazor/security/webassembly/hosted-with-azure-active-directory-b2c.md
Product: aspnet-core
Technology: aspnetcore-blazor
GitHub Login: @guardrex
Microsoft Alias: riande

Hello @jmacCity ... Yes, implicit grant is fine for this scenario with the current Identity v1.0 packages and current MSAL version in use. It will change to the authorization code flow for the upcoming .NET 5 release later this year when Blazor + packages move to using Microsoft Identity Platform 2.0. The preview docs for the new packages in preview will be put up (by me) right after RC1 releases within a few weeks. You can track that work on https://github.com/dotnet/AspNetCore.Docs/issues/19503. I think the engineering work is tracked by https://github.com/dotnet/aspnetcore/issues/23821, but you might need to dig around a little bit over there for all of the updates.


Unicode string lit

Fix https://github.com/nrc/rustfmt/issues/120

Thanks for the PR! Looks like a good improvement, just needs some more comments and tests.

Thanks for the fixes!


feat(java): Add aggregator POM for java and spark library to manage the dependency

Reason for this PR

as #468 describes,
adding aggregator POM for java and spark library to easy manage the dependency
What changes are included in this PR?

add aggregator pom
Are these changes tested?

yes
Are there any user-facing changes?

no

Hi, @SemyonSinchenko @Thespica I would like to get some advice about put the spark and java libraries to a directory like maven-projects next step, that would make the code structure clear and easy for developer to split the libraries into modules.


[SPARK-36871][SQL][FOLLOWUP] Move error checking from create cmd to parser

What changes were proposed in this pull request?
Move error checking from create cmd to parser
Why are the changes needed?
catch error earlier and also make code consistent between parsing CreateFunction and CreateView
Does this PR introduce any user-facing change?
No
How was this patch tested?
Existing tests

Test build #144242 has started for PR 34283 at commit 1598a9f.

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/48722/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/48768/

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/144289/

Test build #144388 has started for PR 34283 at commit b1dae91.

Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/48862/

thanks, merging to master!

Test build #144388 has finished for PR 34283 at commit b1dae91.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Thanks @cloud-fan @HyukjinKwon


Install pyproj-<IP_ADDRESS> on windows 8

I need to install pyproj-<IP_ADDRESS> module for Python 2.7 on Windows 8. I have used this link (https://github.com/jswhit/pyproj), I found only pyproj-<IP_ADDRESS>.tar.gz. How can I install it on my machine please?

If you have pip installed you can install it from the command line by doing this.  Pip will download and install pyproj for you.
C:\..> pip install pyproj
Alternatively, download the zip.  Uncompress the archive.  Then follow the README instruction that
C:\..> python setup.py build
C:\..> python setup.py install

If the installation complains about not having "vcvarsal.bat".  Install Visual C++ for Python 2.7.

Thank you for your response, I tried the second solution but I had another error.

Pyproj contains some additional c files that need to be compiled. Download this https://www.microsoft.com/en-us/download/details.aspx?id=44266. And try building and installing again

I downloaded the VCForPython27 and I when I tried building it gives me this error. What should I do please?

The files are compiled but cannot be linked. Can you try upgrading setuptools and doing this again? Maybe it has something to do with the linking. https://pypi.python.org/pypi/setuptools

I installed setuotools-20.2.2.zip. What should I type in the command line to upgrade it (ez_setup.py)?
And should I add the environment variable of python?

You run C:/python27/python.exe ez_setup.py from the command line. Also its nice to add python to your environment path so you can quickly python ez_setup.py from anywhere.

Thank you I upgraded setuptools and when I typed again:  C:/Python27/python.exe setup.py build it gives me: mt.exe stopped working.

Can you printscreen another image with the errors on the commandline?

I tried it on my windows 8 and had the same results. But when i added python to the PATH, all the files compiled and linked nicely. So try this:

Hold Win/Start and press Pause or go to System.
Click Advanced System Settings.
Click Environment Variables.
Append C:\Python27; to the Path variable.
Restart Command Prompt.
Type python setup.py build and wait a little.
If all is done, then python setup.py install

Thank you very much George, it worked :)

:) Nice!

I downloaded the wheel file from http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyproj - pyproj-1.9.5-cp27-none-win_amd64.whl
The following was failing:
pip install pyproj-1.9.5-cp27-none-win_amd64.whl
With:
ValueError: ('Expected version spec in', 'C:\\Installation\\Python\\pyproj-1.9.5-cp27-none-win_amd64.whl', 'at', ':\\Installation\\Python\\pyproj-1.9.5-cp27-none-win_amd64.whl')
However once I updated pip then it succeeded.
pip install pip -U
The original pip version was 1.2.1 the updated one was 8.1.0

Hi, i have Windows8 and neither one method works for me. Neither WHL work neither the official way.
Neither pip install. If i run pip install it does very long and fast output ending with #cleaning lines but pyproj is not installed.
I have python path in env variable both in PATH and Path.
I have no clue what could be problem.
If i run the officall installation  python setup.py build and install it should automatically add folder to my Python/Lib folder? How can i check what is wrong?
Thx

Do you know if you have the required c compiler installed? If not try installing VC++ for python 2.7

I will try, thanks George

pyproj doesn't have a wheel (WHL) release as you can see on pypi.
Appveyor could be made to generate a Wheel on Windows.  Binary wheels are a bit harder to configure than universal wheels (python source only).
Patches are welcome.

Please create a windows64 binary wheel for python3. I do not want to have 8GB+ of visual studio bloat around just for compiling this.

Refer to #216


Doesn't seem to work on Windows

I'm quite new to using the Network Project Library/Database features of Resolve. I have used it extensively local disk only. But now our facility is discussing moving to Resolve and need to get a shared collab environment working with automated backup abilities.
Was hopeful this script might help me but it just flashes and then seemingly does nothing when run. Any chance for some instructions on it's use not being a programmer myself? Thx.

The script is quite old. You'd need to do some minor refactoring for Python 3 (assuming you're on Python 3). That's likely the issue you're having. If you're unfamiliar with Python, you can paste the code to ChatGPT and ask to debug and refactor for Python 3.

Thx I can try that. I'm certainly not familiar with Python outside of knowing what it is.


Default export is missing

I seems as there is no export default ... causing the module to be empty.
I had to explicit pick the Mixin (import { Mixin as tweenStateMixin } from 'react-tween-state') instead of loading the full module (import tweenState from 'react-tween-state')

Right, Mixin isn't the default export: https://github.com/chenglou/react-tween-state/blob/d4b498a7b5654bcf495872de0608c2357e726c7c/examples/example1.jsx#L3
I do this for a reason. I was predicting that a better API is coming so I wanted to reserve the default export for something else. I'll be posting it tonight =)

I'll be posting it tonight =)

It's as though you had a talk soon! :wink: :metal:

I understand - but I didn't ask for the mixin to be exported as default, but the whole module... then we would be able to tweenState.Mixin as stated in the documentation.

I'm not sure I understand here. What's wrong with import * as tweenState from 'tween-state' and using tweenState.Mixin like that?

There is nothing wrong :) I just wondered why you'd choosen to have no default export, as it can lead to some confusions. But as I wrote, I understand, if you have plans for the default export, which are different and would break the API.

Actually, I've decided to put the new API into its own library since it has little to do with tween-state now. As such, I've now exposed the default you want =). The * as tweenState* still works too.


template errors should be sent instead of partial templates

On error during template rendering, send the err.Error() result instead of the template.

We made a special template for when there are template errors. It links to the rule page with the date and time set so you can then attempt to fix the template error.


Could not connect to the server in Mac

Task <16CC39E2-04EB-489C-8F42-5051188AE9FC>.<1> finished with error [-1004] Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={_kCFStreamErrorCodeKey=61, NSUnderlyingError=0x283d68810 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={_NSURLErrorNWPathKey=satisfied (Path is satisfied), viable, interface: lo0, _kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalUploadTask <16CC39E2-04EB-489C-8F42-5051188AE9FC>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalUploadTask <16CC39E2-04EB-489C-8F42-5051188AE9FC>.<1>"
), NSLocalizedDescription=Could not connect to the server., NSErrorFailingURLStringKey=http://<IP_ADDRESS>:5000/inpaint, NSErrorFailingURLKey=http://<IP_ADDRESS>:5000/inpaint, _kCFStreamErrorDomainKey=1}
Running in physical device only
Flask server is running
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.

Running on http://<IP_ADDRESS>:5000
Press CTRL+C to quit

Hey, it'll only work on an iOS simulator. I've updated the README to make this clearer. It won't be able to find the server if the server is just running locally on your computer.


Add data-plane-adoption-pipeline to the zuul github-check layout

This adds the data-plane-adoption-pipeline so that the adoption jobs run on dataplane-operator pull requests.
Depends-On: https://github.com/openstack-k8s-operators/ci-framework/pull/1773
https://issues.redhat.com/browse/OSPRH-5770

I have concerns with adding this job, which takes 2.5 to 3 hours. Originally, our goal was 1 hour for check/gate jobs. We've grown to 1.5 hours organically with the crc jobs, and now up to 3 hours if this is added. This has a big effect on our velocity and estimation of how long it takes to get to dev complete.
I'd like to see further discussion on this.

I have concerns with adding this job, which takes 2.5 to 3 hours. Originally, our goal was 1 hour for check/gate jobs. We've grown to 1.5 hours organically with the crc jobs, and now up to 3 hours if this is added. This has a big effect on our velocity and estimation of how long it takes to get to dev complete.
I'd like to see further discussion on this.

as discussed yesterday, yes these jobs do take longer. It is currently around 2.5 hours (build history at [1] for convenience and the 3 hours applies to the new multinode job).
As mentioned yesterday I'll add just one job (not both) and we can target it with files so it will only run when necessary.

/hold


[MediaBundle] Direct Upload File Size

By @oliverpretz from https://github.com/sulu-cmf/SuluMediaBundle/issues/65
when using the direct upload overlay in the CRM-documents the following error occurs:
"Failed to load resource: the server responded with a status of 413 (Request Entity Too Large)"
File: PDF, size 1.8 MB

@alexander-schranz isn´t this not a server configuration? max_upload_size or something like this? /cc @danrot

@wachterjohannes yes the error appears then. I thought the file should be still be from type UploadFile when it errored in symfony but it isnt.


strip html from colors from logs

Tested on mocks, works as expected

Also tested on proxy, works great