[Question] Supporting custom facts in oxc-resolver to make it work without needing fs

Hello!
Context
We (my team) are working on a huge yarn workspace repo with hundreds of thousands of files. We have a use case of resolving imports for all these files tried using oxc-resolver for it and it worked reliably apart from the fact that it took a lot of time (around ~20s) which is expected for such a big repo.
We profiled the hotspots and found that reading files using fs takes the most amount of time. One way to get around this is to use the virtual filesystem provided by oxc-resolver. Correct me if I am wrong, but that would require us storing the string representations of all the files in memory which is not feasible for us considering the large amount of files we have.
Proposed alternative
We have a custom dependency graph solution which stores facts about JS/TS files and package.jsons. For example:
Map {
   "@some-workspace": {
      "path": "some-path/package.json",
      "exports": ...,
      "main": ...,
      ...
   }
}

All of these facts are available before the resolution process. Using this information, we can bypass fs in oxc-resolver because all the facts around the files is already there and we just need to plug it in in the correct places. We will be happy to contribute this feature but would need your help and guidance around reviews / approvals. I can raise a quick sample PR as well to demo how it could work. It will be something along the lines of:
Resolver.resolve(path, specifier, Option<facts>)

and then use facts in places where we are reading the fs to get facts about files.

Can you try a local build with your proposed solution and report back the performance improvement?
btw how much performance improvement did you observe when you switch from your existing resolver?

@Boshen we saw a performance regression because we had a custom resolution logic that avoided fs but it was hacky because it didn't account for all the cases supported by Node's resolution algorithm which is why we wanted to move to a production grade resolver.

enhanced-resolve has a few options for the cache, are you able to improve things if oxc-resolver expose some APIs for the cache as well?

@Boshen I am assuming you mean caching requests based on the path and specifier? That would help but it will still be much less performant than supporting custom facts imo. I can do a benchmark comparison between both the approaches if the caching API is exposed.
Anyways, I'll raise a sample PR with support for custom facts this week for you folks to check. I'll share the performance numbers there as well.

@Boshen I am assuming you mean caching requests based on the path and specifier? That would help but it will still be much less performant than supporting custom facts imo. I can do a benchmark comparison between both the approaches if the caching API is exposed.
Anyways, I'll raise a sample PR with support for custom facts this week for you folks to check. I'll share the performance numbers there as well.

Thank you.

@Boshen I was unable to create a branch here so forked the repo and created a branch there: #246
Using facts, we are able to process 430k .resolve calls in ~2s. Without using facts, it takes around ~8s. This is for a production build. Thanks for the support so far! Let me know your thoughts.

I'll take a look tomorrow.

Quick thought:
This is actually a really interesting approach for enterprise / huge monorepo support. I'm also interested in whether we can make the "produce pre computed file facts" part reproducible, either built-in or through other tools.
I'll ask around.

@Boshen, for reference this is an implementation of the same Facts pattern used in Hacklang and used (more complexly) in turborepo and is behind how Haste operates at Meta

The overall structure is as follows:

You get a (Path, SHA) index of the repo from an existing updated-on-write source (git, watchman)
You parse each file in raw form (e.g. imports stay as "../../foo.ts" and are explicitly explicitly not resolved) to get just the important bits of info
You re-use the previous cache for unchanged (cached by Path|Sha keys), and parse any newly seen files
You write out the cache

Depending what info you extract out, this leaves us with ~50MB of serialisable state which can answer all the cross-file questions we have on our large repo.
Locally, as devs are rotating this cache (cache -> update -> cache). We also have our CI output this (just a dumb zstd S3 store of it, which packs to ~15MB), which allows our devs to start from their mergebase-with-master's cache when they switch branches or take large jumps across many commits (as described in watchman's SCMQuery docs)
The same state can be updated in a delta form in a watch mode / from a daemon, as we find that just reading the index is the slowest part.
For some numbers, with oxc_parser we can do this in 8 seconds (without a cache), 2 seconds (with a cache) and 200ms for a delta update.
Downstream steps (resolution, linting etc) can read that cache and do the work they need, already knowing the most importing info for them, and hence why we're now limited by resolution (which we do at run-team for each downstream step)
We use (/ plan to use) this for:

Understanding the module graph
quickly identifying code cycles
extracting feature flags used in files
extracting translatable messages
extracting atomic CSS styles and building a single stylesheet
assertions on uniqueness of certain things (event names, error message keys etc)

@tomgasson Can you check your twitter DM, I'd like to know more about the things you guys are building.

This has not been forgotten, I'll come back to work on the resolver once I finish my other work, probably next week.

I spent some time studying the implementation.
To me, it is mounting another cache on top of the existing one with a few interceptors in the resolution algorithm.
There are two directions we can go:

Expose the cache and add a few callbacks in the resolver.
Add first class support with a proper specification.

I'm leaning towards 1 unless there are other companies who wants to collaborate and standardize this solution.

hey @Boshen thanks a lot for this ❤  I'll reach out to you in the discord channel when I get the chance.

Any updates?


Resources for term additions related to disability

Here's a great overview of some of the disability related terms to parse:

An Introductory Guide to Disability Language and Empowerment
National Center on Disability and Journalism Style Guide
Special Olympics Terminology Guide

Thanks a lot! I’ll try to implement this weekend.

I just checked them again, they’re really great :)

Ha! Thanks. If I had a little more time on my hands I'd help make the additions. Cheers!


[BUG] Cannot record test cases with special characters in the name

Example - https://github.com/Azure/azure-sdk-for-net/pull/12896/files#diff-e152777102db76590298fbda43777754R2099

Related - https://github.com/Azure/azure-sdk-for-net/pull/12896

@JoshLove-msft can you please take a look?

@seanmcc-msft in the comments of the example you mention it says this:

// Test framework doesn't allow recorded tests with connection string because the word 'Sanitized' is not base-64 encoded,
// so we can't pass connection string validation

My understanding here is that what is happening is the recording files are not able to be saved because the file path contains invalid characters. I'm not sure how this relates to 'Sanitized' not being base-64 encoded. Is the comment referring to a different issue?

@seanmcc-msft in the comments of the example you mention it says this:

// Test framework doesn't allow recorded tests with connection string because the word 'Sanitized' is not base-64 encoded,
// so we can't pass connection string validation

My understanding here is that what is happening is the recording files are not able to be saved because the file path contains invalid characters. I'm not sure how this relates to 'Sanitized' not being base-64 encoded. Is the comment referring to a different issue?

That comment is related to a separate issue, that appeared before this one, and I didn't update the comment.
Not being able to save the test files because their path contains invalid characters is also blocking recording that test.

