There exists a query pattern that generates responses violating the Schema when the corresponding type cannot be retrieved from an external source

I discovered that when the data for a corresponding type cannot be retrieved from an external server (returning null), the results can vary based on how fragments are used, even if the queries are essentially the same in meaning.
In my case, access to the corresponding type may be restricted due to user permissions, leading to its unavailability from the external server.
I have created a sample to reproduce the issue and would like to share it with you.
Schema Definition
ServiceA

Server facing client applications
Manages ParentResource

type Query {
  parentResource(id: ID!): ParentResource

  subResourcesByIds(ids: [ID!]!): [SubResource]!
}

type ParentResource {
  id: ID!
  subResource: SubResource
}

type SubResource {
  id: ID!
}

ServiceB

Server behind ServiceA
Manages SubResource
Viewing SubResource may not be permitted depending on the user
Therefore, subResourcesByIds may return null elements

type Query {
  subResourcesByIds(ids: [ID!]!): [SubResource]!
}

type SubResource {
  id: ID!
  serviceBField: String!
}

Query Results
In the following examples, ServiceB returns { "data": { "_0_result": [null] } }
Query that Returns the Expected Result
Query
query {
  parentResource(id: "ParentResource:1000") {
    id
    subResource {
      ...SubResourceFragment
    }
  }
}

fragment SubResourceFragment on SubResource {
  id
  serviceBField
}

Result
{
  "data": {
    "parentResource": {
      "id": "ParentResource:1000",
      "subResource": null
    }
  }
}

Query that Returns the Unexpected Result
Query
query {
  parentResource(id: "ParentResource:1000") {
    ...ParentResourceFragment
  }
}

fragment ParentResourceFragment on ParentResource {
  id
  subResource {
    id
    serviceBField
  }
}

Result
{
  "data": {
    "parentResource": {
      "id": "ParentResource:1000",
      // `serviceBField` is defined as non-nullable, but the field is not being returned
      // This makes the response violate the Schema. I expect `subResource` to be returned as null.
      "subResource": {
        "id": "SubResource:2000",
        "_export_id": "SubResource:2000",
        "_export___typename": "SubResource"
      }
    }
  }
}

I hope this information is helpful in addressing the issue.

Thanks for the detailed report. I'm about to head out on vacation later this week so probably won't have a look until later in the month.

Interesting issue. From what your describe, it sounds like planning and execution are both working as expected. It appears you've found a bug somewhere in shaping if you'd like to investigate a fix before I get to it.

I've got this report framed as a failing test here... https://github.com/gmac/graphql-stitching-ruby/compare/shaper_fix?expand=1. The question is what the raw result going into the shaper looks like; do you have a query plan or the raw execution result handy? The question becomes if the ParentResource scope is getting a typename export planned into it – it should, because it spreads a fragment. The shaper tests pass as expected once the parent scope provides a __typename, at which time this would be a planning bug.

Just setup another quick test with the planner running on this scenario and that seems to be the root cause, here's the generated plan:
{:ops=>
  [{:step=>1,
    :after=>0,
    :location=>"a",
    :operation_type=>"query",
    :selections=>
     "{ parentResource(id: \"1\") { id subResource { id _export_id: id _export___typename: __typename } } }",
    :variables=>{},
    :path=>[]},
   {:step=>2,
    :after=>1,
    :location=>"b",
    :operation_type=>"query",
    :selections=>"{ title }",
    :variables=>{},
    :path=>["parentResource", "subResource"],
    :if_type=>"SubResource",
    :resolver=>"35f5423521d926efa478178e986a8e7c8f12b1ee7bb11aa6f15cec27eeba5005"}]}

The field with the fragment spread is parentResource, which is a root field and therefore planned a bit differently from lower-level scopes. It appears that the root planning process does not include a __typename export in the presence of fragment spreads; and without this type context, shaping root field fragments doesn't work as expected.
Appropriate resolution will be to update root field planning to include a typename export when fragments are present.

Looks like there are two possible fixes that could work...

The planner hoists redundant fragments into a parent scope of the same type to simplify the request structure. It doesn't bother including typename when it does this because it "eliminated the fragment", though the shaper will still have to assess the original fragment when shaping the result. So, one option is to hoist requires_typename = true out of the same-scope condition so that typename is always included in the presence of fragments.

Alternatively, we could have have the shaper assume that no typename for a fragment means the type matched its parent scope, at which time it should assume the typename does apply to the type.. This is a pretty simple solution, although relies on a certain level of assumption that could backfire. The first option is probably the better one.

Should be sorted in v1.4.1. Report back if you can find any other strange behaviors.

Thank you for the very quick fix!

@gmac
I tried v1.4.1 and there was no change in behavior
I tried debugging with the following script, but when I ran query_ok, the query passed to service_a.executor changed as follows
debug script
service_a_schema = GraphQL::Schema.from_definition(<<~'GRAPHQL'.chomp)
  type Query {
    parentResource(id: ID!): ParentResource

    subResourcesByIds(ids: [ID!]!): [SubResource]!
  }

  type ParentResource {
    id: ID!
    subResource: SubResource
  }

  type SubResource {
    id: ID!
  }
GRAPHQL

service_b_schema = GraphQL::Schema.from_definition(<<~'GRAPHQL'.chomp)
  type Query {
    subResourcesByIds(ids: [ID!]!): [SubResource]!
  }

  type SubResource {
    id: ID!
    serviceBField: String!
  }
GRAPHQL

service_a_response = {
  "data" => {
    "parentResource" => {
      "id" => "ParentResource:1000",
      "subResource" => {
        "id" => "SubResource:2000",
        "_export_id" => "SubResource:2000",
        "_export___typename" => "SubResource"
      },
    }
  }
}

service_b_response = {
  "data" => {
    "_0_result" => [nil]
  }
}

client = GraphQL::Stitching::Client.new(locations: {
  service_a: {
    schema: service_a_schema,
    executable: ->(*args) do
      binding.irb
      service_a_response.deep_dup
    end,
    stitch: [
      { field_name: "subResourcesByIds", key: "id" },
    ],
  },
  service_b_schema: {
    schema: service_b_schema,
    executable: ->(*args) do
      binding.irb
      service_b_response.deep_dup
    end,
    stitch: [
      { field_name: "subResourcesByIds", key: "id" },
    ],
  },
})

query_ok = <<~'QUERY'
  query {
    parentResource(id: "ParentResource:1000") {
      id
      subResource {
        ...SubResourceFragment
      }
    }
  }

  fragment SubResourceFragment on SubResource {
    id
    serviceBField
  }
QUERY

query_ng = <<~'QUERY'
  query {
    parentResource(id: "ParentResource:1000") {
      ...ParentResourceFragment
    }
  }

  fragment ParentResourceFragment on ParentResource {
    id
    subResource {
      id
      serviceBField
    }
  }
QUERY

binding.irb

Before:
query{
  parentResource(id: "ParentResource:1000") {
    id
    subResource {
      id
      _export_id: id
      _export___typename: __typename
    }
  }
}

