Add feature "Crew Reserve"

The feature provides the ability to dynamically load and unload characters in multiplayer campaign with saving their progress (inventory, talents, skills, experience, wallets, etc).
It's useful when the host want to play campaign with any randoms during all the game without the necessity to awaiting somebody from the previous play. He can just to load/unload the characters when they come and leave.
The feature is compatible with surgeon job from Neurotrauma mod.
Also this pr add "endless ragdoll" resolver to the master branch.
The feature is tested on linux vds, working normally.

How thoroughly have this been tasted? Can you summarize how you handle saving/loading or the character save-state? I assume pure-vanilla lua-cs testing was done also?

How thoroughly have this been tasted? Can you summarize how you handle saving/loading or the character save-state?
Running on the vds with a most popular mods which community often use. The feature create and process data in a separate file. The host using 'mcm reserve' command to check is what characters are stored in. 'mcm reserve get ' and 'mcm reserve put ' commands the host using to manipulate the characters in the campaign.
I assume pure-vanilla lua-cs testing was done also?
Not sure, that i understand right

@Xardion495 to clarify i meant that you have tasted with all mods disabled (except for Lua For BT and C# for BT and MCM mods)

The general fixes/comment changes etc... looks good, I have no comment on these...
New feature looks good. I have some thoughts however...

As far as i know, you cannot pull/push to reserve from the lobby - So that means when a player returns/rejoins it will spawn a fresh copy of their character on the sub, and when the admin pulls their stored copy from the reserve, you'll end up with duplicates... right?

In general this feature implies that the admin is a little more experienced PC user than the average player and prefers more control over the players traffic on it's server. So if client autospawn is turned OFF by default, admin can check is client character already stocked in reserve or not. If not he using 'mcm spawn ID' to involve new player in the game. And if it's stocked he using 'mcm reserve get ID' to load old client character in the game which will be taken under control by the client.
If secure mode is enabled, then the host using 'setclientcharacter' console command to assign client to character.
Of course in the update note i will warn the players about the all nuances.

I am not 100% sure, but I think Character ID's are randomized for each session, meaning that over multiple sessions, as multiple characters are removed from the campaign by being put into the reserve list, there is the possibility that two distinct characters might end up sharing the same ID. this means that character data might mistakingly be overwritten, or that you would be unable to put a certain character into reserve... We may need to either add additional bits to the ID string (something like a hhmmss timestamp) or change it to something we can guarantee will be unique.

Character IDs are not randomizing, nor between session, nor between server launches. They are attached to the campaign data. But. Even if ID numbers are conflict, the game automatic resolve this by itself:

Game campaign data does not keep character IDs. And the feature not using ID for data consistency but using the character names instead.
In other words the game support a presence of few same characters in game session and resolving it normally.
'mcm reserve put' command support the data overwrite if the character with the same name is already saved. For doing this the host can add 'force' keyword at the end of command line.

Personally i don't like adding explicit support for other mods into our codebase, that is the domain of compatibility patches... And if we start going down that road we'll end up having to push endless patches everytime there is a language update etc... I much more prefer a catch-all solution similar to the "TryCreateClientCharacters" in McmMod.cs:348, There are arguments here for extracting the waypoint portion of that method into its own method so that it can be reused in other places

Well, this one is designed not for compatible with other mod. This handler is fixing an old bug of our mod which community and personally I facing sometimes during the play with our mod.
And as i know a good practice is considered to place differently semantic code blocks in the standalone methods to be more human readable instead of placing all in one.
Yeah, the feature contains a little code block for compatible with surgeon job from Neurotrauma mod.
All cool mods contains compatible fixes for other cool mods))
But if seriously code block is too small to doing a standalone mod addon for MCM. To be honest, the community already has to keep a bunch of mods in load order. So i decided add "native" support for NT in the mod. Also this code block not breaking mod workflow for vanilla jobs.

They are attached to the campaign data.
Game campaign data does not keep character IDs.

I shall specify. I mean IDs storing something in the depth of the game data and not in the *_CharacterData.xml

If you insist to move "nt" code block to the mod addon, ok, but it'll taking a time to finding out how to do it