@JoshLove-msft, I'm not sure if this change is functioning correctly on Mac and Linux - https://github.com/Azure/azure-sdk-for-net/pull/13083


MsMpEng.exe can't be shutdown

MsMpEng.exe can't be shutdown
Build：Win10.1909 18363.778 Enterprise
my preset：

I have seen feedback from other people, thank you.


Class-returning-function breaks nominal typing of instances

Under the following, Flow considers all createed classes as equivalent.
function create() {
    return class K {}
}

let A = create();
let B = create();

function fn(K: Class<A>): A {
    return new K();
}
fn(B); // ng, but flow says ok

There exists no explicitly annotated analogue to create that causes the same problem.

It seems fine. A and B are produced by the same function, so have the same type

Sorry for the meh example. Classes are nominally typed. Given x that's an instance of A, x instanceof B === false.
Given the following, Flow flags zero errors:
function create() {
    return class K {
        s(): string { return "one"; }
    }
}

let A = create();
let B = create();

function fn(a: A | string): string {
    if (a instanceof B) { // Flow incorrectly narrows the union type here
        return a.s();
    }
    return a;
}

@popham oh, I see.
The thing is that the return type of create is Class<Something>, and flow assumes that all values of the this type are actually the same value, which is usually true. Also flow allows you to use A and B as types, although they are not types. This two thing together cause this behaviour.
I think this should be solved by introducing 'structural' classes. For example:
type A = StructuralClass<() => void, {
  s(): string
}>

The first parameter is type of constructor, the second is the type of constructed value. Values of this type shouldn't be allowed to use as types, structural type of constructed value should be used instead.

I just wanted to point out that there exists a path to break the type system.
An explicit interface return type should work someday, e.g. create(): Class<InterfaceThatMirrorsK>.... Flow doesn't currently subtype classes, so that will fail when Flow tries to unify the nominal-typed class with the interface, but someday perhaps. My workaround is to trivially extend the created classes, e.g.
let A = class A extends create();
let B = class B extends create();

My point is that there exists a path to break the type system. Regardless of a workaround's existence, such a path shouldn't exist.

We are ok with this for now. Nominality is assigned based on the class declaration/expression.

I currently have a memoizing polymorphic function that depends on this behavior, i.e.
export class PointerList {
  static _specials: { [hash: string]: Class<ByteAlignedList<any>> };
  static of<R: AnyPointer | ByteAlignedList<*> | BoolList>(_R: Class<R>): Class<ByteAlignedList<R>> {
    const hash = _R._hash();
    const cached = this._specials[hash];
    if (cached) {
      return ((cached: any): Class<ByteAlignedList<R>>);
    }

    class List extends ByteAlignedList<R> {
      static _hash(): string {
        return "L("+_R._hash()+")";
      }
      // ...
    }

    return this._specials[hash] = List;
  }
}

Can I rely on this pattern?


Incorporate common install steps into base image, negating need for jlink

The following steps are common in our Dockerfiles:
RUN jlink --compress=2 --module-path /opt/jdk/jmods \
       --add-modules java.base,java.net.http,java.security.jgss,java.logging,java.xml,java.desktop,java.management,java.sql,java.naming \
       --output /jlinked \
    && apk add --no-cache git sed findutils coreutils make npm curl gawk jq \
    && git config --global advice.detachedHead false

RUN npm install -gs raml2html raml2html-modern-theme

These should be added to the Java 11, 17, 18 images (those currently in use) so they can be removed from Dockerfiles.

Closing as we have done away with the jlink process.  Any images still using jlink should be updated to use a corretto runtime image.


Removing the isotropic case

This is of interest to both @mhamilt and @AlexisMousseau
Since the new orthotropic case includes the isotropic as a special case, I propose we delete the old functions altogether.
The new README is also way more explicative. Any thoughts?

We discussed about this with Matthew and maybe testing for the speed is a first step to removing the isotropic code, if it is faster than the orthotropic it could be handy keeping it and making it a choice for the user
The new readme is really well made ! I'm just not sure I understand the transition from the finite difference boundary conditions to the block formulation though

Okay, sure, let's keep the isotropic case for now. I expect efficiency to be roughly the same for both cases. If compute times are vastly different, something is probably up!
I'll have to refine the block formulation a bit, as I plan to reduce the number of colours and use a new colour code to identify: diagonal sub-blocks, tridiagonal sub-blocks and pentadiagonal sub-blocks. These are the only three kinds of sub-blocks appearing in the matrix.

The new readme is really well made ! I'm just not sure I understand the transition from the finite difference boundary conditions to the block formulation though

Okay, in the coloured diagram, each block row acts on one strip of points. Remember that the strips are formed by stacking consecutive points along y. So, the first strip includes the vector defined by l = 0, m = (0 : Ny); the second strip includes the vector  defined by l = 1, m = (0 : Ny); and so on. So, each block row transforms the corresponding vector by applying the difference operator.
Now, think of the first vector, defined for l=0, m = 0:Ny. This includes only points on the boundary, including two corners! So, it's a pretty special vector, because the biharmonic (or the orthotropic version of it), needs to be highly specialised to treat the boundary points / corner.  If you look at the stencil for the top corner, as exemplified in one of the figures in the readme, you'll see that the stencil includes the point (0,0), (0,1), (0,2),(1,0),(2,0),(1,1). Among these, there are points belonging to l=0, m=0:Ny (in this case, (0,0), (0,1),(0,2)), but other points too! There are points belonging to l=1, m=0:Ny ((1,0),(1,1)) and also one point belonging to l=2, m=0:Ny (i.e. (2,0)). This is why you need three horizontal blocks in the top row to transform this vector. The blocks pick points belonging to neighbouring strips.


Minor improvement: add planner migration sample to planner category

Minor improvement: add planner migration sample to planner category

This has been picked up and solved, thus issue can be closed


Failed to access when host url with username:password

I am using facetflow.io, a hosted elasticsearch.
Their url have an API KEY prepend to the cluster url, such as:
<EMAIL_ADDRESS>When I put in this URL to the config.hosts, facetflow returned error 401, authentication failed.
No problem when I was using aws elasticsearch, as they doesn't prepend any credential to the url.
So I wonder is this a problem with elasticquent or there are some problem with my server?
regards,

What does your config/elasticquent.php look like?
This is my entire file for bonsai.io:
return array(

    /*
    |--------------------------------------------------------------------------
    | Custom Elasticsearch Client Configuration
    |--------------------------------------------------------------------------
    |
    | This array will be passed to the Elasticsearch client.
    | See configuration options here:
    |
    | http://www.elasticsearch.org/guide/en/elasticsearch/client/php-api/current/_configuration.html
    */

    'config' => [
        'hosts'     =><EMAIL_ADDRESS>        'retries'   => 1,
    ],

    /*
    |--------------------------------------------------------------------------
    | Default Index Name
    |--------------------------------------------------------------------------
    |
    | This is the index name that Elasticquent will use for all
    | Elasticquent models.
    */

    'default_index' => 'book-index',

);