After:
query{
  parentResource(id: "ParentResource:1000") {
    id subResource {
      parentResource(id: "ParentResource:1000") {
      id
      _export_id: id
      _export___typename: __typename
      # Looks like it's bugged
      _export___typename: __typename
    }
  }
}

Whether query_ok or query_ng, I expect the following response
{
  "data": {
    "parentResource": {
      "id": "ParentResource:1000",.
      // A `SubResource` that does not contain a `serviceBField` would violate Schema (since `serviceBField` is defined as not null), so the `subResource` itself should be `null
      "subResource": null
    }
  }
}

I would appreciate it if you could take a look when you have time

Oh no! Welp, we'll get to the bottom of it. I look at it again later in the month once back from vacation. Thanks again for the detailed report, it makes a huge difference when trying to reproduce and debug.

@lish82 – have you actually tried v1.4.1 with a live production server, or just in your test script you linked above? I ask, because your test script isn't returning what v1.4.1 is asking for from service-A...
So, your test script has this setup for service A:
client = GraphQL::Stitching::Client.new(locations: {
      service_a: {
        schema: SCHEMA_A,
        executable: ->(_req, source, _vars) do
          puts source
          {
            "data" => {
              "parentResource" => {
                "id" => "ParentResource:1000",
                "subResource" => {
                  "id" => "SubResource:2000",
                  "_export_id" => "SubResource:2000",
                  "_export___typename" => "SubResource"
                },
              }
            }
          }
        end,
        stitch: [
          { field_name: "subResourcesByIds", key: "id" },
        ],
      }

However, if you look at what the document source is that stitching is requesting in v1.4.1, it looks like this:
query{
  parentResource(id: "ParentResource:1000") {
    id
    subResource { id _export_id: id _export___typename: __typename }
    _export___typename: __typename
  }
}

If you compare that with what your test script is returning, it's still giving back the old data. In v1.4.1, is should be returning this:
{
  "data" => {
    "parentResource" => {
      "id" => "ParentResource:1000",
       "_export___typename" => "ParentResource",
      "subResource" => {
        "id" => "SubResource:2000",
        "_export_id" => "SubResource:2000",
        "_export___typename" => "SubResource"
      },
    }
  }
}

Returning the correct data from service A yields the expected result. So, my hunch is that the bug is fixed, but you're testing it against stale fixtures generated with the old version, and thus still suffers from the same problem in your example.

Oh, I'm sorry to have bothered you...
I thought I had updated the version of graphql-stitching in my project to v1.4.1 to make sure it worked, but maybe I did not reflect the latest version properly
I'll try to prepare a minimal environment and see if I can reproduce the problem.

I have tested that it works on my actual project and I have confirmed that the problem is fixed!
It seems there was a problem with my debug script...
Thank you again for responding so quickly each time!!


sst start - non-interactive "Would you like to run the app on another port instead?"

Although there is the option to explicitly specify --port via sst start --port 1337
For my mono-repo use-cases and given I don't care which ports my debuggers are running through..
I'd actually prefer to just have --auto-port or --yes type of option to automatically pick whatever port sst wants to when running multiple stacks at same time - this would make it easier to script multiple stacks to start debugging at same time w/o interaction.
Also would remove the need for me to manage a set of ports in all of my services, and caring which port is next in line, etc. etc.

We are transition this repo to https://github.com/sst/v2 and are closing this issue for now. If it is still relevant please reopen it there - sorry for the trouble


SearchResolutionOrder and SearchPaths contain at least empty string

It prevents bugs one of those described at issue #183

Thanks Kalita


get_column_values should return default if not executing

Describe the bug
I think get_column_values should return default if not executing.
The issue I'm describing is that this function has a default parameter that will be returned if no data is found. But if DBT is not on execution mode, it will return an empty string
https://github.com/fishtown-analytics/dbt-utils/blob/c8389533cc7f00823c50d08d904cdfa5f714ec8b/macros/sql/get_column_values.sql#L17
Steps to reproduce
The easiest way I can think of showing the issue is having a model using this function and surrogate_key. We actually use surrogate_key to calculate a row hash, not really a surrogate key, but the example should work anyway
{% set rep_types = dbt_utils.get_column_values(source_table, 'rep_type', default=[]) %}
...
{{ dbt_utils.surrogate_key(columns) }} AS row_hash

Expected results
I would expect it to return [] as that's defined as the default value in my code
Actual results
It's returning an empty string instead ''
Screenshots and log output
Running with dbt=0.18.1

Warning: the `surrogate_key` macro now takes a single list argument instead of multiple string arguments. Support for multiple string arguments will be deprecated in a future release of dbt-utils. The slice.advertiser_rep_assignment_current model triggered this warning.

System information
packages:
  - package: fishtown-analytics/dbt_utils
    version: [">=0.6.0", "<0.7.0"]

Which database are you using dbt with?

[ ] postgres
[ ] redshift
[x] bigquery
[ ] snowflake
[ ] other (specify: ____________)

The output of dbt --version:
installed version: 0.18.1
   latest version: 0.18.1

Up to date!

Plugins:
  - redshift: 0.18.1
  - bigquery: 0.18.1
  - snowflake: 0.18.1
  - postgres: 0.18.1

Additional context
https://github.com/fishtown-analytics/dbt-utils/blob/c8389533cc7f00823c50d08d904cdfa5f714ec8b/macros/sql/get_column_values.sql#L17
Are you interested in contributing the fix?
I can't do this now but I'm getting my company to agree on the CLA

Closing this as resolved by #386 (and again in #533 😅 )


Create Pause Menu

This should be a little more involved than past menus of ours
There should probably be one menu for a map, one for equipment, and one for settings/saving
Maybe there is a menu for items like health potions?

This is a good example. look at the top where it says "Map (L)   Items   System (R)"


Added Request.Host template field

Added the Host field to the Request template data.

Hi @tommysitu,  can you take a look into this?

Yes I'm gonna check it out today

It's quite a simple change actually, I've fixed it for you.


Files exported from SLX studio have missing frames and incomplete shadows

Here is an example that was imported into SLX studio from AOE2:DE and exported as an SLP file:

The shadows and some of the unit outline doesn't seem to render quite right.
There also seems to be about 10% of the frames that don't render and just turn into empty 128 byte PNG files. SLX studio seems to show all the frames and doesn't have a problem with the shadows, so I'm wondering if I've either used the wrong export options or this library has a bug related to dealing with the assets from DE specifically.
Attached is the reference SLP file (renamed to .zip):
u_arc_crossbowman_attackA_x2.zip

For anyone reading along, the CLI tool, along with the attached SLP file is a great way to reproduce this issue: https://github.com/genie-js/slp-render

I ended up implementing an SMX renderer to solve this: https://github.com/Sam152/genie-smx


the metadata size in kv is not matched with the record size in undo buffer

Question
I don’t know what triggers the repeated appearance of this exception in the log.
It seems there is no way to eliminate this error, except for rebuilding the table. Is there any other solution to eliminate this exception?
Looking at the code, it appears to be triggered by a periodic task. However, once a discrepancy is detected with the metadata state, it results in repeated error messages. Is there any way to delete the undo buffer for these exceptions?
`    scheduleTask([this, txn_record, &global_context = *getContext()] {
LOG_DEBUG(log, "Start to clean the committed transaction {}\n", txn_record.txnID().toUInt64());
TxnCleanTask & task = getCleanTask(txn_record.txnID());
auto catalog = global_context.getCnchCatalog();
// first clear any filesys lock if hold
catalog->clearFilesysLock(txn_record.txnID());
catalog->clearZombieIntent(txn_record.txnID());
auto undo_buffer = catalog->getUndoBuffer(txn_record.txnID());
if (intermediate_parts.size() != names.parts.size()
|| undo_bitmaps.size() != names.bitmaps.size()
|| staged_parts.size() != names.staged_parts.size())
{
throw Exception("the metadata size in kv is not matched with the record size in undo buffer", ErrorCodes::LOGICAL_ERROR);
}
`
2024.01.23 01:34:42.071214 [ 28775 ] {}  TransactionCleaner: Start to clean the committed transaction<PHONE_NUMBER>98413078
2024.01.23 01:34:42.075888 [ 28775 ] {}  TransactionCleaner: Get undo buffer of the table 5bd188b7-6ac7-467e-a743-f9d11602cf46
2024.01.23 01:34:42.079187 [ 28775 ] {}  Catalog: Elapsed 1ms to get 1 parts in 1 partitions for table : tpch50.orders (5bd188b7-6ac7-467e-a743-f9d11602cf46) , source : PartCache, ts : 0
2024.01.23 01:34:42.079394 [ 28775 ] {}  TransactionCleaner: auto DB::TransactionCleaner::scheduleTask((lambda at ../src/Transaction/TransactionCleaner.cpp:103:18) &&, DB::CleanTaskPriority, DB::TxnTimestamp, DB::Protos::TransactionStatus &&)::(anonymous class)::operator()() const: Code: 49, e.displayText() = DB::Exception: the metadata size in kv is not matched with the record size in undo buffer SQLSTATE: HY000, Stack trace (when copying this message, always include the lines below):

Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int) @ 0x1faf6052 in /opt/byconity/bin/clickhouse
DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, int, bool) @ 0xdc0fe40 in /opt/byconity/bin/clickhouse
void std::__1::__function::__policy_invoker<void ()>::__call_impl<std::__1::__function::__default_alloc_func<void DB::TransactionCleaner::scheduleTask<DB::TransactionCleaner::cleanCommittedTxn(DB::TransactionRecord const&)::$_1, DB::Protos::TransactionStatus>(DB::TransactionCleaner::cleanCommittedTxn(DB::TransactionRecord const&)::$_1&&, DB::CleanTaskPriority, DB::TxnTimestamp, DB::Protos::TransactionStatus&&)::'lambda'(), void ()> >(std::__1::__function::__policy_storage const*) @ 0x18caf464 in /opt/byconity/bin/clickhouse
ThreadPoolImpl::worker(std::__1::__list_iterator<ThreadFromGlobalPool, void*>) @ 0xdc536fe in /opt/byconity/bin/clickhouse
ThreadFromGlobalPool::ThreadFromGlobalPool<bool ThreadPoolImpl::scheduleImpl(std::__1::function<void ()>, int, std::__1::optional)::'lambda0'()>(bool&&, bool ThreadPoolImpl::scheduleImpl(std::__1::function<void ()>, int, std::__1::optional)::'lambda0'()&&...)::'lambda'()::operator()() @ 0xdc55f88 in /opt/byconity/bin/clickhouse
ThreadPoolImplstd::__1::thread::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0xdc502df in /opt/byconity/bin/clickhouse
void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_deletestd::__1::__thread_struct >, void ThreadPoolImplstd::__1::thread::scheduleImpl(std::__1::function<void ()>, int, std::__1::optional)::'lambda0'()> >(void*) @ 0xdc545ba in /opt/byconity/bin/clickhouse
start_thread @ 0x7ea7 in /lib/x86_64-linux-gnu/libpthread-2.31.so
clone @ 0xfca2f in /lib/x86_64-linux-gnu/libc-2.31.so

@hustnn Can you help take a look ? Seems we still get this kind of exception. Is it safe to remove the logic from code?

duplicated with https://github.com/ByConity/ByConity/issues/1059, the fix will be included in the new version. @frankye1982


Please re-write: " Traffic never goes out to Internet a high performance is delivered via Express Route circuits."

Several words are missing from the above sentence. Please re-write to help people understand that you are trying to say.
EG:
"Traffic never goes out to the Internet. High performance on-premises connectivity is delivered via Express Route circuits."

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

ID: 37c1f253-44c2-bd07-4c74-9d4c77c45e6e
Version Independent ID: 281ce98c-115b-3c39-52b7-3df95dfd8b52
Content: How to use Azure API Management in Virtual Network with Application Gateway
Content Source: articles/api-management/api-management-howto-integrate-internal-vnet-appgateway.md
Service: api-management
GitHub Login: @solankisamir
Microsoft Alias: sasolank

@JohnD76 Thank you for providing feedback. We will review this and provide an update as appropriate.

@JohnD76 Referenced PR will update the document.
Thank you for providing your feedback.
We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


dapr init in airgap fails when default image registry is set to ghcr

Expected Behavior
dapr init --from-dir  should load the binaries as well as images in bundle correctly always.
Actual Behavior
In default case (when DAPR_DEFAULT_IMAGE_REGISTRY is set to "dockerhub"), it works fine. But if the user sets it to "ghcr" it fails.
Steps to Reproduce the Problem
$ export DAPR_DEFAULT_IMAGE_REGISTRY="ghcr"
$ cd daprbundle
$ ./dapr init --from-dir .
It gives up following logs:

Making the jump to hyperspace...
⚠  Local bundle installation using from-dir flag is currently a preview feature.
ℹ  Container images will be pulled from Dapr GitHub container registry
ℹ  Installing runtime version latest
→  Extracting binaries and setting up components...
Dapr runtime installed to /home/shivamkm07/.dapr/bin, you may run the following to add it to your path if you want to run daprd directly:
export PATH=$PATH:/home/shivamkm07/.dapr/bin
❌  Extracting binaries and setting up components...
❌  fail to read docker image file ghcr.io/dapr/dapr:1.7.0-rc.2: open docker/ghcr.io-dapr-dapr-1.7.0-rc.2.tar.gz: no such file or directory

Reason behind failure
The reason it's failing is that the installer-bundle pulls image from dockerhub and  saves it with filename as daprio-dapr-1.7.0-rc.2.tar.gz(for runtime_ver=1.7.0-rc.2).
In CLI, when the default registry is "dockerhub", image is set to: daprio/dapr:1.7.0-rc.2 and it searches for filename daprio-dapr-1.7.0-rc.2.tar.gz and it works fine. But when the default registry is set to "ghcr", it searches for filename ghcr.io-dapr-dapr-1.7.0-rc.2.tar.gz which it can't find and so throws error.
Possible Solutions

Don't have any change in installer-bundle workflow. In CLI, set image filename to be daprio-dapr-<runtime_ver>.tar.gz in case of airgap mode. This would require minimal change for now. But in future, when we decide to switch to ghcr in installer-bundle-workflow as well, this would require change in both CLI and workflow and would be a breaking change at that point(earlier versions of CLI wouldn't be compatible with new bundles).
In installer-bundle-workflow, pull from ghcr instead of dockerhub and in both CLI and workflow, set the filename to be dapr-dapr-<runtime_ver>.tar.gz in case of airgap mode irrespective of any environement variables. This would work fine, but again would be a breaking change in case we would switch to dockerhub from ghcr in workflow in future.
Don't keep the owner names at all in filenames. So for example the filename for dapr image would be just dapr-<runtime_ver>.tar.gz. This would be consistent in future if we switch from ghcr to dockerhub or vice versa in future.