@Xardion495 to clarify i meant that you have tasted with all mods disabled (except for Lua For BT and C# for BT and MCM mods)

Tested just now. That is all right

I'm mostly happy then... except for

Well, this one is designed not for compatible with other mod.

If I am reading the code correctly, and understand the List.GetRandom method correctly, we risk a NullReferenceException on Server/McmReserve.cs:202 if waypoint never gets assigned
My understanding of the preceeding code is as follows:

Create temporary, localized job-name list for Nerotrauma Surgeon Job

Check if the name of the job of the character you are attempting to restore, is in preceeding list

If found, Get ANY random spawn-point on the sub (Job doesn't matter)
If NOT found, Get ANY random spawn-point on the sub that matches the characters job

Use spawnpoint to get spawn coordinates (Disregard any default spawn items)

Because we're disregarding the spawnpoint items alltogether, we never would run into any issues if the submarine was using custom tags on their ID-cards etc...

GetRandom() definition can be look here:
LuaCsForBarotrauma\Barotrauma\BarotraumaShared\SharedSource\Map\WayPoint.cs:931
This way of character spawning i took from here:
LuaCsForBarotrauma\Barotrauma\BarotraumaShared\SharedSource\DebugConsole.cs:2139
So this is a native way of spawning characters using by the game, which a priori should work reliably for all vanilla jobs.
For nt job i used the same method but give a null value as a second argument (which is a JobPrefab object). In this case GetRandom() returning a random spawnpoint inside the MainSub.
Actually we can use this way as one solution for all jobs (vanilla and custom) if we want to simplify our code one day.
By the way this waypoint calculating can be use in TryCreateClientCharacters() instead of a lot of code which defining needed waypoint at this moment.

BUT
If the submarine doesn't have a spawn point for the matching job "CustomClownJob69LoL", then .GetRandom(...) will likely return NULL and subsequentially crash the script with a NullReferenceException on line 202
I don't see why we don't just switch that IF-statement around, and check if we can match the character job to any intended spawnpoint, and use that - And if not, use a random one... We can disregard the localized list this way
Code would become something like
WayPoint waypoint = WayPoint.GetRandom(spawnType: SpawnType.Human, assignedJob: ccdObj.CharacterInfo.Job.Prefab, sub: Submarine.MainSub); waypoint ??= WayPoint.GetRandom(spawnType: SpawnType.Human, assignedJob: null, sub: Submarine.MainSub);
Boom - McMReserve now has instant support for any custom job - NT included

So we can use WayPoint.GetRandom() in variant of getting random spawnpoint inside the sub for any custom jobs.

If you insist to move "nt" code block to the mod addon, ok, but it'll taking a time to finding out how to do it

I am not suggesting we extract code to its own compatibility addon, quite the opposite... I think we should design our mod so that it will implicitly support as many mods (or jobs in this case) as possible, without us having to specify each case explicitly
So in essence
we shouldn't do this List<string> SupportNTJobs ={ ... , ... , ... , ... } List<string> SupportPlayableMonsterJobs = { ... , ... , ... } List<string> ...  List<string> ...  If ( SupportNTJobs.Contains(charInfo.Job.Name) || SupportPlayableMonsterJobs.Contains(charInfo.Job.Name) || ... || ... || ...) => Use random spawn point
we should do this spawnpoint = GetSpawnpointForJob(charInfo.Job.Name) If (spawnpoint == null) => spawnPoint = GetAnyRandomSpawnPoint()

I think I caught your thought, I'll make an edit

Edit added and tested. Working normally.

@Xardion495 sorry yes


chore(website): Add async-await.md and typescript.md to website

Had to fix link parsing in website generation while I was at it.
Also updated docs/toc.md, which was very out of date.

Likely my last Protractor PR :cry:


[Semantic API] Need package name of a symbol

Description:
Currently getting the symbol through Semantic API allows us to get the module name, version, orgName. Going forward we will need to get the package name for API Docs.
Steps to reproduce:
Affected Versions:
OS, DB, other environment details and versions:
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

Had a chat with @shehan360 regarding this. The requirement here is they want to link to the relevant page in docs when a construct from another package is referred in the current package. For example,
public type Foo record {
    http:Client ep;
};

When generating docs for the above, they want to be able to know in which package http:Client is in.

Had a chat with @shehan360 regarding this. The requirement here is they want to link to the relevant page in docs when a construct from another package is referred in the current package. For example,
public type Foo record {
    http:Client ep;
};

When generating docs for the above, they want to be able to know in which package http:Client is in.

Currently we are using the module name to get the package name by splitting using .
Example -
Take a package named test_prj. Lets assume it has two modules named mod1 and mod2.
mod1 will be names as test_prj.mod1 and mod2 will be test_prj.mod1. By splitting using the . we can get the package name as test_prj.
However, this is no longer possible with new changes as there can be . in package names and module names. (jballerina.java)

Currently we are using the module name to get the package name by splitting using .
Example -
Take a package named test_prj. Lets assume it has two modules named mod1 and mod2.
mod1 will be names as test_prj.mod1 and mod2 will be test_prj.mod1. By splitting using the . we can get the package name as test_prj.
However, this is no longer possible with new changes as there can be . in package names and module names. (jballerina.java)

This will have to be passed down to the AST from the Package API. And then maybe we can persist the package name in the module symbol 🤔 @azinneera This should be possible right?

We can add the ModuleContext to the BLangPackage IMO. The ModuleContext has a reference to the bLangPackage and also adding the other way around would facilitate switching between the Project API and other compiler APIs seamlessly. This will also address #29251.
Similarly, we can refer to DocumentContext in BLangCompilationUnit
@pubudu538 @hasithaa WDYT?

+1 from me. Will it be possible to make some of the methods like descriptor() in ModuleContext public (to get the package name)?

Ran into a concern regarding, what can be used as the default module name.
https://ballerina-platform.slack.com/archives/CAXS256RX/p1621323131008400


use yum repos for redhat like distros

This uses the new Docker Yum repositories for the RedHat like distros in the provisioner (RHEL, Fedora, Centos).
Closes #1527

/cc @nathanleclaire

cc @bmangold this is relevant to your interests.

There's a merge conflict but code LGTM

Fixed.  Merging.

Yay!


Updated content in "What is Hugo?" session

 You should sign our Contributor License Agreement in order to get your pull request merged.

I'm pretty sure Comodo Cloud doesn't support hosting websites? If I'm wrong, then please update your website with directions how and reopen.


Loss in deepspeed_with_config_support.py in examples

In accelerate/examples/by_feature/deepspeed_with_config_support.py at line 643 (https://github.com/huggingface/accelerate/blob/a2d8f540c3ab37c8f84d616be1300a0572b69cf8/examples/by_feature/deepspeed_with_config_support.py#L643) loss is being divided with gradient accumulation steps before accelerator.backward()
Is this happening because accelerate or deepspeed internally (before or during backpass) are performing a multiplicative operation with loss & gradient accumulation steps in distributed settings or is this a mistake?
Tried checking out source code but frankly couldn't get much

Hello, this is duplicate of https://github.com/huggingface/accelerate/issues/1767

@pacman100 when you do accelerator.accumulate() & accelerate.backward(), you are also stepping optimiser & scheduler without checking if global % grad_steps == 0 or not. Is that because accelerator.accumulate() handles it internally? If it does, does that mean accelerate tracks the global step and epochs internally?


Fixed color for title in discovery card.

I forgot to include this in the 3.3.2 that we just released, so adding it now. Basically during the #100 pr we lost a bit of contrast in the title/blurb in discovery cards. Fixing that now...

thanks for doing this @mbrandonw!


[SPARK-38243][PYTHON][ML] Fix pyspark.ml.LogisticRegression.getThreshold error message logic

What changes were proposed in this pull request?

This PR replaces incorrect usage of str.join on a List[float] in LogisticRegression.getThreshold.
Why are the changes needed?

To avoid unexpected failure if method is used in case of multi-class classification.
After this change, the following code:
from pyspark.ml.classification import LogisticRegression

LogisticRegression(thresholds=[1.0, 2.0, 3.0]).getThreshold()

raises
Traceback (most recent call last):
  Input In [4] in <module>
    model.getThreshold()
  File /path/to/spark/python/pyspark/ml/classification.py:999 in getThreshold
    raise ValueError(
ValueError: Logistic Regression getThreshold only applies to binary classification, but thresholds has length != 2.  thresholds: [1.0, 2.0, 3.0]

instead of current
Traceback (most recent call last):
  Input In [7] in <module>
    model.getThreshold()
  File /path/to/spark/python/pyspark/ml/classification.py:1003 in getThreshold
    + ",".join(ts)
TypeError: sequence item 0: expected str instance, float found

Does this PR introduce any user-facing change?

No. Bugfix.
How was this patch tested?

Manual testing.

Thanks for the review @srowen.

Could you do a quick search to see if .join(ts) is called like this anywhere else?

I did a quick sweep, but nothing popped out.
In core, sql and ml errors like this should be already detected with inline hints, mllib is just not there yet.

Thanks for the review @srowen.
Could you do a quick search to see if .join(ts) is called like this anywhere else?

I did a quick sweep, but nothing popped out.
In core, sql and ml errors like this should be already detected with inline hints, ml.classification is just not there yet.

Thanks!


fix(@schematics/angular): add appDir option

fixes #17813

@alan-agius4 it's open for review.

@santoshyadav198613, I’ll review it tomorrow. Thanks.

Hi @alan-agius4 ,
So let me understand this correctly, we can use appDir option in appShell only if while running universal schematics we used appDir option, is my understanding correct?

@santoshyadav198613, yes I believe so. The appDir is primarily used by the universal schematic.
We might need to use the path option in the component schematic, but I guess this will be uncovered when creating the UT.

Hi @alan-agius4 , Need one help the app-shell test is failing should I simulate ngAdd for universal as done here https://github.com/angular/angular-cli/blob/4d741de8a9969b5d828cc6f7f71e8452a0181a35/packages/schematics/angular/app-shell/index_spec.ts#L160

Hi @alan-agius4 ,
Need one help app-shell test case fails it, I thought app-shell runs universal schematics.

@santoshyadav198613, just to let you know that I didn’t forget about this! Apologies for taking so long to look at this.

@santoshyadavdev thanks for your PR. This is now obsolete due to changes in the recent releases.


We need to add an additional shortcut key

Sometimes when switching between ore veins, we may miss what we need due to one more press, or the minerals we need are on the previous one, but we can only scroll down. We need two buttons, PgUP and PgDN, to better switch between them

Added
https://github.com/GoToNightmare/DSP-PlanetwideMining/releases/tag/release


Figma Community Changelog

### Tasks
- [ ] https://github.com/digdir/designsystemet/issues/2086
- [ ] https://github.com/digdir/designsystemet/issues/1869
- [ ] https://github.com/digdir/designsystemet/issues/1582
- [ ] https://github.com/digdir/designsystemet/issues/1474
- [ ] https://github.com/digdir/designsystem/issues/1301
- [ ] https://github.com/digdir/designsystem/issues/1300
- [ ] https://github.com/digdir/designsystemet/issues/2174

@mrosvik will move this to wiki


Direct sf2 uploading in offline version?

This would reuse the code from the sample extractor.
Speaking of the sample extractor, should that included in the offline version as well?

LeoV recommended waiting until they ported the sample extractor code over to typescript

Also we're waiting on @TheStarWorld to upload the source code of their attempt

https://github.com/TheStarWorld/ultrabox_sf2


Overfitting detection as pipeline step or AbstractRepairStep component

Right now the ODS function is called from within the SequencerRepair repair step. We should refactor this and move overfitting detection to it's own pipeline step, or create a sort of switch in the AbstractRepairStep class, so that one could write in the pipeline definition, for example:
AbstractRepairStep step = new RepairStepXYZ().SetODSLabels(true)

This means we can do ODS detection with other repair tools than Sequencer

This means we can do ODS detection with other repair tools than Sequencer


JSON formatter removes newline at end of file

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.76.0
OS Version: Windows 10

Steps to Reproduce:

Open a JSON file
Right click the editor window and press "Format Document"
There is no newline at the end of the file

All text files are supposed to end with a newline character.

This is controlled by the setting files.insertFinalNewline. Set it to true if you want text files to end with a newline character.

No, that's completely different. I don't want any changes to happen at the time of saving the file. The formatter actually removes the newline if it was previously present. Reopen.

The setting is not only used on save, but also observed by formatters.
If you want the JSON formatter to not remove the new line, enable this setting.

Ok, it's nice that the formatter observes files.insertFinalNewline but using that option removes my ability to ever generate a file without a final newline if I need to do so.
Enabling json.format.keepLines breaks the formatter for me - it literally doesn't do anything then.
In any case, a text file without a final newline is malformed and I don't believe that in the default configuration, the JSON formatter should output a malformed document.

Then, the json.format.keepLines setting is irrelevant to this. A JSON being valid without a final newline is also irrelevant, I am not arguing about that (and it's because JSON ignores all whitespace). What I am saying is that all text files are supposed to have a final newline, it's not just a guideline and I don't understand how you can not know that, see for example https://stackoverflow.com/a/729795.
None of the settings you suggested solved the issue, as I explained. Even if we pretended that whether or not there should be newline at the end is a guideline (it's not), the formatter doesn't have to add it, but it definitely shouldn't remove it, which it does. So why are you so insistent on not fixing this bug? It would probably be a one-line fix.
How about this: instead of the formatter deciding whether to add it based on the files.insertFinalNewline setting, it would instead use the inverse of files.trimFinalNewlines, I think that would be a nice compromise.


On 64bit platforms, the capacity is always stored inline

On 64 bit platforms we do not have to check if the capacity is stored on the heap, because it will never be stored on the heap.

Interesting. This does not panic in release mode:
fn test_alloc_excessively_long_string() {
    CompactString::with_capacity((1 << 56) - 2);
}

But this does:
fn test_alloc_excessively_long_string() {
    let x = CompactString::with_capacity((1 << 56) - 2);
    dbg!(x.as_ptr());
}

Can it be that the compiler understood that we are doing nothing in the function body, so it is culled entirely?

Thanks for this PR @Kijewski!  It was quite complicated which is why I got rid of it.
On another note though, what I would like to do is get rid of this capacity inline vs capacity on the heap distinction all together! I think what we can do is:

0XXX_XXXX - Inline packed
10XX_XXXX - Inline packed
11XX_XXXX - Inline with length
111X_XXXX - Heap

There is some trickiness with this approach in supporting the Option niche optimization, and static strings, but I believe supporting both of these is still possible. Now on 32-bit architectures this means the maximum heap based string we can support is ~512MiB, but IMO this trade-off is worth it for the (what I believe will be) cleaner codebase and improved performance. What are your thoughts?

Actually, I don't think that the code is much more difficult to read with a few cfg(target_pointer_width = "64") or cfg(not(target_pointer_width = "64")) here and there. A few could guards could be removed:
#[cfg(not(target_pointer_width = "64"))]
#[cold]
fn handle_unlikely_32bit_only_case(this: &HeapBuffer) -> usize {
    …
}

#[cfg(not(target_pointer_width = "64"))]
if self.is_unlikely_32bit_only_case() {
    return handle_unlikely_32bit_only_case(self);
}

→
#[cfg(not(target_pointer_width = "64"))]
if self.is_unlikely_32bit_only_case() {
    #[cold]
    fn handle_unlikely_32bit_only_case(this: &HeapBuffer) -> usize {
        …
    }
    return handle_unlikely_32bit_only_case(self);
}

I only didn't do that because it would make the diff even bigger.

But I think containing some bits of the capacity in last byte would work, and there would still be 8 niches left (0b110x_xxxx = 5 bits = 32, -1 for static strings, -23 for the lengths).
I am unsure what the performance implications would be. Spontaneously I'd guess that it would benefit 32 bit systems, but it could hurt 64 bit systems for the likely read-mostly use case.

Does not seem to work. If you have an #[repr(u8)] enum { A = 1, D = 4 }, then the values 2 and 3 are not considered as niches. Adding B(Infallible) = 1, B(Infallible) = 2 does not work either.
I think this PR is useful anyway, (at least until storing the capacity is modified). IMO it does not make understanding the current implementation more difficult, and it looks like the compiler can do a few more optimizations with the change.

I believe if you switch around the bit patterns for inline and heap, you can move the unused values to the end of the range, where they should work as niches. 248-255 = 8 niches.

0XXX_XXXX - Inline packed
10XX_XXXX - Inline packed
110X_XXXX - Heap
111X_XXXX - Inline with length

As you say, that leaves 29 bits for capacity on 32-bit systems = 512 MiB.

Actually, maybe this is quite good:

0XXX_XXXX - Inline packed
10XX_XXXX - Inline packed
110X_XXXX - Heap
1101_1111 - Static string
111X_XXXX - Inline with length

Heap capacity on 32-bit is capped to 0x1EFFFFFF (496 MiB minus 1).
That leaves 0x1F in last byte free to be the flag for static string.
i.e. Possible values for last byte:

0 - 191: Inline packed
192 - 222: Heap
223: Static string
224 - 247: Inline with length
247 - 255: Unused (9 x niches)

Can reuse the intermediate value used in calculating inline length, so hopefully will produce no extra instructions:
Current:
const LENGTH_MASK: u8 = 192;
const HEAP_MASK: u8 = 224;
const MAX_SIZE: usize = 12; // 32-bit

pub fn len(&self) -> usize {
  let len_heap = ensure_read(self.1);
  let last_byte = self.last_byte();

  let mut len = (last_byte as usize)
    .wrapping_sub(LENGTH_MASK as usize)
    .min(MAX_SIZE);

  if last_byte >= HEAP_MASK {
    len = len_heap;
  }
  len
}

After change:
const LENGTH_MASK: u8 = 224;
const HEAP_MASK: u8 = 192;
const HEAP_MASK_AFTER_SUB: usize = (HEAP_MASK as usize)
  .wrapping_sub(LENGTH_MASK as usize);
const MAX_SIZE: usize = 12; // 32-bit

pub fn len(&self) -> usize {
  let len_heap = ensure_read(self.1);
  let last_byte = self.last_byte();

  let mut len = (last_byte as usize)
    .wrapping_sub(LENGTH_MASK as usize);
  let is_heap = len >= HEAP_MASK_AFTER_SUB;
  len = len.min(MAX_SIZE);

  if is_heap {
    len = len_heap;
  }
  len
}


Port new hooks API to other hooks

This depends on https://github.com/FormidableLabs/reason-urql/pull/132! Read that one first.
This change still needs me to update the examples (I'm waiting until https://github.com/baransu/graphql_ppx_re/pull/48 lands), but here's the usage:
let (response, refetch) = Hooks.useQuery(MyQuery.definition, ~var=1, ());
let (response, refetch) = Hooks.useMutation(MyMutation.definition, ~var=1, ());
let (response, execute) = Hooks.useDynamicMutation(MyMutation.definition);
let (response) = Hooks.useSubscription(MySub.definition, ~var=1, ());

Curious about people's opinions on how to do a breaking change like this. Personally I think I'd be ok with a breaking version change at some point, but we could also copy these into another Hooks module or something if people prefer I guess.

Hi, I've been playing with this API for reason-apollo-hooks. It looks like the currying works well, but there is a compiler error when variables are not provided in the same order as in the query/mutation. At least in my test implementation which is almost the same as this one. I am not really sure why that is, but maybe worth looking into (and finding a fix if possible).

I tried to leave a better explanation of composeVariables in a comment and hope to use some of this experience attempting to explain it to write some clear docs to add to this PR.
Definitely seems like if we're going to swap this API over, it would make sense to have it be a breaking change. Moving useDynamicMutation -> useMutation is fine with me, I can probably do that here too, if you want.
To be clear, this code is a little rough still, I put up the PR to get some feedback and let people have a look, but I haven't had a chance to test it much yet. I can put a "WIP" in the title if people prefer. That said, I hope to have the time to iron out the wrinkles sometime this week.

Hi, I've been playing with this API for reason-apollo-hooks. It looks like the currying works well, but there is a compiler error when variables are not provided in the same order as in the query/mutation. At least in my test implementation which is almost the same as this one. I am not really sure why that is, but maybe worth looking into (and finding a fix if possible).

See this commit for a reproduction of this issue in this branch: https://github.com/jfrolich/reason-urql/commit/d984c39ad42244c74f0f3239279fcc4c3b431b03.
This means that with this new API you lose the flexibility of providing the variables in any order, and instead it needs to be exactly as in the query definition.  Does your first-class-module-based solution help with that part somehow or is it the same deal?
What's funny is that it does work when you store the partially applied value to a variable and then call it again like
let f = useQuery(GetPokemon.definition);
let ({response}, _) = f(~id="1", ~name=pokemon, ());

Not exactly a solution to the problem though.  Does your first-class-module-based solution help with that part somehow or is it the same deal?
What's funny is that it does work when you store the partially applied value to a variable and then call it again like
let f = useQuery(GetPokemon.definition);
let ({response}, _) = f(~id="1", ~name=pokemon, ());

Not exactly a solution to the problem though. Will have to give this some more thought.

That is interesting. The first class modules won't help, that is just an alternative to passing in Query.definition. My experience with the reason compiler is limited, but perhaps we can do some extra type annotation to make this work. Would be great to get someone with more experience to look at this (I did some trial and error and couldn't get it to work).
If the currying approach is definitely not possible due to compiler limitations I think the only solution is to pass in a variables labeled argument and use Query.makeVariables to provide the variables.

It might have to do with the type signature of the composeVariables function. Perhaps we need to explicitly generate it as part of graphql_ppx_re.
See:

@Schmavery thanks for the clarification on the purpose of the PR // current state of things and @jfrolich for chiming in on the issues with variable ordering. Definitely will read up more on that conversation in Discord. It sounds like potentially enforcing use of makeWithVariables in lieu of labeled arguments could help to alleviate the current issue – otherwise the docs would have to be super clear that variables must be provided in order, which I agree is not a great restraint to put on API users.
BTW I'll be offline for most of the next four days, so @Schmavery feel free to keep pushing commits here and I'll check in here and there. Next week we can sync on a path forward. Overall I like this API a lot and see it as a major improvement from what we currently have. A 2.0.0 release with this alone would be beneficial, and we can release patch and minor versions as we continue to uncover more about composeVariables on the graphql_ppx_re side.

👋 @Schmavery just wanted to check in on the status of this PR. I definitely want to get this in, I've just been swamped for the past few days and around the holiday. What all do you think we need to get this to a point of being merge-able. I think we're pretty close, and we can pursue docs updates and examples updates in a separate PR to keep the diffs easier to review.

@parkerziegler sorry, I've been pretty swamped too. I'm a little at a loss about what to do about this because of the discovery of needing to apply the named args in order, which feels worse than what we had in a way. The nice thing is that all the functions become very similar, but I don't know if the tradeoff is worth it.
Ironically we could use this idea to replicate the functor api in non-functor-land but I'm not sure that that's useful at all haha.
let `GraphQL(useQuery) = makeQuery(GetPokemon.definition);
let ({response}, _) = useQuery(~id="1", ~name=pokemon, ());

I wonder if it makes more sense to use makeVariables like reason-apollo-hooks did and deprecate/remove the composeVariables experiment from graphql_ppx_re.
let ({response}, _) = useQuery(GetPokemon.definition, GetPokemon.makeVariables());

I half-wish that makeVariables returned the Js.t object instead of the Js.Json.t so that for simple queries without optional args we could do:
let ({response}, _) = useQuery(GetPokemon.definition, {"id": 123});

Sorry, I know that this speculation doesn't help things get merged haha.

No that's helpful feedback, thanks for addressing it. I'll play around with the makeVariables API a la reason-apollo-hooks, since that seems like the best option. In a lot of ways, it also more closely mimics the urql API, which I see as a core benefit of that approach. The main goal with next release is really just to provide some avenue for users to be able to supply variables at mutation execution rather than mutation definition. If we can achieve that with makeVariables then I'm happy (even tho this really was a superb API and I wish we could ship it – maybe one day we will). Are you alright with closing this PR for now?

Also, FYI I tested that useDyanmicMutation currently on master does work with multiple variables and with providing those variables in different order. I'm inclined to release that API as 1.4.0, since its backwards compatible and solves the immediate use case of needing to apply variables at execution time. I'll put up a PR with the last few changes need there (i.e. docs and the like).

Yeah sounds ok, I can close this for now.
Makes sense that useDynamic works with different order, seems fine to ship. Thanks for getting this stuff over the finish line


COmputer crash

I downloaded the 1.0.3 version yesterday and tried to run it. It didn't let me run it unless if I cleared the folder Championify in Roaming. The problem is that it made my computer crashed when Championify ran rightly. I have W8.1 64bit; it gave me the error "SYSTEM_SERVICE_EXCEPTION (NETIO.SYS)". Is this championify's fault or is it mine?

It sounds like a network driver issue. Check to see if you have the right driver. Championify does not use NETIO.SYS, that's a kernel extension.

@Meraxys Yep, @nilesr is right. This sounds unrelated. Also check your anti virus as some will tap in to kernel extensions to block applications.


Suggestion: deprecate  in favour of    in TcpAppender

It seems that OutputStreamAppender (console, file, etc) have deprecated the
<layout> element. To make the config consistent with those appenders it could make sense to do the same in TcpAppender.

@urs-ikentoo-com we're open to a pull request if you'd like to make this change

HI @ls-urs-keller,
Changes suggested by you are added in current working branch. Check this commit.
It will be available in next java logging release.
Closing this ticket for now.
Please let us know in case of any further queries.

What about the HttpEventCollectorLogbackAppender ?


Accessing a Guardian policy from a Guardian instance other than the publishing instance

Problem description
A published Guardian policy is currently only accessible from the Guardian instance that published it.
Consider a scenario where a standards body published the policy for a specific project. In such scenario, the validator, the data curator and the verifier who were contracted by the project developer to provide their services to the project will all have to log into the standards body’s Guardian instance to do their work on the policy. Now, consider a validator, verifier or data curator (any service provider, really) with clients across multiple, e.g., seven, different standards bodies. That service provider will have to log into and log out of seven different Guardian instances in order to do their work.
The problem scales in a truly decentralised setup where there are tens of small, independent standards bodies and other service providers have project developers as clients across many or all of those independent standards bodies.
Allowing service providers to access their clients’ policies from the service providers’ own Guardian instances will make a big difference in this setup.
Requirements
A Guardian user should be able to access a policy published by another Guardian instance from their own Guardian instance. This access should be based on a request-grant model.
Definition of done
Alice, using Guardian instance A, contracts Bob, using Guardian instance B, to provide her with some service that will require Bob to perform some role in a policy published by Alice on her Guardian instance. Bob then requests, from his Guardian instance, access to the relevant policy published by Alice on her Guardian instance. Alice receives Bob's access request on her Guardian instance, verifies that it comes from Bob, and subsequently grants Bob and his Guardian instance access to the policy. Alice's policy now shows up on Bob's Guardian instance from where Bob can perform the work he's been contracted for without having to log into Alice's Guardian instance.
Acceptance criteria
See DoD.

I strongly agree with Alex on this one.


update CupertinoSwitch documentation

Description
Documented CupertinoSwitch.value that it can't be null and added an assertion value != null in the constructor.
Related Issues
#12948
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] My PR includes tests for all changed/updated/fixed behaviors (See Test Coverage).
[x] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require Flutter developers to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (Please read Handling breaking changes).
[x] No, this is not a breaking change.

LGTM. You can merge it when our tree is green.


Is there any way to evaluate the model performance here ?

Hi,
The only way is to use your ears. 😉 With generative/artistic models it's difficult to make an exact metric of what good performance is, unfortunately.


Document how to dynamically define a function when using a module

I was never happy with my ~/.elvish/lib/cmd-duration.elv module including this function definition:
fn now {
    use math

    if (has-external gdate) {
        # Presumably we're on a macOS system where I've installed the GNU
        # date utility.
        put (math:round (* 1000 (gdate +%s.%N)))
    } else {
        try {
            put (math:round (* 1000 (date +%s.%N)))
        } except e {
            # Must be a *BSD system which doesn't support %N and where we
            # don't have GNU date. So simply accept that a resolution of
            # seconds is the best we can do.
            put (math:round (* 1000 (date +%s)))
        }
    }
}

The problem is that it does potentially expensive tests every single time it is invoked. The now function in that module should instead be dynamically defined at "use" time resulting in a function that is optimal for the platform. That, however, is difficult because function definitions, like lambdas, are lexically scoped.
I improved the efficiency of that module by instead doing this:
fn now []{ }
if (has-external gdate) {
    now~ = []{ float64 (gdate '+%s.%N') }
} else {
    now~ = [] { float64 0 }
}

I've omitted irrelevant details from the above example (in particular the content of the "else" block). My point is that how to dynamically define a function in a module is not obvious. Either the technique I used should be documented or there should be a more straightforward mechanism for doing the same thing.

Perhaps worth noting, here is a different way to achieve the same result:
now~ = (
  if (has-external gdate) {
    put []{ float64 (gdate '+%s.%N') }
  } else {
    put [{ float64 0 }]
  }
)

@hanche, That's an interesting approach to the problem; however, it's the same length as my solution and, I think, slightly less clear. Still, it hadn't occurred to me so well worth mentioning.
Note: My solution could be further optimized by making the default definition the implementation expected to be used the most often. That would eliminate one now~ = {...} assignment.

Either the technique I used should be documented or there should be a more straightforward mechanism for doing the same thing.

I can't help but think that explicit function definitions, via the fn keyword, should be scoped to the namespace rather than lexically scoped. Unlike anonymous lambdas. That difference in behavior has its own cognitive overhead. But I think the difference in behavior is easy to justify, document, and is more likely to comport with user's expectations. Note that the existing documentation regarding closures does not use an explicit fn defined lambda in any of its examples -- they only use anonymous lambdas.

That's an interesting approach to the problem; however, it's the same length as my solution and, I think, slightly less clear. Still, it hadn't occurred to me so well worth mentioning.

Agreed, mostly. However, my solution has the advantage of being slightly more DRY, as there is no need to repeat the name of the function being defined.

I can't help but think that explicit function definitions, via the fn keyword, should be scoped to the namespace rather than lexically scoped.

I am not sure what you mean here.
When I first came to elvish from es, I thought of fn foo []{ } as merely being syntactic sugar for foo~ = []{ }. And to some extent it is, except for inner function definitions, which are always locally scoped. Perhaps you meant to abolish the exception, so that an inner fn foo []{ } would overwrite an outer foo~, if it exists, but otherwise, remain local to the function. If so, I can sympathise, but not sure I agree.
Or perhaps you mean that an inner fn foo []{ } should always create a function name in the outer scope, in which case I strongly disagree. It would confuse the heck out of me, and possibly break some of my code. Using inner helper functions in a complicated function is a pretty common pattern. It may be true that one should try to avoid writing complicated functions, but not all complexity is best handled by writing and composing a myriad of tiny functions.
Somewhat related to this issue is #645, forcing you to declare an inner variable with val or var. Perhaps we need a similar mechanism for dealing with function definitions using fn. But I can't come up with a reasonable syntax.

Note that the existing documentation regarding closures does not use an explicit fn defined lambda in any of its examples -- they only use anonymous lambdas.

True, but I think the given example would be better written using fn-defined functions:
fn make-adder {
  n = 0
  fn putter { put $n }
  fn adder { n = (+ $n 1) }
  put $putter~ $adder~
}

It is clearer, especially if the two exported functions were any longer, as they would be in any non-trivial example.

Or perhaps you mean that an inner fn foo []{ } should always create a function name in the outer scope

Yes.

When I first came to elvish from es, I thought of fn foo []{ } as merely being syntactic sugar for foo~ = []{ }. And to some extent it is, except for inner function definitions, which are always locally scoped.

That isn't true. In particular fn traps the exception raised by return while an anonymous lambda does not. It's one of the reasons I created commit 3300c81c.
Your rewrite of the make-addr example is interesting. But isn't this version just as clear (at least to anyone who knows elvish well enough to recognize a lambda):
fn make-addr {
    n = 0
    putter_fn = { put $n }
    addr_fn = { n = (+ $n 1) }
    put $putter_fn $addr_fn
}

Having said all that I also think a fn definition in a block, rather than at the module level, should be lexically scoped rather than module scoped. Primarily because that's needed for closure semantics. Nonetheless, I wish there were a more straightforward method for defining module level functions inside a block rather than at the module top-level.

@krader1961 Oops, you're right. My bad – I forgot about the return capture bit. (I added a note my previous comment.)


Add NetworkAllocate/Free to driver api

Added NetworkAllocate and NetworkFree apis to the list of
driver apis. The intention of the api is to provide a
centralized way of allocating and freeing network resources
for a network which is cross-host.
Signed-off-by: Jana Radhakrishnan<EMAIL_ADDRESS>

LGTM


feature-toggle-jsx: New HOC that will decorate the child with selected features as props.

Is your feature request related to a problem? Please describe.
Right now only way to access features and configuration is with useFeature(s) hook. Unfortunetly, not always component is a functional one, and you cannot use hook. We need another way of injecting defined features into the components than hook alone.
Describe the solution you'd like
Clean and simple solution would be cusom higher order component that would be basically
connectWithFeatures(Component, ['some feature'])

that would extend the props of children with selected features/configuration
Describe alternatives you've considered
Render prop is only other way, but I don't think it might be nice here.
Additional context
Add any other context or screenshots about the feature request here.

is this closed? if not I can add this feature

@peawyoyoyin I think this pr: #402 might be solving this issue with existing API, can you take a look?

It did fulfill the requirement.

Great, will close this since #402 implements it


static cpu allocation

Ⅰ. Describe what this PR does
assigned cpus that bepods can use.
usage:

add  "cpusAssigned": "18-23,6-11" to resource-threshold-config under slo-controller-config in this configmap

apiVersion: v1
kind: ConfigMap
metadata:
  name: slo-controller-config
  namespace: koordinator-system
  labels:
    app.kubernetes.io/managed-by: Helm
  annotations:
    meta.helm.sh/release-name: koordinator
    meta.helm.sh/release-namespace: default
data:
  colocation-config: |
    {
      "enable": true
    }
  resource-threshold-config: |
    {
      "clusterStrategy": {
        "enable": true,
        "cpusAssigned": "18-23,6-11"
      }
    }

submit a deployment to stress cpu,eg:

apiVersion: apps/v1
kind: Deployment
metadata:
 name: stress
 namespace: lm-test
 labels:
   app: stress
spec:
 replicas: 1
 selector:
   matchLabels:
     app: stress
 template:
   metadata:
     labels:
       app: stress
       koordinator.sh/enable-colocation: 'true'
   spec:
     containers:
       - name: stress
         image: tj1633/ubuntu-stress
         command:
           - /bin/bash
           - -c
         args:
           - '/usr/bin/stress --cpu 12'
         resources:
           limits:
             cpu: '12'
             memory: 2Gi
           requests:
             cpu: '1'
             memory: 1Gi
     nodeName: stark12.add.bjyt.qihoo.net.   # it is best to specify node

checking bepod cpu usage on node,and we can see

Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist

[ ] I have written necessary docs and comments
[ ] I have added necessary unit tests and integration tests
[ ] All checks passed in make test

Because this configuration is at the global level, and nodes in cluster may be different CPU cores, set CPU core seems to have some scalability problems. Therefore, maybe we need to discuss what scenario needs to introduce this limitation, and then look at how to do better abstraction?

Because this configuration is at the global level, and nodes in cluster may be different CPU cores, set CPU core seems to have some scalability problems. Therefore, maybe we need to discuss what scenario needs to introduce this limitation, and then look at how to do better abstraction?

we can also assign cpus on node level,just add nodeStrategies  will be fine.
apiVersion: v1
kind: ConfigMap
metadata:
  name: slo-controller-config
  namespace: koordinator-system
  labels:
    app.kubernetes.io/managed-by: Helm
  annotations:
    meta.helm.sh/release-name: koordinator
    meta.helm.sh/release-namespace: default
data:
  colocation-config: |
    {
      "enable": true
    }
  resource-threshold-config: |
    {
       "clusterStrategy": {
         "enable": true,
         "cpuSuppressThresholdPercent": 40,
         "cpuSuppressPolicy":"cpuset",
         "memoryEvictThresholdPercent": 70,
         "memoryEvictLowerPercent": 2,
         "cpuEvictBESatisfactionUpperPercent":30,
         "cpuEvictBESatisfactionLowerPercent":30,
         "cpuEvictTimeWindowSeconds":30,
         "cpusAssigned": "18-23,6-11"
         },
      "nodeStrategies":[
          {"nodeSelector": {
            "matchLabels":{"kubernetes.io/hostname": "stark12.add.bjyt.qihoo.net"}
          },
          "cpusAssigned": "18-23",
          "enable": true,
         "cpuSuppressThresholdPercent": 70,
         "cpuSuppressPolicy":"cpuset",
         "memoryEvictThresholdPercent": 70,
         "memoryEvictLowerPercent": 2,
         "cpuEvictBESatisfactionUpperPercent":30,
         "cpuEvictBESatisfactionLowerPercent":30,
         "cpuEvictTimeWindowSeconds":30 }
      ]
     }

From the example given, is it expected to be bound to specific cores according to Pod Limits? But who is responsible for allocating these cores? Both koordinator and koordlet have the ability to allocate cores. They are responsible for different dimensions, but they can work together very well. This PR only modifies koordlet. I think it may not be complete enough, because the scheduler is not aware of slo-controller-config, and the cores set in slo-controller-config will still be allocated by the scheduler. Maybe you can consider adding a specific proposal, describing the specific background and goals.

the background is that we have a group of machines running middleware applications, but the resource utilization on these machines is low，and they can specify the cpu they use, our aim is to use up the remaining free resources,and then we will register those machines as k8s node to run the mixed deploy.

the background is that we have a group of machines running middleware applications, but the resource utilization on these machines is low，and they can specify the cpu they use, our aim is to use up the remaining free resources,and then we will register those machines as k8s node to run the mixed deploy.

So, expect a specific node to reserve CPU?

en

the background is that we have a group of machines running middleware applications, but the resource utilization on these machines is low，and they can specify the cpu they use, our aim is to use up the remaining free resources,and then we will register those machines as k8s node to run the mixed deploy.

Whether the middleware workloads are running on k8s?

the background is that we have a group of machines running middleware applications, but the resource utilization on these machines is low，and they can specify the cpu they use, our aim is to use up the remaining free resources,and then we will register those machines as k8s node to run the mixed deploy.

Whether the middleware workloads are running on k8s?

No, the middleware workload is running directly on the machine

hi @lucming,  now the problem seems to be clear, I hope to reserve some CPU for some nodes. But at the same time, it should also include Memory and other resource information. Not sure how you're reserving resources other than CPU right now. In addition, these reserved resources should be perceived by the scheduler and excluded during the scheduling process. Therefore, how to pass the information of these reserved resources to the scheduler is a problem that needs to be solved. An optional solution is to update the reserved CPU and other resources to Node in the form of annotation based on your current changes, or update to the existing NodeResourceTopology CRD instance, and then the scheduler processes the annotation and corrects it when scheduling processing reserved resources. This needs to be discussed in detail. We have a community meeting next Tuesday, do you think we can chat at this meeting?
cc @hormes @zwzhang0107 @FillZpp

hi @lucming, now the problem seems to be clear, I hope to reserve some CPU for some nodes. But at the same time, it should also include Memory and other resource information. Not sure how you're reserving resources other than CPU right now. In addition, these reserved resources should be perceived by the scheduler and excluded during the scheduling process. Therefore, how to pass the information of these reserved resources to the scheduler is a problem that needs to be solved. An optional solution is to update the reserved CPU and other resources to Node in the form of annotation based on your current changes, or update to the existing NodeResourceTopology CRD instance, and then the scheduler processes the annotation and corrects it when scheduling processing reserved resources. This needs to be discussed in detail. We have a community meeting next Tuesday, do you think we can chat at this meeting? Meeting information can be found here: https://github.com/koordinator-sh/koordinator#community
cc @hormes @zwzhang0107 @FillZpp

Okay, let's discuss in detail at the meeting.

hi @lucming, now the problem seems to be clear, I hope to reserve some CPU for some nodes. But at the same time, it should also include Memory and other resource information. Not sure how you're reserving resources other than CPU right now. In addition, these reserved resources should be perceived by the scheduler and excluded during the scheduling process. Therefore, how to pass the information of these reserved resources to the scheduler is a problem that needs to be solved. An optional solution is to update the reserved CPU and other resources to Node in the form of annotation based on your current changes, or update to the existing NodeResourceTopology CRD instance, and then the scheduler processes the annotation and corrects it when scheduling processing reserved resources. This needs to be discussed in detail. We have a community meeting next Tuesday, do you think we can chat at this meeting? Meeting information can be found here: https://github.com/koordinator-sh/koordinator#community
cc @hormes @zwzhang0107 @FillZpp

Yeah, the reserved resource should be excluded by scheduler, koordlet and the slo-controller. We need a proposal to let these changes be clearly presented to ensure that no omissions occur.

/close
latest: #998


[Bug] Repair-DbaInstanceName does not work in SQL 2019

Host used: powershell.exe

Let me first copy some info from slack:
Rita Feldman  20:05 Uhr
Repair-DbaInstanceName does not seem to work in SQL 2019 CU10. The function tries to rename a SQL instance but it renames it to the old name.  The following are the log messages:
DEBUG: 205 | [18:18:59][Repair-DbaInstanceName] sp_dropserver 'OLDINSTANCENAME'
DEBUG: 214 | [18:19:00][Repair-DbaInstanceName] sp_addserver 'OLDINSTANCENAME', local
DEBUG: 231 | [18:19:00][Repair-DbaInstanceName] Stopping SQL Services for the MSSQLSERVER instance
DEBUG: 233 | [18:19:02][Repair-DbaInstanceName] Starting SQL Services for the MSSQLSERVER instance.
DEBUG: 242 | [18:19:04][Repair-DbaInstanceName] NEWMACHINENAME successfully renamed from OLDINSTANCENAME to OLDINSTANCENAME.
I tried to trace the issue in Repair-DbaInstance and it looks like in the following code the new name is not determined properly ($SqlInstanceName variable)
$nametest = Test-DbaInstanceName $server -EnableException | Select-Object *
$oldserverinstancename = $nametest.ServerName
$SqlInstancename = $nametest.SqlInstance
This is the snapshot of the $nametest variable:
ComputerName  : NEWMACHINENAME
ServerName    : OLDINSTANCENAME
InstanceName  : MSSQLSERVER
SqlInstance   : OLDINSTANCENAME
RenameRequired : True
Updatable     : True
Warnings      : N/A
Blockers      : N/A
For some reasons SqlInstance property has an old name despite the fact the RenameRequired property is set to true as it should. Does anyone else experience this issue? If only happens on SQL 2019 CU10. I tried it with dbatools versions 1.0.148 and earlier.
Andreas Jordan  21:21 Uhr

Just installed 2019, 2017, 2016 on SRV1 and then renamed the computer to SRV1A.
Only 2016 has the new name in SqlInstance.
Source of this SqlInstance is $server.DomainInstanceName
Lets lay out some code:
RenameRequired = $serverInstanceName -ne $sqlInstanceName
$serverInstanceName is based on $server.ComputerName for default instances and additial $server.InstanceName for named instances
$server.ComputerName is an added property based on how you connect, so it is the new name.
So $serverInstanceName is the new name.
$sqlInstanceName is the result of $server.Query("SELECT @@servername AS ServerName").ServerName
So $sqlInstanceName is the old name.
alevyinroc:andylevy:  21:39 Uhr
does @@SERVERNAME match SERVERPROPERTY('SERVERNAME')?
Andreas Jordan  21:40 Uhr
The root problem is that $server.DomainInstanceName is not consistent across versions. SQL2016 shows the new ComputerName, SQL2017 and SQL2019 show the new ComputerName.

@@SERVERNAME is always old, SERVERPROPERTY is "auto-updating on computer rename" in 2016.
$server.DomainInstanceName is used as $serverInfo.SqlInstance in Test-DbaInstanceName and then as $SqlInstancename (the new name) in Repair-DbaInastanceName.
That worked until 2016, no more in 2017 and 2019...
Rita Feldman  22:36 Uhr
Thank you @Andreas Jordan.  I added a new issue https://github.com/sqlcollaborative/dbatools/issues/7332.  I did not noticed the same problem on SQL 2017.  I will try to reproduce it on SQL 2017.
Rita Feldman  00:21 Uhr
@Andreas Jordan I did not see the issue with SQL instance rename on SQL 2017.  Repair-DbaInstanceName properly renames SQL server instance name.

Can you run this and provide the output?
Connect-DbaInstance -SqlInstance NEWMACHINENAME | Format-List -Property ComputerName, ComputerNamePhysicalNetBIOS, DomainInstanceName, Name, NetName

This is the output where DCALCPSG001 is a new machine name and 02WORKPROC02 is an old machine name.
ComputerName                : DCALCPSG001
ComputerNamePhysicalNetBIOS : DCALCPSG001
DomainInstanceName          : 02WORKPROC02
Name                        : DCALCPSG001
NetName                     : DCALCPSG001

Thanks, I think I have fix for that. Will update the pull request soon.

That's awesome!  Thank you for such a prompt response to this issue!

If you are able to install this branch you can test: https://github.com/sqlcollaborative/dbatools/tree/7332_RepairDbaInstanceName
Otherwise you would have to wait until @potatoqualitee merges and releases a new version.

@andreasjordan, I've tested https://github.com/sqlcollaborative/dbatools/tree/7332_RepairDbaInstanceName and it's working perfectly.  Thank you again for the prompt fix.  Do you know when it will be incorporated into an official release?

Thanks for the feedback. Will probably take some days but not weeks to build a new version.


Access Principal when using BasicAuthentication

Is there a way to get access to the Http request and incoming principal in the delegate when using basic authentication?
In the example below I would like access to the headers and principal in the Validate call:
private static AuthenticationConfiguration CreateAuthenticationConfiguration()
{
    var authentication = new AuthenticationConfiguration
        {
            ClaimsAuthenticationManager = new AuthenticationManager(),
            RequireSsl = true,
            EnableSessionToken = true
        };

    authentication.AddBasicAuthentication(AuthenticationService.Validate, "localhost");

    return authentication;
}

I don't think so - this code is really old. Feel free to modify it - it simply wires up a message handler in web api. Or use Katana instead.


Use snapshots for tests

Fixes some issues in https://github.com/elycruz/rollup-plugin-sass/issues/141 .

@marcalexiei no changes performed on top of your original PR (fyi).

Gotcha, I'll setup formatter and linter in the following days


[Issue 11579][broker] Fix the compareTo method for PulsarResourceDescription

Fixes #11579
Motivation
need to return zero if two resourceDescription match exactly
Modifications
add a method named exactlyEquals to fix this issue
Verifying this change

[ ] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): ( no)
The public API: (no)
The schema: (no )
The default values of configurations: (no )
The wire protocol: (no )
The rest endpoints: (no )
The admin cli options: (no )
Anything that affects deployment: (no )

Documentation
For contributor
For this PR, do we need to update docs?
no, it is a inner method.

Thanks for providing doc-related info!

The pr had no activity for 30 days, mark with Stale label.

Codecov Report

Merging #11580 (19653b0) into master (da87e40) will decrease coverage by 9.33%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master   #11580      +/-   ##
============================================
- Coverage     46.42%   37.08%   -9.34%
+ Complexity    10437     1969    -8468
============================================
  Files           703      209     -494
  Lines         68816    14425   -54391
  Branches       7377     1574    -5803
============================================
- Hits          31950     5350   -26600
+ Misses        33252     8488   -24764
+ Partials       3614      587    -3027

Flag
Coverage Δ

unittests
37.08% <ø> (-9.34%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...g/apache/pulsar/client/impl/ConnectionHandler.java
50.00% <0.00%> (-5.32%)
:arrow_down:

...ache/pulsar/broker/loadbalance/LinuxInfoUtils.java

...ker/loadbalance/impl/LinuxBrokerHostUsageImpl.java

...er/loadbalance/impl/PulsarResourceDescription.java

...ker/resourcegroup/ResourceQuotaCalculatorImpl.java

.../service/SystemTopicBasedTopicPoliciesService.java

...ar/broker/intercept/BrokerInterceptorMetadata.java

...n/java/org/apache/pulsar/broker/PulsarService.java

...saction/timeout/TransactionTimeoutTrackerImpl.java

...che/pulsar/broker/resourcegroup/ResourceGroup.java

... and 487 more

Merging...
Thanks for your contribution @leizhiyuan!


feat: Bootstrap new (old) project oay

oay is an old project that deleted before.

Why is its name called oay? 🤔

Why is its name called oay? thinking

This is the name we used before: https://docs.rs/opendal/latest/opendal/docs/rfcs/rfc_0443_gateway/index.html

We may open an issue for tracking MVP.

We may open an issue for tracking MVP.

Nice idea.


[SC] Gas injection with new injected object.

Cleared out the PR to just have the rewrite - changes now included as part of this.
Can reopen that if you would rather do separately

Closes #1699.

Actually, we should remove GasMeter from SmartContract, ISmartContractState and don't set the field in Contract.


PrecacheController.mjs should be in the root level of the module

Library Affected:
workbox-precaching
We decided in v3 that all publicly importable sub-modules should live at the root level to make the API simpler for importers.
For example, I should be able to do this:
import {PrecacheController} from 'workbox-precaching/PrecacheController.mjs';

However, this doesn't work because PrecacheController.mjs lives within the controllers directory.
It's sill possible to import it using it's full path, but we should put it at the top level to make it consistent with other modules.

This has been fixed in v4.


preserve hyperlinks

I'm searching for a command line solution to merge PDFs without losing hyperlinks within the source PDFs. After trying a bunch of different solutions, I was delighted to see that a pdf merged with qpdf preserved the links (i.e., when hovering over them with the mouse, one can click them), but sadly clicking the link doesn't result in anything.
Is there a way to preserve the links? Thanks!

As a user, I would say it won't happen. Simply because in my case, the links are targeting a specific page. If you merge more PDF files, then the pages are going to be re-counted and therefore the links will link you to the wrong page. At least this is what I think.

I don't think there's any deep reason why it wouldn't be doable, but it's complicated. I remember struggling with this issue when I added the capability of merging, and the documentation actually mentions this limitation though admittedly not in a way that's terribly clear: "All non-page data (info, outlines, page numbers, etc.) are taken from the primary input file."
It would be possible to create an enhancement to qpdf that would probably be able to handle this. It's been a long time since I've read that part of the spec, so I'm not sure how easy it would be. There could be issues such as clashing link targets that would require more work to resolve. Solvable, but not simple.
Let's leave this ticket open as a reminder. Unfortunately my time to work on qpdf is extremely limited right now, but I'm hoping this will eventually change and I'll be able to work on more enhancements, or maybe someone else will pick it up. If anyone is interested in trying to implement this, I would be willing to provide guidance.

@jberkenbilt
Hi. This is a reminder about this issue because we, know, have PDF Mix Tool as a front-end for QPDF & need to fix this issue for better handling output file from original input to preserve metadata .....

As a user, I would say it won't happen. [...]

It is possible for a program to move the mouse, click on all the links, and note which page they lead to. It is probably not necessary to go that far and possible to analyze the PDF data instead. Therefore, qpdf can implement this feature.

I am not able to reproduce this issue, and there are now specific test cases for this, so I believe this was either subsequently fixed or was fixed in the extensive work I've done on fields and annotations in preparation for 10.2. I will be releasing 10.2 in the next few days. I'll comment here after it is released.

The version now in master contains all my annotation fixes. I will close this bug after releasing 10.2, but if it turns out the issue is still there, please feel free to reopen at that time.

Actually, I think I may be confused about what this is saying. Is it possible to provide a sample file? I know this issue is very old. I'm removing the next tag for now, but when I study document-level structures in more depth, I will likely get to this. This probably has to do with named destinations and probably only happens sometimes.

Could the problem be that people are using --empty to merge files easily, not realising that it throws this information away?
qpdf --empty --pages Contents.pdf empty_A4.pdf -- out.pdf
qpdf Contents.pdf --pages Contents.pdf 1-4 empty_A4.pdf -- out1.pdf

Contents.pdf
empty_A4.pdf
out.pdf
out1.pdf

@AlisterH Yes, probably, but it shouldn't throw it away anyway. The current behavior is that all the document-level information is transferred unmodified from the main file. The better behavior would be that unused document-level information is discarded from the main file and relevant document-level information is copied from other files. 10.1 and earlier do this for page labels only. 10.2 will also do it for form fields. Going forward, I would like to do it for more and more document-level information. There will always be some differences between starting with --empty and starting with a file, like basic document /Info (producer, etc.), xmpp metadata, and some other stuff that is simply not possible to associate with content or pages, but as far as how the file behaves, any time when starting with --empty gives different results is probably undesirable. As more document-level stuff gets supported, I will introduce a mechanism to select which document-level stuff is carried forward. For example, it might be desirable in some cases to intentionally discard certain information. I don't know if that will come in 10.3 (or 11.0 or whatever follows 10.2) or later, but it's on my roadmap.
In any case, you make a good point that, for now, starting with the file whose behavior you want to maintain gives better results than starting with --empty.

@jberkenbilt commented on Feb 23, 2021:

@AlisterH Yes, probably, but it shouldn't throw it away anyway. [...]
In any case, you make a good point that, for now, starting with the file whose behavior you want to maintain gives better results than starting with --empty.

Thank you both for the hint!

as far as how the file behaves, any time when starting with --empty gives different results is probably undesirable. As more document-level stuff gets supported, I will introduce a mechanism to select which document-level stuff is carried forward. For example, it might be desirable in some cases to intentionally discard certain information. I don't know if that will come in 10.3 (or 11.0 or whatever follows 10.2) or later, but it's on my roadmap.

Thanks once more for the update.
I have checked this using v10.4:
$ /mingw64/bin/qpdf --version
qpdf version 10.4.0
Run qpdf --copyright to see copyright and license information.

... and it still destroys my TOC from the second document in a row when using --empty.

This issue is part of the qpdf pages epic. If you are interested in following, please see #1104.


Back button

Hello and thank you for a really good script! One issue though... Let's say I navigate to page 3, and here I press a link that takes me to an external page. If I press the back button in the browser, I am taken to page 1, not page 3.
This is browser dependent. Safari on Ios and Firefox on windows take me to page 3. Chrome and Edge take me to page 1.
Is there a fix for this? An option would be to somehow add a hash to the URL. Could there be a more elegant solution?

Hey @apod42, thanks for using paginga and taking the time to let me know were it can be improved! I will look into this in the coming days. I think the hash is the most suitable solution, this way we also create an option to create unique URL's to specific pages. The only problem I currently see is that if there are multiple instances of paginga on the same page.

Hello and thanks for the answer! I also tryed the hash approch but I'm doing something wrong. If for example I do this:
previousElement.on("click", function()
{
plugin.showPreviousPage.call(plugin);
window.location.hash = '#1';
			});

			nextElement.on("click", function()
			{
				plugin.showNextPage.call(plugin);
				window.location.hash = '#2';

			});

			firstElement.on("click", function()
			{
				plugin.showFirstPage.call(plugin);
				window.location.hash = '#3';

			});

			lastElement.on("click", function()
			{
				plugin.showLastPage.call(plugin);
				window.location.hash = '#4';

			});

The hash is added to the URL but when I press the back button or navigate with back/forward, even though the url cahges I always get page 1 displayed. What am I doing wrong?

@apod42 Can you checkout my fix in #9? If you set the history option to true it will work as expected as far as I can see.

Ok did some testing. Works as intended for page numbers (when I navigate by pressing 1 or 2 or 4 etc).
Navigation by arrows (next, previous, first, last) does not add hash to URL. If I add plugin.setHistoryUrl.call(plugin); to lastElement.on("click", function(), firstElement.on("click", function(), and so on, hash numbers in the URL do not correspond to the current page I am on. They are random at least.

It needed to be added to the show*Page functions: https://github.com/mrk-j/paginga/pull/9/commits/917ac5c9e74ca1bfed9c9d1640d397b101e00669
It should be fixed now if you get the latest code from #9.

Look really good. Thank you for the feature addon, I think you can close this now.
Will to further testing in the following days when I have my project ready. Will get back to you if I discover some bugs, but for now works great!

Ok, I will close this issue. I will merge the PR when I have tested it with multiple instances on one page. Also I think I'm going to create the possibility to add a prefix to the page number.

I just merged #9 and tagged v0.8!


data-cart-render

Hello,
I try to implement money formatting to the price after I add the products to my cart, however it seems it doesn't work on my part. I've already included "option_selection.js"
This is my codes:
        CartJS.init({{ cart | json }}, {             "dataAPI": false,             "requestBodyClass": "loading",             "moneyFormat": "{{ shop.money_format }}"         });
 $(".ajax-addto-cart").on("click",function(){             CartJS.addItem( $(this).data("id") );         });
{{ line_item.price | money }}
I'm not using rivets.js by the way, I only use jQuery

You've set  "dataAPI": false, should that be  "dataAPI": true ?

I just changed it as dataAPI": true, but it still doesn't work.  If you want, you can look at my codes. I've already given you login permission. Here is the store: https://microstoree.myshopify.com/
Codes are in theme.liquid and snippets/cart.liquid.

Ah, I think I see the issue. data-cart-render is pretty simple and doesn't support | money formatters as that's Rivets job.
You can use data-cart-render="item_count", data-cart-render="total_price", data-cart-render="total_price_money" or data-cart-render="total_price_money_with_currency", but they are the only options supported without bringing in Rivets.


motif search broken

Whatever your search on, it only find one result (and that result  does not match the full string)

Sorry about that.  It's fixed now.  I had corrected the protein IDs from eg. "SPAC11D3.18c:pep" to "SPAC11D3.18c.1:pep" and forgot to change the motif search to match.

thanks! sorry to interrupt your hol!


agent: don't receive signals from stdin

close stdin to avoid agent be killed through the stdin
fixes #746
Signed-off-by: Julio Montes<EMAIL_ADDRESS>

/test

I've kicked rebuilds for F31 and bunty18 - failures looked different and possibly unrelated.

@grahamwhaley thanks,
centos CI still stuck :worried:

/retest centos

huh? / oops! :smile:

@jodh-intel  @grahamwhaley  @amshinde  CI looks happy, can we merge this?

/test-centos

/test-centos

Retriggered Centos build. @GabyCT is there an issue with Centos build?

Centos q35 still failing with an EPERM issue:
docker build    --build-arg arch=amd64 -t katacontainers/agent-dev:e4c2037 .
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.38/build?buildargs=%7B%22arch%22%3A%22amd64%22%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&session=m8zcx6o8qgi1n3mjzrq2wp3n6&shmsize=0&t=katacontainers%2Fagent-dev%3Ae4c2037&target=&ulimits=null&version=1: dial unix /var/run/docker.sock: connect: permission denied

Restarted once more...

@amshinde yes, Centos 8 has been instable https://github.com/kata-containers/ci/issues/249, mainly mirror issues and that causes the packages not being installed properly, I change it to use Centos 7 which is more stable


Disable configuration caching on CreateFocusSettingsTask

Partially handles #2 but doesn't implement actual support for configuration caching. This instead marks this task as incompatible with it, allowing Gradle to gracefully fall back to regular mode when this task runs rather than require users to manually disable CC first.
Gradle 7.5 will introduce APIs for depending on the resolved dependency graph in a CC-friendly way, but that's not ready yet. Example of that can be found here though: https://github.com/adammurdoch/dependency-graph-as-task-inputs/blob/main/plugins/src/main/java/TestPlugin.java#L31-L35
Note this also raises the minimum Gradle version to 7.4 unless you want to dynamically gate the API call at runtime on the gradle version

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

The CLA link leads me to an inactionable screen (I can't appear to click anything or input anything?)

Weird, seems to be loading fine for me. Try again?

Worked on mobile 👍

Raising apis seems fine, if we run into problems internally I’ll follow up and gate

Thanks Zac!

@digitalbuddha @ZacSweers it would be great if you could gate this call for Gradle versions below 7 for the poor folks who haven't got to the latest yet.

I think that you should just update. I know the Gradle ecosystem has a long track record of supporting old versions for long periods of time, and I think that's significantly held back the Gradle ecosystem's evolution. If you care enough about your build QoL to adopt a tool like this, you should care enough to update it regularly IMO

+1 Zac, configuration caching and project isolation compatibility is simply not something that will be possible to adopt by plugins without ugly hacks. Let's keep this modern!


Getting all elements positions

Is there a way of knowing the index of all the draggable elements?
The only thing I have found is the current "order changed" or "item moved" element by using the event.dest.index (and this is relative to the parent). Haven't found a way of getting all of the elements indexes at once.
The intention is to save this positions on the database so I can retain their position when it changes.

Hi @lmatheus,
You can get it each time you move an element. Thats what i do:
orderChanged: function (event) {
//Mapped because i only need ID
var tasks = event.source.sortableScope.modelValue.map(function(a) {return a.id;});;
//Update tasks with new positions
console.log(tasks);
ctrl.updateSort(tasks);
}


master: wrangler publish after wrangler config fails

ran wrangler config
entered email + api key
file created at ~/.wrangler/config/default.toml with correct contents
ran wrangler publish, get error

Error: ⚠  Your global config has an error, run wrangler config: missing field email

solved by #365


Non-greedy matches

This code:
#include <ctre.hpp>
#include <utility>

::std::pair<unsigned long long, unsigned long long> test_greedy() {
    static constexpr char mstr[] = "I bought an apple and Thelma bought an apple";
    auto m1 = ctre::match<"^.*apple">(mstr);
    auto m2 = ctre::match<"^.*?apple">(mstr);
    return {m1.get<0>().end() - mstr, m2.get<0>().end() - mstr};
}

should return a pair with 44 and 17. Instead it returns a pair with 44 and 44.
Example: https://gcc.godbolt.org/z/cdvvEE
Documentation for non-greedy qualifiers: https://perldoc.perl.org/perlre#Quantifiers

For this behaviour, you need to use search function which is not bounded, match function implicitly is same as search<"^pattern$">
https://gcc.godbolt.org/z/YaKqqd

Oh! sigh Thank you!


As a host I want to be able to make corrections to poll drafts, so i can fix mistakes

Covered by #241.


device: add method to update target supervisor release

Connects-to: https://github.com/balena-io/balena-io/pull/2177
Change-type: patch
Signed-off-by: Matthew McGinn<EMAIL_ADDRESS>
Resolves: #
HQ:
See:
Depends-on:
Change-type: major|minor|patch

Contributor checklist

[ ] Includes tests
[ ] Includes typings
[ ] Includes updated documentation
[ ] Includes updated build output

@balena-ci rebase

@balena-ci retest


TypeError: inst.render is not a function when testing stateless functional components

Functional component which looks like this
function DateTime({ dateTime }) {
  return <span>{(dateTime || new Date()).toLocaleDateString(currentLocale)}</span>;
}

being included to any conventional component causes this component's test failing with
TypeError: inst.render is not a function
        at ReactCompositeComponentMixin._renderValidatedComponentWithoutOwnerOrContext (node_modules/react/lib/ReactCompositeComponent.js:587:34)
        at ReactCompositeComponentMixin._renderValidatedComponent (node_modules/react/lib/ReactCompositeComponent.js:607:32)
        at ...

React 0.14.3, JEST 0.8.0, npm 3.5.2, node 5.2
Any suggestions on how to get rid of this?

moved to react repo


DataPrepare

Traceback (most recent call last):
File "refer.py", line 39, in
from external import mask
File "/home/wam/refer-master/external/mask.py", line 3, in
import external._mask as _mask
ImportError: No module named _mask
Could you give me some advice to solve the error?

Which version of Referit did you downloaded?

I use the link of https://github.com/lichengunc/refer to download the Referit

Could you please install our version of referit and try again? https://github.com/andfoy/refer

How much GPU does this work usually require?

How much GPU does this work usually require?

It requires about 12Gb to train the whole model.

@AmingWu I hope that your issue was resolved. I'm closing this one.

Sorry, I cannot obtain your data. There is an error.
ModuleNotFoundError: No module named 'referit.external._mask'

@AmingWu Could you please try to follow the instructions posted on the project README?

@AmingWu Any followup on this one?


chore: update next to 13.3.0

Summary
Updates Next.js next dependency to 13.3.0
Things done in this PR:

RSC now uses text/x-component, see https://github.com/vercel/next.js/pull/45808
demos/default change of tsconfig.json and next-end.d.ts happened automatically when running the site
next now seems to include @vercel/og so the esbuild config had to make this part external so that Node/WASM deps are not loaded
Next 13 doesn't have target in its config anymore, so we use server as default now, if people still use Next 12 with the runtime and define target: serverless it'll work. We just flipped the default. Previously this worked because Next defined server itself as the default
Add checkIsOnDemandRevalidate replacement as checkIsManualRevalidate was renamed to this
Skip a test as it won't be able to pass
mockRequest was reworked to createRequestResponseMocks

Fixes https://github.com/netlify/pod-ecosystem-frameworks/issues/438
Fixes https://github.com/netlify/pod-ecosystem-frameworks/issues/432

let's not merge this yet, i don't think the snapshot update was right as it should be failing here

@orinokai How do you come to that conclusion? The .nft files contain those paths

@orinokai How do you come to that conclusion? The .nft.json files contain those paths

Apologies @LekoArts, I didn't realize that you'd already fixed the serverless problem in an earlier commit.


docs: document TransactionStatus enum

Explanation
Met with @matthewwalsh0 who took the time to explain each status.
References
Changelog
Checklist

[ ] I've updated the test suite for new or updated code as appropriate
[ ] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
[ ] I've highlighted breaking changes using the "BREAKING" category above as appropriate

❤


Fix case overview full-height

@nmirasch not sure if we still need this, perhaps get it merged and apply your styles updates on top?

@cristianonicolai I created a PR with the first step of the overview integration. Here we have to choose what styles we want to apply. I just push the styles provides as they came and the application in our code. Depending on the selected way, maybe doesn't make sense merge something that is going to disappear. What do you think?

@nmirasch agreed, closing this PR ;)


error: missing required module 'CNIOAtomics'

I was using the https://github.com/swift-aws/s3 package with great success for the past week, then did an update today and got the above message. (reporting here as per my understanding of the relationship between the repos, apologies if this is in the wrong place.)

@EricWVGG hi there. yes, this is the right place 👍
Can you share a bit more about this issue? You were using the s3 sdk then you did an update, how did you perform the update? Did you manually update the s3 Package.swift to pull the 2.0.0-rc.1 version of this package? If so you may need to clean your build dir before compiling.

I'm using the Vapor back end framework, so I ran "vapor update" to upgrade some unrelated things. Part of the update process is building a fresh .xcodeproj; once it was finished and I opened it, I couldn't build as per that message.
I did clean and compile several times to no affect.
This was in my package…
.package(url: "https://github.com/swift-aws/s3.git", .upToNextMajor(from: "1.0.0"))
…adding this before it fixed things…
.package(url: "https://github.com/swift-aws/aws-sdk-swift-core", from: "1.0.10"),
I just removed that to see if I could replicate the problem, but it seems to have gone away. Hope it's a false alarm… I'll close and reopen if it shows up again.
Thank you, otherwise this library works perfectly, I appreciate it very much.

oh, it's back again, I just added a new source file and initiated a rebuild and it showed back up.

:D ok, I was nervous when I saw you'd closed it.
Can you share which version of vapor you are using? Is it 2 or 3?

Vapor 3. I’m trying to be current and cutting edge with this project :)

Thanks Eric.
You might try adding the core sdk version 2 rc1 in your vapor3 package swift.
 .package(url: "https://github.com/swift-aws/aws-sdk-swift-core.git", .from("2.0.0-rc.1")),
 .package(url: "https://github.com/swift-aws/s3.git", .from("1.0.0"))

I would clear out your build dir and delete your Package.resolved file as well and try to build from scratch.
When that completes
vapor xcode

and you should have a happy xcode.

@EricWVGG any luck trying the above?

Initially did not work, and I got distracted and decided to put it aside for a bit. I'll give it another crack tomorrow.

Howdy @EricWVGG, any luck? 🤞

Not really. I left things alone with the old 1.0.10 dependency and stuff would mostly work. But since Mojave, I can't get a build at all, on any version.
First off, this syntax seems to be wrong…
.package(url: "https://github.com/swift-aws/aws-sdk-swift-core.git", .from("2.0.0-rc.1")),

Seems to want from: "x.x.x" (no period from from), or .upToNextMajor(from: "x.x.x")
Either way, vapor build just stalls out.

Just spotted this, @EricWVGG are you building in Xcode by any chance?
I've seen this issue before when SwiftPM-generated Xcode projects get added (as sub-projects) to iOS or macOS GUI apps. Something with the dependencies is not quite right with those SwiftPM-generated Xcode projects when they're used as sub-projects.
@jonnymacs / @Yasumoto I believe today the only way to get a SwiftPM project to reliably work as a sub-project in a regular Xcode project is using CocoaPods at the moment :(. I did file a SwiftPM bug

Yes, it was Xcode.

@EricWVGG okay, so just to be clear Xcode itself should  work just fine with if used with the Xcode projects generated by SwiftPM (or through Vapor Toolbox), what causes issues is if these projects are then added as sub-projects to other Xcode projects. Is that what you’re doing?
If you’re not adding one Xcode project to another Xcode project as a sub-project everything should work. If not, try rm -rf .build Package.resolved *.xcodeproj and try regenerating the Xcode project using swift package generate-xcodeproj or through the vapor toolbox.

@EricWVGG / @jonnymacs turns out I was wrong. SwiftPM already implemented everything necessary but NIO's C modules didn't have proper umbrella modules. That's fixed in https://github.com/apple/swift-nio/pull/636 and should be released soon!

Closing as this should be resolved.