support shoot spec with . Kubernetes version

What this PR does / why we need it:
Ability to specify only major & minor version in the shoot spec

default to the latest patch version of that major & minor combination

Note that in the shoot spec,  the kubernetes version must be within quotation marks to be recognized as a string during unmarshalling in the apiserver.
So specify "1.15" instead of 1.15
Which issue(s) this PR fixes:
Fixes #1324
Special notes for your reviewer:
Release note:

Do we really want this? This is a technical API, so I'd actually vote against such shorthands. In the end, Gardener will have to store the definitive version somewhere. This will complicate the Gardener code and will probably lead to yet another status field that feels somehow off (current version?). @vlerenc I really would not recommend doing this - For users of the technical API, it should be rather explicit than implicit. This is rather a feature that I'd see in the dashboard.

Do we really want this? This is a technical API, so I'd actually vote against such shorthands. In the end, Gardener will have to store the definitive version somewhere. This will complicate the Gardener code and will probably lead to yet another status field that feels somehow off (current version?). @vlerenc I really would not recommend doing this - For users of the technical API, it should be rather explicit than implicit. This is rather a feature that I'd see in the dashboard.

This is only a defaulting mechanism during the update or a create of a shoot. The definite version is being stored in the shoot.spec. There is no need for a status field.
As far as I know this is more a feature to ease the automation around shoots. So they would use the API directly rather than the dashboard.

Gardener will have to store the definitive version somewhere.

The admission plugin will write the definite version into the .spec.kubernetes.version field, so that's not a problem (and also not ugly but a nice feature).
However, I get your point. This change will not save end-users from reading out of the CloudProfile which versions are offered. So, they still need to have some logic that determines which major/minor versions are supported. Your argument is that they can write the whole version (including patch) into the shoot spec. However, @vlerenc's argument (and the one from end-users) is that major/minor versions are not dropped that often (compared to patch versions), so they can actually safe this code and lazily adapt their Shoot manifests when it really happens.

Still, having that much magic in the admission is a big smell to me... I see that you're calling this 'defaulting', but for me defaulting would only be if a user omits a field, not doing the cross-lookup to the cloud profile. You're coupling the cloud profile and Shoot from Shoot side at the admission layer for convenience reasons, which is just something I wouldn't recommend.

Still, having that much magic in the admission is a big smell to me...

Why do you consider this as "magic"? It's a feature to improve end-user convenience, no magic at all.

You're coupling the cloud profile and Shoot from Shoot side at the admission layer

This was the case since introduction of the CloudProfiles. A shoot always references a cloud profile and we have constraint checks etc. Also, we use it for defaulting, e.g. the machine image if it is not present. Now, we default also the Kubernetes patch version if it is not present. Not much of a difference imho.

Why do you consider this as "magic"? It's a feature to improve end-user convenience, no magic at all.
It's magic because defaulting usually involves only one resource, this is munging together two.
This was the case since introduction of the CloudProfiles. A shoot always references a cloud profile and we have constraint checks etc. Also, we use it for defaulting, e.g. the machine image if it is not present. Now, we default also the Kubernetes patch version if it is not present. Not much of a difference imho.
I know that they are linked, however

we've already seen in the past that links between the cloud profile and the Shoot are not always the best idea
another link just increases implicit coupling between two resources even more.
I'm just trying to say that you should always be as explicit as possible, especially in machine-facing APIs like this one.

It's magic because defaulting usually involves only one resource, this is munging together two.

That's wrong. There are multiple examples in Kubernetes where defaulting involves more than one resource, e.g. pod presets, image pull secrets, etc.. It's a commonly used pattern.

we've already seen in the past that links between the cloud profile and the Shoot are not always the best idea

Do we? I can't remember. I know that we saw problems between the seed<->cloudprofile links and will improve this with GEP4, yes, but the shoot<->cloudprofile link was always working well.
Even if such problems exist, can you please open an issue and describe them in detail? I don't think this should happen as part of this PR.

another link just increases implicit coupling between two resources even more.
I'm just trying to say that you should always be as explicit as possible, especially in machine-facing APIs like this one.

Yes, they are coupled by design, we don't need and we don't want to avoid this. It doesn't make any sense with the current architecture.
Again, we use the CloudProfile to default the machine image (see pod preset example in Kubernetes which is very similar), we plan to do sth similar with #1161, and defaulting the patch version if it's not present isn't much different.
I suggest going ahead now and merging this PR. It doesn't make things worse but it improves the end-user convenience. If we have real issues with the shoot<->cloudprofile link then let's address them separately.

That's wrong. There are multiple examples in Kubernetes where defaulting involves more than one resource, e.g. pod presets, image pull secrets, etc.. It's a commonly used pattern.

But that's also not quite right: Those resources in Kubernetes follow a well-defined schema and here were widening the schema 'temporarily' to accept a convenience representation of a version. That is definitely magic.

Yes, they are coupled by design, we don't need and we don't want to avoid this. It doesn't make any sense with the current architecture.
Again, we use the CloudProfile to default the machine image (see pod preset example in Kubernetes which is very similar), we plan to do sth similar with #1161, and defaulting the patch version if it's not present isn't much different.

We should want to avoid this: In the past we already had a good discussion that cloud profiles should if possible only have validating properties - now we're introducing more and more implicit links between the resources and the relationship between them becomes more blurry.
Also, again, this implements some strange kind of user convenience in a technical API - this is definitely not the right place for doing sth like this. I'd recommend closing this and rather bringing this feature to the dashboard.

Hm.. I'm struggling to understand these arguments... @vlerenc @timuthy @zanetworker @danielfoehrKn @mvladev @ialidzhikov @swapnilgm what are your opinions on this?

I just thought about it again: How about a create-only field like stringData for secret? We could call it versionRange - this would allow for the proper specification of a version range when creating a shoot, allowing to select a matching version even easier? Still, I don't quite like the idea of linking a cloud profile and a shoot more deeply together, but I guess schema-wise, this could be the cleanest option...

The Dashboard won't help here, because the complaints were with the programmatic API and automation. It wasn't perfectly possible to automate that in the past (there is no atomic fetch-and-addcreate and we always replaced the last patch with the latest patch version). However, since we also want to support multiple patch versions now, it isn't strictly necessary anymore, but remains convenient. For instance, I never create my clusters via the dashboard, because I have more control over them in yaml. However, the one thing I really don't care about and that I always have to update is the patch version when in fact I really want the latest patch version. In conjunction with "auto-update my Kubernetes patch version" it makes even more sense this way (not forcing me to name the patch version).
If you want to be creative then yes, you could use version ranges or aliases, e.g. aliasing 1.15 in the cloud profile with 1.15.2 or then later 1.15.3. But do you really want to add all this complexity (version ranges) when the users wanted simplicity (major+minor)? And where is the difference between full defaulting (no OS specified, no seed specified, etc.) and defaulting to the patch version? Would we have three fields: major, minor and patch, would it then have been OK to omit the patch field, because then an entire field would be defaulted? I am not sure I follow that logic. We already default many fields and here it makes even more sense, especially in combination with "auto-update my Kubernetes patch version" where I am not interested in what the initial patch version was in the first place.

The problem is twofold:

The version field now actually has two different schemas, one during creation and one during the lifetime of the object. You should always be able to statically validate a yaml, with that it becomes quite obscure - that's why I now had the idea with the separate field where we can define proper validation rules + know about the semantics at each point in time. Also, again, something like this with a field changing schema dependent on e.g. creation time is in no k8s core controller to date.
Regarding your explanation with major, minor and omitting patch: yes, then it would've made sense since you didn't change the schema of a field at any point in time.
The second problem is the very custom implementation of some semver style parsing. If I know one thing about writing semver parsers is that you shouldn't do it unless completely necessary. If we go for ranges instead, we can just make use of the semver library which we already use all over the place in gardener and have a nice feature without having either much added complexity plus a nicer looking API.

I'm with Axel on this one.
I'll put such behavior (or any UX functionality) into a separate admission plugin / mutatingwebhook - right now the defaulting of the Shoot fields is bloated beyond believe - https://github.com/gardener/gardener/blob/master/plugin/pkg/shoot/validator/admission.go it's over 1000 LoC, and it's doing mutating and validation at the same time - which breaks the clean separation between mutation (sequential operation) and validation (parallel operation).

@mvladev you are talking about a different thing than @adracus. You want to move the behaviour only in a separate code package, but @adracus wants to not use the version field for such feature. That's something else...

The Dashboard won't help here, because the complaints were with the programmatic API and automation.

Which is not a valid complaint as I could install a validating webhook which compares the versions to a list of pre-approved K8S versions which are CVE clean - it'll break automation, but one would argue that automation should not be using "broken" versions in the first place.
Also, how is this going to work with custom versions - on GKE I can get v1.11.10-gke.5. This is something which we might want to offer in the future as well - v1.11.10-gardener.5

I like the idea not to specify the patch version, but we cannot simply change the current API.
I would propose something like this:

make the current version optional
add new optional (maybe even immutable) string field versionConstraint that will define the version restriction[1], e.g. ~1.14
using the versionConstraint and version on create operation:

if both are provided and non-empty - return error
if both are not defined or empty - return error
if only versionConstraint is provided, default the version field to the latest matching version offered in the cloud profile, if there is no matching version - return failure.
if only version is provided, use it as of now

[1] https://devhints.io/semver

+1 for the idea with the semVer Range definition. This would give the user also full flexibility to define the update behavior desired (only patches, patch & minor?, certain versions?)
We could give the Users the following options:

Specify a Range during creation and empty version -> pick latest version available within given range & automatic k8 version updates only within that range
Specify a fixed version
Specify no version and no range -> error

Before we do such complexity let's rather close the PR and not support the feature. It doesn't make sense to implement this complicated contract imho

Wow, what feedback. Maybe I am out of touch too much, who knows, but to me, this hardly sounds like a world-shattering feature or proposed change. Yes, I like good design, clear rules, but I also like pragmatism and have to deal with realities such as actual complaints and feature requests, people and time, and such.
This problem is simple enough, so that we can discuss many different proposals, but do we really want to do that? We can always alter the implementation, even without breaking anything by introducing aliases later as one example.
But that all doesn't matter, the underlying issue #1324 was not commented, but @danielfoehrKn PR is now. A bit late, isn't it? I know that it's hard to keep track of all he issues, but now we have an implementation and the solution is not breaking Gardener or reaching out into the core.
I suggest to merge it. The place for discussion was the ticket, not the PR. The PR is not generally wrong - there are alternative ideas, maybe a wish for a cleaner contract than a defaulted patch segment. Yes, version ranges and aliases and similar things would be even better, but let's not go up in flames if we don't have it all at once.
Instead, contracts like extensibility are more critical, VMware is a much sought-for infrastructure, improving our error messages or documentation would be even more helpful, having a boot-strapping Gardener operator that creates a ring is another topic. There are so many, that I don't see that by merging this PR Gardener we would admit a fatal feature that will break us and then there is always the reality, that we cannot implement the purest, cleanest solution at all times or at once. I am the last who would not be ignorant to technical debt, but I don't see it here - it's too local and a pragmatic compromise, especially now that we have the PR ready.