Release Note

RELEASE NOTE: FIX Bug in CLI airgap installation

RELEASE NOTE:

This is the format I think the image should be saved as ...
https://github.com/dapr/cli#install-by-providing-a-docker-container-registry-url
You can install Dapr runtime by pulling docker images from a given private registry uri by using --image-registry flag.

Note: This command expects that images have been hosted like example.io/dapr/dapr:, example.io/dapr/3rdparty/redis:, example.io/dapr/3rdparty/zipkin:

So for the GitHub org owner as dapr since we are publishing the dapr system image, it will be dapr-dapr-1.7.0-rc.2.tar.gz as filename in the installer bundle.
If we decided to later on include 3rdparty images also,
it will follow as dapr-3rdparty-redis-latest.tar.gz for example.

I am fine if we remove owner from filenames in installer bundle since those are useful to segregate ownership in registries and does not apply to our own mirror images. It also means that we could change the image for redis, for example, without a single line change in code since it would still be called "redis".

@mukundansundar This can be closed now.

closed by #945


Scrobbles should happen earlier, not at the end of the track playback

This is similar to what I explained in the last.fm plugin (https://github.com/jesseward/jellyfin-plugin-lastfm/issues/50). Scrobbles should happen earlier, preferably as soon as the condition for scrobble has been met and not rely on the stop event from the player as it's known to have issues. More details in the other issue, including an idea of how to do it.

Scrobbles should happen earlier, preferably as soon as the condition for scrobble has been met

At no point in both ListenBrainz or last.fm documentation is such thing specified. Both platforms just specify the conditions which must be met for sending the data, but everything else is left up to the client.
ListenBrainz documentation only specifies the conditions:

Listens should be submitted for tracks when the user has listened to half the track or 4 minutes of the track, whichever is lower. If the user hasn’t listened to 4 minutes or half the track, it doesn’t fully count as a listen and should not be submitted.

— https://listenbrainz.readthedocs.io/en/latest/users/api/core.html#post--1-submit-listens
And last.fm documentation you linked in the lastfm plugin issue gives similar conditions:

A track should only be scrobbled when the following conditions have been met:

The track must be longer than 30 seconds.
And the track has been played for at least half its duration, or for 4 minutes (whichever >occurs earlier.)

Last.fm documentation then goes on explicitly mentioning that once the conditions have been met, the scrobble can be sent at any time:

As soon as these conditions have been met, the scrobble request may be sent at any time. It is often most convenient to send a scrobble request when a track has finished playing.

— https://www.last.fm/api/scrobbling#when-is-a-scrobble-a-scrobble
While as soon as the condition for scrobble has been met is technically at any time, I do not see any reason to implement such feature as:

Both platform APIs allow specifying timestamps for the scrobbles/listens => you always have accurate data.
If you need something more immediate, both platforms have 'Now Playing' => there's really no need to send scrobbles/listens ASAP.

So, basically, unless I'm missing something, developing such feature would cost too much with no benefits. Of course, you can always try to prove otherwise or just implement this feature yourself.
Now, for the issues with 3rd party clients not reporting playback event, this has been worked around in this plugin with introduction of alternative detection mode (documented here) - as long as the client marks items as played on the server.

Closing due to inactivity.


Static function "duplicate" on custom classes extending Object cause "Parser Error: Class ___ hides a global script class

Godot version
4.0.1
System information
Windows 11 and Linux (Steam Deck)
Issue description
Creating a static function in a custom class extending Object or RefCounted will cause Parser Error:
Parser Error: Class "ClassName" hides a global script class
0 - gdscript://(random numbers).gd:2 - at function:

Object nor RefCounted does not have "duplicate" methods according to documentation.
Making a regular (non-static) method works and does not produce any error when called.
It's only when the static function is called that the Parser error appears.
And yes, I could jsut make the function non-static and probably a better way to do  a custom 'duplicate' function but I think this might still be considered a bug. I'm also using 'duplicate' with parameters if anyone is wondering why the sample below is just empty param signature.
Steps to reproduce
Create a class extending Object or RefCounted (with a class_name) and create a static function called 'duplicate' that does whatever
Ex:
extends RefCounted
class_name BadClass

static func duplicate(): # doesn't matter if there are parameters, will still cause error
	print("you ain't gettin here")

call it from somewhere
func _ready():
	BadClass.duplicate()

Minimal reproduction project
n/a

Object nor RefCounted does not have "duplicate" methods according to documentation.
Making a regular (non-static) method works and does not produce any error when called.

This is because the class is GDScript, which has a duplicate() method since it is inherited from Resource. That is why the error occurs only if you declare the method as static.

I'm not sure if the ability to define a static duplicate() method in a script should be supported. Now this causes a lot of confusion, since the class itself is an object (GDScript). But this either must be supported or there must be an error when you define a conflicting static method.
@tool
extends EditorScript

class A extends RefCounted:
    pass

func _run() -> void:
    print(A) # <GDScript#-9223368761086511947>

    # Error: # Cannot call non-static function "duplicate()"
    # on the class "A" directly. Make an instance instead.
    #print(A.duplicate())

    var x: GDScript = A
    print(x.duplicate()) # <GDScript#-9223368761036182091>

The GDScriptNativeClass wrapper had a similar bug, but it's now fixed.
@tool
extends EditorScript

func _run() -> void:
    print(Node) # <GDScriptNativeClass#-9223372027929296496>

    # Error: Cannot call non-static function "get_method_list()"
    # on the class "Node" directly. Make an instance instead.
    #print(Node.get_method_list())

    var x: Variant = Node
    # Runtime Error: Invalid call. Nonexistent function
    # 'get_method_list' in base 'Node'.
    print(x.get_method_list())

This is because the class is GDScript, which has a duplicate() method since it is inherited from Resource. That is why the error occurs only if you declare the method as static.

Wait what, first time I'm aware of this. I have 0 knowledge on engine infra, but I thought if I extend Object or RefCounted then that's the class I'm extending. Now it looks like it's actually always a subclass of GDScript. So refcounted or object can only work on inner classes and not classes defined on a gd file? Must have missed this in the docs or it isn't there at all.

I'm not sure if the ability to define a static duplicate() method in a script should be supported. Now this causes a lot of confusion, since the class itself is an object (GDScript). But this either must be supported or there must be an error when you define a conflicting static method.

I'm also not sure what behavior it should have, but I have no problem Godot not supporting it. The error message definitely should be better though.

So refcounted or object can only work on inner classes and not classes defined on a gd file?

No, it's not related to inner classes vs individual scripts (.gd files and subresources).
The point is that you are not really extending classes (GDScript classes/scripts cannot inherit C++ classes for technical reasons). Your script is attached to the object, and in order to call a method (via Object.call()), the engine needs to check if it is in the script or in the ClassDB. In fact, things are even more complicated, I'm not sure I understand correctly how it works.
I think for GDScript objects we really have a collision that we want to call: a static method of the class or a non-static method of the GDScript object itself. The difficulty is that we cannot always separate the "instance" from the "class" and determine which is which at comile time.
By the way, I want to mention that GDScriptNativeClass is currently an "unsafe value", which can lead to an error if you even just try to call has_method() or is_class() on it (and you cannot test it using the is operator, because this class is not exposed for scripting).

Note that this situation also occurs when global scripts are duplicated. (Because of a newbie I answered who incorrectly used a copy script instead of a copy instance.)
Parser Error: Class "CustomRes" hides a global script class
#a.gd
class_name CustomRes
extends Resource

#b.gd
extends Node

func _ready():
	var script = load("res://a.gd")
	script.duplicate(false)


Shouldn't need Liberty to download the plugin

One of the dependencies for the plugin is a ws-server.jar which you can only get by downloading a copy of Liberty. This is different from the Liberty-Maven plugin and makes the installLiberty task useless since you need a copy of Liberty to get the plugin to let you run the installLiberty. You should be able to download the plugin without having a copy of Liberty and then download Liberty using the installLiberty task.

Hi, do you have the last snapshot version or did you compile your own version?

I compiled my own version, the installLiberty task doesn't appear to be on the latest snapshot on Maven Central.

Does this issue have the same scenario of #13 or does it have anything different?

It seems to be the same scenario, although I only built a version recently, weirdly I pulled down the code again and rebuilt today and now it works, so I don't know why I didn't have the fix before. Can the readme be updated to remove this dependency? Do you know when this update will go into the copy on Maven Central or https://oss.sonatype.org/content/repositories/snapshots? Thanks for your help.

This issue is already done.. It is solve with the new ant version. It is necessary something else?

The readme file still states that you have to include a ws-server.jar as a dependency, this doc should be updated because it indicates that you do have to have Liberty installed to use the plugin, which is not true.

Closing as the documentation is now updated.


Added a functioning landing page 2. Changed Green circle to cash app logo 3. Added animation effects for navigation bar 4. Also added animation effects for " text " and "image " to fade in - but not functioning yet

Particular details mentioned in the commit message.

It'd be great if you modify this so that it works with the latest backend code, currently this frontend code is still looking for fprVarianceScore and fprMeanScore when only fprScore exists now.

It'd be great if you modify this so that it works with the latest backend code, currently this frontend code is still looking for fprVarianceScore and fprMeanScore when only fprScore exists now.

In my branch, I changed the frontend to look for fprScore instead. As long as we merge both mine and hers, things should work, if nothing unexpected happens.

It'd be great if you modify this so that it works with the latest backend code, currently this frontend code is still looking for fprVarianceScore and fprMeanScore when only fprScore exists now.

In my branch, I changed the frontend to look for fprScore instead. As long as we merge both mine and hers, things should work, if nothing unexpected happens.

If possible I'd like to see a deployed version before merging anything. The merge conflicts also have to be resolved, could you try merging your branch into hers or vice versa?

@YesIfwRONG are you working on merging, refactoring this then?

I'd recommend putting the landing page inside LandingPage.tsx and keeping App.tsx mostly intact to avoid merge conflicts

Addressed these issues by merging into Yimin's code.


Start documentation

I started writing some documentation. It's a rough overview and not that detailed, but much better than without any documentation I think.
I'd love to get some feedback, before I merge this into master.
resolves #3

Yeah, that sounds very good 👍
This documentation will make the tool more understandable to consumers.
Thanks for it.


Commands in history get mixed up

A brief description
When traversing back through command history using the up cursor key, shorter commands sometimes show the remains of preceding longer commands.

Expected results
When traversing the command history the prompt should show only the text of the command expected, whatever the length.
For example if I execute the two following commands:

$ rake test:delta
$ rake gcov:all && rake utils:gcov

And I traverse back to the rake test:delta command, then I expect to see exactly that.

Actual results (with terminal output if applicable)
Instead I actually see

$ rake test:delta rake

with the cursor placed at the end of delta and the trailing  rake portion apparently not actually there as far as the prompt is concerned. That is, I can not use the left/right cursor keys to traverse the trailing  rake, nor use the Delete key to delete it, nor does it actually execute as part of the traversed to command if I execute that command... it appears to be solely a visual artifact of some kind.

Your Windows build number
14393.693

Steps / All commands required to reproduce the error from a brand new installation

Execute some long-ish commands at the prompt
Execute some shorter ones
Use the up cursor key to traverse history

Strace of the failing command
N/A

Required packages and commands to install
N/A

I can confirm that this still happens in build 15046.  Though, I don't yet have a specific reproducer.

I have seen this in the past and I believe it's a display issue, not a functionality issue.  What I mean by this is I believe that the console is not clearing the entire screen buffer of the previous command that was being displayed.
@wolf99 - When you get in this state and press enter what gets run?  Is it "rake test:delta" or "rake test:delta rake"?

@benhills, yep, this is a display issue of some sort it only runs the intended $ rake test:delta, and not the $ rake test:delta rake. As mentioned, it is neither traversable, nor deleteable and for all functional purposes the erroneous text is "not there", it's just displayed as being there.

Thanks for confirming - I'm not trying to argue it isn't a bug, "functional" is just the word I used to describe "the text that is displayed versus the command that is actually run."
Hopefully one of our friends from the console team can take a look.

Well. This is definitely close to another known issue that was fixed a month or two back. It definitely was a bug present on 14393.
What troubles me is @aseering's report that this is still happening on 15046. I think that fix was supposed to be in 15014 (according to what's in #1307)
I'll investigate. But repro steps (on a build greater that 15014) would be super helpful. Before it was possible to get into this state by running apt install, after scrolling the window down (so that the viewport isn't at 0,0 in the buffer). Unfortunately, that doesn't seem to trigger it anymore.