This configuration works fine for me.

The configuration for Elasticquent w/ Facetflow is similar.
Go to your Security page inside Facetflow, and go to the access control page. Make sure if you are using a custom key (that is, anything but the unmodified default) that you click on the padlock, and ensure that there is enough access for that key to work:

Make note of the key on the left hand side:

That key will be used for your hosts config.
<?php
return array(
    'config' => [
        'hosts'     => [
            'https://1iHsUwgWkaE[hidden]:@elasticquent.east-us.azr.facetflow.io:443'
        ],
        'retries'   => 1,
    ],
);

Note that there is a colon (":") just before the at sign ("@").
You will realise that I have added the HTTPS port at the end of the host. This is to override the default inside Elasticsearch's library (which is 9200, when it is not set)

@yaofong did this help?

do some people have experience with AWS Elasticsearch calls w/ Elasticquent ?


Map style options are only working in dark mode

Map style options are only being applied in dark mode
Environment details

Maps compose 2.5.0

Code example
GoogleMap(
    modifier = Modifier.fillMaxSize(),
    cameraPositionState = cameraPositionState,
    properties = MapProperties(
        mapType = MapType.NORMAL,
        isMyLocationEnabled = false,
        mapStyleOptions = MapStyleOptions.loadRawResourceStyle(LocalContext.current, R.raw.map_style)
    )
)

Managed to make it work with
val mapProperties by remember {
      mutableStateOf(
          MapProperties(...)
       )
}

GoogleMap(
    modifier = Modifier.fillMaxSize(),
    cameraPositionState = cameraPositionState,
    properties = mapProperties
)


harmonia: 0.6.4 -> 0.6.6

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for harmonia is: Nix binary cache
meta.homepage for harmonia is: https://github.com/nix-community/harmonia
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
Warning: a test defined in passthru.tests did not pass
found 0.6.6 with grep in /nix/store/2wyy4v13m6c610pf6s6z2ck5mk9gnf1q-harmonia-0.6.6
found 0.6.6 in filename of file in /nix/store/2wyy4v13m6c610pf6s6z2ck5mk9gnf1q-harmonia-0.6.6

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

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
harmonia

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/2wyy4v13m6c610pf6s6z2ck5mk9gnf1q-harmonia-0.6.6 \
  --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 harmonia https://github.com/r-ryantm/nixpkgs/archive/dce23db3cda7c41a1d1471652af3c44e2a0ffd5b.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/2wyy4v13m6c610pf6s6z2ck5mk9gnf1q-harmonia-0.6.6
ls -la /nix/store/2wyy4v13m6c610pf6s6z2ck5mk9gnf1q-harmonia-0.6.6/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 run on x86_64-linux 1

1 package built:

harmonia

Maintainer pings
cc @Mic92 for testing.

Test failure on ofborg.

Forgot to bump the version. Fix is here: https://github.com/nix-community/harmonia/pull/99

I released v0.6.7 to fix this issue.


initial commit for free agent auction report

I wanted a function that would allow me to automatically post the Free Agent Auction report to Slack/GroupMe/etc/. I'm only in leagues that use FAAB. This could be generalized to include other waiver systems, but I would need an example public league to test on.
This is my first PR, so let me know if anything looks off!

Codecov Report

Merging #59 into master will decrease coverage by 12.06%.
The diff coverage is 8.6%.

@@             Coverage Diff             @@
##           master      #59       +/-   ##
===========================================
- Coverage   91.37%   79.31%   -12.07%
===========================================
  Files          12       13        +1
  Lines         545      638       +93
===========================================
+ Hits          498      506        +8
- Misses         47      132       +85

Impacted Files
Coverage Δ

ff_espn_api/free_agent_auction_bid.py
14.28% <14.28%> (ø)

ff_espn_api/league.py
73.33% <5.17%> (-12.48%)
: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 660ef8b...14cfdd2. Read the comment docs.

Thanks for posting a PR! I will try to look at this fully later today.
One note, could you make a unit test for this new code.
Also I have never played in a FAAB league before but do you know if you can get this data through the recent_activity endpoint?

I'll work on those tests soon. And no you can't get the same info from recent activity, because in auction leagues you can see the failed bids. Because failed bids don't end up as an actual transaction they won't appear on the activity feed.

Very interesting! I will also try out that endpoint in my non FAAB league and see what else it returns.

I've actually been looking into including offers report into this module, and apparently everything I need has been here already!
I'm curious to know what needs to be worked on here to get this integrated/merged?


Insecure connection in SDK

I have concern about this file: https://github.com/Mangopay/mangopay2-php-sdk/blob/master/MangoPay/Libraries/HttpCurl.php
If the certificate path is not set, is the connection to API made ignoring the validity of certificate?

Hi @vinitraje
The functionality is working on our recent tests,
Regards,
Max


fix: adds patch as new default semver

Fixes: Defaulting semver should be patch #19

[x] Bug fix (non-breaking change which fixes an issue)
[x] This change requires a documentation update

The changes have been tested by running the script using no flag thereby using the new default and checking the resulting increase in patch semver

I will continue to work on this and fix the issues you pointed out :) thanks for the hints!

it was interesting indeed 😄
I'll fix it, always good to be thorough 👍


Export-DbaInstance & Export-DbaScript fixes

Type of Change