Unable to drop JournalPage on Actor

Is your feature request related to a problem? Please describe.
I am working on a Foundry module that supports creating parcels of items that can be given to a PC by dropping the parcel onto the actor sheet. The parcel is implemented using JournalEntry and JournalEntryPage, and relies on the dropActorSheetData hook to fire in order to copy the items to the PC. However, this system only seems to support dropping Items on the actor.
Describe the solution you'd like
Can you add support for additional types to be dropped on the actor?
Additional context
The following error is seen in the console log when dropping JournalPages on the actor:
Uncaught (in promise) Error: Invalid Document type 'undefined' provided to Item.fromDropData.
    at Item.fromDropData (foundry.js:11496:15)
    at async ActorSheetSFRPGCharacter.processDroppedData (base.js:1164:28)
 fromDropData @ foundry.js:11496

Can you please enumerate some objects you're interested in and what you'd like done with them? It sounds like you're at least interested in JournalEntry and JournalEntryPage. The only thing I can think to do with those is to promote the actor's player to a limited owner of the entry/page.

Yes, I need JournalEntry and JournalEntryPage. The module expects to receive an event callback when one of those types is dropped on the actor.
The hook in question is dropActorSheetData: https://github.com/sweetrpg/lootparcels-foundryvtt/blob/feature/83-sfrpg/loot-parcels.js#L163
Hooks.on('dropActorSheetData', async (actor, html, item) => {

Gotcha.


SSH / SFTP Implementations

The following script works differently between 0.2.2 and 0.0.24 and I'm trying to figure the cleanest way to account for it:
import upath

ssh_path = upath.UPath("ssh://juftin@<IP_ADDRESS>:22/").resolve()

(yeah, I know SFTP/SSH isn't a current implementation - I'd be happy to help to implement it, it looks to work pretty seamlessly without any custom functions)
0.0.24
>>> ssh_path
UPath('ssh://juftin@<IP_ADDRESS>:22/)
>>> ssh_path.path
'/'
>>> str(ssh_path)
'ssh://juftin@<IP_ADDRESS>:22/'
>>> ssh_path.fs.ftp.normalize(ssh_path.path)
'/'
>>> upath.__version__
'0.0.24'

0.2.2
>>> ssh_path
UPath('ssh://.')
>>> ssh_path.path
'.'
>>> str(ssh_path)
'ssh://.'
>>> ssh_path.fs.ftp.normalize(ssh_path.path)
'/home/juftin'
>>> upath.__version__
'0.2.2'

The difference here is that 0.2.2 assumes you are starting from the user's home directory and every path is relative from there, this means paths like ssh://juftin@<IP_ADDRESS>:22/var/local are no longer working.
In my case the previous way the SFTP/SSH filesystem went to the root of the directory tree was more intuitive. I've been working on getting this to work for browsr / textual-universal-directorytree , the below code works for me:
class SFTPTextualPath(UPath):
    """
    SFTPTextualPath
    """

    @property
    def path(self) -> str:
        """
        Always return the path relative to the root
        """
        pth = super().path
        if pth.startswith("."):
            return f"/{pth[1:]}"
        elif pth.startswith("/"):
            return pth
        else:
            return "/" + pth

    def __str__(self) -> str:
        """
        Add the protocol prefix + extras to the string representation
        """
        string_representation = f"{self.protocol}://"
        if "username" in self.storage_options:
            string_representation += f"{self.storage_options['username']}@"
        string_representation += f"{self.storage_options['host']}"
        if "port" in self.storage_options:
            string_representation += f":{self.storage_options['port']}"
        string_representation += self.path
        return string_representation

Hi @juftin,
thank you for reporting! This is a "bug" in the sense, that even though ssh filesystems are untested, it should be possible to avoid this for all untested filesystems where the netloc would be stripped or end up in the path anchor.
Correct behavior can be restored by setting a special internal setting in UPath's flavour implementation. Note that the following code fixes behavior for ssh:
import upath

# -------
# Please don't use these two lines in your code:

from upath._flavour import WrappedFileSystemFlavour
WrappedFileSystemFlavour.protocol_config["netloc_is_anchor"].add("ssh")

# There's going to be a correct fix implemented in `universal_pathlib`
# -------

ssh_path = upath.UPath("ssh://juftin@<IP_ADDRESS>:22/var/local")

print(f"{ssh_path.parts=}")  # ssh_path.parts=('/', 'var', 'local')
print(f"{ssh_path.root=}")   # ssh_path.root='/'

For a general fix, I need to check if it's possible to infer the netloc_is_anchor setting from the return value of a filesystem's _strip_protocol method, if provided with a generic uri with non-empty netloc.
But anyways, it would of course be great to add an SSHPath implementation and thoroughly test all path functionality.
Cheers,
Andreas

Oh very neat. I saw the SFTPFileSystemFlavour - but wasn't sure what might be needed there. I'd be happy to get a SSHPath implementation going - that would need this upstream netloc_is_anchor inference feature first though, right?

that would need this upstream netloc_is_anchor inference feature first though, right?

No, not really. You could add "ssh" here:
https://github.com/fsspec/universal_pathlib/blob/380144c18f291f0f0a15fe8a02bc265233dd594b/upath/_flavour.py#L106-L118
and make a SFTPPath / SSHPath implementation like the others. Most of the work will be to make a test fixture that sets up a local ssh server to test against. https://github.com/fsspec/filesystem_spec/blob/master/fsspec/implementations/tests/test_sftp.py this should be a good source for how to set this up.

Hi, just to say that we bumped into this problem when going for 0.2.0 to 0.2.2: UPath("ssh://myserver.domain.org/data/mydata.nc").path was producing /data/mydata.nc until 0.2.1, where it became data/mydata.nc.
I can also confirm that the workaround works for me:
from upath._flavour import WrappedFileSystemFlavour
WrappedFileSystemFlavour.protocol_config["netloc_is_anchor"].add("ssh")

Ran into this issue also, the workaround works but would be nice to get SSH working more seamlessly.


Add an example for PermitBatchTransferFrom

This has been an extremely useful example (as the name says it) for knowing how Permit2 works.
I believe it'd go full circe if you guys could add a working example for how it would be with PermitBatchTransferFrom.

Would like to reopen this and have this added

addressed in 1a51d77377d50a25a947448395ca215e8f6813c2


rename vstest-filter to just filter

Summary
Its a bit weird that is different. the docs reference in the command line output says filter
Background and Motivation
easier to use. don't need to switch arguments when changing between the two runners

The main motivation for this new wording was that we wanted to introduce a new filter system by default (this had to be postponed) because there are many confusions around the vstest filter between the various test frameworks.
I'll keep this open so we can decide if we will manage to implement the new filter quickly and so it might be worth to keep current shape or if we think this will be delayed and it's better to change.
Please if you have any other feedback let us know this is super valuable for us to be able to fine tune the runner.

Hey @jpribele! We had a quick chat with the team and we decided to rename the filter and the runsettings command line options to match those of dotnet test command

Done


Mega.nz API

see : https://github.com/smartinm/mega-php-client

Close via : https://github.com/Strikesoft/Downloader/commit/512a3cbb318a2ec7895b957fb6f35038d12f71e1
@Sarfroz it's done, but no resume for now

Close via : https://github.com/Strikesoft/Downloader/commit/512a3cbb318a2ec7895b957fb6f35038d12f71e1
@Sarfroz it's done, but no resume for now


Assitance with install of Emploee Directory

Forgive me if this is the worng place to post this -
I am having trouble installing the PHP Employee Directory which is located here:
http://emp-directory.herokuapp.com/
In the directions it says : run composer update from server/standalone directory.
How is that accoplished exactly?  I tried to run it from the url but I get a 404.  Am I supposed to do this at a command line?  I'm installing into a WAMP environment.
Thanks for any help

You should clone/download the source code from https://github.com/adrotec/emp-directory and run the commands locally in a terminal/console. You should also install composer https://getcomposer.org


prrte: 3.0.7 -> 3.0.8

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/openpmix/prrte/releases.
meta.description for prrte is: PMIx Reference Runtime Environment
meta.homepage for prrte is: https://docs.prrte.org/
Updates performed

Version update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.0.8 with grep in /nix/store/p9ps15gwz07m9mxbk8s4z7c32z7n5vqj-prrte-3.0.8
found 3.0.8 in filename of file in /nix/store/p9ps15gwz07m9mxbk8s4z7c32z7n5vqj-prrte-3.0.8

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

338 total rebuild path(s)

338 package rebuild(s)

First fifty rebuilds by attrpath

aligator
ants
apacheHttpdPackages.mod_tile
apacheHttpdPackages_2_4.mod_tile
bicgl
bicpl
bonmin
c3d
casadi
cdo
cloudcompare
conglomerate
costa
cp2k
crocoddyl
dbcsr
dl-poly-classic-mpi
dtcmp
ebtks
eccodes
elastix
elmerfem
elpa
entwine
ezminc
fftwMpi
freecad
freecad-wayland
froide
gdal
getdp
globalarrays
gmt
gnudatalanguage
gplates
grass
gromacsCudaMpi
gromacsDoubleMpi
gromacsMpi
haskellPackages.hgdal
haskellPackages.mpi-hs-binary
haskellPackages.mpi-hs-cereal
haskellPackages.mpi-hs-store
hdf5-mpi
highfive-mpi
hp2p
hpcg
hpl
hypre

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/p9ps15gwz07m9mxbk8s4z7c32z7n5vqj-prrte-3.0.8 \
  --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 prrte https://github.com/r-ryantm/nixpkgs/archive/763d3a16e52420b6ba5f3359b2e8f1998b8c55c9.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/763d3a16e52420b6ba5f3359b2e8f1998b8c55c9#prrte

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/p9ps15gwz07m9mxbk8s4z7c32z7n5vqj-prrte-3.0.8
ls -la /nix/store/p9ps15gwz07m9mxbk8s4z7c32z7n5vqj-prrte-3.0.8/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.
nixpkgs-review took longer than 120m and timed out

Maintainer pings
cc @markuskowa for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

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

Changes: https://github.com/openpmix/prrte/releases/tag/v3.0.8

@GrahamcOfBorg test slurm


question about the third term(voxel/gene expression term) in  loss function

when running the tutorial, why the lambda_g1=1,but lambda_g2=0, so in default, tangram didn't take voxel/gene expression similarity into consideration. which is not consistent with the formula defined in paper?

Simplest, effective, loss function is lambda_g1 = 1 and all other parameters equal to zero. This is what we end up using mostly (although historically we were also adding a lambda_g2 = 1 term). All other parameters, are sensible choices that can help mapping under various circumstances. To figure out what is the best loss function for you, always use the AUC score from the test transcriptome (that's the actual validation).


Error Handling and POO representation

Hello @hibariya.
I propose this reorganization who include:
pty : crate
 ├── descriptor : private
 │   └── err : private
 ├── ffi : private
 ├── fork : public
 │   ├── err : private
 │   └── pty : private
 │       ├── master : private
 │       │   └── err : private
 │       └── slave : private
 │           └── err : private
 └── prelude : public

An Error Handling alternative solution with errno like default's display.
The replacement of posix_openpt(3) call by his source.
An POO representation.

The interest is to limits panic possibility with enum pattern, by example:
pty-shell/lib.rs#L5^10
 if self.pid() != 0 {
            try!(setup_terminal(self.pty().unwrap()));
            try!(do_proxy(self.pty().unwrap(), handler));
}

Will become:
pty-shell/lib.rs#L5^10
if let Some(master) = self.is_father().ok() {
            try!(setup_terminal(master));
            try!(do_proxy(master, handler));
}

Don't hesitate to ask me any request of changes if you estimate my proposition is adapted at your crate.
I'll answer in less than five days.

Travis logs for:

adjivas@pty-shell
adjivas@pty-rs

@adjivas Thank you for your improvement :rocket: I'm gonna see changes this week. Please wait for a few days.

@hibariya Sure of course

@adjivas Hi, sorry for late.
I confirmed your reorganization and it looks pretty good to me :heart:
Especially new error handlings and traits are very interesting.
There are a couple of things I would ask you:

As far as I know, Rust encourages to use 4 spaces for indentation. Would you please fix that?
I suppose "father" means parent. Are there any reasons to use "father" rather than "parent" nor "mother"?
To be honest, I'm not sure about POO. Does this stand for Programming fOr Others?

Hello @hibariya.
Sorry, by mistake, I had used the French acronym POO instead of the English acronym OOP but of course you already know since your article says it (^_−)☆ .
I'm happy you like my work, I have solved your requests to change and update the fork adjivas@pty-shell to offer you the possibility to merge this repository with hibariya@pty-shell for pty-0.2.0's dependency.
In addition, I inform you I currently work on new library named adjivas@pty-shell-mode which will implements the possibilities: to swap between character/line mode, to modify a command in the line-at-a-time mode by example, and to modify the output.

Hello @adjivas .
Thank you for the fixes and your update for ptr-shell :sparkles:
One last thing: Would you please use 4 spaces instead of hard tab?

I had used the French acronym POO instead of the English acronym OOP

That makes sense. Merci (^_^ )

In addition, I inform you I currently work on new library named adjivas@pty-shell-mode

Interesting. I'll have a look later :smiley_cat:

Hi @hibariya. You are welcome and thank you yet for your work who is just amazing.
The four spaces now are solved for pty-rs and pty-shell. Do you want I ping you when the pty-shell-mode will be better advanced and explained?

@hibariya: Sorry, I have forget to change "is_father" to "is_parent" in the README.md documentation.

@adjivas Oh, I overlooked that :sweat_drops: Sorry to trouble you, but would you open a new Pull Request?

Do you want I ping you when the pty-shell-mode will be better advanced and explained?

Yes I do :smile_cat:

This is right notified, your pull request is opened for pty-rs.

Thank you! I've published the new version :ship:


MSID: 87297 Version: 3 DOI: 10.1101/2<IP_ADDRESS>2374

MSID: 87297
Version: 3
Preprint DOI: https://doi.org/10.1101/2<IP_ADDRESS>2374
Step 1. Awaiting reviews
Editorial to post reviews via hypothesis
Useful links:

DocMap: https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v2/by-publisher/elife/get-by-manuscript-id?manuscript_id=87297
New model tracking: https://docs.google.com/spreadsheets/d/1_fHaoOy7hjyocptKtVJRijeNpUY4hBS7Ck_aVmx6ZJk/
Reviews on sciety: https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>2374

For trouble shooting (e.g. no Docmaps available):

DocMap issue addressing: https://miro.com/app/board/uXjVNCwK6EI=/
Explore DataHub DocMaps API: https://lookerstudio.google.com/reporting/4c2f0368-babb-4beb-b5b3-497e7e7b0f08/page/ejphD
Unmatched submissions and preprints: https://lookerstudio.google.com/u/0/reporting/9f86204f-3bf7-477c-9b18-5c5ef141bf69/page/p_gxi57ha93c
Unmatched manuscripts spreadsheet: https://docs.google.com/spreadsheets/d/15QcK8w-ssB7109RQEDtFpJPZ0J5HTGxoHa_2TtpMBbg/edit#gid=1336081641

Step 2. Preview reviewed preprint
Production QC content ahead of publication
Instructions:

QC preview: https://prod--epp.elifesciences.org/previews/87297v3
Update ticket with any problems (add blocked label)
When QC OK, add QC OK label to ticket and add publication date and time to https://docs.google.com/spreadsheets/d/1amAlKvdLcaDp5W8Z8g77NmkwbMF5n_u89ArSqPMO8jg
Move card to next column
(At end of the day post link in #enhanced-preprint and ask for PDF to be generated)

Useful links:

Preprint DOI :  https://doi.org/10.1101/2<IP_ADDRESS>2374
Confirm reviews returned by EPP: https://prod--epp.elifesciences.org/api/reviewed-preprints/87297/v3/reviews
To update the MECA path in the docmap: https://docs.google.com/spreadsheets/d/1mctCQuNFBjSn97Lihy7_vBO6z7-N-oqyLv4clyi6zHg

Step 3: Awaiting search reindex
This step adds the reviewed preprint to the homepage: https://elifesciences.org
The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.
Useful links:

Jenkins pipeline to reindex search can be triggered sooner or monitored here: https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 4: Published! PDF requested
Waiting for PDF to be generated
Useful links:

PDF tracking: https://docs.google.com/spreadsheets/d/106_XeDjmuBae7gexOTNzg60lapeqjl2aRn9DzupGyS8/

Step 5: Introduce PDF to data folder and git repo
Upload PDF to relevent folder in git repo https://github.com/elifesciences/enhanced-preprints-data/
Step 6: Done!

[ ] Kettle is on!

@acollings Should the second useful be unbolded in the assessment?

Hi @naushinthomson edited!


[PLAT-486] Allow drag-and-drop local image upload to wiki

Purpose
Return the ability to drop images into the Wiki with added information about user permissions and error handling.
Changes

Reverts ability to drag things into the wiki
Adds new indicator if user has ability to upload files through dragging.
Adds new error messages alerting the user if they try to upload without permission.
Adds new error messages alerting the user if they try overwrite an existing file.

 Try dropping many images at once large images etc.
Side Effects
Registering a private project will still cause the resulting registrations wiki links to fail, because they will still be pointing at the old private projects files, a fix for this will come later after the wiki remodeling is complete.
Ticket
https://openscience.atlassian.net/browse/PLAT-486
Notes
Revival of #4569
Credit goes to @ticklemepierce

The title of this growlbox should be "Error" instead of "Warning".

What's the purpose of the "Full permission" button/modal? If I'm a read contributor, the edit pane is hidden so I would never see a "not full permission" button/modal. Additionally, I don't believe we use the phrasing "full permission" anywhere on the OSF.

@caseyrollins

For the warning vs. error message, I think warning is a better word in this case because dropping the same image twice doesn't actually prevent the user from creating the link. Consider the use case if the user uploads an image, then deletes the link and wants to recreate it by re-dropping the image as opposed to typing it out, this does exactly what the user wants. Same goes for having two image links pointing to the same file. If it can feasibly be the correct outcome, it would confuse the user to call it an error instead of a warning.

The edit panel is only hidden for read permissions if it's not a public wiki, everyone even non-contributor can edit a public wiki, but if they can't upload files they to the project, therefore they can't DnD. So they must have that be indicated with a 'Text-only permission' status. If they have write permissions and therefore can drag and drop, then they get 'full permissions'. This is a requirement of the ticket. I'm unsure exactly what to call 'full permission' but Product saw this much and didn't object.

@Johnetordoff @caseyrollins Sorry for not being clear in the demo, but I do prefer a different implementation of the permissions warning for users that attempt to drag and drop a file but the action fails because the user lacks permission to the wiki to do so.
The current way is not very obvious to users, is also not consistent with other parts of the site, and doesn’t tell me why when I try to do the action it failed. Instead, lets show a message on the action when it fails and tell the user that it is because they don't have permission to upload a file to the project. Thoughts?

@nicipfeiffer
The ticket says: "As a read collaborator on a publicly-editable wiki, I would like to understand that I am not eligible to upload images files to the wiki before I attempt, so that I don't waste my time curating my files to upload." I interpret this to mean there has to be some sort of forewarning that the user doesn't have the requisite permissions to drag and drop. Is this still a requirement?

Thanks @Johnetordoff!
This folder and all of its contents will be deleted. This folder is linked to your wiki(s). Deleting it will remove images embedded in your wiki(s). This action is irreversible.
Delete file in Wiki images folder
Delete “filename.gif”?
This file may be linked to your wiki(s). Deleting it will remove the image embedded in your wiki(s). This action is irreversible.
Delete multiple files in Wiki images folder
Delete multiple files?
This action is irreversible.
filename.give may be linked to your wiki(s). Deleting them will remove images embedded in your wiki(s).
Upload wrong file type
Error
This file type cannot be embedded (filename)
Permission error
Error
File not uploaded. You do not have permission to upload files to this project.
Error
A file with this name has already been uploaded to this project. If you wish to update this file, do so on the Files page.


Australia and Greenland should have people

Why do Australia and Greenland exist on the default map if by default nobody will reach them because there are no boats?
(i.e. in general, how can that be solved?)

Placement of people is entirely random. I have seen people randomly placed in Greenland etc
There are few ways I am planning to solve this.

Add swimming/ boats.

Allow manual placement options.

Placement of people is entirely random. The world map is just an image, it's not meant to be realistic :p
Anyways, I have seen people randomly placed in Greenland etc
There are few ways I am planning to solve this.
1. Add swimming/ boats.

2. Allow manual placement options.

you forgot


Create documentation for Quin AI source integration

Proposed changes
Created a documentation for new source integration called Quin AI.
Merge timing
ASAP once approved.

Hi @eren-quinengine - please take another look at this PR, I'd love to help you get these docs published!


[W6.1h][W14-B1]Chua Wei Wen

LO-Interfaces

@chuaweiwen
Some comments added. Please ack & close the PR after reading comments.


Handle server to server notifications

Summary
As described in Processing Changes for Sign in with Apple Accounts
NOTE: The Apple documentation states the events attribute as an array but is in fact a stringified json object
Introducing a new class: AppleAuth::ServerIdentity which validates the jwt token and claims
# with a valid JWT
params[:payload] = "eyJraWQiOiJZ......"
AppleAuth::ServerIdentity.new(params[:payload]).validate!
>> {iss: "https://appleid.apple.com", exp:<PHONE_NUMBER>, iat:<PHONE_NUMBER>, jti: "yctpp1ZHaGCzaNB9PWB4DA",...}

# with an invalid JWT
params[:payload] = "asdasdasdasd......"
AppleAuth::ServerIdentity.new(params[:payload]).validate!
>> JWT::VerificationError: Signature verification raised

Implementation in a controller would look like this:
class Hooks::AuthController < ApplicationController

  skip_before_action :verify_authenticity_token

  # https://developer.apple.com/documentation/sign_in_with_apple/processing_changes_for_sign_in_with_apple_accounts
  # NOTE: The Apple documentation states the events attribute as an array but is in fact a stringified json object
  def apple
    # will raise an error when the signature is invalid
    payload = AppleAuth::ServerIdentity.new(params[:payload]).validate!
    event = JSON.parse(payload[:events]).symbolize_keys
    uid = event["sub"]
    user = User.find_by!(provider: 'apple', uid: uid)

    case event[:type]
    when "email-enabled", "email-disabled"
      # Here we should update the user with the relay state
    when "consent-revoked", "account-delete"
      user.destroy!
    else
      throw event
    end
    render plain: "200 OK", status: :ok
  end
end

@LeipeLeon I want to thank you for this changes, i think it looks good and maybe it helps user to understand better the gem. And also for the documentation update, I didn't have idea about that changes related with apple process disable and deleting. It's a good contribution. Thanks again 🙏

Would love to see this merged and released so we can install from this official repo (instead of our fork).


Unable to Query Bastion Data

I have susbcription which is hosted in SouthEast Asia region and enabled Bastion to allow access to VM. the users from countries like Singapore and India don't have an issue connecting to the VM's bastion.
However, one user connecting from Australia gets the error as "Unable to Query Bastion Data". (refer to the screenshot)
Any idea what could be potentially going wrong here?

@rvraman Thank you for sharing your query! We are currently investigating and will get back to you shortly on this.

@rvraman This error typically appears when the user has permissions on the Virtual Machine, but not on the Bastion itself. Make sure that the user has all of the required permissions outlined Here, particularly read permissions on the Azure Bastion resource.

@rvraman Have you had a chance to check if the above response helps? Are you still seeing issues?

@rvraman We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.

"Unable to query Bastion Data" is being observed in our deployment.  We have the Bastion Hosts deploying in a Hub Subscription VNet, trying to access VMs in a Peered Spoke Subscription VNet.  Users already had Read access across the 3 documented resources (Bastion Host, VM and VM NIC).  "Unable to query Bastion Data" was resolved when we additionally granted Read access to the VNet that contains the BastionHostSubnet.

"Unable to query Bastion Data" is being observed in our deployment.  We have the Bastion Hosts deploying in a Hub Subscription VNet, trying to access VMs in a Peered Spoke Subscription VNet.  Users already had Read access across the 3 documented resources (Bastion Host, VM and VM NIC).  "Unable to query Bastion Data" was resolved when we additionally granted Read access to the VNet that contains the BastionHostSubnet.

This behaviour was observed with a similar hub/spoke deployment with Bastion on the hub. Read access granted as per the documentation. The Global Subscriptions Filter subscriptions had the hub subscription unchecked. Checking this enabled the Bastion to be utilised as expected. Hope this helps someone else.

@siliconWOLF Agree!  I also ran into that, in which the Global Subscription Filter did not have the subscription selected.  The result was that the Azure Portal kept prompting the user to create a Bastion Host (even though they actually have access to one via RBAC which is VNet Peered to the system they were trying to access).  Once the user added the subscription as "selected" to their view filter, the portal acknowledged that there was a Bastion Host that they could utilize.


Garbage collection speed optimization

In our docker registries current GC implementation became unacceptably slow, so I have prepared some improvements to reduce computational complexity of the process.
GC is functionally the same, I compared current implementation's dry run output with new version's and it looks similar (there were some differences due to docker repositories changing as I worked on this).
Speed gain may vary depending on repository structure and storage backend used.
In one of our repositories (~500 repos; ~22k tags, ~500k blobs, swift driver with #2642 applied) GC dry run time dropped from ~75h to less than 9h (8.5 times faster).
I have been running dry runs only, so I do not recommend to merge this in for now - I'm leaving this code for review. I'll let you know the results of running this on our registries.
First registry: only 17 repositories, 104 tags, 500k blobs due to frequent image rebuilding and tag creation/deletion (automatic tests):
840 blobs marked, 505651 blobs and 52 manifests eligible for deletion
GC mark phase: 45s
GC manifest removal phase 21s
GC blob scan phase 4h 21m 8s
GC blob removal phase 14h 42m 54s

Next GC run took less than one minute.
 How to run them again?

Is this not even being considered for merge?

Codecov Report

Merging #2644 into master will decrease coverage by 9.51%.
The diff coverage is 73.52%.

@@            Coverage Diff             @@
##           master    #2644      +/-   ##
==========================================
- Coverage    60.8%   51.28%   -9.52%
==========================================
  Files         129      129
  Lines       11901    11961      +60
==========================================
- Hits         7236     6134    -1102
- Misses       3764     5063    +1299
+ Partials      901      764     -137

Impacted Files
Coverage Δ

registry/storage/garbagecollect.go
71.64% <73.52%> (+4.07%)
:arrow_up:

registry/storage/driver/gcs/gcs.go
0.39% <0%> (-68.67%)
:arrow_down:

registry/storage/driver/oss/oss.go
0.56% <0%> (-56.91%)
:arrow_down:

registry/storage/driver/s3-goamz/s3.go
0.5% <0%> (-51.14%)
:arrow_down:

registry/storage/driver/s3-aws/s3.go
4.15% <0%> (-50.98%)
:arrow_down:

registry/client/transport/transport.go
69.69% <0%> (-9.1%)
: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 749f6af...764c69c. Read the comment docs.

@bartebor mind rebasing if you're still interestd. Otherwise feel free to close the PR.

Thanks @milosgajdos, I'm not interested in this issue anymore. Our  installations has been working for all these years with this PR merged and no data was lost :) Anyway, we are replacing distribution with quay due to increased requirements and I have no time to continue with this PR. If someone is interetsed, feel free to take over.


Warning is shown for types that implement IMessageBase

This warning is shown for types that implement IMessageBase and thus handle their own serialization. Presumably, those types should be ignored.
https://github.com/vis2k/Mirror/blob/f9ff44399ba42c3c7dbc4d4f2615ee4837aa6133/Assets/Mirror/Editor/Weaver/Readers.cs#L396

Here is an example class that triggers the warning:
public struct AbilityData : IMessageBase
    {
        public float PowerMultiplier { get; set; }
        public float Range { get; set; }
        public float ArmedTime { get; set; }
        public int WeaponDamage { get; set; }
        public Vector3 TargetPos { get; set; }
        public Vector3 Direction { get; set; }

        public void Deserialize(NetworkReader reader)
        {
            PowerMultiplier = reader.ReadSingle();
            Range = reader.ReadSingle();
            ArmedTime =  reader.ReadSingle();
            WeaponDamage = reader.ReadInt32();
            TargetPos = reader.ReadVector3();
            Direction = reader.ReadVector3();
        }

        public void Serialize(NetworkWriter writer)
        {
            writer.WriteSingle(PowerMultiplier);
            writer.WriteSingle(Range);
            writer.WriteSingle(ArmedTime);
            writer.WriteInt32(WeaponDamage);
            writer.WriteVector3(TargetPos);
            writer.WriteVector3(Direction);
        }
    }

If you use this as a message,  you should get no warning.
If you want to pass this as a parameter you get a warning. You must implement a custom writer/reader as described in #1047


Unable to disable diskaccess

Describe the bug
Unable to update manage disk with "AllowAll" property.
I can change this from Azure portal.
$ az disk show -g lablinux -n rhel9_DataDisk_0 --query "diskAccessId"
"/subscriptions/93b7ca88-d2cc-4381-97ec-f99f3a702495/resourceGroups/LABWIN/providers/Microsoft.Compute/diskAccesses/diskaccess2"
$ az disk update -g lablinux -n rhel9_DataDisk_0 --network-access-policy AllowAll
(ConflictingUserInput) Disk Access is only supported for disks with NetworkAccessPolicy AllowPrivate
Code: ConflictingUserInput
Message: Disk Access is only supported for disks with NetworkAccessPolicy AllowPrivate

Related command
$ az disk update -g lablinux -n rhel9_DataDisk_0 --network-access-policy AllowAll
Errors
$ az disk update -g lablinux -n rhel9_DataDisk_0 --network-access-policy AllowAll
(ConflictingUserInput) Disk Access is only supported for disks with NetworkAccessPolicy AllowPrivate
Code: ConflictingUserInput
Message: Disk Access is only supported for disks with NetworkAccessPolicy AllowPrivate
Issue script & Debug output
urllib3.connectionpool: Starting new HTTPS connection (1): management.azure.com:443
urllib3.connectionpool: https://management.azure.com:443 "PUT /subscriptions/93b7ca88-d2cc-4381-97ec-f99f3a702495/resourceGroups/lablinux/providers/Microsoft.Compute/disks/rhel9_DataDisk_0?api-version=2023-04-02 HTTP/1.1" 400 156
cli.azure.cli.core.sdk.policies: Response status: 400
cli.azure.cli.core.sdk.policies: Response headers:
cli.azure.cli.core.sdk.policies:     'Cache-Control': 'no-cache'
cli.azure.cli.core.sdk.policies:     'Pragma': 'no-cache'
cli.azure.cli.core.sdk.policies:     'Content-Length': '156'
cli.azure.cli.core.sdk.policies:     'Content-Type': 'application/json; charset=utf-8'
cli.azure.cli.core.sdk.policies:     'Expires': '-1'
cli.azure.cli.core.sdk.policies:     'x-ms-ratelimit-remaining-resource': 'Microsoft.Compute/CreateUpdateDisks3Min;2998,Microsoft.Compute/CreateUpdateDisks30Min;24997'
cli.azure.cli.core.sdk.policies:     'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
cli.azure.cli.core.sdk.policies:     'x-ms-served-by': 'daeafd9c-6b88-488d-b259-3c296af1eba2_133531330085316196'
cli.azure.cli.core.sdk.policies:     'x-ms-request-id': 'ae4c7861-03b5-4b36-9795-44fb0c1c3023'
cli.azure.cli.core.sdk.policies:     'x-ms-ratelimit-remaining-subscription-writes': '1199'
cli.azure.cli.core.sdk.policies:     'x-ms-correlation-request-id': 'd7dfa704-fb35-4f61-a51a-cc26f46b33e1'
cli.azure.cli.core.sdk.policies:     'x-ms-routing-request-id': 'JAPANEAST:20240306T051215Z:d7dfa704-fb35-4f61-a51a-cc26f46b33e1'
cli.azure.cli.core.sdk.policies:     'X-Content-Type-Options': 'nosniff'
cli.azure.cli.core.sdk.policies:     'X-Cache': 'CONFIG_NOCACHE'
cli.azure.cli.core.sdk.policies:     'X-MSEdge-Ref': 'Ref A: 9952A6592A0544A5B5F3A1EB8ED3C0A8 Ref B: TYO01EDGE1111 Ref C: 2024-03-06T05:12:15Z'
cli.azure.cli.core.sdk.policies:     'Date': 'Wed, 06 Mar 2024 05:12:15 GMT'
cli.azure.cli.core.sdk.policies: Response content:
cli.azure.cli.core.sdk.policies: {
"error": {
"code": "ConflictingUserInput",
"message": "Disk Access is only supported for disks with NetworkAccessPolicy AllowPrivate"
}
}
cli.azure.cli.core.azclierror: Traceback (most recent call last):
File "/usr/lib64/az/lib/python3.9/site-packages/knack/cli.py", line 233, in invoke
cmd_result = self.invocation.execute(args)
File "/usr/lib64/az/lib/python3.9/site-packages/azure/cli/core/commands/init.py", line 664, in execute
raise ex
File "/usr/lib64/az/lib/python3.9/site-packages/azure/cli/core/commands/init.py", line 731, in _run_jobs_serially
results.append(self._run_job(expanded_arg, cmd_copy))
File "/usr/lib64/az/lib/python3.9/site-packages/azure/cli/core/commands/init.py", line 701, in _run_job
result = cmd_copy(params)
File "/usr/lib64/az/lib/python3.9/site-packages/azure/cli/core/commands/init.py", line 334, in call
return self.handler(*args, **kwargs)
File "/usr/lib64/az/lib/python3.9/site-packages/azure/cli/core/commands/command_operation.py", line 242, in handler
result = cached_put(self.cmd, setter, setterargs[self.setter_arg_name],
File "/usr/lib64/az/lib/python3.9/site-packages/azure/cli/core/commands/init.py", line 453, in cached_put
return _put_operation()
File "/usr/lib64/az/lib/python3.9/site-packages/azure/cli/core/commands/init.py", line 447, in _put_operation
result = operation(**kwargs)
File "/usr/lib64/az/lib/python3.9/site-packages/azure/core/tracing/decorator.py", line 76, in wrapper_use_tracer
return func(*args, **kwargs)
File "/usr/lib64/az/lib/python3.9/site-packages/azure/mgmt/compute/v2023_04_02/operations/_operations.py", line 1454, in begin_create_or_update
raw_result = self._create_or_update_initial(
File "/usr/lib64/az/lib/python3.9/site-packages/azure/mgmt/compute/v2023_04_02/operations/_operations.py", line 1325, in _create_or_update_initial
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
azure.core.exceptions.HttpResponseError: (ConflictingUserInput) Disk Access is only supported for disks with NetworkAccessPolicy AllowPrivate
Code: ConflictingUserInput
Message: Disk Access is only supported for disks with NetworkAccessPolicy AllowPrivate
cli.azure.cli.core.azclierror: (ConflictingUserInput) Disk Access is only supported for disks with NetworkAccessPolicy AllowPrivate
Code: ConflictingUserInput
Message: Disk Access is only supported for disks with NetworkAccessPolicy AllowPrivate
az_command_data_logger: (ConflictingUserInput) Disk Access is only supported for disks with NetworkAccessPolicy AllowPrivate
Code: ConflictingUserInput
Message: Disk Access is only supported for disks with NetworkAccessPolicy AllowPrivate
cli.knack.cli: Event: Cli.PostExecute [<function AzCliLogging.deinit_cmd_metadata_logging at 0x7f8a42f99f70>]
az_command_data_logger: exit code: 1
cli.main: Command ran in 1.328 seconds (init: 0.089, invoke: 1.239)
telemetry.main: Begin splitting cli events and extra events, total events: 1
telemetry.client: Accumulated 0 events. Flush the clients.
telemetry.main: Finish splitting cli events and extra events, cli events: 1
telemetry.save: Save telemetry record of length 3968 in cache
telemetry.main: Begin creating telemetry upload process.
telemetry.process: Creating upload process: "/usr/bin/python3.9 /usr/lib/az/lib/python3.9/site-packages/azure/cli/telemetry/init.py /home/yurio/.azure"
telemetry.process: Return from creating process
telemetry.main: Finish creating telemetry upload process.
Expected behavior
Able to change disk access from private to public
Environment Summary
"azure-cli": "2.58.0",
"azure-cli-core": "2.58.0",
"azure-cli-telemetry": "1.1.0",
"extensions": {
"vm-repair": "1.0.0b1"
Additional context
No response

Thank you for opening this issue, we will look into it.

Hi @yuriwoof
does this issue only occur in the 2.58.0 version of CLI or also in the previous versions?

az disk update -g lablinux -n rhel9_DataDisk_0 --network-access-policy AllowAll

@yanzhudd
yes, this can be reproduced in 2.57.0 and 2.56.0 as well.

Hi @yuriwoof
To avoid the error "Message: Disk Access is only supported for disks with NetworkAccessPolicy AllowPrivate" when run the command:
$ az disk update -g lablinux -n rhel9_DataDisk_0 --network-access-policy AllowAll
you can run the command bellow:
az disk update --name  --resource-group  --set diskAccessId="null"  networkAccessPolicy=AllowAll  publicNetworkAccess=Enabled
This work for version:
[ ~ ]$ az --version
azure-cli                         2.61.0
core                              2.61.0
telemetry                          1.1.0
Extensions:
ai-examples                        0.2.5
ml                                2.26.0
ssh                                2.0.3
Dependencies:
msal                              1.28.0
azure-mgmt-resource               23.1.1
Python location '/usr/bin/python3.9'
Extensions directory '/home//.azure/cliextensions'
Extensions system directory '/usr/lib/python3.9/site-packages/azure-cli-extensions'
Python (Linux) 3.9.19 (main, Mar 28 2024, 18:56:59)
[GCC 11.2.0]
Legal docs and information: aka.ms/AzureCliLegal
Your CLI is up-to-date.
[ ~ ]$


Should include feeders on metameta, etc sheets instead of just meta sheets

Would have been useful for The Ministry meta this year: https://www.bookspace.world/puzzle/the-ministry/

Lol I actually was thinking of the endgame puzzle when I filed this as well: https://www.bookspace.world/puzzle/completing-the-story/solution/
I think we can maybe separate the feeder answers from the meta ones in the sheet with some blank rows (in case it's a metameta where the feeder answers are not useful, so that you can copy/paste only the meta answers)


Use ConfigureDelegate instead of Action

This fixes the open TODO replace all Action<IApplicationBuilder> eventually with this in ConfigureDelegate.cs. Since I'm trying to learn the codebase I thought I could give it a try.

I moved the ConfigureDelegate to the Abstractions project because the signature was used there as well. I thought this was ok because it is similar to e.g. RequestDelegate from the HttpAbstractions package.
I changed the namespace from Microsoft.AspNetCore.Hosting.Startup to Microsoft.AspNetCore.Hosting because that's the namespace of all other types in that package. This would be a small breaking change but it seems like ConfigureDelegate wasn't used so far. (I checked it on google with this query: "ConfigureDelegate site:github.com/aspnet")
I did not rename the existing ConfigureDelegate.cs file to ConfigureBuilder.cs because there is a separate pull request for this.
Some classes still need the namespace Microsoft.AspNetCore.Builder because some xml docs refer to it. I didn't want to update the comments because I'm not a native english speaker.

All in all, I'm not 100% sure that these delegate types are a good thing because you loose help from IntelliSense. Action<IApplicationBuilder> was very easy to understand and IntelliSense made clear how to use it and how many parameters there are. With ConfigureDelegate however (or other similar types like RequestDelegate), you might have to F12 into it to see the signature or do some trial & error.

Hi @cwe1ss, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;

All of the custom delegates should be gone actually.

So the ConfigureDelegate should be removed.

Ok, that's good news. I'll close this one.


Update to java client 0.30.1

@jpkrohling Can you try this PR - I think there is an issue with the jaeger-thrift (no-shadow) dependency being pulled in.
Try starting up the jaeger all-in-one in docker and then from the simple/accountmgr folder run:
mvn spring-boot:run -DJAEGER_SERVICE_NAME=myservice

I am getting the following dependencies:
[INFO] +- io.jaegertracing:jaeger-client:jar:0.30.1:compile
[INFO] |  +- io.jaegertracing:jaeger-thrift:jar:0.30.1:compile
[INFO] |  +- io.jaegertracing:jaeger-core:jar:0.30.1:compile
[INFO] |  |  +- io.opentracing:opentracing-api:jar:0.31.0:compile
[INFO] |  |  +- io.opentracing:opentracing-util:jar:0.31.0:compile
[INFO] |  |  +- com.google.code.gson:gson:jar:2.8.0:compile
[INFO] |  |  \- org.slf4j:slf4j-api:jar:1.7.25:compile
[INFO] |  +- io.jaegertracing:jaeger-thrift:jar:no-shadow:0.30.1:compile
[INFO] |  \- io.jaegertracing:jaeger-tracerresolver:jar:0.30.1:compile
[INFO] |     \- io.opentracing.contrib:opentracing-tracerresolver:jar:0.1.4:compile

notice the 'no-shadow' version as well as the no classifier version of jaeger-thrift. Resulting in class not found on the non-shaded classes. Something strange going on - can you see if you can reproduce?


add 'slowMode' parameter on function loadLpAddressMap

Hi,
When using your package I encountered a problem when calling loadLpAddressMap():
429 Too Many Requests
Maybe it's due to my blockfrost api key being the free tier or maybe it's because blockfrost recently changed its limits, I don't know.
Anyway I added an optional parameter to the loadLpAddressMap function which allow to run it in slowMode. The new parameters is false by default for backward compatibility
I changed the scripts/fetchLpAddressMap.js file to show the new capability.

Hi,
When using your package I encountered a problem when calling loadLpAddressMap(): 429 Too Many Requests
Maybe it's due to my blockfrost api key being the free tier or maybe it's because blockfrost recently changed its limits, I don't know.
Anyway I added an optional parameter to the loadLpAddressMap function which allow to run it in slowMode. The new parameters is false by default for backward compatibility
I changed the scripts/fetchLpAddressMap.js file to show the new capability.

Same issue for me, 429 Too Many Requests when running this script.

Based on your PR we implemented the suggested slowMode in similar fashion.
Thank you for your contribution.

Based on your PR we implemented the suggested slowMode in similar fashion.
Thank you for your contribution.

My pleasure guys


A3C error when use GPU

I tried use CPU and run A3C example code, everything works fun except cannot train.
When I switch to GPU,  error occurs.
[0418 11:07:05 @base.py:116] Setup callbacks graph ...
[0418 11:07:05 @base.py:187] Building predictor graph towerp0 on gpu=0 ...
Traceback (most recent call last):
File "train-atari.py", line 291, in
trainer(config).train()
File "/home/holly/anaconda2/envs/tensorflow/lib/python2.7/site-packages/tensorpack/train/base.py", line 93, in train
self.setup()
File "/home/holly/anaconda2/envs/tensorflow/lib/python2.7/site-packages/tensorpack/train/base.py", line 118, in setup
self._callbacks.setup_graph(weakref.proxy(self))
File "/home/holly/anaconda2/envs/tensorflow/lib/python2.7/site-packages/tensorpack/callbacks/base.py", line 44, in setup_graph
self._setup_graph()
File "/home/holly/anaconda2/envs/tensorflow/lib/python2.7/site-packages/tensorpack/callbacks/group.py", line 77, in _setup_graph
cb.setup_graph(self.trainer)
File "/home/holly/anaconda2/envs/tensorflow/lib/python2.7/site-packages/tensorpack/callbacks/base.py", line 44, in setup_graph
self._setup_graph()
File "train-atari.py", line 161, in _setup_graph
PREDICTOR_THREAD), batch_size=15)
File "/home/holly/anaconda2/envs/tensorflow/lib/python2.7/site-packages/tensorpack/utils/develop.py", line 29, in init
raise ImportError("Cannot import '{}', therefore '{}' is not available".format(dependency, klass))
ImportError: Cannot import 'tornado.concurrent', therefore 'MultiThreadAsyncPredictor' is not available
Segmentation fault (core dumped)

pip install tornado can solve the issue


CollectionJSON call to_json error

define representer:
    module JobRepresenter
      include Roar::Representer::JSON::CollectionJSON

      items(class: Job) do

        property :category
      end
    end

then call
[Job.first].extend(JobRepresenter).to_json

get error:
NoMethodError: undefined method `to_hash' for #<OpenStruct>
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/serializer.rb:24:in `block in serialize'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/binding.rb:122:in `evaluate_option'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/serializer.rb:23:in `serialize'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/serializer.rb:16:in `call'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/binding.rb:141:in `serialize'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/bindings/hash_bindings.rb:22:in `write'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/binding.rb:57:in `write_fragment_for'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/binding.rb:52:in `write_fragment'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/binding.rb:35:in `block in compile_fragment'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/binding.rb:122:in `evaluate_option'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/binding.rb:33:in `compile_fragment'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/mapper.rb:64:in `compile_fragment'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/mapper.rb:30:in `serialize_property'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/mapper.rb:22:in `block in serialize'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/mapper.rb:21:in `each'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/mapper.rb:21:in `serialize'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable.rb:39:in `create_representation_with'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/hash.rb:35:in `to_hash'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/representable-2.0.3/lib/representable/json.rb:34:in `to_json'
  from (irb):13
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/railties-4.1.4/lib/rails/commands/console.rb:90:in `start'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/railties-4.1.4/lib/rails/commands/console.rb:9:in `start'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:69:in `console'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
  from /Users/user_name/.rvm/gems/ruby-1.9.3-p547/gems/railties-4.1.4/lib/rails/commands.rb:17:in `<top (required)>'
  from bin/rails:4:in `require'

Sorry not pretty sure I should raise this to roar or representable.

I removed CollectionJSON as I don't have any feedback on usage. Sorry. :heart:


New package: OpenScopeProject.TrguiNG version 1.3.0

Checklist for Pull Requests

[ ] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.6 schema?

Note: <path> is the directory's name containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

@microsoft-github-policy-service agree

@wingetbot run

Since the PR ended up with a variety of labels, I'm re-running it in hopes of getting a more-clear response. Please forgive our various pipeline issues, and feel free to suggest improvements as an Issue.

Verify:

I couldn't find how to have the application display its version number.


Question types in editor not working

I have only one gambit defined:

However, it is not triggered by any WH question. I am looking at the debug console, and the question "What is this" is parsed as a WH question, so I guess that the fact the editor gambit is not working, might have to do with the way the editor creates the gambit.
Here's the debug log, just in case:
  engine:ws writing "3" +0ms
  engine:ws received "42["chat message","What is this?"]" +3s
  engine:socket packet +0ms
  socket.io-parser decoded 2["chat message","What is this?"] as {"type":2,"nsp":"/","data":["chat message","What is this?"]} +46s
  socket.io:socket got packet {"type":2,"nsp":"/","data":["chat message","What is this?"]} +47s
  socket.io:socket emitting event ["chat message","What is this?"] +2ms
  Script Message Recieved from 'testUser' +46s What is this?
  mquery findOne +46s users { id: 'testUser' } { fields: undefined }
  Message Creating message from: +46s What is this
  Message fullnames +240ms names []
  Message Fetch List +0ms
  Message fullnames +10ms nouns []
  Message Message +0ms { id: 'SfsTV6fv',
  facts:
   { conceptToList: [Function],
     findParentConcepts: [Function],
     create: [Function],
     db:
      { breadthFirst: [Function: breadthFirst],
        deepFirst: [Function: deepFirst] },
     createUserDB: [Function],
     createUserDBWithData: [Function],
     loadFile: [Function] },
  createdAt: Tue Jun 30 2015 20:49:18 GMT+0300 (EEST),
  raw: 'What is this',
  props: {},
  clean: 'What is this',
  dict: { words: [ [Object], [Object], [Object] ] },
  words: [ 'What', 'is', 'this' ],
  cwords: [ 'What', 'is', 'this' ],
  taggedWords:
   [ [ 'What', 'WP' ],
     [ 'is', 'VBZ' ],
     [ 'this', 'DT' ],
     pushUnique: [ [Function], [Function] ],
     chunk: [ [Function], [Function] ] ],
  lemWords: [ 'what', 'be', 'this' ],
  lemString: 'what be this',
  posString: 'WP VBZ DT',
  qtype: 'DESC:def',
  qSubType: 'WH',
  isQuestion: true,
  sentiment: 0,
  nouns: [],
  names: [],
  list: [],
  adjectives: [],
  adverbs: [],
  verbs: [ 'be' ],
  pnouns: [],
  pronouns: [],
  compareWords: [],
  numbers: [],
  compare: false,
  date: null,
  cNouns: [],
  numericExp: false,
  halfNumericExp: false,
  entities: [] }
  mquery find +542ms topics { system: { '$ne': true } } { fields: undefined }
  User getTopic +47s random
  GetReply Topics to check +47s [ '__pre__', 'random', '__post__' ]
  mquery findOne +8ms topics { name: '__pre__' } { fields: undefined }
  mquery findOne +1ms topics { name: 'random' } { fields: undefined }
  mquery find +1ms gambits { _id: { '$in': [ 5592d587d0bb9e081f3946d2 ] } } { fields: undefined }
  Topics FindMatch +47s random
  mquery findOne +4ms topics { name: 'random' } { fields: { gambits: 1 } }
  mquery find +1ms gambits { _id: { '$in': [ 5592d587d0bb9e081f3946d2 ] } } { fields: undefined }
  mquery find +1ms replies { _id: { '$in': [ 5592d5a3d0bb9e081f3946d3 ] } } { fields: undefined }
  Topics Try to match (clean)'What is this' against (?:.*?) ((?:.*?)) topic: random or prevMatch +5ms
  Topics Try to match (lemma)'what be this' against (?:.*?) ((?:.*?)) topic: random or prevMatch +0ms
  mquery findOne +3ms topics { name: '__post__' } { fields: undefined }
  Message Creating message from: +22ms
  Message Callback Early, empty msg +0ms
  User Updating History +15ms
  Script Update and Reply to user 'testUser' +585ms { replyId: undefined,
  createdAt: Tue Jun 30 2015 20:49:18 GMT+0300 (EEST),
  string: '',
  gambitId: undefined,
  topicName: undefined }
  mquery findOne +24ms topics { name: undefined } { fields: undefined }
null
  socket.io:client writing packet {"type":2,"data":["chat message",{"createdAt":"2015-06-30T17:49:18.330Z","string":""}],"nsp":"/"} +587ms
  socket.io-parser encoding packet {"type":2,"data":["chat message",{"createdAt":"2015-06-30T17:49:18.330Z","string":""}],"nsp":"/"} +590ms
  socket.io-parser encoded {"type":2,"data":["chat message",{"createdAt":"2015-06-30T17:49:18.330Z","string":""}],"nsp":"/"} as 2["chat message",{"createdAt":"2015-06-30T17:49:18.330Z","string":""}] +1ms

Some more thoughts:

The generic question gambit works.
This is related to a previous question I asked, regarding on how to enter answer types in the editor (for example ?:LOC:city)

Related to #17 and #18 somehow.


Feature Request: Add Support for Resumption after Failure

This is important for running on AWS Batch.  The current resumption support (in the last phase of training) requires manually specifying the checkpoint to resume from.  Because Batch uses the same command line when it resumes a job, the resumption supports needs to work without being given an explicit filename to resume from.

In progress


The location of user information is incorrect in menu

Bug report:

Expected behavior:

How to reproduce it:

resolved the bug


use more distinctive colors for small numbers of categories

Category maps with two categories should have 'opposite' colors instead of similar colors to highlight the difference. Right now if we have two categories, we get light blue and dark blue, which don't seem very different visually.
We should have similarly 'different' colors for each additional new category... should be something like:

two categories: red,blue
three: rgb,
four: rgbp
five: ...

ColorBrewer's pastels don't natural order like that, but these do but don't offer 11 categories like we currently offer.
cc @andrewbt @makella

Closing since this is being fixed in the new version of the editor. Thanks! :)


Update README.md

Added few more projects .

Description
Just added a few extra
Motivation and Context

It enables people to create more
How Has This Been Tested?
I have done it personally!

Types of changes

[x ] Content Update (change which fixes an issue or updates an already existing submission)
[x ] New Article (change which adds functionality)
[x ] Documentation change

Checklist:

[x] My code follows the code style of this project.
[ x] I have updated the documentation accordingly.
[ x] I have read the CONTRIBUTING document.
[x ] I have made checks to ensure URLs and other resources are valid

Please mark the videos like this: [Part 7: Streamlit for Data visualization(video)](https://www.youtube.com/watch?v=Klqn--Mu2pE)
And change "part" to "Part".


genesyscloud_architect_datatable

Team -
If we need to add new properties to the existing data table then we are seeing the full data table getting deleted and creating a new table in this Version 1.9.0  Hence DB ID of the data table breaks in other configurations.
In the earlier version if we add new properties to the existing data table the DB id remains the same.
Please have this corrected as before

Hi guys,
I think I understand what happened here.  Back in release notes 1.5, the ForceNew was added to the architect_datatables resource because the datatables API will return an error if there are records present in a table and you try to modify the data tables property by changing its type or deleting it.
The developer added the ForceNew attribute thinking in these situations you could just drop and recreate the table, not realizing that there was linkage in the architect flow.  I am going to revert ForceNew out of the resource and I am hoping to have it released sometime next week.
The implication of this is that if you are going to modify your data tables by removing a property or updating its type, you will need to remove the data table from the terraform state (e.g. terraform state rm <<resourcetype.resourcename>>) manually delete the data table records and then re-run your Terraform deploy with the new definitions.
The behavior is to what you see in a relational database table.  You can add columns, but you cant remove or delete a column if there is data present in the table.
Sorry for the inconvenience.  You can drop back to the old version of the provider to work around this until we get a new fix out.
Thanks,
John Carnell
Manager, Developer Engagement


Support cartographicDegrees in Position

Interestingly, PositionList supports it:
https://github.com/poliastro/czml3/blob/afe4b83e78c4c6968cee24e20fb441137253a081/src/czml3/properties.py#L713-L717
However, Position doesn't.

This includes adding CartographicDegreesValue apart from CartographicDegreesListValue:
https://github.com/poliastro/czml3/blob/afe4b83e78c4c6968cee24e20fb441137253a081/src/czml3/types.py#L280


Time Slots & Other Options Overwriting Existing Lineup

Basically I'd prefer the options were more inclusive, for example I would like to block shuffle, using an adjusted weight of shows which then has specific timeslots designated throughout the week. My only issue seems to be that most options tend to overwrite a lot of existing other tool options rather than working together.
Why can't balance affect the rate at which they appear in a block shuffle?
Why does adding a timeslot override the whole lineup rather than just inserting the required timeblocks over the specified timeframes I want to insert them in?
This is an awesome piece of software, but I just think the way the customizations are processed is a bit counter-intuitive.

They aren't options, they are transformations.
Once you use Time Slots, you probably don't need to worry about adjusting weights. You can adjust the weight by picking the shows for each time slot. If you want a balanced schedule, you pick the same amount of hours for each show.
Block Shuffle doesn't play well with other tools. To be honest I've never liked Block Shuffle, it was from before I modified the project and simply doesn't work when you don't have exactly the same number of episodes for each show. Instead what I used to use was: Tweak weights then Cyclic Shuffle.
I used to do that because tbh Random Slots know basically does everything I want. The "Slots" tools rewrite the whole schedule but they tend to have so many options that you usually don't need more than that. Although "Channel at night" and "Channel offline" do combine ok with random slots.
The only problem with Time and Random Slots is if you wanted to combined a timed setup with a random setup. I think the best option here would be to use Time Slots , but some of the slots are redirects to channels with random slots.
It is certainly not intuitive. But I don't think you can have both power and intuitiveness.


[Code health] Clean up GeometryConverter tests

Towards #929.
@scolsen PTAL?

Codecov Report

Merging #1176 (9a1991e) into master (20d819f) will increase coverage by 0.01%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #1176      +/-   ##
============================================
+ Coverage     28.88%   28.89%   +0.01%
  Complexity      838      838
============================================
  Files           301      301
  Lines          8309     8309
  Branches        364      364
============================================
+ Hits           2400     2401       +1
  Misses         5778     5778
+ Partials        131      130       -1

Impacted Files
Coverage Δ

.../persistence/remote/firestore/GeometryConverter.kt
83.33% <0.00%> (+5.55%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us.


Easier pip installation instructions

Pip supports installation directly from a git repo.
It will clone and install the package.
pip install git+https://github.com/cavalli1234/AdaLAM

Thank you @Dawars! This makes installation even simpler


Adjusting Highlight Color for Selected Items

What feature or improvement do you think would benefit Files?
I'm experiencing an issue with the visibility of selected items in the program, specifically when using the light theme. In the first image (photo 1), it's quite difficult to distinguish the selected item because the gray color is too light. I added a blue arrow to help identify the selected item (photo 2).
In the dark theme (photo 3), it's easier to identify the selected items, but I would like to have better visibility in the light theme as well. I looked through the theme settings but couldn't find any option to adjust or customize the color for selected items.
Is there a way to increase the contrast or customize the selection color? If not, could this be implemented in future updates to improve visibility in the light theme?
Images:
Photo 1: Light theme, selection hard to see.
Photo 2: Arrow added for better clarity.
Photo 3: Dark theme, selection easier to distinguish.
Thanks in advance for your help!

Requirements
Requirements:
Theme Customization Options: Introduce an option in the settings to allow users to customize the color for selected items, independent of the theme (light or dark).
Increase Contrast for Default Light Theme: Increase the contrast of the default selected item highlight in the light theme to make it more noticeable.
User-Defined Color Settings: Provide the ability to choose a custom color for selected items within both light and dark themes to cater to different visibility preferences.
Presets or Contrast Scaling: Implement presets or a contrast scaling feature that automatically adjusts the highlight color based on the theme or overall system preferences.
Files Version
<IP_ADDRESS>
Windows Version
10.0.22621.4169
Comments
No response

We have a new design for the grid layouts that includes a border. While we’re still polishing the details and haven’t implemented it yet, rest assured that the updated design will address your concerns about contrast.


Feature Request: SnakeCase and Lowercase label name

This might get political.  I'm wondering what people's thoughts are on:

lowercasing all labels names
snakeCasing all label names

If we want to do this, do we:

make it default
make it an option, default yes
make it an option, default no

i vote 2!

i vote 1. it seems to be a convention, and it is used for the metric name.

As aws supports tags e.g. "Environment" and "environment" - I am against it but I keep it open maybe a lot of other users want to see it then we can think of an solution.

We should be careful while changing names of the labels. This can affect both dashboards and alerts that users have already configured and in production.
If any change is done, my opinion is to make it optional, and at least for some versions not to do it by default so users can have some time to adapt their visualizations and alerts.

i vote 3 now!

Was merged and released :)


Different gateway and IP creates problem

Hi Martin,
I done repeater using your code to extend WiFi of my home router with details as Gateway IP: <IP_ADDRESS>, Subnet : <IP_ADDRESS>, DNS: <IP_ADDRESS>. In our IoT project, server is connected to router with reserved dynamic IP <IP_ADDRESS> and other nodes are connected with static IP assigned, say <IP_ADDRESS>. I am using repeater for one node (say static IP <IP_ADDRESS>), but my issue is when connecting this node to repeater, it provides network details as Gateway IP: <IP_ADDRESS>, Subnet : <IP_ADDRESS>, DNS: <IP_ADDRESS>, dynamic IP say <IP_ADDRESS>. so server cannot able to connect with <IP_ADDRESS> because repeater makes it as say <IP_ADDRESS>. how can make <IP_ADDRESS> same as <IP_ADDRESS>. How to route it.

Set a static IP for the repeater's STA interface:
set ip <IP_ADDRESS>
set <IP_ADDRESS>
set gw <IP_ADDRESS>

and a static DNS for your repeated network
set dns <IP_ADDRESS>

You might want to configure a static IP in the <IP_ADDRESS>/24 subnet for your node, let's say <IP_ADDRESS>.100 (default also for the first dynamic IP is the <IP_ADDRESS>, but a static IP avoids problems, when it get's another IP for some reason).
Now define a portmap for the node (example for port TCP 80)
portmap add TCP 80 <IP_ADDRESS> 80

Do this for any port you want to connect to.
Save this in the repeater's config.
Now you can reach your node's port 80 from the main network as <IP_ADDRESS>:80.

Thank you Martin. I followed your instructions. But unfortunately my problem doesn't get solved. Please see the illustration of my issue which I was discussed with you.

Then I changed the network of Repeater then I get as like below.

I didn't get communication between Server and Node. Connecting mobile phone/laptop to access internet through repeater is working well, only issue with my IoT project. What I can do to make communication between Server which is connected to Router and Node ESP which is connected to ESP-Repeater. Hoping to hear from you.

The lower config cannot work, because the REPEATER's subnet and the ROUTER's subnet must be different (the repeater is in fact a NAT ROUTER, i.e. it routes between different subnets).
The upper config in general is fine, but I don't unterstand the link between the ROUTER and the NODE(ESP). There no such direct connectivity. If you establish the
portmap add TCP 8080 <IP_ADDRESS> 80
on the REPEATER, you can reach the NODE's port 80 as 192.168.1.x at port 8080 (or whatever port you specify in the portmap statement, CAUTION the REPEATER has it's own port 80). x is the outside address of the router (probably 10?).

There is no need for connection between NODE(ESP) and Router when Repeater is used. I have given the route between Router and Node along with Repeater to show the difference of network details happening. My aim is to boost the connectivity between router and Node using repeater so that no direct connection will exist between the two later, only through repeater they will communicate. But Server is always connected to Router which can communicate with Node through Router-Repeater-Node path. Illustration updated below just for your information.

I'm looking for the same concept. I've IoT Devices At backyard, They host webserver to control/communicate with them.
And I'm running mosquitto MQTT broker in my computer (static IP <IP_ADDRESS>).
The issue : I can't reach devices by their IP.
Neither the node can reach my MQTT server.
Am I missing something ?

Update : I've used portmap as @martin-ger  suggested. Now I can reach nodes web-servers using 8080, 8081 .. external port, tied internally to respective node. (make sure you save dhcp so node IP doesn't change).


Added Minimal Working Example for a docker container

This PR adds an example of how to create a RESTful web service of nl4dv with fastapi which is wrapped in a docker image.

VERY minimal example. No error handling, no parameterization such as file selection etc.
works for me (TM)
added the example into an arbitrary directory. Maybe some other place would be better
uses nl4dv pip package, not the source distribution.

VERY minimal example. No error handling, no parameterization such as file selection etc.
works for me (TM)
added the example into an arbitrary directory. Maybe some other place would be better

Thanks, @helt, for your PR. Supporting a (docker) containerized version of NL4DV will be very helpful. I followed your documentation and it all works exactly as mentioned.
However, as you mentioned, we need to support parameterization, such as setting the dataset, dependency parser, and so on. I have already started making these changes in a local branch (checked out from your fork).
Should I push related changes to your fork (I might require write privileges) OR create a new branch within the base nl4dv repository?

Tell me what I need to change in order to make this PR mergable and lll happily commit. Alternatively, just continue on your branch and close this PR.

I need to speak with my team if we should have separate repositories in the organization like nl4dv-docker, nl4dv-examples to keep the source minimal.  So, to stop bothering you while we figure out what's best, I am closing this PR and will keep working on the local branch.
I will obviously attribute the eventual PR to you :).

Hey @helt, just wanted to update you that we have a docker image arpitnarechania/nl4dv that is also open-sourced and available in a new repository: nl4dv-docker.
Thank you for the idea as well as your initial contribution. I have retained FastAPI+Gunicorn for the web application but changed the base image in the Dockerfile to ubuntu to also add Java (for CoreNLP) et al.
Do check it out!


2.0 new dialogue is broken on Confluence based skin.

In new 2.0 and Matrix.  For any confluence based skin, select "Drama list" option would pop up tiny window for filters.  But whatever picked won't be execute  because OK button went out of bound and no matter blind remote clicks  won't exceute list command.
No ptoblem on Estuary skin though.

A temporary fix has been added 063ae740b0ca898bef6057116be981e093d404e7, which shows the dialog in estuary skin. Adapting the dialog to the current skin seems to be a bit difficult since different skins uses different naming in templates.

Tested on Confluence skin. The ok button is showed and can be select.  But return no results. 1.8.5 on Kodi18  works fine  so it's not server issue.

I can't reproduce the issue. Did you test with version 2.0.1? What is the steps you used to trigger the issue?
Repository updates regularly at 00:00 UTC+2 and might not have the latest version yet.

I tested with 2.0.1  and with these chains give relative results.
Drama list - Japanese Drama - Filter by Char   = Works OK
Drama list - Japanese Drama - Filter by Year   = Return no results.
Drama list - Japanese Drama - Filter by Genres  = Error Dialog Popup
Drama list - Japanese Drama - Filter by Status = Works OK
I mainly use Filter by year.  That's why I encountered no results.

There were some issue with the parser but it should be fixed now in 35c93cc7b10f96c90acf93c3f69df79d2694a338.


[FLINK-31776][runtime] Introduces LeaderElection interface

PR order:

https://github.com/apache/flink/pull/21742
https://github.com/apache/flink/pull/22379
https://github.com/apache/flink/pull/22422
https://github.com/apache/flink/pull/22380
=== this PR === FLINK-31776
https://github.com/apache/flink/pull/22390
https://github.com/apache/flink/pull/22404

What is the purpose of the change
This change introduces a new interface LeaderElectionService.LeaderElection which serves as a proxy between the LeaderContender and the LeaderElectionService. Future PRs will introduce a contender ID which can hidden in LeaderElection. That way, LeaderContender wouldn't be aware of this implementation detail of the DefaultLeaderElectionService
Brief change log

Moved confirmLeadership and hasLeadership(UUID) into new interface
LeaderContender registration moved out of LeaderElectionService.createLeaderElection(..) into LeaderElection.startLeaderElection
LeaderElection implements AutoCloseable to cover the deregistration of the LeaderContender from the LeaderElectionService
Introduced AbstractLeaderElectionService as a generic implementation of LeaderElectionService that deals with the LeaderElection lifecycle management and provdes helper methods

Verifying this change

Tests were updated and should still pass

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: yes
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

@flinkbot run azure

I addressed the comments... PTAL

Force-push rebased this PR onto #22623

Force-push rebased this PR back to upstream master after https://github.com/apache/flink/pull/22623 was merged

FYI: the CI failure happened due to FLINK-26635
I addressed the comments and rebased the follow-up PRs based on these changes.

Thanks, @zentol . I squashed the commits and rebased the PR to the most-recent master for a final CI run before merging.

Conflicts happened due to https://github.com/apache/flink/commit/d79f4c1d39c45ac8365fbddbe3ad7e53d42c8f41 and https://github.com/apache/flink/commit/c3409dcd0f77ef3343145ef1a05944a27f4f87ec. I rebased to the most-recent master and fixed the conflicts.
@reswqa just keep in mind that fixing legacy issues in leader election-related code slows down the FLINK-26522 efforts (due to possible code conflicts). Therefore, it might help to wait with things that are not really pressing issues until we're done with the PRs. Feel free to jump in and help reviewing these PRs. :-)

Therefore, it might help to wait with things that are not really pressing issues until we're done with the PRs.

Fair enough. When I tried to modify the code to remove some legacy ExternalResource, I somehow forgot that it would conflict with FLINK-26522. I'm sorry to have hindered your progress and thanks for the reminder. 🙇


docs(borealis): add nda blurb DOC-502

Adds banner to each existing borealis page
Creates a custom footer for borealis pages called footer-borealis.html that adds the footer blurb

1 is done the way it is because putting the whole alert in the include caused the text in the alert to be formatted as a code string. I couldn't figure out a way around it.
During my research, I did learn you can have a shortcode be the starting/only thing in an include if you start the include file with
---
---
<whatever shortcode>

🤷🏼

@aimeeu fixed 1 so that it uses a site param and automatically shows up on every page in the /borealis/ directory. Only the aurora install page has it added manually since that's in the /docs/ directory


Add support for building/removing POH items

Restrictions around building/removing POH items can be removed now that Jagex have updated their policies: https://secure.runescape.com/m=news/undead-pirates-tweaks-varlamore-cas--more?oldschool=1

This has been done already and will be included in the next release :-)
https://github.com/geheur/More-menu-entry-swaps/commit/f80341ffb5431d164fd9d78902eab4138da3c219

Hi! Does submenus for stuff like con capes, fishing capes, hunter capes will also be suported?

@loscil06 No. Jagex said it's only for specific items. Not jewellery. Not other capes.
The original issue topic is released in 2.5.2 or later.


Distros listed in random order

In list mode (ebox invoked without arguments) the distros are listed in random order because Readdirnames() does not guarantee a file name order.
Therefore sort the list of retrieved distro names before printing.

Fixed by 6c1449929fd47c18e5ca63ad800adb62701e6c48.


Safari iOS: Initial forms of kap, meek and noon not showing

Describe the bug
Initial forms of kap, meem, and noon not showing in iOS Safari.
To Reproduce
Steps to reproduce the behavior:

Go to mamlal.com
Look at the keyboard at the bottom

Expected behavior
The initial forms of kap, meem and noon should be seen given that the letters are prefixed with ZWJ.
Smartphone (please complete the following information):

OS: iOS
Browser: Safari, Chrome and Firefox
Version 15.3.1

This is present in WebKit based browsers as I can replicate it with GNOME Web.


hello

Hello, I read your code and paper, very interested, but when I run your code, I found a few files missing‘ algo.cfun ’，‘ algo.cod ’，‘ algo.stdqn ’Can you give me some information? Thank you very much and look forward to your reply

Thanks for your interest in our code. These missing files contain the implementation of our models "algo.cfun"  for CoRide,  "algo.cod" for COD (Cooperative Order Dispatching algorithm), “algo.kl" for KL,  "algo.stdqn" for  spatio-temporal DQN.
CFuN: CoRide: Joint Order Dispatching and Fleet Management for Multi-Scale Ride-Hailing Platforms
KL: Multi-Agent Reinforcement Learning for Order-dispatching via Order-Vehicle Distribution Matching
COD: Efficient Ridesharing Order Dispatching with Mean Field Multi-Agent Reinforcement Learning
STDQN: Deep Reinforcement Learning with Knowledge Transfer for Online Rides Order Dispatching
One can see that all these methods are developed with DiDI AI Labs. Due to the policy of company, we are not able to make these codes public without permission.

Thank you for your answer. Do you have relevant papers and codes for intensive learning vehicle scheduling and running? It is very difficult for me to reproduce this project, so please help me. If so, can you send it to me?
------------------ 原始邮件 ------------------
发件人:                                                                                "Jinjiarui/CoRide"                                                                                @.>;
发送时间: 2021年4月11日(星期天) 下午5:01
@.>;
<EMAIL_ADDRESS>主题: Re: [Jinjiarui/CoRide] hello (#2)
Thanks for your interest in our code. These missing files contain the implementation of our models "algo.cfun"  for CoRide,  "algo.cod" for COD (Cooperative Order Dispatching algorithm), “algo.kl" for KL,  "algo.stdqn" for  spatio-temporal DQN.
CFuN: CoRide: Joint Order Dispatching and Fleet Management for Multi-Scale Ride-Hailing Platforms
KL: Multi-Agent Reinforcement Learning for Order-dispatching via Order-Vehicle Distribution Matching
COD: Efficient Ridesharing Order Dispatching with Mean Field Multi-Agent Reinforcement Learning
STDQN: Deep Reinforcement Learning with Knowledge Transfer for Online Rides Order Dispatching
One can see that all these methods are developed with DiDI AI Labs. Due to the policy of company, we are not able to make these codes public without permission.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

For KL paper, it just modified on the traditional DQN methods, which is easy to reproduce. For COD, you can refer to its original paper MFRL (https://arxiv.org/pdf/1802.05438.pdf), . For CoRide, I have established the repository for the paper list of hierarchical RL (https://github.com/Jinjiarui/hrl-papers), and some of these papers have published their codes.

Thank you for your patience. If you can, can I give you a contact information?
------------------ 原始邮件 ------------------
发件人:                                                                                "Jinjiarui/CoRide"                                                                                @.>;
发送时间: 2021年4月13日(星期二) 中午11:53
@.>;
<EMAIL_ADDRESS>主题: Re: [Jinjiarui/CoRide] hello (#2)
For KL paper, it just modified on the traditional DQN methods, which is easy to reproduce. For COD, you can refer to its original paper MFRL (https://arxiv.org/pdf/1802.05438.pdf), . For CoRide, I have established the repository for the paper list of hierarchical RL (https://github.com/Jinjiarui/hrl-papers), and some of these papers have published their codes.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Now, can the code of these papers be open-sourced？
Efficient Ridesharing Order Dispatching with Mean Field Multi-Agent Reinforcement Learning?

Now, can the code of these papers be open-sourced？
Efficient Ridesharing Order Dispatching with Mean Field Multi-Agent Reinforcement Learning?

Now, can the code of these papers be open-sourced？
Efficient Ridesharing Order Dispatching with Mean Field Multi-Agent Reinforcement Learning?

Sorry for the delayed replay. We are not allowed to open-sourced the code of papers by Didi Chuxing due to the company policy. Instead, we will provide some examples of popular RL solutions on order dispatching tasks soon.

你们 什么时候提供在订单调度任务上流行的 RL 解决方案。

你们 什么时候提供在订单调度任务上流行的 RL 解决方案。

你们 什么时候提供在订单调度任务上流行的 RL 解决方案。

你们 什么时候提供在订单调度任务上流行的 RL 解决方案。

你们 什么时候提供在订单调度任务上流行的 RL 解决方案。

Sorry for the delayed feedbacks. We have released DQN method for order dispatching and fleet management tasks at https://github.com/Jinjiarui/CoRide/blob/main/algo/il/dqn.py

涉及多智能体方法的有吗
<EMAIL_ADDRESS>

涉及多智能体方法的有吗
<EMAIL_ADDRESS>

涉及多智能体方法的有吗
<EMAIL_ADDRESS>

例如这个 Efficient Ridesharing Order Dispatching with Mean Field Multi-Agent Reinforcement Learning

Sorry, we are not able to provide those algorithms developed in the collaborations with DiDi Chuxing, due to the policy of the company.

多久了，还不能公布，

We have released all the codes that we have permission to open-source.

Efficient Ridesharing Order Dispatching with
Mean Field Multi-Agent Reinforcement<EMAIL_ADDRESS>

We are not allowed to do that. Please contact the main authors of Efficient Ridesharing Order Dispatching with Mean Field Multi-Agent Reinforcement Learning for the code.