It's very possible that what I am seeing is new or different.  (Though the symptoms seem very similar.)  I will keep trying to come up with a repro.
For what it's worth, I never see it with a new terminal window.  It's always in a window that I have been using for a while, and have run a bunch of commands in.  Also, running reset fixes it for me, at least temporarily.  It seems very much like something funny in some state machine somewhere.

I, too, see this issue - unfortunately I wish I knew how to repro, but all I can offer is that I see the same behavior. When using a console window for a "a while," occasionally the bottom lines will mess up. Running clear does not seem to address the issue, but exiting and opening a new console does.
Also for what it's worth, I see the problem inside ConEmu as well as simply running Bash by itself.

@tucker973 -- I'm curious -- you say that clear doesn't work.  Does reset work?  (It works for me.  It does more than "clear" does.)  If so, that might (or might not?) be useful for narrowing this down.

I haven't seen the issue since I saw your post about reset, so I will give that a shot! I have a few projects to crunch on today, so more than likely I'll see it at least once. I will add to the topic when I have a chance to test. I am on 15046, for the record.

While we're on the topic, and you reference #1762, another issue that I noticed looks to be similar and may as such be related: If I open a file in nano or vim $ vim foo.c and then minimise the bash window (from either restore-down size or maximized size) and then return it to restore-down size (or maximize) then only the first line of the file contents are displayed.
The rest of the file is still functionally there, i.e. I can still browse the now invisible contents with the cursor keys and issue commands, but to actually see more than the first line I need to quit vim (not the bash window) and reopen it again. Not sure if it's the same issue but it has the same functional vs display character. Is this evident on 15046 @aseering ? In other editors?

@wolf99 -- no, I don't see that on my machine.  Maybe it has been fixed?

I haven't updated beyond 15046 yet, but I just had this happen to me again after running a few things for a while. I was typing a git commit message inline, when it started doing the weird behavior. (again, just so everyone is aware, Bash running inside ConEmu, though I've also seen it from running Bash directly) I ran reset, did a bunch of git status to fill the screen buffer again, and it did still had the same problem. I'll be updating to 15055 this weekend and will check in again to see if this is still happening.

@wolf99 That issue sounds familiar, but it's been a few months since I've done anything like that in the codebase, so I can't recall if I explicitly checked in a fix for that or not. In all likelyhood, it was just fixed by some other change some time since AU came out.
@tucker973 There hasn't been a lot of code delta for conhost over the last few builds, so I doubt that it it's broken in 15046 it'd be fixed in 15055, but it's worth a shot :P
For clarity, I'm 99% certain this is an issue with the scroll margins. That's why reset would fix this and not clear. clear only clears the contents of the buffer. reset does a lot more than just clearing the contents of the buffer, including removing the scroll margins.

I have been seeing this yonks, and was very keen to try CU/15063.138 in the hope it was fixed in that, but I updated today and it is still there...ie not fixed. I was thinking it was something to do with VT control character support (or lack of) which got quite a big mention in the release notes. I use WSL for all my development, and this is a big PITA...so easy to reproduce, though perhaps not 'on demand'. It seems to happen 'all the time', though perhaps it is only after a while - I'll have to pay attention, and also experiment with the reset command.

REPRO!!!
I managed to reproduce a version of this problem by the following procedure:

open bash.exe (Winkey+R or in cmd)
execute The Script
press ArrowUp 4 times

The Script

2000  echo<PHONE_NUMBER>
2001  echo 0 9 8 7 6 5 4 3 2 1
2002  cd
2003  ls -la
2004  sudo apt install tomcat7 OR sudo apt remove tomcat7

NB: It seems to be the apt loading bar being drawed after ls -la of JUST MY home directory (Figure). I think there are some strange sequences of escape sequences...
I tried to reproduce that by an echo -e but I didn't manage: ls -l does not work for me!

@wolf99 @tucker973 anyone happen to find concrete repro steps?
There's a really good chance this is related to #1984, but I can't be sure without repro steps.

Personally, I find this so easy to reproduce that I am staggered that people are asking how.
I can produce it simply by pressing the up arrow key and holding it a while. It doesn't take long for it to happen.
In fact, even if I don't use auto-repeat on the up arrow, I can get it to happen easily. Oddly, it always happens on the same transition. I have these commands in my history :
 1982  du -sk * | sort -n
 1983  dd if=/dev/zero of=1GiB.txt count=1024 bs=1048576
 1984  dd if=/dev/zero of=1MiB.txt count=1 bs=1048576
 1985  dd if=/dev/zero of=10MiB.txt count=10 bs=1048576
 1986  dd if=/dev/zero of=100MiB.txt count=100 bs=1048576
 1987  ls -ltr
 1988  cd
...

It always happens when I go from 1983 to 1982.
The command line changes from:
$ dd if=/dev/zero of=1GiB.txt count=1024 bs=1048576

to:
$ dd if=/dev/zero ou -sk * | sort -n

I doubt that will help you, but I have yet to have a terminal session where I can't easily get this to happen.
(Grasping at straws)...thinking about anything that is odd about my environment...I use vi mode (set -o vi) and  PS1='\e[37;1m\u@\e[35m\W\e[0m\$ '; also in .bashrc :
 11 # don't put duplicate lines or lines starting with space in the history.
 12 # See bash(1) for more options
 13 HISTCONTROL=ignoreboth
 14
 15 # append to the history file, don't overwrite it
 16 shopt -s histappend
 17
 18 # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
 19 HISTSIZE=1000
 20 HISTFILESIZE=2000

Unfortunately, for me I see the issue very intermittently. WSL is an essential part of my workflow, but only for parts of some projects, so I'm not at the terminal often enough to notice a definite pattern. Typically I only notice it when I'm doing a git commit -m "Long message that should move to a new console line but then starts overwriting itself".

Oh yeah, when trying to go back to edit some part of a line is hopeless...I've basically given up trying to do that.

@davidmaxwaterman Oh well there it is!
Your PS1 is: PS1='\e[37;1m\u@\e[35m\W\e[0m\$ '
What it should be is PS1='\[\e[37;1m\]\u@\[\e[35m\]\W\[\e[0m\]\$ '
You need to wrap escape sequences in \[ and \] so that bash knows that they are non-printing characters. Otherwise, bash things the length of your prompt includes those characters.
See http://tldp.org/HOWTO/Bash-Prompt-HOWTO/bash-prompt-escape-sequences.html:

              \[     begin a sequence of non-printing characters,
                     which could be used to embed a terminal con
                     trol sequence into the prompt
              \]     end a sequence of non-printing characters

That would explain why it was impossible for me to repro, but happened consistently for you.
@tucker973 I bet you're having the same problem as well.

I'm confused by this, as I haven't modified anything; merely running out-of-the-box WSL. Where would these values be changed? I'm also not seeing it every time I commit something, just occasionally.