[X] Bug fix (non-breaking change, fixes #5930
[ ] New feature (non-breaking change, adds functionality)
[ ] Breaking change (effects multiple commands or functionality)
[ ] Ran manual Pester test and has passed (`.\tests\manual.pester.ps1)
[ ] Adding code coverage to existing functionality
[ ] Pester test is included
[ ] If new file reference added for test, has is been added to github.com/sqlcollaborative/appveyor-lab ?
[ ] Nunit test is included
[ ] Documentation
[ ] Build system

Purpose

missed some calls that should honour -NoPrefix in Export-DbaInstance
fixes issue #5930

Approach

added calls to -NoPrefix in Export-DbaInstance
for issue #5930

The Extended Events type Microsoft.SqlServer.Management.XEvent.Session doesn't support $scripter.EnumScript($object) so throws a warning and you get no output in the exported file.
This was changed in #5795 within the block that gets called if no scripting options are passed in so I'm not sure if there are other benefits to using $scripter.EnumScript($object) than the ability to use scripting options.
Also added a block at the top, if someone passes in an extended events object & scripting options there is a warning and the scripting options are removed.

Commands to test
Get-DbaXESession -SqlInstance server | Export-DbaScript  -Path C:\Temp\export\

Get-DbaXESession -SqlInstance server | Export-DbaScript  -Path C:\Temp\export\ -ScriptingOptionsObject $options

Export-DbaInstance -SqlInstance server -Path C:\temp\export\

Hi @jpomfret
The changes made in #5930 were made to

Make ScriptingOptions the overriding method of setting options. Options set here will override equivalent switches
Make the output from using or not using ScriptingOptions consistent
Fix issues where the script produced was not actually valid

The use of the $scripter.EnumScript($object) was required to ensure correct output was generated for some objects when adding the Batch Seperator. A particular example is scripting stored procedures.
For example:
Get-DbaDbStoredProcedure -SqlInstance lensmansb -Database NorthWind -ExcludeSystemSp | Export-DbaScript -FilePath 'C:\Users\sqlle\Documents\DbatoolsExport\sp.SQL
Using = $object.Script() will not correctly produce a usable script as the directives like
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
will not be separated by GO statements and script will not compile and will throw error
'CREATE/ALTER PROCEDURE' must be the first statement in a query batch.
I have been working on an alternative solution of creating an explicit Export-DbaXESession command that was almost ready to submit as I think modifying Export-DbaScript to support objects that don't actually implement the ScriptingOptions or Script method is a good idea.
The branch I am currently working on (which also has fixes to issues with Export-DbaInstance can be compared via
https://github.com/sqlcollaborative/dbatools/compare/development...sqllensman:ExportScripts1?expand=1
The other changes made to fix shortype definitely should be made.

Hey @sqllensman
I actually wondered if having an Export-DbaXeSession would be a better idea, but honestly was looking for the quickest fix.  I had a look through the issues and didn't see anything to indicate someone was working on it, or had even reported the issue.  I am using this at work right now, so was trying to get it back to working again.  I'm fine with modifying this PR and just leaving the Export-DbaInstance fixes and the typo for shortype --> shorttype and then using the Export Xe script. Do you have an estimate of when you might merge it in? Otherwise perhaps this would work in the short term?
Thanks,
J

Hi @jpomfret
I have submitted the pull request for Export-DbaXeSession
Assuming this passes then you can modify your changes to use this.

Thanks so very much to you both 🙇

Hi @potatoqualitee
You probably did not want to merge the changes from @jpomfret yet as they need to be modified to use Export-DbaXESession.
The changes to Export-DbaScript will actually break    as per discussion.


Add an endpoint that returns expiration by auction name

Also, this data can be added to the output of getNameAuctionsBidsbyName endpoint

https://testnet.aeternal.io/middleware/names/auctions/jzcov.chain/info ?

Looks ok, except that precision can be loosed on parsing because name_fee encoded as Number, but winning_bid is String. They are not equal after parsing.
Also, can you add this endpoint to swagger file?


Machine mac-41 & mac-44 lost external connection iPhone device.

Machine mac-41 & mac-44 lost external connection iPhone device.

External connection has been restored for both machines by rebooting each machine.


⚠ Adacta-fintech.com has degraded performance

In 37c13e1, Adacta-fintech.com (https://www.adacta-fintech.com) experienced degraded performance:

HTTP code: 200
Response time: 1324 ms

Resolved: Adacta-fintech.com performance has improved in b7773ab.


Always return a default branch.

I changed my mind about this. I think we should mirror not having a branch in the default_branch.


Aerial cache download only for selected items on macbook air

Hi. As you know, internal space in Macbooks Air are very limited. So it will be very good if download function only download the videos that are already selected, saving some space. Its a filter in code and i think it will be very well accepted by everyone.
Thanks,
Paludo
Brazil

Hi @fpaludo,
The screensaver already works this way.

Select the videos you want downloaded. Leave the default "Cache Aerials As They Play" box ticked.
Let the screensaver run.
There is no step three.

The screensaver will only download the ones that you have selected.
I just tested this myself on a new Mac just to confirm. Ticked six videos at random, left the screensaver running over night, and it's only downloaded the six videos I ticked.

Whow!
That's a nice new @alistairmcmillan. I have tried using the cache option, and it does not work as (I) expected... I will try this way you said about. Thanks for your help!

I want to use "download now" to get all the cache video first.
But after click it, it show downloading greenland(which I didn't select) and stuck...
I already check the cache folder it have some other video downloaded(selected before but deselect didn't remove old files)

You can now download videos individually in 1.4, or download what you selected using the menu below the video list.


[e2e]: generic push branch1 default slsa3

Repo: https://github.com/slsa-framework/example-package/tree/branch1
Run: https://github.com/slsa-framework/example-package/actions/runs/3754667754
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.generic.push.branch1.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.generic.push.branch1.default.slsa3.yml
Trigger: push
Branch: branch1
Date: Thu Dec 22 03:23:54 UTC 2022

Some kind of permission error.
v1.2.3: invalid semantic version
  *** Starting with verifier at v2.0.1-rc.3 ****
HTTP 403: 403 Forbidden (https://objects.githubusercontent.com/github-production-release-asset-...)

Re-running to see if this is a transient issue.

Repo: https://github.com/slsa-framework/example-package/tree/branch1
Run: https://github.com/slsa-framework/example-package/actions/runs/3754667754
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.generic.push.branch1.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.generic.push.branch1.default.slsa3.yml
Trigger: push
Branch: branch1
Date: Thu Dec 22 08:11:29 UTC 2022
Tests are passing now. Closing this issue.


Encrypted dynamodb configuration loader

This adds an encrypted version of the dynamo db config loader, borrowing code from Credstash.
There are two obvious pitfalls here:

There's enough overlap with Credstash, we should consider just using their code instead of rolling our own. The only way to make that work would to be to use their DynamoDB schema instead of ours; that mostly works except that we want to query by both service name and configuration key. To my knowledge, that makes it hard to query for a single service's config. But maybe someone can see a way in their source

The API is now a little awkward because we have a polymorphic value type. I'm open to suggestions on improving it. For example:

loader.put(service, name, loader.encrypt(value))

would be nicer as
loader.put(service, name, value)

That's a pretty easy change, but at the expense of a little more code complexity. Anyone think this is not worthwhile?

LGTM

I'm going to resubmit this. Thanks for the approval.


Positive test case inconvenience - proposal of new extension method

Issue Description
ValidationTestExtension contains methods for testing validation of particular fields of validated object:

ShouldHaveValidationErrorFor
ShouldNotHaveValidationErrorFor

In negative test scenario it's enough to use ShouldHaveValidationErrorFor. But if we want to have positive one we must either use ShouldNotHaveValidationErrorFor for all the fields of validated object or use workaround syntax (which by the way is not documented):
ValidationTestExtension.ShouldNotHaveError(validator.TestValidate(validated));
I would like to suggest to add method ShouldNotHaveValidationError working in similar way to ShouldNotHaveValidationErrorFor but for all fields.

Hi,  the ValidationTestExtension.ShouldNotHaveError method you're using is just a wrapper around the assertion methods that are on the TestValidationResult and is designed for use on a single property. If you want to assert that there are no errors on any properties, then you don't need to use this and you can just use the properties on the test result directly:
validator.TestValidate(model).Which.ShouldNotHaveValidationError();

Actually, in this case you don't even need to do this. The test helper methods are intended to help with finding specific properies to assert against. If you just want to check that there are no errors on the result, just call Validate manually and check IsValid.
Assert.True(validator.Validate(model).IsValid);
```

I don't really think there needs to be another method to do this as both these approaches are pretty simple.

And yes you're correct this isn't documented. [It is on the list to be documented](https://github.com/JeremySkinner/FluentValidation/issues/820) but I don't personally have time to work on this at the moment - I don't have much time to work on FluentValidation, and when I do most of the time ends up being spent on either answering support questions, or updating the ASP.NET core integration. If you think this should be higher proprity then please feel free to submit a pull request to update the docs, otherwise I'm afraid it'll have to wait until I get time.


Unexpected EOF for "https://api.mailersend.com/v1/email\" symfony/http-client/Response/CurlResponse.php:338

Hello Team,
I am getting following error while trying to send mail using jobs.

Unexpected EOF for "https://api.mailersend.com/v1/email\". at /var/www/html/public/vendor/symfony/http-client/Response/CurlResponse.php:338

Here is my code structure:
class SendMailTemplate implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected string $email;
    protected string $template;
    protected string $subject;
    protected array $values;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($email, $subject, $template, $values = [])
    {
        $this->email = $email;
        $this->subject = $subject;
        $this->template = $template;
        $this->values = $values;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle(): void
    {
        Mail::to($this->email)->send(new MailerSendMail($this->template, $this->subject, $this->values));
    }

class MailerSendMail extends Mailable
{
    use Queueable, SerializesModels, MailerSendTrait;

    private array $templates = [
        ...
    ];

    public $subject;
    public array $values;
    protected mixed $template_id;
    public ?Carbon $timestamp;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct(string $templateName, string $subject, array $values, Carbon $timestamp = null)
    {
        $this->template_id = $this->templates[$templateName];
        $this->values = $values;
        $this->subject = $subject;
        $this->timestamp = $timestamp ?? null;
    }

    /**
     * Build the message.
     *
     * @return $this
     * @throws MailerSendAssertException
     */
    public function build(): static
    {
        $to = Arr::get($this->to, '0.address');

        return $this->subject($this->subject)->mailersend(
            template_id: $this->template_id,
            personalization: [
                new Personalization($to, $this->values)
            ],
            sendAt: $this->timestamp
        );

    }
}

....
       SendMailTemplate::dispatch($session->user->email, "Charging Ended", "chargingEnded", $variables);
....

Sorry, but this seems like an error in your environment - please check whether your connection to our servers is OK and that your PHP version is also supported by our SDK. For further assistance - contact our support.


Homepage

closes #493

Wow Shreya. It's cool

Wow Shreya. It's cool

I guess you forget to label the level on it..


chore(Python): added to recursion n-th_fibonacci_number

What kind of change does this PR introduce? (check at least one)

[ ] Bugfix
[x] New algorithm
[ ] Optimization in previous algorithms
[ ] Code style update
[ ] Refactor
[ ] Documentation
[ ] Other, please describe:

Briefly describe the changes in this PR

Other information:

can I close this PR now?

can I close this PR now?

wait for it to be merged by @ming-tsai before.

gotcha!


405 and CORS

Hello,
I have a server configured with http as follows:
const handler = async (req: Request) => {
    const { pathname } = new URL(req.url);

    return pathname === "/graphql"
      ? await GraphQLHTTP<Request, Context>({
          schema: makeExecutableSchema({
            resolvers,
            typeDefs: [center, student, instructor, group, scalars],
          }),
          graphiql: true,
          context: () => {
            return { request: req };
          },
        })(req)
      : new Response("Not Found", { status: 404 });
  };

  const server = new Server({ handler });
  const listener = Deno.listen({ port: parseInt(PORT) });

  console.info("Listening on", listener.addr);

  await server.serve(listener);

When I use the graphiql playground it works just fine, but when using from any other client I get 2 erros:

Request Method: OPTIONS Status Code: 405 Method Not Allowed
CORS

How could I fix this? Thanks for your time.

regarding CORS I don't know why the error happens because it's not controlled by gql, but for OPTIONS it's a bug.
If you want, you can create a PR for it, or I'll fix it later myself, seems very simple to fix.

@avalero The solution is not from the library but from how you are handling CORS with your app.
Please see an example with CORS here: https://github.com/MichaelFedora/gql/blob/vanilla-cors/examples/vanilla.ts


Fix the document of UseCaseContext.constructor

Fix https://github.com/almin/almin/issues/85

lgtm

@azu could you merge this? I don't have a merge permission.

fmm, I've merged this.
Additionaly, I've changed your role.


removed status required flags and updated examples - fixes #2259

@jseldess does this need a review from eng?

This change is

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/f7e3471220a8f3ba80609add1d55dbd06d1b0ddc/

@lhirata, yes. Please assign the engineer who authored the PR linked from the docs issue as a first reviewer.
Also, in the PR description, or in any commit message, you should write: Fixed #<issue number>. That way, the issue that you are fixing will be automatically closed when this PR is merged.

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/f566a424261b7747a4745c355d73b91652a1520f/

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/14572555790dd389cd71e9e64d118af5a49590ae/

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/885d345d569169ea12c139850705f08d7a48f63d/


Using pekko instead of akka  in reference.conf and related configurations

Issue https://github.com/apache/incubator-pekko-connectors-kafka/issues/20

part of #29


Docs should fetch device type information dynamically

Currently we have a device-types.json file that is the source of truth for the getting started guide. This is quite error-prone and it needs to be manually updated, so we need to change it to fetch the device types info dynamically.

@vipulgupta2048 I believe this issue is already taken care of, see https://github.com/balena-io/docs/blob/master/templates/_devices.html where there is a dynamic query on page load which queries device types from balenaAPI.
Can I close this issue?

@vipulgupta2048 Yeah this issue is definitely not solved -- it's referring to https://github.com/balena-io/docs/blame/master/config/dictionaries/device.json

Yeap, we will remove this soon enough once Contracts can get provisioning instructions sorted.


Refactor header roots

[x] evidence root
[x] validators/state roots

Rendered:
https://github.com/LazyLedger/lazyledger-specs/blob/adlerjohn-refactor_header_roots/specs/data_structures.md
and
https://github.com/LazyLedger/lazyledger-specs/blob/adlerjohn-refactor_header_roots/specs/architecture.md

@Liamsi Refactored the header to remove validator roots (both), and added a stateCommitment field, which is computed as hash(stateRoot, validatorRoot). Does this seem reasonable and in line with previous discussion? If yes, I'll update the data structures figure and flag this for review.

Still need to go through the tendermint changes required for this (https://github.com/LazyLedger/tendermint/issues/3) but independent of that this seems reasonable.
Question: Is hash in hash(stateRoot, validatorRoot) the same hash function as used for the sparse merkle tree that yields, e.g. stateRoot

Is hash in hash(stateRoot, validatorRoot) the same hash function as used for the sparse merkle tree that yields, e.g. stateRoot

Yes, my understanding is that only a single hash function is used everywhere (keccak-256).

Do we need to prefix the stateRoot and the validatorRoot with the trees inner node prefix?

I don't think we need to prefix it with anything, since it's a fixed operation. But it wouldn't hurt to just prefix it, that way it might be easier to parse, as it can be interpreted as the parent node of two potentially-asymmetric subtrees.

From https://github.com/LazyLedger/lazyledger-specs/blob/adlerjohn-refactor_header_roots/specs/architecture.md

Transactions are signed and must be processed by clients to determine the validator set, while messages are un-signed data blobs that will usually represent an app's block data.

Didn't we settle on including messages inside of Tx?

Didn't we settle on including messages inside of Tx?

I don't think so? Txs that pay fees for a message to be included (not all txs do this, some just e.g. change the validator set) shouldn't include the binary data as part of the tx itself, otherwise some client profiles would have to fully download messages even if they don't care about them. For example, if I only care about the LazyLedger validator set, I can just ignore the entire message namespace. Txs should only include a commitment to a message.

I misunderstood the outcome of this discussion then: https://github.com/LazyLedger/lazyledger-specs/pull/2#discussion_r399303321
I thought it might be simple if we have a single Tx type type Tx {msg: Msg} and that model could also be used for validator set changes and everything.
This is kinda orthogonal to this PR. We can continue the discussion in a separate issue. If I want to include a Msg, what do I do / what happens (and if sending Tx{commitToMsg} and Message,  is two operations couldn't I spam the network with unsigned messages that do not have a corresponding Tx)?

Transactions can certainly be sent around the network as Tx {amount, recipient, witness[, msgBytes]}, then encoded in the block as Tx{amount, recipient, witness[, msgID]} and Msg{msgBytes} (where msgID = hash(msgbytes), and can be computed before relaying the transaction).
The point of splitting up txs and msgs inside the block is that there can be users that want to ensure the integrity of the LazyLedger coin and make sure that the message data is available, but they don't care what the message data actually is.

Makes perfect sense inside the block! I was looking from an encoded on / decoded from the wire perspective I guess.


export stream to external webrtc  server

hi dusty, thank you for building this repo, it really helps a lot .
Now, i tried to export video stream to external webrtc server using below command:
python3 app.py --input=/dev/video0  --output=webrtc://<IP_ADDRESS>:8889/mystream --headless
the logs:
captured 25 frames from /dev/video0 => webrtc://<IP_ADDRESS>:8889/mystream (1280 x 720)
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
captured 50 frames from /dev/video0 => webrtc://<IP_ADDRESS>:8889/mystream (1280 x 720)
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
captured 75 frames from /dev/video0 => webrtc://<IP_ADDRESS>:8889/mystream (1280 x 720)
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
[gstreamer] gstreamer message qos ==> decoder
but it doesn't seems to work , the stream doesn't even arrive <IP_ADDRESS> .So does this repo support the way above ? Thanks.

@whsasf the webrtc server in jetson-inference/jetson-utils operates in "listener" mode where it hosts the stream and accepts incoming connection attempts (similar to RTSP), and from there it can send/receive video streams to clients.
It's not expected to put a remote IP address in the webrtc:// URL, that IP address signifies which network adapter on the Jetson you want to bind to (for example, webrtc://<IP_ADDRESS>:8889/mystream or webrtc://@:8889/mystream binds to all network interfaces on your Jetson)
Can you external webrtc connect to other webrtc servers, should you provide it with the URL of your Jetson's stream?

thank you for the response, i think i misunderstand the webrtc theory, i will find another way to this. thanks again.


add eslint-vue-config to the list of linter options (fix #611)

eslint-vue-config is also the default option now

linking #611

@chrisvfritz I think this makes sense, doesn't it?

Hmm, I'm honestly not sure. I haven't personally used the official Vue config for a big client project yet - mostly just small official or semi-official Vue projects. If there are folks in the community that are using it successfully, then I think we can go for it. I believe eslint-plugin-html should be unnecessary with eslint-plugin-vue though.

As starting point, perhaps we can provide it as one of the options instead of default? @prograhammer your thoughts?

@shailendher I've been using it successfully in a complex project in development, but the project has yet to be pushed to production. I think it makes most sense as default (this is Vue we are talking about) and if any issues come about then of course we have the other options we can use in the mean time.

I left this not note on 611 but it probably should have been here:
FYI: eslint-config-vue has been deprecated use eslint-plugin-vue-libs

Heh, so actually, it's true that eslint-config-vue has been deprecated, but it will be replaced by rules embedded directly into eslint-plugin-vue. At the moment, it's being reworked to include many more rules and embedded configs.
eslint-plugin-vue-libs is what we'll be using for official Vue repos from now on, so it's not meant for user projects.

Given Chris' explanation I will close this PR in favor of adding eslint-plugin-vue as soon as v3.0.0 is officially out.


add @makuru-dd to maintainers of abandoned project TiDB.

Description of changes
I Have seen that the package tidb is abandoned and would like to maintain it.

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

 This PR should have two commits with messages like maintainers: add Makuru and tidb: add Makuru as maintainer.

 This PR should have two commits with messages like maintainers: add Makuru and tidb: add Makuru as maintainer.

Done, I now have splitted the pull request in two.

 Commits message should always be area: change. There are a lot of good examples in commit conventions and the linked guidelines for the sub-areas (pkgs/, nixos/, lib/, ...)

 Commits message should always be area: change. There are a lot of good examples in commit conventions and the linked guidelines for the sub-areas (pkgs/, nixos/, lib/, ...)

Just pushed it.


link to Gateway Performance PBI template

hi,
there is mentioned the gateway performance template in the document twice.
Gateway Performance PBI template file
Gateway Performance PBI template
each of them refers to different .pbit. the first one is a newer one in my eyes.
There is one more page Query Concurrent count available in the new template.
an explanation in the document for this page would be helpful as well. there should exist a recommended limit of 40 concurrent queries I didn't find anywhere else mentioned in documentation.
would be a great argument for overloaded gateways if available.
thank you in advance.

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

ID: 4a144b27-04b6-5d42-9c9f-79bb4cc6730b
Version Independent ID: 7b00f680-f3a8-3502-94b5-5ca37d36f432
Content: Monitor and optimize on-premises data gateway performance
Content Source: data-integration/gateway/service-gateway-performance.md
Product: on-premises-data-gateway
GitHub Login: @miquelladeboer
Microsoft Alias: mideboer

Close/open to trigger our bot. Please ignore.

Hi @hokeson
Thanks for the feedback! The second link was obsolete, so it was changed to match the link in the first part of the article.


Should allow scrcpy to open in the secondary screen

I have two screens and one is running a 1280 * 720 resolution and the other one running a 1920 * 1080 resolution. I want to use --window-height flag to open scrcpy at X * 1000 resolution but since scrcpy would only open in my main screen, it shrinks.

I kind of go a similar requested as yours.
I also got 2 screen, 1 main screen running at 2560x1080 and a secondary screen running at 1280x768.
At every run of Scrcpy it open on my main screen.
I would like to set opening on Screen 2, since I use this screen for small tasks as running some Music player or some ambiance video.
My unique solution is, when Scrcpy open on my screen, I have to reduze size of its window, then move Scrcpy to secondary screen, and reduce it and left it there for future use.
PS: on every conncet of my phone to PC, I always have to repeat all this process.
it would be nice, to be able to set and lock Scrcpy window size, and also choose on which monitor its gona open.

My secondary monitor is to the left of my main monitor and I'm able to open scrcpy on my secondary monitor using the following command line:
scrcpy.exe --window-x=-450 --window-y=135
Notice the x position has a negative number.


Send Data type error

I have a problem sending Data. Other types work, but Data throws this error:
"gas required exceeds allowance or always failing transaction"
let helloTwoFunctionCall = Function(name: "helloData", parameters: [Data("extra".utf8)])
let helloTwoData = GeneralData(data: helloTwoFunctionCall.encodeToCall())
self.etherQuery.send(using: using, to: self.at, value: amount, data: helloTwoData, completion: { result in

Hey @fortmarek can you give me more info on the contract function you're trying to call? IE, what does it expect the Data parameter type to be? Its likely because of how we decide how to encode Data into bytes based on length.
I might have fixed the problem with my most recent commit to master, but if not you may have to specify the expected byte length for the parameter much like:

Or if its expecting an unconstrained "bytes" type:
let helloTwoFunctionCall = Function(name: "helloData", parameters: [ABIType.bytes(count: .unlimited, value: Data("extra".utf8))])
Lemme know if either of these work.

Yeah, I have to specify the byte length, but it works, so I think it's OK to close this now.


Unsupported Device

Initialize Devices - UnsupportedDeviceError(Unsupported device: Front Door with type: SMARTLOCK. Currently supported device types are: LIGHT,SWITCH,SMARTLOCK,SMARTPLUG,THERMOSTAT,ALEXA_VOICE_ENABLED,AIR_QUALITY_MONITOR,VACUUM_CLEANER,GAME_CONSOLE,AIR_FRESHENER.)
Says this type of device is unsupported but it is also listed under the supported devices

I have the same issue after upgrading to v2.2.0.  I downgraded back to v.2.1.5 to restore my smartlock device

I have the same issue after upgrading to v2.2.0. I downgraded back to v.2.1.5 to restore my smartlock device

When I try that, I get the too many requests error

I have the same issue after upgrading to v2.2.0. I downgraded back to v.2.1.5 to restore my smartlock device

When I try that, I get the too many requests error

I get that on every single version... you don't?

I have the same issue after upgrading to v2.2.0. I downgraded back to v.2.1.5 to restore my smartlock device

When I try that, I get the too many requests error

I get that on every single version... you don't?

I do get it on every version

My smartlock works on 2.1.5.  Its a Gainsborough Freestyle.

I plan to have a new alpha version for 2.2.0 published in a few hours. Please comment on #138 if you see this issue after I release the new alpha.


rc.elv not run for non-interactive scripts?

My window manager (bspwm) has an autostart script (bspwmrc) that is written in any shell language of my choosing.  I have chosen to write it in elvish.  In my rc.elv, I have configured $E:PATH and so on to include custom path directories; yet these changes are not reflected in the bspwmrc script running in Elvish.
This leads me to believe that rc.elv is not executed for "raw" scripts, i.e. ones launched through #!/bin/elvish.  With a little bit of fiddling, I find that this is indeed the case; non-interactive elvish scripts indeed do not execute rc.elv.
Is this actually desirable behavior?  Several of my scripts rely on the $E:PATH configured in my rc.elv.  I understand there are some advantages to restricting rc.elv to interactive sessions; perhaps we could consider having another script, such as profile.elv or something like that, that is always run at the start of any script?

FWIW, I am not a fan of the legacy POSIX shells like ksh, bash, zsh with regard to their myriad of per user startup scripts; e.g., ~/.login, ~/.profile, ~/.kshrc, etcetera. I prefer the fish shell approach of having a single per user startup script: ~/.config/fish/config.sh. If you need to predicate some initializations on being interactive or not you explicitly do so via if status is-interactive.  My vote is for a similar mechanism in Elvish.
The problem you ran into, @kwshi, has been noted by others. I could swear I've seen more than one issue mentioning this the only one I can readily find is #316. Probably the other discussions of this problem have been on Gitter. This is really a duplicate of #316.

Oops.  I'll close this so it can be tracked on #316.


Azure Spatial Anchors - AR Foundation tutorials fix update

Formating issue fixes.

Docs Build status updates of commit d739c8d:
:clock10: Pending: waiting for processors (18 builds ahead of you)
:warning: Docs Build is busy, currently there are 18 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

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

Docs Build status updates of commit d739c8d:
:warning: Validation status: warnings

File
Status
Preview URL
Details

mixed-reality-docs/mrlearning-asa-ch4.md
:warning:Warning
View
Details

mixed-reality-docs/images/mrlearning-asa/tutorial4-section2-step1-3.png
:white_check_mark:Succeeded
View

mixed-reality-docs/images/mrlearning-asa/tutorial4-section2-step1-4.png
:white_check_mark:Succeeded
View

mixed-reality-docs/images/mrlearning-asa/tutorial4-section2-step1-5.png
:white_check_mark:Succeeded
View

mixed-reality-docs/tutorials.md
:white_check_mark:Succeeded
View

mixed-reality-docs/mrlearning-asa-ch4.md

Line 22: [Warning-invalid-note-section] Text in the first line of Note/Section/Video is not valid. Will be rendererd to

Line 34: [Warning-invalid-note-section] Text in the first line of Note/Section/Video is not valid. Will be rendererd to

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit efa724a:
:clock10: Pending: waiting for processors (11 builds ahead of you)
:warning: Docs Build is busy, currently there are 11 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit efa724a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

mixed-reality-docs/images/mrlearning-asa/tutorial4-section2-step1-3.png
:white_check_mark:Succeeded
View

mixed-reality-docs/images/mrlearning-asa/tutorial4-section2-step1-4.png
:white_check_mark:Succeeded
View

mixed-reality-docs/images/mrlearning-asa/tutorial4-section2-step1-5.png
:white_check_mark:Succeeded
View

mixed-reality-docs/mrlearning-asa-ch4.md
:white_check_mark:Succeeded
View

mixed-reality-docs/tutorials.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


:memo: Add typing to some callback classes

Provides an exemple to #16691

After extensive discussions, this is what we will do going forward:

We accept type annotations for simple Python types (not unions, and not custom types), but they're optional when adding new code. We will merge contributor PRs that add such annotations going forward. We will not maintain custom types.

Please update the PR accordingly and format the code using black. Thanks!

Could we make an exception for the public api? I get that it's a lot of work to use custom types everywhere in the codebase and to maintain it, but for the public API, it has a direct benefit to the user through Mypy and IDEs, so it might outweight the cost of maintenance
Furthermore, those public API type hints could be in theory be read and displayed in the documentation, giving us even more incentive to do it

This is our policy at this time. We may revise it in the future.


In clusters with ten or more nodes, the admin node doesn't participate in doing merge operations.

Document mentions that:
In clusters with three or more nodes, the admin node doesn't participate in doing merge operations. The Number of nodes in cluster is reduced by one.
However, confirmed with product team. The node count should be 10 more and then the admin node doesn't participate in doing merge operations. It is not 3.

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

ID: 3c750ffa-07a3-6247-b5d2-89c43f8aacd6
Version Independent ID: 33f23cad-20a0-c0bb-0622-6272a7c5f9c2
Content: Capacity policy - Azure Data Explorer
Content Source: data-explorer/kusto/management/capacitypolicy.md
Service: data-explorer
GitHub Login: @orspod
Microsoft Alias: orspodek

Guy Yehudy corrected that:
In 3+ the admin is not participating in ingestion
But it does participate in queries and is holding extents
The doc is correct. Kindly archive this issue


Build fails

Classic "works on my machine". Build fails with an error, cannot find a dependency... 🙄
https://github.com/tplive/comicbot/runs/3369559011?check_suite_focus=true#step:4:9

...and now it works, after a little cleanup.. 😁


NEXT VALUE FOR with ISQLServerResultSet.TYPE_SS_SERVER_CURSOR_FORWARD_ONLY skips sequence numbers

Driver version
8.1.0.jre8-preview
SQL Server version
Microsoft SQL Server 2017 (RTM-CU15) (KB4498951) - 14.0.3162.1 (X64)
	May 15 2019 19:14:30
	Copyright (C) 2017 Microsoft Corporation
	Developer Edition (64-bit) on Linux (Ubuntu 16.04.6 LTS)

Client Operating System
Ubuntu 16.04.6 LTS in Docker Container
JAVA/JVM version
Java 1.8
Table schema
CREATE SEQUENCE my_sequence START WITH 1;

Problem description
Running SELECT CAST(NEXT VALUE FOR my_sequence AS BIGINT) with result set type ISQLServerResultSet.TYPE_SS_SERVER_CURSOR_FORWARD_ONLY skips sequence numbers.
Using a different result type works. It looks as if the cursor scroll option TDS.SCROLLOPT_FAST_FORWARD causes this phenomenon.
JDBC trace logs
jdbc_trace.txt
Reproduction code
Connection connection = …;
Statement statement = connection.createStatement(ISQLServerResultSet.TYPE_SS_SERVER_CURSOR_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
ResultSet resultSet = statement.executeQuery("SELECT CAST(NEXT VALUE FOR my_sequence AS BIGINT)");
resultSet.next();
System.out.println(resultSet.getObject(1));
resultSet.close();

resultSet = statement.executeQuery("SELECT CAST(NEXT VALUE FOR my_sequence AS BIGINT)");
resultSet.next();
System.out.println(resultSet.getObject(1));
resultSet.close();
statement.close();

I agree this is an issue in the Server itself. Given your proximity to the SQL Server team, I'd like to ask you to carry this issue to the Server team and address it in some way. The SQL Server documentation doesn't mention this behavior so I'm not sure whether this is desired behavior.


Replace custom static & media storage classes by passing options in the STORAGES setting

The custom cloud storages module has been deleted, and the settings have been updated to use the storage backend settings directly from each cloud provider's storage backend libraries. These changes have simplified the cloud storage configuration for each cloud provider in the production settings file.
This follows the recommendations from the django-storages docs and has been discussed in PR #4477

Description

Checklist:

[x] I've made sure that tests are updated accordingly (especially if adding or updating a template option)
[x] I've updated the documentation or confirm that my change doesn't require any updates

Rationale
This will make maintenance easier and reduce complexity since the utils folder is not needed anymore and if no storage provider is selected the storages.py file does not need to be deleted.
It is inline with the recommendation from django-storages.

Thanks! 🎉

Thanks for merging this!


Component is not updated when env variables are added after it's been created

This also extends to the case where an injected secret is updated, we need to redeploy the pod to take the changes into account…

we need to redeploy the pod to take the changes into account…

Dont forget to add a description to the ticket instead of a comment ;-) @metacosm

we need to redeploy the pod to take the changes into account…

This is the reason why we need to update the Deployment resource as that will trigger the creation of a new pod


Added tests for week 4

Added tests for fastModulo and powerOfTwo for week four

Great work, thanks for your contribution 🐧


When running up a corteza on a fresh DB, no application is present

Description of the bug
Once I ran corteza on a fresh DB I don't have any apps present on admin thus they are not present on One too.
Reproduction steps

Create a new DB
Ran ONE or Admin webapp
notice that ONE list is empty since there are no apps
Also notice that Applications tab in admin is also empty and there are no apps present.

Expected behavior
Once i spin up the server I expect the basic webapps (reporter, WF, CRM, case management, low code, admin ...) to be present and enabled.
Screenshot/Video

Version
Branch: 2023.3.x

Resolved with b6c24588a
Provision files used applications but yaml decoder only used application and app aliases.