@tucker973 Ah, my apologies for not being clearer.
PS1 is a variable that's used by bash to display the prompt,  the little zadjii@computer-name$  that's at the start of the line.
You can modify the value in your ~/.bashrc file to change it's appearance or behavior. There are some pretty powerful things you can do with this - Powerline comes to mind as one of the more common ways of augmenting your prompt.
@davidmaxwaterman changed his to just be a little simpler than usual (and magenta for the working directory, that's the \e[35m\W\e[0m bit). That's what was causing this for him. Not sure why this would affect you though if you haven't modified your .bashrc.
 I'll play with that, see if I can get a repro.

Ah, the only thing I've done with .bashrc is look at it and realize the aliases were stored in their own file, so it should be exactly how it shipped.
What's odd is it doesn't seem to matter how much work I've done - for example, today I've had the same prompt open making commits all day and haven't seen it happen once. Other days, I'll hop on to do just a few things and it happens.
It's more of a minor annoyance than anything, but I will continue to try to keep an eye on it to see if I can provide any additional insight! Thanks to you and the team for putting out such a killer product - if this is the worst bug I encounter, I'm happy!

@zadjii-msft Well, that's odd, isn't it? I wonder where I got the PS1 string from - I guess . Doing some searches, it does seem pretty common to not have them. Is the WSL terminal particularly sensitive or something, I wonder? Also, it seems strange that it doesn't happen every time I move back/forward in history.
Anyway, it does seem effective and so we have a solution - great! :)
Personally, I consider this fixed (but perhaps this isn't the only issue).
Now, if only we could have the fix for ctrl-z :(

@davidmaxwaterman Could you open a new issue describing what's wrong with ctrl+z? I don't believe there are any existing issues with it so I'd love to know if there is one.
(and also not to dilute an existing thread with a tangent :) )
@tucker973 That is odd. keep an eye on it. Maybe it'll go away on it's own :P Happy to make something you enjoy 👍

@zadjii-msft - Ctrl+Z issue #1569

Oh goodness, my bad. I must be on an older build than insiders :P

I hit this bug after resizing the console vertically. That also messed up output from "apt-get install" which I thought wasn't that big a deal since I had done it while output was in progress. However the way moving through history got borked, as described in this issue, was worse. Had to restart the console.
I'm on CU with bash 4.3.48(1)

SSH sessions
In SSH sessions it always happen to me what explained in #1307:
Example:
If I arrow up I get for instance the following command:
make install| with "|" indicating the cursor.
If I stroke five left arrows:
make in|stall
If I type "who":
make inwho|ll
If I press enter the executed command is:
make inwhostall
Just tried now towards a FreeBSD 11.1-RELEASE-p1 (GENERIC)

@Alebat what Windows build are you on?
Also, can you post the output of the following two commands?
infocmp
echo $PS1

@Alebat @zadjii-msft I also see this behavior when ssh'ing from Ubuntu/WSL on Windows build 1803 build 17134.48 to a server running FreeBSD 11.1-STABLE (a FreeNAS machine).

Apologies for my barrage of comments.
I just noticed that, on the FreeBSD side, my shell was set to csh. When I change my shell preference to bash (through account settings in the FreeNAS UI), I don't see this behavior anymore.

Thanks for the discussion.
Closing this issue since:

This issue has likely been fixed in recent Win10 builds
This is the WSL issues repo, but this is an issue in Console which has its own Console GitHub Repo
GitHub doesn't allow issues to be moved between repos, preserving posters' identity :(

If you have further asks/issues, please file new issues on our Console GitHub Repo.


v0.11 removed the ability to scale/resize icons

Description
v0.11 removed the ability to scale/resize icons. It would be great to get this feature back for users that have a lot of icons on their dashboard. As right now I have to scroll to see all of my dashboard.
Priority
Medium (Would be very useful)

Yes please! I know have GIGANTIC icons because of my super hi def monitor; before the Homarr update I had them as small as possible...read tiny.

For now you guys can just adjust the scaling of the window with CTRL + - , we'll add this to v0.11.3

We weren't able to implement this yet in 0.11.3 - sorry. We'll move and schedule this for 0.11.4.
Let me know if you have any questions.

0.12.3 And still waiting on this from #660 (The latest changes still have the size twice as big as 0.10.7)

Hi, thanks for letting us know.
Please have look at our roadmap:
https://homarr.dev/about-us
We are currently busy with these changes.
When we get enough time, we'll improve the drag and drop system itself.
I'm sorry for the inconvenience. I assume you've already tried to adjust the Gridstack columns in the settins?

@manuel-rw
Thank you very much for you're respond, yes I did try the Gridstack but it will change the size of all of them in case I want to make few of the very small it wouldn't work also it will alter the apps per columns too.
Also there are few problems with sidebars:

They have borders and there is no option to remove them and make the look of it like 0.10.7
They are not resizable (I cannot make them wider)
The Margin between them and the top navigation bar is less than apps/ categories

We already track most of that in other issues.
Regarding the border, that is something that you can easily do with custom CSS.
Resizing sidebars will be one of our p
smaller priorities.
Stay tuned.


v2.0.6 npm package does not contains committed source code

src/middleware/jwt/index.ts in v2.0.6 Release is older version
new version contains  JWT Middleware to Support Cookies
hono is great

Hi @NekoPengin !
Just now, https://github.com/honojs/hono/releases/tag/v2.0.7 has been shipped! Enjoy!

Thank you! I'll try it out in v2.0.7


Try imagemagick

Is your feature request related to a problem? Please describe.

imagemagick has much more features support than sharpjs. such as gif
https://imagemagick.org/index.php
https://www.npmjs.com/package/gm
https://serverless.pub/lambda-utility-layers/
Describe the feature you'd like

Additional context

Performance
sharp is 3x faster than imagemagick.
$ cd source/new-image-handler/
$ yarn run benchmark
yarn run v1.22.17
$ ts-node test/bench/perf.ts
sharp 9.04 ms 110.57 ops/sec 86 samples
imagemagick 28.2 ms 35.46 ops/sec 68 samples
Fastest is sharp
Done in 14.32s.

Issues
if we embed imagemagick binary https://github.com/ImageMagick/ImageMagick/releases/download/7.1.0-16/ImageMagick-03b1a2e-gcc-x86_64.AppImage into lambda layer.  It will raise EPIPE error
{
    "errorType": "Error",
    "errorMessage": "write EPIPE",
    "code": "EPIPE",
    "errno": "EPIPE",
    "syscall": "write",
    "stack": [
        "Error: write EPIPE",
        "    at afterWriteDispatched (internal/stream_base_commons.js:156:25)",
        "    at writeGeneric (internal/stream_base_commons.js:147:3)",
        "    at Socket._writeGeneric (net.js:787:11)",
        "    at Socket._write (net.js:799:8)",
        "    at doWrite (_stream_writable.js:403:12)",
        "    at writeOrBuffer (_stream_writable.js:387:5)",
        "    at Socket.Writable.write (_stream_writable.js:318:11)",
        "    at Readable.ondata (_stream_readable.js:718:22)",
        "    at Readable.emit (events.js:314:20)",
        "    at Readable.EventEmitter.emit (domain.js:483:12)"
    ]
}


added lib/domains/academy/codex.txt file

The school I work at is Codex Academy. We offer a 36 week Software Developer Program and a 36 week Cyber Security program, as well as a mentor/instructor assisted self paced course.
Company Website
Programs Offered

@Thomas-Basham First stage of verification passed, official domain is codex.academy as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@Thomas-Basham Regrettably, I have to close the request without merging, because this organization is a training center, not a college, nor a university. Please ensure that you are familiar with this repository rules located at the bottom of this page.
Please apply for an appropriate licensing option (which may also be free) at https://www.jetbrains.com/community/education/#courses.
Thank you for your understanding!


Can't require package

composer require efficiently/authority-controller:2.0.*

and I get
$ composer require efficiently/authority-controller:2.0.*
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - The requested package efficiently/authority-controller could not be found in any version, there may be a typo in the package name.

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

Installation failed, reverting ./composer.json to its original content.

Hi @gerob,
It's an alpha release, so you need to tweak the composer.json file of your Laravel 5 application.
Add a repositories option:
{
	//...
	"repositories": [
		{
			"type": "vcs",
			"url": "https://github.com/stayallive/authority"
		},
		{
			"type": "vcs",
			"url": "https://github.com/stayallive/authority-l5"
		}
	],
	//...
}

Then add these two options:
{
	//...
	"prefer-stable": true,
	"minimum-stability": "dev"
}

Here a composer.json sample.
Duplicate of #18.
Cheers,
Tortue Torche

Thanks for the response Tortue. I ended up going with Entrust for L5 this time, I'll revisit this when it's out of alpha.

It's an alpha but it's pretty stable. When the next stable release of the Authority package will be out, I'll released a stable version.
My package is battle-tested, so it's safe to use it.


too much time cost for a simple sql

Your Question
A very simple sql cost too many time when limit >= 85. Any idea on why? 10 times longer than when limit < 85. And I am sure it is not a slow sql. gorm ver 1.24.0
The document you expected this should be explained

Expected answer
just want to know why

Maybe related to https://github.com/go-gorm/gorm/issues/6292#issuecomment-1534487259

Is there any way that can help me track where these time were spent.

Maybe related to #6292 (comment)

Not sure. It's super weird. I'm going to try more.

like

Close this issue. Because it turn out to be a mysql bug. When using prepared statement Mysql could chose wrong index.  Fixed in Mysql 8.0.26.


fix: log all timeouts when chaining calls

see https://gravitee.atlassian.net/browse/APIM-1085

🚀 CI was able to deploy the build of this PR, so you can now try it directly here
Notes: The deployed app is linked to the management API of APIM master. (Same login and password as APIM master)

📚  View the storybook of this branch here

still needs to be tested with alerting enabled


Enum value deletion/update is not detected as a breaking change by check-breaking

Describe the bug
Previously, the breaking-only flag would detect any enum value deletion as a breaking change, which makes sense as this can cause customer's automation to break if they rely on an enum value in a request. -check-breaking does not classisfy that as a breaking change. We'd like to either have the check under -check-breaking or have it as a custom check.
To Reproduce
Steps to reproduce the behavior:

Run oasdiff -base base.yaml -revision revision.yaml  -check-breaking
With base.yaml

openapi: 3.0.1
info:
  title: Test API
tags:
- name: Tests
  description: Test tag.
paths:
  /api/deleteEnumTest:
    get:
      tags:
      - Tests
      summary: This is a test
      description: Test description.
      operationId: getTest
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: string
                description: Enum values
                enum:
                - VALUE_1
                - VALUE_2
                - VALUE_3

With revision.yaml

openapi: 3.0.1
info:
  title: Test API
tags:
- name: Tests
  description: Test tag.
paths:
  /api/deleteEnumTest:
    get:
      tags:
      - Tests
      summary: This is a test
      description: Test description.
      operationId: getTest
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: string
                description: Enum values
                enum:
                - VALUE_1
                - VALUE_2
                - VALUE_5

Recieve

Expected behavior
Similar to -breaking-only
paths:
    modified:
        /api/atlas/v2/deleteEnumTest:
            operations:
                modified:
                    GET:
                        responses:
                            modified:
                                "200":
                                    content:
                                        mediaTypeModified:
                                            application/json:
                                                schema:
                                                    enum:
                                                        deleted:
                                                            - VALUE_3
endpoints:

Desktop (please complete the following information):

OS: Mac OS Monterey

Removing an enum value in a response in not considered breaking.


⚠ Bofrost.lu has degraded performance

In 83fc920, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1350 ms

Resolved: Bofrost.lu performance has improved in 674f1ea after 13 minutes.


Virtio-FS drivers for Windows 7

Is your feature request related to a problem? Please describe.
Actually I have a virtual machine that uses Windows 7 and that machine is a little complicated... At the moment I cannot update to win 8 or win 10/11...
I'm trying to mount my Linux Folder as a Drive in the Windows 7 guest...
Before I had tried that with Windows 11, and worked very well! https://virtio-fs.gitlab.io/howto-windows.html
But now I cannot install the virtio-fs driver in windows 7 machine.
I saw that is possible to build the drivers... I'm kind newbie doing that, and I have no successful. (I have logs. But looks like I cannot select WIN 7 for virtio-fs)
I followed: https://github.com/virtio-win/kvm-guest-drivers-windows/wiki/Building-the-drivers-using-Visual-Studio-2017
and
https://github.com/virtio-win/kvm-guest-drivers-windows/wiki/Building-the-drivers-using-EWDK-1903-2004
using
https://github.com/virtio-win/kvm-guest-drivers-windows/releases/tag/02.12.2021-last-buildable-point-Win7
I had no success.
May I did something wrong? Can I do something to it works in windows 7?
Describe the solution you'd like
A way that I could build those drivers for windows 7, if possible.
Describe alternatives you've considered
If that would not be possible, I will use something like google drive, but that requires internet and isn't fast as Local Files...
Additional context
Sorry if that is obvious that wouldn't works in windows 7, I really don't know if its possible...
Thanks in advance!!

Have you considered using Samba to share files between host and guest?

Hello!
Actually I haven't tried it. I saw that is easy to do, I will test it today!
I'm worry if I could use the samba share to execute files inside the share, and have no delay on it, like and external hard drive for the VM.
Thanks for mentioning that, I will post results here soon 👍

Sorry,
We don't intend to support older OSes, other than the support already existing in the code base.
Closing.


Add orders queue and associated configuration

This PR adds a new Azure Storage queue for processing orders, and updates the website configuration to include the storage account and queue information.

No, storage queues must have lowercase names.


feat: Configurable default row limit for native filters

SUMMARY

The default row limit for native filters was previously hardcoded to 1000. This PR makes this configurable through a new config property called NATIVE_FILTER_DEFAULT_ROW_LIMIT. This solves issue: https://github.com/apache/superset/issues/20521
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

My only head-scratcher on this is whether or not there's a way to fetch the setting by other means (i.e. an API call) since I think we're trying to reduce reliance on the server-generated bootstrap data blob. I tagged a few people who know more about this game than I do :)

My only head-scratcher on this is whether or not there's a way to fetch the setting by other means (i.e. an API call) since I think we're trying to reduce reliance on the server-generated bootstrap data blob. I tagged a few people who know more about this game than I do :)

Hey thanks, happy to change it however you or others prefer.

Hi, thanks for the comments, if you are happy with this approach is there anything preventing this from being merged?


[BUG] Auto Start in i3

Describe the bug
I have this bug when I am trying to run it from i3 config file to autostart it. It used to works fine. Here are the explanation of issues
Code:
exec_always --no-startup-id eww daemon
exec_always --no-startup-id sleep 1; eww open bar

I added the sleep 1 because it tried to execute eww open bar too fast, so with that it should work (usually I only use exec). I switched to exec_always because now whenever I boot or reboot my laptop, bar is not showing anymore. But! with exec_always whenever I restart i3 wm (mod+shift+r by default), the bar show up and works fine. Also, when I looks at eww logs, there is no error and it says that eww daemon is started. So by that logic, the first line (exec_always --no-startup-id eww daemon) is working fine but doesn't seem to trigger the eww open bar one.
Reproducing the issue
I am not sure how this issue would be reproduceable but basically in the i3 config file (~/.config/i3/config by default), you add these exec code as mentionned earlier. I have also tried variant below:
exec_always --no-startup-id eww daemon; eww open bar
I also tried without sleep 1 function:
exec_always --no-startup-id eww daemon
exec_always --no-startup-id eww open bar

and the issue is still there...
the default one that should be working:
exec --no-startup-id eww daemon
exec --no-startup-id sleep 1; eww open bar

Expected behaviour
The expected behavious is the bar should be shown at each boot automatically.
 Thank you

If it was working before, did you update eww?
Any other component of the system?
Can you please try launching it with --debug in your i3 config and then checking the logs again?

Hi,
It was working before under Manjaro. I reformat and use Arch instead for peformance reason. On my VM (Oracle VM Machine) it works fine and everything under Arch. Then I installed Arch on this laptop and now eww doesn't work.
For the eww logs here what I got:
DEBUG eww::app                > Handling event: KillServer
 INFO  eww::app                > Received kill command, stopping server!
 DEBUG eww::script_var_handler > Stopping script-var-handlers
 INFO  eww::server             > main application thread finished
 INFO  eww::server             > Forward task received exit event

┏━━━━━━━━━━━━━━━━━━━━━━━┓
┃Initializing eww daemon┃
┗━━━━━━━━━━━━━━━━━━━━━━━┛

It really looks like the command is not called in the i3 config. Here the link to the config pastebin: https://pastebin.com/bdedQyvy
I know it is not a typo in the script because like I mentionned earlier, whenever I restart i3 it works.
Thanks for your help

I tried doing something like this ~ it was an issue with X not being available & gtk so what I did was have a while loop that continuously ran eww open test till eww windows reports that it is open with *test try doing that in a shell script

I tried doing something like this ~ it was an issue with X not being available & gtk so what I did was have a while loop that continuously ran eww open test till eww windows reports that it is open with *test try doing that in a shell script

Sound like a good idea... Can you give me an example of code to check that? Because I am unfamiliar with X and gtk issues so it might be a good suggestion...

eww daemon
while [[ "$(eww windows)" != *"*test"* ]]
do
  eww open test
done
echo "Opened Window!"

replace test for whatever window name you have

Thanks for this snippet @undefinedDarkness! My strategy before was just sleeping for a second, but this is probably better hahah.

Thanks @undefinedDarkness for that, it works! Oh my god... finally! I can go ahead and customize it instead of Polybar :)

eww daemon
while [[ "$(eww windows)" != *"*test"* ]]
do
  eww open test
done
echo "Opened Window!"

I use this for use with open-many
while [[ -z "$(eww windows | grep '[*]')" ]]; do
  eww open-many left tags right
done

Just for the sake of sharing information: The solutions/workarounds mentioned above did not work for me. I use this code to let i3 / sway launch eww windows:
# Make sure that the eww daemon is running
eww daemon &> /dev/null
while [ -z  $(eww ping 2> /dev/null) ]; do
   sleep 0.2s
done

# Open window
eww open my-window &> /dev/null

The code is contained in a script file which is executed by i3 / sway at startup.


Facebook API Limit Reached

Is there a way to spread out the api request to facebook? Looks like they are only allowing 200 call per user.
Any help would be appreciated.

You can build a tiny proxy and cache your responses from the Facebook Graph API. This way you will only have non cached requests going out to Facebook to fetch new data.
Cache on the proxy can be set to 24h so you always get fresh data with maximum one day of delay, but I guess you do not upload your photos often than that.

would something like this work?
function get_data($url) {
/** @var $cache_file is path/to/the/cache/file/based/on/md5/url /
$cache_file = 'cache' . DIRECTORY_SEPARATOR . md5($url);
if(file_exists($cache_file)){
/*
* Using the last modification date of the cache file to check its validity
/
if(filectime($cache_file) < strtotime('-60 minutes')){
unlink($cache_file);
} else {
echo 'TRACE -- REMOVE ME -- out of cache';
/*
* unserializing the object on the cache file
* so it gets is original "shape" : object, array, ...
*/
return unserialize(file_get_contents($cache_file));
}
}
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$data = curl_exec($ch);
curl_close($ch);

/**
 * We actually did the curl call so we need to (re)create the cache file
 * with the string representation of our curl return we got from serialize
 */
file_put_contents($cache_file, serialize($data));

return $data;

}

This looks like PHP to me. Not a great expert with it, but I guess this is one way to do it by saving it to the file.


Add a subset of filters to the Homepage Search feature

Searching from the homepage needs additional context to imply functionality, and therefore adding additional filters (however expansive) will facilitate User search behaviors and potentially entice Users into using the new search tool.
The filters needed to be determined by design team.

Completed in Final Designs:
https://www.figma.com/file/Gi5Cy9DFEhqY2VkhYkOQCD/Final-Designs?type=design&node-id=1-25442&mode=design


Bugfix requests with "/undefined" at the end of URLs

Some time ago I started search and analyze the cause of requests to my servers with "/undefined" at the end of urls.
In summary I understood that main reason is in plugin Gif Delayer.
Very important to fix it, because this bug affects many sites, and I think not only me tried to find origin of such requests, and spent a lot of time, had assuming that cause somewhere in own code.

fixed here: https://github.com/octatone/gif-delayer-common/commit/d5ddb68576144eb035af483cdedc24760b450f32


Display down the name of a private method only used by unused private methods

If a private method is used only by, other private methods which are all unsed, then display down the name of this used private method.

I believe this is a duplicate of an issue in the TS repo but can't find the correct issue at the moment. Moving upstream to see if anyone else can track down the old issue or if there is any new feedback on this

I can't figure out what "display down" means from context here.

@RyanCavanaugh  most likely OP is referring to the graying/fading out of unused methods:

I don't think this is worth slowing down general editing for - it'd require a lot more computation (we effectively get unused data "for free" today vs having to do a smarter entrypoint-based painting algorithm).

Sorry for ma coming back late to this thread. As a frenchie, I could not guess the word to express the opposite of highlighting. I understand it is not so important and maybe not worth the computing power.


Add note regarding default behavior of sqlite dirs

As suggested by @jorgeorpinel, I moved the default behavior description of md5s and linksdirs to here. (from https://github.com/iterative/dvc.org/pull/2776)

OK thanks! Could've just included the changes in #2776 but this is fine too 🙂

Thanks again for this @meierale. Closing for now per https://github.com/iterative/dvc.org/pull/2776#issuecomment-922362267 (cc @efiop) but please reopen if I'm mistaken and I'll wrap this one up as well.

Reopening per https://github.com/iterative/dvc.org/pull/2776#issuecomment-934078091

Thank you BTW, @meierale !

Merged but I'm not sure it's correct.
@efiop can you take a look please? I'll address in a separate PR.


Include tunnels in osm water queries

Refs #156
Depends on https://github.com/mapzen/TileStache/pull/55

@zerebubuth Could you review please?

:+1: looks good to me.


New TLDs not working

Your regex for matching URLs is outdated and does not accept new TLDs like .online

thanks for your feedback 👍


Upload of Documents

There seems to be u bug uploading Documents in the latest Version. I ve merged today and now when i upload a file now i seen a error in the logfile:
[2024-02-28 08:21:07,495: WARNING/ForkPoolWorker-1]   File "/usr/local/lib/python3.9/site-packages/langchain/document_loaders/pdf.py                       ", line 100, in init
workers_1     |     raise ValueError("File path %s is not a valid file or url" % self.file_path)
any hints?

Please take a pull, should be resolved now.

@JuergenCornely We added support for s3 file uploads in the last pr.
Read more here: https://github.com/openchatai/OpenCopilot/tree/main/llm-server#file-storage-configuration


Support deleting leaves on existing Tree implementations

Initial question is, which of the tree types require this operation?

[ ] Simple Merkle Tree (?)
[ ] Sparse Merkle Tree (?)
[ ] Merkle Mountain Range (?)

The easiest of the bunch is SMT, since the delete can be implemented in terms of an insert, and moving elements up. The other 2 trees would have very high cost to delete an element. AFAIU the delete operation will be limited to SMT, is that correct?

Yeah - I agree that we should avoid deletions as much as possible. I don't think we need to support them explicitly for most data structures - but we do need to have something like this for the compact STM (i.e., our version of it - tiered SMT). But even there, I think we can handle a deletion via updating on internal node.

this is no longer necessary: the merkle store is being used as a generic backend, and it is possible to set leaf / internal nodes with that implementation.


Allow process-specific Git config with "-c" arguments.

See microsoft/Git-Credential-Manager-Core#190 for some context.
To solve the problem, we could allow users to specify config the way they could with Git, using scalar [-c config=value] <verb> and having those arguments pass down into all Git commands. The distance between those two steps is a bit tricky, but perhaps there is a way to do it simply.
The other option would be to do one-off options like scalar clone <url> --access-token "***" for this specific credential issue.
At minimum, the root problem that needs to be solved is: allow a user to specify custom credentials during scalar clone.

All calls to git go via the GitProcess class, so if we can hook in to that from our base ScalarVerb then that should be possible. I know, sadly, that a lot of places just new-up a GitProcess class passing in the file path to git(.exe).
Perhaps a factory or context is required here?

In any case, it might make sense to generate the GIT_CONFIG_PARAMETERS environment variable manually in that case. The format is 'var1=value' 'var2=value2' 'var3=value3' (where the single-space-separator and the single-quoting are mandatory). AFAIR only backslash and single quotes are escaped via backslash.

My thought is that we could collect a static List<string> of the key-value pairs, and then insert them into the Git command. The following diff would suffice for ensuring every Git process used has these options:
diff --git a/Scalar.Common/Git/GitProcess.cs b/Scalar.Common/Git/GitProcess.cs
index 3a6191bb..65142c3b 100644
--- a/Scalar.Common/Git/GitProcess.cs
+++ b/Scalar.Common/Git/GitProcess.cs
@@ -38,6 +38,13 @@ public static string ExpireTimeDateString
             }
         }

+        public static void AddCustomConfig(string keyEqualsValue)
+        {
+            customConfig.Add(keyEqualsValue);
+        }
+
+        private static List<string> customConfig = new List<string>();
+
         private static string expireTimeDateString;

         private const int HResultEHANDLE = -2147024890; // 0x80070006 E_HANDLE
@@ -737,6 +744,11 @@ public Result MultiPackIndexRepack(string gitObjectDirectory, string batchSize)
                 processInfo.EnvironmentVariables["GIT_OBJECT_DIRECTORY"] = gitObjectsDirectory;
             }

+            foreach (string keyEqualsValue in customConfig)
+            {
+                command = $"-c {keyEqualsValue} {command}";
+            }
+
             if (!fetchMissingObjects)
             {
                 command = $"-c {ScalarConstants.GitConfig.UseGvfsHelper}=false {command}";

The issue I'm currently struggling with is how to get multi-valued options using the CommandLineParser library.

AFAIR only backslash and single quotes are escaped via backslash.

I was wrong, exclamation marks are also escaped: https://github.com/git/git/blob/v2.29.0/quote.c#L12-L41

Is there a compelling reason to use a -c-like facility over a credential provider, for getting credentials into Scalar?  I'm happy to return to the store credential provider, though perhaps -c would be useful in other scenarios I haven't thought of yet.

Is there a compelling reason to use a -c-like facility over a credential provider, for getting credentials into Scalar? I'm happy to return to the store credential provider,

You should use store if that works for you.

though perhaps -c would be useful in other scenarios I haven't thought of yet.

This is not the first time this idea has come up. It's just actually non-trivial (due to how our code is organized AND a bug in the command-line parser library we use). That's why this issue will not be fast-tracked into the release this week.

For what it's worth, I know the System.CommandLine official command line parsing library supports multiple repeat options, like -c. I've been using it for some toy projects and so far it's pretty easy. Not that we should go about replacing everything right away of course (it's also still in a preview).

For what it's worth, I know the System.CommandLine official command line parsing library supports multiple repeat options, like -c. I've been using it for some toy projects and so far it's pretty easy. Not that we should go about replacing everything right away of course (it's also still in a preview).

There is a bug where you can try using a multiple-repeat option, but it must be at the end, after any "positional" arguments because it tries to parse it as -c <config1> <config2> <config3> instead of -c <config> <url> <dir>. I noticed this while testing an implementation and found this unreleased PR that should fix it.


Web browser extension

it will be useful if you convert it to a firefox addon and a chrome extension.

Thanks for the suggestion, but i am not able to pull much bandwidth as of now, i am marking it as enhancement. First i will stabilise the backend than maybe pull it up for extension, meanwhile, if you wanna work on you can.


Refactor/speed improvement

Refactor: Memoize generateClassnamesListSync
This is my first contribution to this repository. Please excuse any mistakes or lack of awareness. 🙏 I suspect that this solution might not be acceptable. I.e. memoizing this function might actually break how the plugin works. 🤔
This fix seems simple enough that the PR itself is the best way to identify the problem and propose a solution.
Description
My team uses eslint-plugin-tailwindcss for a project with ~400 files.
I observed that when we started using this plugin, the execution time for eslint changed dramatically.

Without eslint-plugin-tailwindcss 29 seconds
With eslint-plugin-tailwindcss 684 seconds

Investigation
I wanted to know what function calls are taking the most time. I ran eslint (with the plugin engaged) on a subset of files. I used the Google Chrome profiler.

It seemed clear that the most expensive function calls were readdir. The piece of code within the plugin that called readdir was generateClassnamesListSync.
I added some console logs to see what generateClassnamesListSync was doing.

🎉  generateClassnamesListSync was taking many seconds for each invocation. And, it always returned the same result. Thus, it seemed like memoization would be an easy fix. 👈 Memoization is the essence of this PR.
With the fix, I am able to run eslint on the entire codebase, and it takes about the same amount of time as before.

Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
There is no logical change whatsoever, so the existing tests should be sufficient.
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules
[x] I have checked my code and corrected any misspellings

If possible, I think this code change should be integrated and released as a patch for all major versions.

Hi @beaunus,
Thank you for your contribution. I'll give it a try and if it works as expected I'll publish it as a beta in order to test it out in the wild.

@beaunus, I just tried your PR but it'll not keep the "imported" classes list up to date until I restart VSCode...
Similar performance issue(s) were already addressed with this specific part of the plugin, it lead to use REFRESH_RATE in the modified file lib/util/cssFiles.js.
Maybe I could extract the REFRESH_RATE (default is 5s) as an option and you could try to set it to 40_000 (40s) instead of the current 5000 and see how it works for you...

"Maybe I could extract the REFRESH_RATE (default is 5s) as an option"
Great idea. Thank you.

@beaunus , try npm i<EMAIL_ADDRESS>with the cssFilesRefreshRate option

@beaunus =><EMAIL_ADDRESS>

From 1.17.x to 2.x.x is not really a major release, so there is no breaking change but it is simply to match the supported TailwindCSS major version

Let me know how it works for you @beaunus

Let me know how it works for you @beaunus

Thank you @francoismassart . With the extracted cssFilesRefreshRate option, I was only able to get a small performance improvement. I noticed another opportunity for optimization for you to consider.
https://github.com/francoismassart/eslint-plugin-tailwindcss/pull/93
☝ With this change, the default 5000 refresh rate is suitable and still leads to a significant performance improvement.
In other words, I propose that we move forward with #93 . Maybe we don't need the extracted cssFilesRefreshRate option.

What do you think?


Remove path mappings for local pid attach

For #9533

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR)
[x] Title summarizes what is changing
[x] Has a news entry file (remember to thank yourself!)
[x] Unit tests & system/integration tests are added/updated

Codecov Report

Merging #9541 into master will decrease coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master   #9541      +/-   ##
=========================================
- Coverage   60.83%   60.8%   -0.03%
=========================================
  Files         530     530
  Lines       28645   28645
  Branches     4344    4344
=========================================
- Hits        17425   17418       -7
- Misses      10261   10267       +6
- Partials      959     960       +1

Impacted Files
Coverage Δ

...ger/extension/configuration/providers/pidAttach.ts
100% <ø> (ø)
:arrow_up:

src/client/common/utils/platform.ts
64.7% <0%> (-11.77%)
:arrow_down:

src/client/linters/pylint.ts
94.82% <0%> (-3.45%)
:arrow_down:

src/client/linters/pydocstyle.ts
86.36% <0%> (-2.28%)
:arrow_down:

src/client/datascience/debugLocationTracker.ts
76.56% <0%> (-1.57%)
:arrow_down:

src/client/common/process/proc.ts
14.49% <0%> (-0.73%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0b7e8de...1f1dbee. Read the comment docs.


[CI-5758] [CI-6410] [DOC-2351] - Connector settings, Connector authentication, Connectors in CI steps

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the maintainers.
What Type of PR is This?

[x] Issue
[x] Feature
[x] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

CI-5758 : No specific change for this ticket, but applied general revisions to some GCP connector-related topics. I used the issue in this ticket for an example in the GCP connector errors part of connect-to-google-cloud-platform-gcp.md
CI-6410 : Updated 9 step settings topics to include a note about which authentication methods are supported, not support, or untested (which I phrased as may experience errors during pipeline runs).

I only made the minimum edits to these topics since the PR already includes so many changes.
Modified topics are the 'step setting' topics per the first column here: https://harness.atlassian.net/wiki/spaces/PD/pages/21254275563/Gaps+in+CI+Steps+with+Connectors
EXCEPT:

run step (which already got a great deal of changes from another PR and can use a variety of connectors; however, CI-5758 is included in this PR)
build and push to acr step (which is missing from the docs - I created DOC-2597 for this and I will address it if there is time before the release).

DOC-2351 : upload-artifacts-to-s-3-step-settings.md : Add Stage variable required for ARNs
Other topics also edited because they were referenced by topics I was already editing and they needed corresponding revisions to similar content

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[x] Tested Locally
[ ] Optional Screen Shoot.

Preview environment: https://ci.pr.harness.io/pr-679

Preview environment: https://ci.pr.harness.io/pr-679

Preview environment: https://ci.pr.harness.io/pr-679

Force push was from a rebase to resolve merge conflicts.

Michael has approved for peer review. Will merge after preview build succeeds.

Preview environment: https://ci.pr.harness.io/pr-679


VRF as a per-node database schema

Looks like netbox is looking at the VRF thing from a wrong angle unfortunately.
It seem to treat it as a network-wide thing, where in fact VRF is very much a per-node thing.
All the parameters you can define for a VRF are per-node specific::
Name: vrfa-a-on-rtr-a & vrf-a-on-rtrb (we just tend to use common names for clarity)
RD:  vrfa-a-on-rtr-a & vrf-a-on-rtrb (once again just an operators choice on how many unique sets of routes they need, and what RD format they’ll use for that (Type-1/2/3 RDs)
Export RT/policy: (again just an operator’s choice to make these unique or common across nodes and for a particular set of prefixes –as defined by the policy)
Import RT/policy: (again just an operator’s choice to make these unique or common across nodes and for a particular set of prefixes –as defined by the policy)
Interfaces: list of interfaces associated with a vrf which is very different on each node
And really don’t understand what’s this thing with assigning prefixes to VRFs
-where do I configure that on a router?
-or is it supposed to be replica of VRFs routing table? -good luck with keeping internet vrf records up to date then ;)
-I’d assign a prefix to customer or an interface, but never to a VRF
-the only place I could see related to a prefix in VRF realm is to record the import/export policy in the database  –again unique per node (where a specific prefix gets a specific RT, or route is accepted only if both RT as well as prefix matches)
This is related to: #1215
adam

Thank you for your interest in NetBox. We require that all issues be submitted using one of the templates provided here. This is to ensure that only valid issues are reported and that each issue includes all the information necessary for a developer to act on it. Please update your issue so that it matches the appropriate template (this may require rewriting your issue entirely). This issue will be closed in one week if it has not been updated. Thanks!
Aditioonally, please take a look at the docs for the VRF model. This will give you an idea of NetBox's intentions when modeling a VRF.

It sounds like NetBox isn't the right solution for you.


bug: /x doesn't format markdown strikethroughs

The ~~strikethrough~~ doesn't seem to be formatted in /x.
GitHub:

dotland/x:

Should be fixed in new PR: https://github.com/lucacasonato/deno-gfm/pull/25


python311Packages.pytorch-lightning: 2.2.5 -> 2.3.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python311Packages.pytorch-lightning is: Lightweight PyTorch wrapper for machine learning researchers
meta.homepage for python311Packages.pytorch-lightning is: https://github.com/Lightning-AI/pytorch-lightning
meta.changelog for python311Packages.pytorch-lightning is: https://github.com/Lightning-AI/pytorch-lightning/releases/tag/refs/tags/2.3.0
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.3.0 with grep in /nix/store/7v3ryjx7h0ysmr0psz4l430q60i7blmd-python3.11-pytorch-lightning-2.3.0
found 2.3.0 in filename of file in /nix/store/7v3ryjx7h0ysmr0psz4l430q60i7blmd-python3.11-pytorch-lightning-2.3.0

Rebuild report (if merged into master) (click to expand)

6 total rebuild path(s)

6 package rebuild(s)

First fifty rebuilds by attrpath

piper-train
python311Packages.pyannote-audio
python311Packages.pytorch-lightning
python312Packages.pytorch-lightning
whisper-ctranslate2

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/7v3ryjx7h0ysmr0psz4l430q60i7blmd-python3.11-pytorch-lightning-2.3.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python311Packages.pytorch-lightning https://github.com/r-ryantm/nixpkgs/archive/b1ca81dc9806926373eb34e445c010d10f5cca94.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/b1ca81dc9806926373eb34e445c010d10f5cca94#python311Packages.pytorch-lightning

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/7v3ryjx7h0ysmr0psz4l430q60i7blmd-python3.11-pytorch-lightning-2.3.0
ls -la /nix/store/7v3ryjx7h0ysmr0psz4l430q60i7blmd-python3.11-pytorch-lightning-2.3.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

4 packages marked as broken and skipped:

piper-train
piper-train.dist
python312Packages.pytorch-lightning
python312Packages.pytorch-lightning.dist

6 packages built:

python311Packages.pyannote-audio
python311Packages.pyannote-audio.dist
python311Packages.pytorch-lightning
python311Packages.pytorch-lightning.dist
whisper-ctranslate2
whisper-ctranslate2.dist

Maintainer pings
cc @tbenst for testing.

2.3.2 is out, please open a new PR.


Feature/498 cover page

Document cover page added using sample data.
Some other fixes/features include:

In search results, click on Litigation tab and a 'coming soon' message will display
After selecting some filters, sorting, etc, and then leaving the page, then coming back to the page, these selections will still be shown in the UI (previously they were lost when navigating away).

@eurolife not sure whether this is to do with the addition of the litigation tab but the download results button seems to be out of place?
Although, we mentioned hiding this button until we have the API to download results. Not sure whether we decided on that or showing a 'feature coming soon' message.

Also, I'd expect the document title here to link to the document cover page? Because that functionality is otherwise hidden in an overflow menu, someone might never realise they can get to the document cover page from the search results.

On the document cover page, do these 'link to document' links imply that we have a copy of the document for each event? I don't think we have that in the data at the moment.

@eurolife not sure whether this is to do with the addition of the litigation tab but the download results button seems to be out of place?
Although, we mentioned hiding this button until we have the API to download results. Not sure whether we decided on that or showing a 'feature coming soon' message.

@kdutia I'm not able to reproduce this one - maybe you need to clear cache?

On the document cover page, do these 'link to document' links imply that we have a copy of the document for each event? I don't think we have that in the data at the moment.

@kdutia I was just picking that up from the design - I'll have to ask Ingemar about it.

Also, I'd expect the document title here to link to the document cover page? Because that functionality is otherwise hidden in an overflow menu, someone might never realise they can get to the document cover page from the search results.

The 'View Document Details' link in the overflow menu doesn't work at the moment either, but I'm not sure if you had that planned for a later PR.

@kdutia All good points here. I will take care of these in my next PR.


Fix review date of older reviews

Hey team,
Just wanted to flag you that many, if not all, older reviews have a review date of "1/24/2024" and don't match their original review dates on MCITCentral. Could this be the date that these reviews were added to the MyMCIT database?
If this was a deliberate design decision, feel free to archive this issue. 🙂 Otherwise, I think it's helpful to see the actual date of a review as I personally value newer reviews of a course.
Example:

Hi @qu8n Good observation! Yes, I believe the date (1/24/24) is when the old reviews were added to the MyMCIT database.


Receivers: Add paging functionality to list of reports on daily data page

Problem statement
On the daily data page (https://reportstream.cdc.gov/daily-data), results can get quite long. We'd like to add pagination to this table to make it easier to consume and save on load time.
What you need to know
Similar to https://app.zenhub.com/workspaces/experience-607d9d5e68b95200150fec37/issues/cdcgov/prime-reportstream/3795
Acceptance criteria

On daily data page, I see table of test results reports
Table of reports is paginated

Assumptions

API work is already done

Design

Page design is similar to senders' submission history, with "number of records per page 25 50 100" on the lower left hand side and "previous" "next" on the right hand side.

@bgantick please pre-refine at eng sync

Please add your planning poker estimate with ZenHub @TomNUSDS

Hey team! Please add your planning poker estimate with ZenHub @kevinhaube @sethdarragile6

Changed to an 8 to account for unexpected refactor from history -> deliveries

Tying in 6126 since it involves conversion to new API tools

Can continue work on this with Luis's most recent PR fixing Delivery bugs. Auth bug still a blocker for merging to Staging/Prod

Swapping to a 3-pointer and putting into Next Items pre our discussion in sprint planning related to React Query implementation being a blocker

Incremental work to untangle network calls in Daily Data led to 6524 (tech-debt for Sprint 54 anyway) being included in necessary changes for this work to be completed! Two birds, meet my one stone.


Android - MediaPlayerService.Play(IMediaFile) Exception

I am occasionally getting an Unhandled Exception in this method. The call to _mediaPlayer.PrepareAsync() raises a Java.Lang.IllegalStateException every so often.
In researching this issue on StackOverflow, I found that this occurs if you try to Prepare the media player if it is already prepared. I made a fix to this by putting a try/catch around the call. Pull request to come soon.

I have found the my previous fix to this issue did not completely solve it. It prevented the unhandled exception, but the song still does not play.
I have created a new fix for this issue. In the exception catch block, I reset the media player, reset the media source, and call PrepareAsync again. This seems to have fixed the issue.
Pull request to come soon.