Pytorch Lightning hangs on AWS Sagemaker start_training::mp.spawn() if gpus>1 in Trainer()

🐛 Bug
Pytorch Lightning hangs on AWS Sagemaker start_training::mp.spawn() if gpus>1 in Trainer()
Reproduce
This, when running on AWS Sagemaker on a ml.p2.8xlarge instance. It's fine if I run it with gpus=1 in Trainer().
https://colab.research.google.com/drive/1T6TpBvtFt14UrvCwDgP3eIAzaz-Af_e9#scrollTo=B8NtpOmMC2sf
Expected behavior
It doesn't hang.

Traceback (most recent call last)
<ipython-input-11-2cc9b12f22ac> in <module>
      2 model = GAN(*dm.size())
      3 trainer = pl.Trainer(max_epochs=1, gpus=2)
----> 4 trainer.fit(model, dm)
      5 show_sample(model)

~/anaconda3/envs/pytorch_p36/lib/python3.6/site-packages/pytorch_lightning/trainer/trainer.py in fit(self, model, train_dataloader, val_dataloaders, datamodule)
    511
    512         # dispath `start_training` or `start_testing` or `start_predicting`
--> 513         self.dispatch()
    514
    515         # plugin will finalized fitting (e.g. ddp_spawn will load trained model)

~/anaconda3/envs/pytorch_p36/lib/python3.6/site-packages/pytorch_lightning/trainer/trainer.py in dispatch(self)
    551
    552         else:
--> 553             self.accelerator.start_training(self)
    554
    555     def train_or_test_or_predict(self):

~/anaconda3/envs/pytorch_p36/lib/python3.6/site-packages/pytorch_lightning/accelerators/accelerator.py in start_training(self, trainer)
     72
     73     def start_training(self, trainer):
---> 74         self.training_type_plugin.start_training(trainer)
     75
     76     def start_testing(self, trainer):

~/anaconda3/envs/pytorch_p36/lib/python3.6/site-packages/pytorch_lightning/plugins/training_type/ddp_spawn.py in start_training(self, trainer)
    104
    105     def start_training(self, trainer):
--> 106         mp.spawn(self.new_process, **self.mp_spawn_kwargs)
    107         # reset optimizers, since main process is never used for training and thus does not have a valid optim state
    108         trainer.optimizers = []

~/anaconda3/envs/pytorch_p36/lib/python3.6/site-packages/torch/multiprocessing/spawn.py in spawn(fn, args, nprocs, join, daemon)
    160             daemon=daemon,
    161         )
--> 162         process.start()
    163         error_queues.append(error_queue)
    164         processes.append(process)

~/anaconda3/envs/pytorch_p36/lib/python3.6/multiprocessing/process.py in start(self)
    103                'daemonic processes are not allowed to have children'
    104         _cleanup()
--> 105         self._popen = self._Popen(self)
    106         self._sentinel = self._popen.sentinel
    107         # Avoid a refcycle if the target function holds an indirect

~/anaconda3/envs/pytorch_p36/lib/python3.6/multiprocessing/context.py in _Popen(process_obj)
    282         def _Popen(process_obj):
    283             from .popen_spawn_posix import Popen
--> 284             return Popen(process_obj)
    285
    286     class ForkServerProcess(process.BaseProcess):

~/anaconda3/envs/pytorch_p36/lib/python3.6/multiprocessing/popen_spawn_posix.py in __init__(self, process_obj)
     30     def __init__(self, process_obj):
     31         self._fds = []
---> 32         super().__init__(process_obj)
     33
     34     def duplicate_for_child(self, fd):

~/anaconda3/envs/pytorch_p36/lib/python3.6/multiprocessing/popen_fork.py in __init__(self, process_obj)
     17         util._flush_std_streams()
     18         self.returncode = None
---> 19         self._launch(process_obj)
     20
     21     def duplicate_for_child(self, fd):

~/anaconda3/envs/pytorch_p36/lib/python3.6/multiprocessing/popen_spawn_posix.py in _launch(self, process_obj)
     60             self.sentinel = parent_r
     61             with open(parent_w, 'wb', closefd=False) as f:
---> 62                 f.write(fp.getbuffer())
     63         finally:
     64             if parent_r is not None:

Hi @mtrencseni-maf, when you are passing gpus > 1 and not passing anything to the accelerator argument, the default distributed mode is ddp_spawn, but it forces everything to be pickled. Whereas ddp is recommended for its efficiency and performance, but you would have to run it in a script. Recommended Read.

Dear @mtrencseni-maf,
Any updates ?
Best,
T.C

Hi @mtrencseni-maf,
I think I figured out your issue. Unfortunately, any ddp_ is not supported in jupyter notebooks. Please use dp for multiple GPUs in jupyter. This is a known Jupyter issue. Or I would recommend running your code as a script with ddp or other supported accelerators.
Thank you! Let me know if you have any more questions.


bad indentation in docstring of AverageTFR.plot()

Two of the versionadded admonitions are indented when they shouldn't be.

I'm happy to work on this.

Resolved in https://github.com/mne-tools/mne-python/pull/11069.


NumberFilter incorrectly filters on endswith/iendswith

e.g. Number = 10.
Endswith Filter = '00'
10 is still shown
Even if multiple 0s are shown it's still including
This might be because the default filter is a number filter and 000 might be reduced to 0.
Maybe it should fallback to a string filter?
The original Number filter behaves in the same way.

If we change the Type of the Filter we will probably loose input filed warnings e.g. i.e allowing to enter characters which would not be desirable.

Accept this behaviour now as a limitation and identical to django-filter


Add GroupByCount to Crashes API

:tada: This issue has been resolved in version 1.1.5 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 1.1.6 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Explore out why errors that happen during script initialization are not shown usefully in the web inspector

I ran into this error every time I included a library that referenced window (which doesn’t exist in the worker). Catching and helping with those errors in dev would be great. But might have issues reading the error because the script is a different origin...

This is an implementation-specific concern, not something the library can directly help with.


Replace eval with getattr

CC: @jojolebarjos

Replace "eval" might cause issues when you are not using Linear-Lora, for example when using the inherited Multihead Class.

Hi @PoopBear1,
thanks for the heads-up. I remember using the MHA without issue, though it has admittedly been a while. DId you run into any troubles?


Address Rust String Null Byte Handling

          Just a note that rust strings can freely contain null bytes. `"foo\0bar"` is allowed in rust and will have a lenght of 7. So in rust adding a null byte you might still end up with a prefixed string.

Maybe instead of a null byte you could add something like 0b10111111? All rust strings are valid UTF-8 and a UTF-8 character can never begin with a 10 bit pattern as this the start pattern of a continuation byte. So for rust strings this would ensure that no byte slice derived from a string is a prefix of another.
Originally posted by @DelSkayn in https://github.com/surrealdb/surrealkv/pull/5#discussion_r1418889836

Fixed in https://github.com/surrealdb/vart/pull/69


Helm Chart installation on AWS EKS: Unable to attach or mount volumes

I installed DevLake using Helm chart on my AWS EKS cluster. Used previous instructions from ticket:
https://github.com/apache/incubator-devlake-helm-chart/issues/87 but, without success. Still not working.
Helm values.yaml looks like:
replicaCount: 1
imageTag: v0.16.0-beta17

mysql:
  useExternal: false
  externalServer: <IP_ADDRESS>
  externalPort: 3306
  username: merico
  password: merico
  database: lake
  rootPassword: admin
  storage:
    class: "gp2"
    size: 50Gi

  image:
    repository: mysql
    tag: 8
    pullPolicy: IfNotPresent

  resources: {}

  nodeSelector: {}
  tolerations: []

  affinity: {}

grafana:
  image:
    repository: apache/devlake-dashboard
    pullPolicy: Always

  useExternal: false

  externalUrl: ''

  resources: {}

  nodeSelector: {}

  tolerations: []

  affinity: {}

lake:
  image:
    repository: apache/devlake
    pullPolicy: Always
  storage:
    class: "gp2"
    size: 100Mi
  dotenv:
    API_TIMEOUT: "120s"
    API_RETRY: "3"
    API_REQUESTS_PER_HOUR: "10000"
    PIPELINE_MAX_PARALLEL: "1"
    IN_SECURE_SKIP_VERIFY: "false"

  hostNetwork: false

  resources: {}

  nodeSelector: {}

  tolerations: []

  affinity: {}

  loggingDir: "/app/logs"
  loggingLevel: "info"

ui:
  image:
    repository: apache/devlake-config-ui
    pullPolicy: Always

  resources: {}

  nodeSelector: {}

  tolerations: []

  affinity: {}

  basicAuth:
    enabled: false
    user: admin
    password: admin
    useSecret: false
    autoCreateSecret: true
    secretName: devlake-auth

alpine:
  image:
    repository: alpine
    tag: 3.16
    pullPolicy: IfNotPresent

service:
  type: NodePort
  uiPort: 32001
  grafanaPort : 32002

ingress:
  enabled: true
  enableHttps: false
  className: "alb"
  prefix: /
  tlsSecretName: ""
  httpPort: 80
  httpsPort: 443
  useDefaultNginx: false
  annotations:
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip

option:
  localtime: /etc/localtime

  database: mysql

  useConnectionDetailsSecret: false

  connectionSecretName: devlake-db-connection

  autoCreateSecret: true

I get multiple errors like:
Unable to attach or mount volumes: unmounted volumes=[devlake-lake-config], unattached volumes=[devlake-lake-localtime kube-api-access-r7dgn devlake-lake-config]: timed out waiting for the condition

Unable to attach or mount volumes: unmounted volumes=[devlake-lake-config], unattached volumes=[kube-api-access-r7dgn devlake-lake-config devlake-lake-localtime]: timed out waiting for the condition

Unable to attach or mount volumes: unmounted volumes=[devlake-lake-config], unattached volumes=[devlake-lake-config devlake-lake-localtime kube-api-access-r7dgn]: timed out waiting for the condition

AttachVolume.Attach failed for volume "pvc-09b75f09-f0e4-4700-b42c-e9f901a13bf2" : volume attachment is being deleted

MountVolume.WaitForAttach failed for volume "pvc-09b75f09-f0e4-4700-b42c-e9f901a13bf2" : volume attachment is being deleted

Also tried to set storage class to empty (default) and same behaviour. Any idea?

@IronCore864 @JorgeGar would  you mind take a look at this?

@DarkoDevops can you run kubectl get/describe pv/pvc and see what you can get from the output?
A wild guess: do you have the aws-ebs-csi-driver addon enabled in your EKS?

@IronCore864 I will run it and post it.
Yes, I have aws-ebs-csi-driver addon.

pv/pvc describe:
pvc-09b75f09-f0e4-4700-b42c-e9f901a13bf2   1Gi        RWO            Delete           Bound    default/devlake-lake-config-devlake-lake-0   gp2                     65d
pvc-16438fe5-4163-441b-be46-2a9d8920b99f   50Gi       RWO            Delete           Bound    default/devlake-mysql-data-devlake-mysql-0   gp2                     65d

Name:              pvc-09b75f09-f0e4-4700-b42c-e9f901a13bf2
Labels:            topology.kubernetes.io/region=eu-central-1
                   topology.kubernetes.io/zone=eu-central-1a
Annotations:       kubernetes.io/createdby: aws-ebs-dynamic-provisioner
                   pv.kubernetes.io/bound-by-controller: yes
                   pv.kubernetes.io/migrated-to: ebs.csi.aws.com
                   pv.kubernetes.io/provisioned-by: kubernetes.io/aws-ebs
Finalizers:        [kubernetes.io/pv-protection external-attacher/ebs-csi-aws-com]
StorageClass:      gp2
Status:            Bound
Claim:             default/devlake-lake-config-devlake-lake-0
Reclaim Policy:    Delete
Access Modes:      RWO
VolumeMode:        Filesystem
Capacity:          1Gi
Node Affinity:
  Required Terms:
    Term 0:        topology.kubernetes.io/zone in [eu-central-1a]
                   topology.kubernetes.io/region in [eu-central-1]
Message:
Source:
    Type:       AWSElasticBlockStore (a Persistent Disk resource in AWS)
    VolumeID:   aws://eu-central-1a/vol-0b203af215cc352d9
    FSType:     ext4
    Partition:  0
    ReadOnly:   false
Events:         <none>

Name:              pvc-16438fe5-4163-441b-be46-2a9d8920b99f
Labels:            topology.kubernetes.io/region=eu-central-1
                   topology.kubernetes.io/zone=eu-central-1b
Annotations:       kubernetes.io/createdby: aws-ebs-dynamic-provisioner
                   pv.kubernetes.io/bound-by-controller: yes
                   pv.kubernetes.io/migrated-to: ebs.csi.aws.com
                   pv.kubernetes.io/provisioned-by: kubernetes.io/aws-ebs
Finalizers:        [kubernetes.io/pv-protection external-attacher/ebs-csi-aws-com]
StorageClass:      gp2
Status:            Bound
Claim:             default/devlake-mysql-data-devlake-mysql-0
Reclaim Policy:    Delete
Access Modes:      RWO
VolumeMode:        Filesystem
Capacity:          50Gi
Node Affinity:
  Required Terms:
    Term 0:        topology.kubernetes.io/zone in [eu-central-1b]
                   topology.kubernetes.io/region in [eu-central-1]
Message:
Source:
    Type:       AWSElasticBlockStore (a Persistent Disk resource in AWS)
    VolumeID:   aws://eu-central-1b/vol-07a37b8cc48ea301f
    FSType:     ext4
    Partition:  0
    ReadOnly:   false
Events:         <none>

I'm running similar values without any issues. I have mysql in an external database, but that's not the one giving you issues, as per what I see in your comment @DarkoDevops. The key difference I guess is that I have aws ebs csi driver installed in the cluster, rather than it being an add-on. Could you try and get logs from it?
Also, which EKS version are you using?

@JorgeGar
It's 1.25
It's installed, in cluster, also, added policy, not the add-on.

@JorgeGar It's 1.25
It's installed, in cluster, also, added policy, not the add-on.

Have you checked the logs of the attacher?

This is what I have of the pods for ebs:
ebs-csi-controller-78bdbf98ff-574px   5/5     Running   0            2d5h
ebs-csi-controller-78bdbf98ff-hwktx   5/5     Running   2 (8d ago)   8d
ebs-csi-node-46nh7                    3/3     Running   0            8d
ebs-csi-node-dthdq                    3/3     Running   0            2d5h
ebs-csi-node-fpz98                    3/3     Running   0            8d

Honestly, at this point, I'm following the troubleshooting page from AWS, but...
On the ebs-csi-controller, you should see a container called "csi-attacher". Try getting logs from there.

Seeing the same issue with imageTag: v0.17.0-beta5
containers have errors like:
MountVolume.SetUp failed for volume "devlake-mysql-localtime" : hostPath type check failed: /etc/localtime is not a file


rename "topology master" to "topology manager"

Howdy! I'm relatively new to Heron, and it seems like a wonderful product. Thanks for all your hard work in developing it!
As a newbie I've been reading through the documentation. One thing caught my eye: the term "topology master". Other components don't use the same word. For example, there are the "metrics manager", "stream manager", and "zoo keeper".
This PR is an attempt to change most occurrences of "master" and "slave" to a different term such as "manager", "primary", "server", "secondary", and so on.  I didn't change every occurrence; for example there are some dependencies on outside projects that use those terms:

Mesos master/slave in /vagrant, schedulers-mesos-local-mac.md, and MesosFrameworkTest.java
YARN Application Master in documentation and:

HeronMasterDriver
heron/schedulers/tests/java/org/apache/heron/scheduler/yarn
heron/schedulers/src/java/org/apache/heron/scheduler/yarn
heron/config/src/yaml/conf/yarn/scheduler.yaml

storm-compatibility and "master" node of Nimbus

Last, there is the "master" branch in use in this repo and many others.
The edits in this PR have the potential to credit merge conflicts in other open PRs.  I checked all open PRs from 2019 and 2020.  Only five would have conflicts, and hopefully they will be easy to resolve:

[ ] #3227 line 69 in RoundRobinPackingV2.java
[ ] #3561 changes to /vagrant
[x] #3584 many new uses of master/slave in heron/tools/admin/src/python/main.py (moot because #3585 was merged)
[x] #3585 conflicts only in deletions of changes here
[x] #3602 a handful of conflicts in use of tmaster

There is one remaning TODO:

[ ] website2/docs/assets/tmanager.png.  Does anyone have the SVG source for this image (to make an edit easier)?

I tried to break the edits into more digestible bites by splitting commits among subdirectories.  Hopefully this will make reviewing easier.
Some important questions:

[ ] did I miss anything?
[ ] did I break anything?
[ ] do any external libraries rely on the use of tmaster or any such variables?

I haven't done testing yet as the edits here took me much longer than I originally anticipated.  However, I will try my best to do so over the next few days.

Hi @armadillojim thanks for the PR.
For the open PRs, I am testing them to see if we can merge them soon.
For website2/docs/assets/tmanager.png, guess @kramasamy has the source. If not, we may redraw it.
Could you try to fix the Travis CI in this PR?

@armadillojim I've created a branch with fixes to clean up the Travis CI syntax checks. I wasn't able to create a PR for you to pull back into your repo, but hopefully this helps. https://github.com/apache/incubator-heron/tree/armadillojim-master-fix

@huijunwu Thanks.  I fixed the conflicts from #3602 and #3626 that were merged a few days ago.  I also managed to get the CI up and running locally, and fixed all the linting errors.
@nicknezis Thanks.  I don't see any additional commits in that branch, though, so I went ahead and fixed them here.

@armadillojim thank you for the contribution. I apologize for the delay in getting in on this PR..  You can enable or disable style checks on your local without travis if you list a --config parameter in your bazel command.
So for mac it would be
with styles
bazel build --config=darwin path/to/some/target
without styles
bazel build --config=darwin_nostyle path/to/some/target
So for ubuntu it would be
with styles
bazel build --config=ubuntu path/to/some/target
without styles
bazel build --config=ubuntu_nostyle path/to/some/target
So for debian it would be
with styles
bazel build --config=debian path/to/some/target
without styles
bazel build --config=debian_nostyle path/to/some/target
Our bazel configuration is here

@joshfischer1108 Thanks for the tip!  I think, though, that I've made all the edits necessary to pass the complete set of checks.  I've also made commits to keep up with yesterday's merges.  Are things OK to go now?  Looks like @nicknezis approved the changes.

@armadillojim Looks good to me (a lot of changes tho).  I think we should let this sit for another day to see if anyone else has any concerns.   @Code0x58 @huijunwu @nwangtw @windhamwong any concerns from you all?

looks good to me


'base' conda environment is NOT automatically activated

README's quick start says

The 'base' conda environment is automatically activated when the image is running.
$ docker build --quiet --tag my_app .
sha256:b04d00cd5e7ab14f97217c24bc89f035db33a8d339bfb9857698d9390bc66cf8
$ docker run -it --rm my_app python --version
3.9.1

It didn't work for me
$ uname -srv
Linux 5.16.14-1-MANJARO #1 SMP PREEMPT Fri Mar 11 14:12:18 UTC 2022
$ docker inspect mambaorg/micromamba | head
[
    {
        "Id": "sha256:427a8101b7ffa7b1d91458a4ed9d525902b76a4ed0fbcc5e22d2af530dba1c29",
        "RepoTags": [
            "mambaorg/micromamba:latest"
        ],
        "RepoDigests": [
            "mambaorg/micromamba@sha256:8e6826b7efc8af8f1685ba648ecf482af6399db3370f4121e6831758fc836263"
        ],
        "Parent": "",
$ docker run -it --rm mambaorg/micromamba python --version
/usr/local/bin/_entrypoint.sh: line 24: exec: python: not found

Is the README out of date or did I misunderstood the README?
Extra
I noticed this for the first time when using GitLab CI. I have a minimal working example at https://gitlab.com/raniere-phd/micromamba-docker-mwe/-/jobs/3006027743.

Hi @rgaiacs.  The example in the README.md is supposed to show that an image derived frommambaorg/micromamba, with the python conda package added in, is able to run python from the base environment. The mambaorg/micromamba image does not come with python. Unlike conda (and mamba), micromamba does not have a python dependency.

In PR #209, I attempted to make this more clear within the Quick Start section.

@wholtz Thanks for the clarification and valuable Docker image.


Pressing ESC on password dialog uses blank password to encrypt/decrypt

Instead, the action should be cancelled.

Fixed in 1.3.0


Node-sass expecting libsass binding at wrong location (linux-x64-11 vs linux-x64-14)

When trying to run node-sass I get the following error:
[path redacted]/node_modules/node-sass/lib/extensions.js:148
    throw new Error(['`libsass` bindings not found in ', binaryPath, '. Try re
          ^
Error: `libsass` bindings not found in [path redacted]/node_modules/node-sass/vendor/linux-x64-14/binding.node. Try reinstalling `node-sass`?
    at Object.sass.getBinaryPath ([path redacted]/node_modules/node-sass/lib/extensions.js:148:11)
    at Object.<anonymous> ([path redacted]/node_modules/node-sass/lib/index.js:16:36)
    at Module._compile (module.js:460:26)
    at Module._extensions..js (module.js:478:10)
    at Object.require.extensions.(anonymous function) [as .js] ([path redacted]/node_modules/babel/node_modules/babel-core/lib/babel/api/register/node.js:133:7)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> ([path redacted]/node_modules/node-sass-middleware/middleware.js:3:12)

However, by rerunning npm install, I get the following output:
><EMAIL_ADDRESS>install [path redacted]/node_modules/node-sass
> node scripts/install.js

><EMAIL_ADDRESS>postinstall [path redacted]/node_modules/node-sass
> node scripts/build.js

` [path redacted]/node_modules/node-sass/vendor/linux-x64-11/binding.node ` exists.
 testing binary.
Binary is fine; exiting.

Note that the 4th line from the error, and 3rd last line from NPM contain almost exactly the same path, except for the former contains linux-x64-14, while the latter contains linux-x64-11. I'm guessing these refer to different C++ versions, but for some reason my system seems to be installing the '11' version even though node-sass is expecting the '14' version.
System is CentOS 6 if that helps. The exact same code works fine on my mac.

Upon further investigation, this issue is consistently reproducible on my system with node v0.12.0, but does not occur with node v0.10.8. Modules installed with NPM v2.5.1. Although I'm not sure how relevant that will be seeing as the same installed module works under node 0.10.

Ah, it turns out this was caused by inadvertently running npm install using node 0.10, followed by trying to run the app using node 0.12. Fixed by ensuring that npm runs using 0.12.

you can run "npm install" (or "your-version-of-node -f script/install.js") as many times as you wish and put multiple binary files under vendor to cover different node (or io.js) engine versions.
node-sass will not automatically download anything when invoked, only during installation.

Note for users of the npm package 'n': I got this problem when I started using 'n' on ubuntu 14.04 because the 'n' version of node was installed in /usr/local/bin/node and was preferred by bash, but npm picked up /usr/bin/node which was the ubuntu-installed version of node.  Simply removing the offending binary (you may wish to rename it in case you want to restore it later) fixed the issue for me.
I'm also reminding myself if I come here via google again since I've had this issue three times now in three separate environments and every time causes about an hour of head-scratching.


Add support for filtering by source/wildcard/level to debug and console

We want to have a simple experience for using an IConfiguration to setup various log levels for various log sources.
Straw man:
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
    loggerFactory
        .AddConsole(Configuration.Get<ConsoleLoggerOptions>("logging"))
        .AddDebug(Configuration.Get<ConsoleLoggerOptions>("logging"));
}

Once this is done, it needs to go into the template with some reasonable defaults for all of the framework components we include in the template.

@rynowak Do we want this in V1, or is this a post V1?

We added the support for this to Console logger. IMO we can live without it for debug logger for now.
The remaining work here is to make sure the template is in good shape. We tried to ship this in the template in rc1, but ran into blocking bugs and reverted the change.

@rustd Is the template work re: console logger tracked in TFS or GitHub?

Template work is GitHub. If there are any tooling changes required then it is TFS

@rustd Please file a ticket on templates repo if you'd like to have these in the templates in RC2.


Heatzy

Hello,
I can't control the Heatzy built in schedule mode through this module.
I though it was possible to turn it on or off heater by heater and then manually manually manage the mode of the header.
But I don't find this option. In Jeedom, I found it works at least for V2 Heatzy  heater controls.
Did i miss something ?
Thanks

Please use beta version 5.8.1

Thank you for your prompt feedback and action.
I gave it a try and as expected, based on a chat with Heatzy support, the auto mode only works with V2 version of the heatzy module through their API.
V1 can't be controlled in auto mode using their API I was told.
Based on this statement, i can tell your beta version is working as regards as the auto mode (only works with my V2 module not the V1 - expected behavior).
I noticed tough a problem when using the OFF mode.
The OFF mode does not work anymore with the beta version with my V1 modules while it perfectly works with the stable version 5.7.2.
thanks

Please test 5.8.2 (fix for v1)

Please test with  5.9.0

Thanks a lot. As far as I can tell this issue is fixed. You can close this issue.


Updater concept to reduce boilerplate

Implementation of a new  Updater concept for ElectricalConnectionPermittedValueSetListDataType so that other model classes can be integrated easier.
Furthermore

Update with selectors
Update without indentifiers

are now supported.

Looks good. Thanks!


Adds a GDExtension interface for VideoStream. Adds webm.

Use for fixing cicd.
Allows external plugins to extend VideoStream with custom codecs using GDExtension
Handle the case when the player looks away from the viewer and restores it on view.
Restore, and add seeking in webm.
Co-Authored-By: John-gdi<EMAIL_ADDRESS>Support application focus in on video player.

Pausing work on this due to complexity in the build system and making them all pass cicd.


Add "about" item in menu

I would like to work on this issue.

@benjaminvar all yours

Thanks.

Done.


Update FAQ to remove references to legacy code

About this pull request
auto-register and auto-delete were removed. This PR updates the FAQ to reflect this
Changes
Updated Add a slash command on Discord's example to use sync_commands not auto_register
Updated How to delete slash commands? to remove references to auto_delete
Checklist

[ ] I've checked this pull request runs on Python 3.6.X.
[ ] This fixes something in Issues.

Issue:

[ ] This adds something new.
[ ] There is/are breaking change(s).
[x] (If required) Relavent documentation has been updated/added.
[x] This is not a code change. (README, docs, etc.)

Pending merge of this PR from eunwoo, will add this to the new docs that are under works of being re-designed.

Merging this pull request, thank you for contributing!


MRG, MAINT: Add ignore_namespaces to mne.utils.warn

Allow downstream modules (e.g., mne-bids, mne-connectivity, etc.) to do this:
<in mne_bids.utils>

def warn(msg, category=RuntimeWarning):
    from mne.utils import warn as _warn
    return _warn(msg, category, module='mne_bids',
                 ignore_namespaces=('mne', 'mne_bids')

Then when they use mne_bids.utils.warn(...) with functions that have a verbose decorator, the magical stacklevel traversal and verbose-conditional warning emission will work properly. Overhead at the MNE-Python end is minimal because our default ignore_namespaces=('mne',) will evaluate in the list comprehensions in negligible time.
@alexrockhill it would be great if you could test your MNE-BIDS PR in conjunction with this. In the meantime you'll probably need to vendor this version of the function in the case where 'ignore_namespaces' not in mne.fixes._get_args(mne.utils.warn) (which will be true until this PR is merged, etc.).
No latest.inc update needed I think since this is an internal maintainability change.

thx @larsoner


Replace sha.js library with crypto-js SHA265 library

Describe the solution you'd like
Currently we use sha.js and crypto-js/SHA265 for hashing. We should replace all sha.js usages with the crypto-js hashing lib.

Can do

Found sha-js being used in getHash()
But I can't find getHash is being used in the codebase anywhere? Am I missing something or can this just be removed?

remove it. :)
I remember that in the beginning I struggled with the SHA thing, so maybe that's a leftover...


XenServer/XCP-ng hosts allow LAN port customization

XenServer/XCP-ng defaults new VMs to use the first LAN port on the host machine by default.  @marcusbooyah's home machine has a bad first port so he's connected to the network via another port and cluster VMs don't have network connectivity.
We probably need a way to specify which host LAN port the VMs will use in the cluster definition.

You can list the networks using the xe network-list command.
Looks like unless the names are changed by the user, the name-label will be some default that doesn't reflect the actual 'name' that the user may specify.
Below I renamed NIC 0 to "Network 0", the others have a default name "Pool-wide network associated with ethx", even though their name in XCP-ng Center is "Network x" (which I assume will be what the user will specify).
Example:

[16:52 xcp-ng ~]# xe network-list
uuid ( RO)                : edbd017c-5934-d552-8027-609c9b348095
name-label ( RW): Pool-wide network associated with eth3
name-description ( RW):
bridge ( RO): xenbr3
uuid ( RO)                : a9048cbf-5a1b-4bad-273e-b3792234d555
name-label ( RW): Pool-wide network associated with eth1
name-description ( RW):
bridge ( RO): xenbr1
uuid ( RO)                : 91d724ab-52f5-369f-2cb4-684d41e6d9b9
name-label ( RW): Network 0
name-description ( RW):
bridge ( RO): xenbr0
uuid ( RO)                : 8e20b964-da9c-d64d-ea9e-63a2c899283a
name-label ( RW): Host internal management network
name-description ( RW): Network on which guests will be assigned a private link-local IP address which can be used to talk XenAPI
bridge ( RO): xenapi
uuid ( RO)                : 5444f1a9-d50c-ff2a-db4e-72167671861a
name-label ( RW): Pool-wide network associated with eth2
name-description ( RW):
bridge ( RO): xenbr2

@marcusbooyah: So this is a XenServer/XCP-ng configuration thing:
https://docs.citrix.com/en-us/xencenter/7-1/hosts-nics.html
https://www.practicalxenserver.org/tutorials/scenario-2/tutorial-2/part-2/
You need to configure all of the physical NICs into a single active-active bonded NIC.  This will cause the host to load balance all network traffic for the VMs as well as the host itself across the physical NICs and traffic will be automatically routed through the remaining good NICs when any NIC fails.
We should probably configure our production XCP-ng hosts with bonded NICs.  This would be useful even if we don't connect all NICs to the switch because if we lost a NIC, we could simply plug in to another port without having to do any configuration.
NOTE: I had to reboot XCP-ng after creating the bonded NIC to get this to work.
I tried this on my home box by creating the bonded NIC, moving the network cable to the second physical NIC and it worked OK.
This is something we'll want to document as a neonKUBE best practice.  I've created an issue to start tracking these doc issues: #886


All Jobs need to inherit from ApplicationJob

Summary
Discovered this in Test Coverage. app/jobs/application_job.rb has 0% test coverage but should be :100:. No jobs are inheriting from it.
All jobs should inherit from ApplicationJob
Things to Consider
Syntax looks this:
app/jobs/foo_iob.rb should go from
class FooJob
# ...
end

to
class FooJob < ApplicationJob
# ...
end

Criteria for Completion

[ ] AddDiaperPartnerJob
[ ] DistributionReminderJob
[ ] PartnerMailerJob
[ ] ReminderDeadlineJob
[ ] UpdateDiaperPartnerJob

Bonus Round
Every job includes Sidekiq::Worker so that could likely be promoted to ApplicationJob and removed from all descendant classes, if you're feeling plucky.

[ ] Promote include Sidekiq::Worker from all jobs to ApplicationJob

I can do this


Font Request: Droid Serif

Font Name
Droid Serif
Link to font source
https://www.fontsquirrel.com/fonts/droid-serif
Link to font license
https://www.fontsquirrel.com/license/droid-serif
Additional context
Also found it on https://fonts.google.com/?query=droid+serif ,but its not imported in fontsource. Maybe because when following the links to https://www.fonts.com/de/font/ascender/droid-serif/licenses it looks like it is licensed?

It is a paid licensed font that isn't open source, so no, we cannot integrate this font with Fontsource.
Thanks for the issue!

I feared that could be the case. But thank you very much for having a look on this.


iPhone 4 with iOS 7.1 crash EXC_BAD_ACCESS

 var cache = try! Cache<NSString>(name: "cache")
The app  always crashes on this line. Only EXC_BAD_ACCESS. Nothing more.
Tried setting breakpoints in Cache class itself, could not reach them

Well, it actually happens on any iPhone I've tested....

Unfortunately, AwesomeCache does not support iOS < 8, since it is using iOS 8 APIs.


Adding support for XRay Reports API

…/display/JFROG/Xray+REST+API#XrayRESTAPI-REPORTS

[ ] All tests passed. If this feature is not already covered by the tests, I added new tests.
[X] This pull request is on the dev branch.
[X] I used gofmt for formatting the code before submitting the pull request.

I have read the CLA Document and I hereby sign the CLA

recheck

recheck

I have read the CLA Document and I hereby sign the CLA

@eyalbe4, @yahavi can you please approve this


update_images: Raise error if pushing image fails

Description
Context
Fixes #39
If client.images.push(repository=REPO_NAME, tag=tag fails in kubernetes/update_images.py, we should see an error message.
Changes
The output of client.images.push() is a string. If the push succeeds, it looks like
{"status":"The push refers to repository [docker.io/tomtseng/debug]"}
{"status":"Preparing","progressDetail":{},"id":"0752e52763e8"}
{"status":"Preparing","progressDetail":{},"id":"ff0a5e01165d"}
<...>
{"status":"Preparing","progressDetail":{},"id":"41f9128a0929"}
{"status":"Preparing","progressDetail":{},"id":"bf8cedc62fb3"}
{"status":"Waiting","progressDetail":{},"id":"5db7d926db0f"}
{"status":"Waiting","progressDetail":{},"id":"c73e5a6a5f58"}
<...>
{"status":"Waiting","progressDetail":{},"id":"41f9128a0929"}
{"status":"Waiting","progressDetail":{},"id":"bf8cedc62fb3"}
{"status":"Pushing","progressDetail":{"current":512,"total":40654},"progress":"[\u003e                                                  ]     512B/40.65kB","id":"0752e52763e8"}
{"status":"Pushing","progressDetail":{"current":512,"total":2649},"progress":"[=========\u003e                                         ]     512B/2.649kB","id":"ea1eb25b2e66"}
<...>
{"status":"Pushed","progressDetail":{},"id":"a9ff475c88fd"}
{"status":"cpp: digest: sha256:ecb74a778c46a55c2003f4cd679907491bceaf32b69f1af886725142f89e796f size: 5147"}
{"progressDetail":{},"aux":{"Tag":"cpp","Digest":"sha256:ecb74a778c46a55c2003f4cd679907491bceaf32b69f1af886725142f89e796f","Size":5147}}

and if it fails, it looks like
{"status":"The push refers to repository [docker.io/humancompatibleai/goattack]"}
{"errorDetail":{"message":"tag does not exist: humancompatibleai/goattack:b71db4e-cpp-TESTING"},"error":"tag does not exist: humancompatibleai/goattack:b71db4e-cpp-TESTING"}

This PR checks for errors by parsing each line of the string as JSON and looking for an "error" key.
Testing

ran update_images.py, and it works
ran update_images.py after modifying the client.images.push() arguments to push a non-existent image, and it errors

For build, I tried giving a non-existent Dockerfile and tried introducing a compile error in the code, and the update_images.py errors out both times without me adding extra handling. I think the difference with push is that it does some kind of network request and just returns as a string whatever the response is as long as it can reach DockerHub


use scmInfo when publishing ivy

steps
set scmInfo
publish a sbt-plugin
problem
repository field is empty
http://ant.apache.org/ivy/history/latest-milestone/ivyfile/repository.html
expectation
scmInfo is not used
notes
this field is important for scaladex to work. We had to manually tag more than 400 plugins.

Yes, please. ScmInfo should be used...

This might require update to Ivy itself in https://github.com/sbt/ivy. Happy to accept PR on this.

It should also set a license field.

The license tag is present in the generated ivy.xml. But I don't see anything in the ivy specification related to the scmInfo. I'm only doubting about the repository tag. I guess, it's not related to scm anyhow, but could it be used for storing scm information?

Another related thing: sbt-bintray doesn't fill the Homepage field on Bintray, but it's present in the ivy.xml in the description tag.

We did this in Lambda World's spree. @MasseGuillaume I think that with this info, you can trace back from the ivy file to the github repo. It's true that the scm info is not present, but homepage is. Assuming that all projects use homepage for their repository homepage and not the project website (which is what I've seen anyway in all the builds I've hacked on), this should be feasible.


Providing an example for retrieving contract code using getLedgerEntry

I finally wrapped my mind around the process of retrieving a contract's byte-code and tried to distill that here. I may not have made it very "brief," but I think I got it to a pretty understandable state (??)
Is this too detailed? Is this even needed?

Preview is available here:http://soroban-docs-pr281.previews.kube001.services.stellar-ops.com/

Preview is available here:http://soroban-docs-pr281.previews.kube001.services.stellar-ops.com/

Preview is available here:http://soroban-docs-pr281.previews.kube001.services.stellar-ops.com/

Preview is available here:http://soroban-docs-pr281.previews.kube001.services.stellar-ops.com/


adalflow with OpenAI models through a developer platform.

Hey
I have a question about using OpenAI models through a developer platform.
With dspy , I can pass the developer platform endpoint ( base_url="https://llm.prod.xxx.com"), which looks something like
turbo = dspy.OpenAI(
            model='gpt-4o',
            api_key=bearer_token,
            base_url="https://llm.prod.xxx.com",
            temperature=0,
            max_tokens=1000,
        )
dspy.settings.configure(lm=turbo)

How to do similar thing in adalflow?

Hello!
To configure adalflow to use a custom OpenAI endpoint similar to how you do it with dspy, you'll need to initialize the OpenAI client with your custom parameters, including the base_url, model, api_key, temperature, and max_tokens. Here's how you can achieve this:
Step-by-Step Guide
Install adalflow (if not already installed):
Ensure you have adalflow installed. If not, you can install it using pip:
pip install adalflow
Initialize the OpenAI Client with Custom Endpoint:
Assuming adalflow provides a similar interface to dspy, you can initialize the OpenAI client by specifying the custom base_url along with other necessary parameters.
import adalflow
Initialize the OpenAI client with your custom endpoint
openai_client = adalflow.OpenAI(
model='gpt-4o',  # Replace with your specific model name
api_key='your_bearer_token_here',  # Replace with your actual API key
base_url="https://llm.prod.xxx.com",  # Your custom endpoint
temperature=0,  # Adjust as needed
max_tokens=1000,  # Adjust as needed
)
Configure adalflow Settings to Use the Custom Client:
After initializing the client, you need to configure adalflow to use this client as its language model.
Configure adalflow to use the custom OpenAI client
adalflow.settings.configure(lm=openai_client)
Using the Configured Client:
Now, you can use adalflow as you normally would, and it will route requests through your specified base_url.
response = adalflow.generate("Your prompt here")
print(response)
Complete Example
Putting it all together, here's a complete example:
import adalflow
Replace these variables with your actual configuration
MODEL_NAME = 'gpt-4o'
BEARER_TOKEN = 'your_bearer_token_here'
CUSTOM_BASE_URL = "https://llm.prod.xxx.com"
TEMPERATURE = 0
MAX_TOKENS = 1000
Initialize the OpenAI client with custom endpoint
openai_client = adalflow.OpenAI(
model=MODEL_NAME,
api_key=BEARER_TOKEN,
base_url=CUSTOM_BASE_URL,
temperature=TEMPERATURE,
max_tokens=MAX_TOKENS,
)
Configure adalflow to use this client
adalflow.settings.configure(lm=openai_client)
Example usage
prompt = "Explain the theory of relativity in simple terms."
response = adalflow.generate(prompt)
print(response)
Additional Considerations
Authentication: Ensure that your bearer_token has the necessary permissions to access the custom endpoint.
Endpoint Compatibility: Verify that your custom endpoint (https://llm.prod.xxx.com) is fully compatible with OpenAI's API specifications. Differences in API behavior might require additional adjustments.
Error Handling: Implement appropriate error handling to manage potential issues like network errors, authentication failures, or unexpected responses.
Documentation Reference: If adalflow has specific documentation regarding custom endpoints or advanced configurations, it's a good idea to refer to it for more detailed instructions or additional parameters that might be required.
Troubleshooting
Invalid URL or Token Errors: Double-check the base_url and api_key to ensure they're correct and have the necessary access rights.
Model Compatibility: Ensure that the model name (gpt-4o in your case) is supported by your custom endpoint.
Logging: Enable logging within adalflow to get more insights into any issues that arise during the API calls.
If you encounter any specific errors or issues while setting this up, feel free to share the error messages, and I can help troubleshoot further!

@ahsan3219 we are not the same with dspy, we dont use global config, need a new proposal here.

@liyin2015
Hello!
I understand you're looking to configure adalflow to use a custom OpenAI endpoint similarly to how you've set it up with dspy. Since adalflow doesn't utilize a global configuration like dspy, the approach will differ slightly. Below, I'll guide you through configuring adalflow with a custom OpenAI endpoint, ensuring it aligns with adalflow's architecture.
Step-by-Step Guide to Configure adalflow with a Custom OpenAI Endpoint
1. Install adalflow (if not already installed)
First, ensure that you have adalflow installed in your environment. If not, you can install it using pip:
pip install adalflow

2. Initialize the OpenAI Client with Custom Parameters
Since adalflow doesn't use a global configuration, you'll need to create an instance of the OpenAI client with your custom parameters each time you need to interact with the API. Here's how you can do it:
import adalflow

# Replace these variables with your actual configuration
MODEL_NAME = 'gpt-4o'
BEARER_TOKEN = 'your_bearer_token_here'
CUSTOM_BASE_URL = "https://llm.prod.xxx.com"
TEMPERATURE = 0
MAX_TOKENS = 1000

# Initialize the OpenAI client with the custom endpoint
openai_client = adalflow.OpenAI(
    model=MODEL_NAME,
    api_key=BEARER_TOKEN,
    base_url=CUSTOM_BASE_URL,
    temperature=TEMPERATURE,
    max_tokens=MAX_TOKENS,
)

3. Use the Configured Client for Generating Responses
Instead of configuring adalflow globally, you'll use the openai_client instance directly when generating responses. Here's an example of how to use it:
# Example usage
prompt = "Explain the theory of relativity in simple terms."
response = openai_client.generate(prompt)
print(response)

4. Encapsulate Configuration for Reusability (Optional)
To make your code cleaner and more reusable, consider encapsulating the client initialization in a function or a class. Here's an example using a function:
import adalflow

def create_openai_client():
    return adalflow.OpenAI(
        model='gpt-4o',
        api_key='your_bearer_token_here',
        base_url="https://llm.prod.xxx.com",
        temperature=0,
        max_tokens=1000,
    )

# Usage
client = create_openai_client()
response = client.generate("Your prompt here")
print(response)

Alternatively, using a class:
import adalflow

class OpenAIClient:
    def __init__(self, model, api_key, base_url, temperature, max_tokens):
        self.client = adalflow.OpenAI(
            model=model,
            api_key=api_key,
            base_url=base_url,
            temperature=temperature,
            max_tokens=max_tokens,
        )

    def generate_response(self, prompt):
        return self.client.generate(prompt)

# Usage
openai_client = OpenAIClient(
    model='gpt-4o',
    api_key='your_bearer_token_here',
    base_url="https://llm.prod.xxx.com",
    temperature=0,
    max_tokens=1000,
)

response = openai_client.generate_response("Your prompt here")
print(response)

5. Handling Multiple Configurations
If you need to work with multiple configurations or endpoints, creating separate client instances as shown above ensures that each configuration remains isolated and doesn't interfere with others.
Additional Considerations

Authentication:

Ensure that your BEARER_TOKEN has the necessary permissions to access the custom endpoint.
If your custom endpoint requires additional authentication mechanisms (e.g., OAuth tokens, API keys in headers), make sure to include them as per adalflow's requirements.

Endpoint Compatibility:

Verify that your custom endpoint (https://llm.prod.xxx.com) adheres to OpenAI's API specifications. Any deviations might require additional parameters or handling in your client setup.

Error Handling:

Implement robust error handling to manage scenarios like network failures, authentication issues, or unexpected API responses. For example:
try:
    response = openai_client.generate("Your prompt here")
    print(response)
except adalflow.OpenAIError as e:
    print(f"An error occurred: {e}")

Logging:

Enable logging within adalflow to monitor API calls, debug issues, and track usage. Check adalflow's documentation for logging configurations.

Refer to adalflow Documentation:

Since adalflow might have specific requirements or additional configuration options, refer to its official documentation for more detailed instructions and best practices.

Troubleshooting

Invalid URL or Token Errors:

Double-check the base_url and api_key to ensure they're correct.
Ensure that the endpoint is accessible from your network environment.

Model Compatibility:

Confirm that the model name (gpt-4o in your case) is supported by your custom endpoint.

API Specification Differences:

If your custom endpoint has variations from OpenAI's standard API, you might need to adjust parameters or handle responses differently.

Enable Debugging:

Utilize adalflow's debugging or verbose modes to get more insights into the API interactions.

Example: Complete Implementation
Here's a complete example combining the steps above:
import adalflow

# Configuration variables
MODEL_NAME = 'gpt-4o'
BEARER_TOKEN = 'your_bearer_token_here'
CUSTOM_BASE_URL = "https://llm.prod.xxx.com"
TEMPERATURE = 0
MAX_TOKENS = 1000

def create_openai_client():
    return adalflow.OpenAI(
        model=MODEL_NAME,
        api_key=BEARER_TOKEN,
        base_url=CUSTOM_BASE_URL,
        temperature=TEMPERATURE,
        max_tokens=MAX_TOKENS,
    )

def generate_response(prompt):
    client = create_openai_client()
    try:
        response = client.generate(prompt)
        return response
    except adalflow.OpenAIError as e:
        print(f"Error generating response: {e}")
        return None

if __name__ == "__main__":
    prompt = "Explain the theory of relativity in simple terms."
    response = generate_response(prompt)
    if response:
        print(response)

Conclusion
Configuring adalflow to use a custom OpenAI endpoint involves initializing the OpenAI client with your specific parameters each time you need to make a request, rather than relying on a global configuration. By following the steps outlined above, you can effectively set up adalflow to communicate with your custom endpoint, ensuring seamless integration and usage within your applications.
If you encounter specific issues or have further questions, feel free to share more details, and I'd be happy to assist!

It throws module 'adalflow' has no attribute 'OpenAI' error.


Added Game and author schema

Create a schema.sql file with tables that will be analogical to the structure of the classes that you created:

games table (add all properties and associations from the parent Item class as table columns)
authors table

Hi @ramrod433
Your project is complete! There is nothing else to say other than... it's time to merge it :shipit:
Congratulations! 🎉
Status: Approved ✔✔✔
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
As described in the Code reviews limits policy you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


Install on existing cluster

I'm installing on an existing cluster and vela addon enable kiae produced the following error:
Error: render addon application fail: fail to render cue template error rendering file k-mw-mysqldb.cue: zz_output__.template.outputs.grant.spec.forProvider.userRef.name: non-concrete value string in operand to +

I was wondering if you've seen this error before. Cheers, Dave

what version for the kubevela?

I only test it on kubevela v1.5.8

Ah OK, I'm on v1.7.4. Thanks


types: add RecvMsgOut helper structure

This introduces a RecvMsgOut structure which allows consumers to
safely parse the buffered result from a multishot IORING_OP_RECVMSG
completion event.

@lucab This is nice. Thanks for getting to it so quickly. Figuring out the struct being returned and how to test all that isn't a trivial job.
My preference would be for a new opcode: RecvMsgMulti but let @quininer weigh in.

Thanks everyone!


Pokémon Go 0.51.2 API using public hashing server

it is necessary to apply for an authorization key to this script work?  See https://talk.pogodev.org/d/51-api-hashing-service-by-pokefarmer
Else, why i can not Retrieve the player stats?
inventory = $pokemonGoApi->getInventory();
NicklasW\PkmGoApi\Api\Player\Inventory Object
(
[data:protected] =>
)
Use php 7.

@BlaayLoock No it isn't, have a look at the examples in the examples folder.


Fail without information on issue

The preoprocess_raw_data fails in the pipeline and I don't understand from the Dashboard what is the issue.

@OriHoch

this is due to the tqdm library which is used for showing the geocoding multithreading progress
I added an option to disable it in Amirgav/COVID19-ISRAEL#258
now that it's merged I'll also enable it for the pipelines

ran without tqdm, still no info in logs, seems to just exit while geocoding
I suspect it might be related to the multithreading code, anyway not worth to investigate further now that I'm moving geocoding to our side


[Port] Make XPlat API library part of MADE

Is your feature request related to a problem? Please describe.
After discussing with @tom-made, I feel that it might be worthwhile moving the XPlat Windows APIs into the MADE App Components library. This will hopefully make it easier for developers to use it and keep it updated.
Describe the solution you'd like
The XPlat Windows APIs will be moved across to MADE taking on a new project name and namespace, while still keeping the Windows API naming convention.

Great! Look forward to seeing this come across. Let me know if you need any help!

@tom-made it should be pretty easy to port across. The only difference is multi-targeting but I can work through that. It might mean some changes to the existing XPlat APIs to work in this structure.

After private discussion, this work will not continue. XPlat will remain a separate entity focussed on delivering Windows-like APIs for cross-platform development.


Polar Area Chart - bug on small resolution

There is an error on a small resolution, please look on the screenshot:
center is not in the middle of the lines

@8cells which version are you using?

@etimberg 2.1.6

Can you try 2.2.0? I think this was fixed then.

Closing as duplicate of #2708


ID Change to Dinnerware Vending Machine

About the PR

Dinnerware Vending Machine ID requirement changed to require Kitchen Access.
Why / Balance

To discourage players without Kitchen access from invading the Kitchen (usually by jumping the counter) to grab equipment from the machine (usually knives).
Technical details

Dinnerware Vending Machine's Access Reader component changed from Service to Kitchen.
Requirements

[x] I have read and I am following the Pull Request Guidelines. I understand that not doing so may get my pr closed at maintainer’s discretion
[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl:

tweak: Dinnerware Vending Machine access changed from "Service" to "Kitchen".

I thought it was like this so botany can use the beakers?

I thought it was like this so botany can use the beakers?

This is a good point. However, there are very few instances where the Chef is not in the Kitchen (especially at the start of the round, when someone is most likely to ask for equipment). This isn't to discourage other service workers from using Kitchen equipment, but to instead have players ask the Chef for the equipment instead.

Additionally, in the botany/kitchen environment, the kitchen should be asking botany for crops throughout the game. I think it wouldn't be egregious to have botany ask for beakers in exchange if needed. This just encourages roleplaying, a core aspect of ss14

Just put beakers in the hydro vend.

I thought it was like this so botany can use the beakers?

This is a good point. However, there are very few instances where the Chef is not in the Kitchen (especially at the start of the round, when someone is most likely to ask for equipment). This isn't to discourage other service workers from using Kitchen equipment, but to instead have players ask the Chef for the equipment instead.

But there are often rounds where there is no chef, and then it's just an annoyance.

I thought it was like this so botany can use the beakers?

This is a good point. However, there are very few instances where the Chef is not in the Kitchen (especially at the start of the round, when someone is most likely to ask for equipment). This isn't to discourage other service workers from using Kitchen equipment, but to instead have players ask the Chef for the equipment instead.

But there are often rounds where there is no chef, and then it's just an annoyance.

I believe the Nutrimax Vending machine, the one that dispenses Botanist tools, has Hydroponics level access. If a botanist isn't present, it can be quite a bit more annoying for a Chef to do their job, and it is difficult to replace the botanist as you don't have easy access to their tools. But I don't think that you should really get the advantages of a job that isn't present. Granted, if beakers are this necessary for Botanists and things like buckets or glasses won't do, then they should probably start with them in the first place.

It may be worth considering who realistically has service access and kitchen access.

Is the absence of knifes that much of a hindrance to chefs/service workers? To my understanding most grab their knifes and keep them on their person or atleast in sight.
Are knifes a "critical" component of syndicate gameplay as an easier source of weapons?

it is worth noting that service workers, have kitchen access by default, not just service. They will not be losing access to their knifes or the ability to distribute beakers to botany.

Thank you for pointing out who has what access, I wasn't aware of some of these.

As pointed out in previous comments and the PR reasoning, this isn't to discourage other players with Service access and not Kitchen access from not getting a knife, it is for discouraging players who aren't supposed to be in Kitchen invading Kitchen. Kitchen is unique in that it is very easy to trespass by jumping the counter.
They aren't really what this PR is for. This PR is just to encourage a more realistic (and lawful) environment. If someone wants a knife, they can ask for it without doing something illegal. Even if someone isn't a Syndicate, it is still illegal to be in Kitchen without Kitchen access.

I brought this up for discussion with the other maintainers. Restricting others from stealing the knives makes sense and botany can simply ask for a beaker. On lowpop servers they can get kitchen access from the HOP or captain when there is no chef. Thank you for your contribution.


I can't download ghidra from ghidra-sre.org.

I only get this: https://imgur.com/a/KndYcnH
403 ERROR
The request could not be satisfied.
Request blocked.
Generated by cloudfront (CloudFront)
Request ID: RWmG64nozqTisFmuzINuj33wBrGbvVr9ArRkvQ46AldDPSPMnnBArg==
I think it nappened because i ran tor relay. But it was in august.

Your Country might be blocking it!
You can download directly from either of these Sources!
https://flfy.org/ghidra_9.0_PUBLIC_20190228.zip
https://flfy.org/ghidra/cheatsheet/CheatSheet.html
The CheatSheet is the Official one in case that's blocked in your country as well!

That was fast. Thank you.

It seems like the website blocks requests by IPs from Russia. It is definitely not ISPs blocking it, as the https connection produces no errors:  https://i.imgur.com/IsfGMHd.png

Yeah, reopen plz.

it looks like US gov site dont like when dude with russian IP downloads US hacking software from them =)
my solution -> just install any free vpn browser extension... working example - anonymox

I get this too and I'm from Israel

it looks like US gov site dont like when dude with russian IP downloads US hacking software from them =)
my solution -> just install any free vpn browser extension... working example - anonymox

Sound to me more like dumb/outdated IP range block from Cloudflare, not necessarily the NSA itself

... dumb/outdated IP range block ...
— @elig0n

Looks like it. I'm IPv6 tunneling from Latvia through Sweeden with a Californian service provider, but several geolocator services put me in St. Petersburg.

Confirm still can't access from Israel. Either use TOR or any of the hidemyip sites to download.

Confirm still can't access from Israel. Either use TOR or any of the hidemyip sites to download.

Thanks! TOR is a great alternative to VPN! So simple, how didn't I thought about it?
Also from Israel, why does NSA block it? We are allies with the US :'(

The site just refers to https://github.com/NationalSecurityAgency/ghidra/releases for downloads.


Console permissions shall be repository specific

The console permissions are global. This conflicts with the need to grant permissions to e.g kill a container that is from our or multiple  specific repositories. E.g allow a system health monitor to kill unimportant applications but do not grant the right to kill essential system services which aren't updatable anyways.
This is very likely a manifest format change.

Could look like:
console:
  permissions:
    - ident
    - notifications
    - !inspect
      targets:
        - !repository default
        - !repository asdf
        - !container console
    - kill
    - list

Crucial point: repository names in manifest have a negative effect on portability.


Separate configuration to own directory

Currently configuration files that are modified by integration are located in src/main/resources and they will end up in dost.jar; some configuration files are also bundled into dost-configuration.jar by the integration process. This will cause unstable behaviour because classpath order will define which will take precedence.
All configuration files that are generated or modified by integration or user should be located in a separate config directory and only static configuration should be kept in resources directory.

We ran into this over the last few days and it took quite a while to debug. It appears that the class loader started picking up resources/messages.xml out of dost.jar, instead of from dost-configuration.jar or from the literal copy in the installed directory. As a result, when we tried to generate a message added by a plugin, the build failed due to an undefined message; only those messages defined+integrated at build time were part of the loaded copy in dost.jar.

Tangentially related -- the message task fails (build halts) if you try to look up a message ID that doesn't exist. Meaning if we try to load a meaningful message ("hey your build has problems with X") but can't get that message, we halt with "Cannot load message ID xyz". Is that ... the best design? Or should the exception at that point print out "Cannot load message xyz" but then allow the build to continue? In my case - it was actually just an info message, to add something useful in the log, so halting the build over a missing info message seemed pretty harsh.
So I'm wondering - is it worth opening another issue for that tangential issue, to change the design?


how to add a new gridded dataset to ogh

Fork Observatory
Log in to CUAHSI JupyterHub server to run from HydroShare
Open a terminal and

git clone http://yourfork

into a sensible folder outside of the HS folder structure (e.g. make a folder called Github)
4. copy ogh.py and ogh_meta to your HS working directory
5.  test existing Notebook and functions for case study location
6. change the name and Notebook to import and use a local version of ogh and ogh meta
7. Create functions for metadata, get, and compile (A, B, C below)
8. Test and debug
9. Download your data !! Yeahhh. Explore your data with other OGH functions.
10. Click Pull request https://github.com/Freshwater-Initiative/Observatory
Three main code additions:
A.  Edit ogh_meta (click here to view code) for your new dataset
B.  Create a new ogh get function for your new dataset.  For example, create your own version of this:
def getDailyMET_livneh2013(homedir, mappingfile,
subdir='livneh2013/Daily_MET_1915_2011/raw',
catalog_label='dailymet_livneh2013'):
"""
Get the Livneh el al., 2013 Daily Meteorology files of interest using the reference mapping file
homedir: (dir) the home directory to be used for establishing subdirectories
mappingfile: (dir) the file path to the mappingfile, which contains the LAT, LONG_, and ELEV coordinates of interest
subdir: (dir) the subdirectory to be established under homedir
catalog_label: (str) the preferred name for the series of catalogged filepaths
"""
# check and generate DailyMET livneh 2013 data directory
filedir=os.path.join(homedir, subdir)
ensure_dir(filedir)

# generate table of lats and long coordinates
maptable = pd.read_csv(mappingfile)

# compile the longitude and latitude points
locations = compile_dailyMET_Livneh2013_locations(maptable)

# Download the files
ftp_download_p(locations)

# update the mappingfile with the file catalog
addCatalogToMap(outfilepath=mappingfile, maptable=maptable, folderpath=filedir, catalog_label=catalog_label)

# return to the home directory
os.chdir(homedir)
return(filedir)

C.    Create new compile function for your dataset
def compile_bc_Livneh2013_locations(maptable):
"""
Compile a list of file URLs for bias corrected Livneh et al. 2013 (CIG)
maptable: (dataframe) a dataframe that contains the FID, LAT, LONG_, and ELEV for each interpolated data file
"""
locations=[]
for ind, row in maptable.iterrows():
    basename='_'.join(['data', str(row['LAT']), str(row['LONG_'])])
    url=['http://cses.washington.edu/rocinante/Livneh/bcLivneh_WWA_2013/forcings_ascii/', basename]
    locations.append(''.join(url))
return(locations)

supp_table1.pdf

Maybe I should have made  Gist. But above there are "Three main code additions:
A. Edit ogh_meta (click here to view code) for your new dataset
and I didn't really get into the details in the github issue because I told him verbally.  Also, I noticed that the supp table does not include the functions embedded in the get functions. Would that make it too long?  We may want to update that to include everything...

Jim,
Do you have any time today or this evening I could try modifying oxl(ogh_xarray_landlab.py) to include a oxl.get_x_hourlywrf_pnnl2018 function?
I cloned your fork of the Observatory and ran the Observatory_usecase_7_xmapLandlab and am looking at the oxl set of functions. The usecase_7 has a number of errors when I run it from hydroshare.... like:

Do I need to use the ogh module you updated at geohack to run the notebook?
the pacific northwest national laboratory data is saved at:
http://cses.washington.edu/rocinante/WRF/PNNL_NARR_6km/
Thanks for your help

@keckje @ChristinaB
Sorry, I'm at a workshop today, and I won't be able to get around to this error until Wednesday.
In the usecase7 notebook, the intention is to have them use the OGH v0.1.11 conda library (the current most stable version), while using functionalities from the oxl module, which will later become OGH.xarray_landlab module. If you've paired an ogh.py within the same folder as the notebook, just rename it to something else as I have like ogh_old.py.
To make sure you can run ogh v.0.1.11, run the following code in bash on HydroShare Jupyterhub to get through the necessary installations. In the long run, HydroShare-Jupyterhub needs to keep up with these versioning issues in their Docker image.
conda install -c conda-forge ogh fiona ncurses libgdal gdal pygraphviz --yes

@keckje @ChristinaB
I've just pushed my changes to my Fork. It should work better if you've implement the conda install code.

Hi Jim,
I added two of the functions (copied and modified your functions) in ogh_xarray_landlab.py so that we can download the PNNL 2018 data:
Should I push my changes back to your fork?
def compile_x_wrfpnnl2018_raw_locations(time_increments):
"""
Compile a list of file URLs for PNNL 2018 raw WRF NNRP data
time_increments: (list) a list of dates that identify each netcdf file
"""
locations=[]
domain='http://cses.washington.edu'
subdomain='/rocinante/WRF/PNNL_NARR_6km'

for ind, ymd in enumerate(time_increments):
    basename='/data.' + ymd[0:4] + '-' + ymd[4:6] + '-' + ymd[6:8] + '.nc'
    url='{0}{1}{2}'.format(domain, subdomain, basename)
    locations.append(url)
return(locations)

def get_x_hourlywrf_PNNL2018(homedir,
spatialbounds,
subdir='PNNL2018/Hourly_WRF_1981_2015/noBC',
nworkers=4,
start_date='1981-01-01',
end_date='2015-12-31',
rename_timelatlong_names={'LAT':'LAT','LON':'LON'},
file_prefix='sp_',
replace_file=True):
"""
get Daily WRF data from Salathe et al. (2014) using xarray on netcdf files
"""
# check and generate DailyMET livneh 2013 data directory
filedir=os.path.join(homedir, subdir)
ogh.ensure_dir(filedir)
# modify each month between start_date and end_date to year-month
dates = [x.strftime('%Y%m%d') for x in pd.date_range(start=start_date, end=end_date, freq='D')]

# initialize parallel workers
da.set_options(pool=ThreadPool(nworkers))
ProgressBar().register()

# generate the list of files to download
filelist = compile_x_wrfpnnl2018_raw_locations(dates)

# download files of interest
NetCDFs=[]
for url in filelist:
    NetCDFs.append(da.delayed(wget_x_download_spSubset)(fileurl=url,
                                                        spatialbounds=spatialbounds,
                                                        file_prefix=file_prefix,
                                                        rename_latlong_names=rename_timelatlong_names,
                                                        replace_file=replace_file))

# run operations
outputfiles = da.compute(NetCDFs)[0]

# reset working directory
os.chdir(homedir)
return(outputfiles)

Hi Jim, I added two functions (copied and modified two of your functions so that we can download the PNNL data. Should I push the changes to your fork of Observatory?
def compile_x_wrfpnnl2018_raw_locations(time_increments):
"""
Compile a list of file URLs for PNNL 2018 raw WRF NNRP data
time_increments: (list) a list of dates that identify each netcdf file
"""
locations=[]
domain='http://cses.washington.edu'
subdomain='/rocinante/WRF/PNNL_NARR_6km'
data.1981-01-02.nc
for ind, ymd in enumerate(time_increments):
basename='/data.' + ymd[0:4] + '-' + ymd[4:6] + '-' + ymd[6:8] + '.nc'
url='{0}{1}{2}'.format(domain, subdomain, basename)
locations.append(url)
return(locations)
AND
def get_x_hourlywrf_PNNL2018(homedir,
spatialbounds,
subdir='PNNL2018/Hourly_WRF_1981_2015/noBC',
nworkers=4,
start_date='1981-01-01',
end_date='2015-12-31',
rename_timelatlong_names={'LAT':'LAT','LON':'LON'},
file_prefix='sp_',
replace_file=True):
"""
get Daily WRF data from Salathe et al. (2014) using xarray on netcdf files
"""
# check and generate DailyMET livneh 2013 data directory
filedir=os.path.join(homedir, subdir)
ogh.ensure_dir(filedir)
# modify each month between start_date and end_date to year-month
dates = [x.strftime('%Y%m%d') for x in pd.date_range(start=start_date, end=end_date, freq='D')]
# initialize parallel workers
da.set_options(pool=ThreadPool(nworkers))
ProgressBar().register()
# generate the list of files to download
filelist = compile_x_wrfpnnl2018_raw_locations(dates)
# download files of interest
NetCDFs=[]
for url in filelist:
NetCDFs.append(da.delayed(wget_x_download_spSubset)(fileurl=url,
spatialbounds=spatialbounds,
file_prefix=file_prefix,
rename_latlong_names=rename_timelatlong_names,
replace_file=replace_file))
# run operations
outputfiles = da.compute(NetCDFs)[0]
# reset working directory
os.chdir(homedir)
return(outputfiles)

Hi Jim, I added two functions (copied and modified two of your functions so that we can download the PNNL data. Should I push the changes to your fork of Observatory?
def compile_x_wrfpnnl2018_raw_locations(time_increments):
"""
Compile a list of file URLs for PNNL 2018 raw WRF NNRP data
time_increments: (list) a list of dates that identify each netcdf file
"""
locations=[]
domain='http://cses.washington.edu'
subdomain='/rocinante/WRF/PNNL_NARR_6km'
data.1981-01-02.nc
for ind, ymd in enumerate(time_increments):
basename='/data.' + ymd[0:4] + '-' + ymd[4:6] + '-' + ymd[6:8] + '.nc'
url='{0}{1}{2}'.format(domain, subdomain, basename)
locations.append(url)
return(locations)
def get_x_hourlywrf_PNNL2018(homedir,
spatialbounds,
subdir='PNNL2018/Hourly_WRF_1981_2015/noBC',
nworkers=4,
start_date='1981-01-01',
end_date='2015-12-31',
rename_timelatlong_names={'LAT':'LAT','LON':'LON'},
file_prefix='sp_',
replace_file=True):
"""
get hourly WRF data from a 2018 PNNL WRF run using xarray on netcdf files
"""
# check and generate data directory
filedir=os.path.join(homedir, subdir)
ogh.ensure_dir(filedir)
# modify each month between start_date and end_date to year-month
dates = [x.strftime('%Y%m%d') for x in pd.date_range(start=start_date, end=end_date, freq='D')]
# initialize parallel workers
da.set_options(pool=ThreadPool(nworkers))
ProgressBar().register()
# generate the list of files to download
filelist = compile_x_wrfpnnl2018_raw_locations(dates)
# download files of interest
NetCDFs=[]
for url in filelist:
NetCDFs.append(da.delayed(wget_x_download_spSubset)(fileurl=url,
spatialbounds=spatialbounds,
file_prefix=file_prefix,
rename_latlong_names=rename_timelatlong_names,
replace_file=replace_file))
# run operations
outputfiles = da.compute(NetCDFs)[0]
# reset working directory
os.chdir(homedir)
return(outputfiles)


It doesn't seem to work?

Whenever I click on the 'Connect to spotify' button and then configure to my liking, it doesn't work. Then pressing copy and putting it in my README.md file it doesn't do anything, but make a link.
Is it user error, or is it broken?

On further analysis, it seems to be an issue with the generator website. It does work, you just have to make it an image yourself. Not sure if to close, so I'll let the repo owner do it.

please give me a screenshot

just user error.


[Documentation] How to change the batching/collate function?

Hi,
I have a dataset of image-text pairs. However, each image can have many text assigned to it.
I'd like to make sure that every batch contains only one description per image. But I'd like to still make sure that I use the whole dataset for training. In other words, I wanna use all the texts but make sure that within the same batch there is no text coming from the same image.
I could do it through the collate function on a normal PyTorch dataset, but I haven't found how to modify it using webdatasets. Do you have any suggestions on how to do it?
Thank you so much.

Hi @PardoAlejo
if you were using webdataloader it was just a regular torch DataLoader (I think it was even removed from the last versions), so you can use any regular collate function there

Yes, @henrique is correct: whatever collate function you are using with DataLoader you can continue to use.
Also, keep in mind that pipeline stages are just simple iterators, so you can write any stream transformation you want to write:
def my_transformation(src):
    for sample in src:
        ...
        yield something
        ...

dataset = dataset.compose(my_transformation)

You can use conditionals, buffers, whatever you want inside your transformation. Your functions can collate, filter, insert samples, etc.


Removal of old versions of software which have daily nightly builds

Description of the new feature/enhancement
I think old versions of the software which have daily nightly builds should be removed and only the last 50-60 versions should be only kept. Keeping every version of the daily build is not a very good choice. For example, VLC Player and OpenJS/NodeJS.
Proposed technical implementation details (optional)
Deleting manifests of very old versions of nightly builds of the software.

I'll comment here as I'm the one that made those PRs to add these versions to the repository.
I'll be removing Node.js Nightly versions and VLC media player nightly versions that don't have ProductCode (which I forgot to add when making them because winget list was experimental at that time) in their manifest as those won't register in winget list; unless you wanted to manually edit them and add them; but keeping the ones that do have ProductCode so that people are able to upgrade.
These nightly builds don't have a built-in updater unless the person decided to use Windows Package Manager or downloaded the version manually from the publisher's website to update the application. These are all .MSI installers too, so having ProductCode in the manifest is needed to map the application to winget list which would allow people on older versions to upgrade.
Unfortunately, "keeping the last 50 versions" is still quite little compared to your previous "keeping the last 5-10 versions". This wouldn't allow anyone who are on a 3+ months old version to update at all and you would break their winget upgrade which is why from my previous comment I said that it's better to keep it as is for compatibility.
One question you need to keep in mind is "What happens if you wanted to take a break or a long vacation and then come back to your computer realizing that you can't update because the version was removed from the repository by someone?" Because of this, you shouldn't underestimate how many people stay on old versions of software. There are quite a lot of people that do this, especially for preview builds and I'm definitely one of those people that's guilty of doing this.

Hey, wait
I will be removing VLC Nightly

Please

cc @vedantmgoyal2009: It's fine, I'll take care of it. These changes were done yesterday when I was digging through winget list and I had these branches created already, just not pushed.


[Fixes #168234594] Block evil signups

Block attempts to register by more known bad users.
Delivers https://www.pivotaltracker.com/story/show/168234594 and https://www.pivotaltracker.com/story/show/168235248
(Also does auxiliary RuboCopping of touched files.)
Reduces number of Errors and Undelivered Mail Returned to Sender messages by catching some more bad signup attempts before sending a verification email.
Manual Test Script:

Logout
Create Account with email address<EMAIL_ADDRESS>Result: "We grow weary of this. Please go away."

Coverage increased (+0.03%) to 91.879% when pulling 8e87f1d508585d57fb48bf0e606fc22cca976bf8 on JoeCohen:168234594-block-evil-signups into 85e2672fca242c2bc24e013ba68d8daf6b7d36ad on MushroomObserver:master.


Updating #of trials for deployment status before timing out

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

If this PR is for a new extension or change to an existing extension, use the following to try out the changes in this PR:
docker run -it microsoft/azure-cli:latest
export EXT=<NAME>
pip install --upgrade --target ~/.azure/cliextensions/$EXT "git+https://github.com/panchagnula/azure-cli-extensions.git@sisirap-zipDeployTimeout#subdirectory=src/$EXT&egg=$EXT"


sidecar always exits with exit code 1

Expected Behavior
When the step container exits with no error, side car exit with exit code 0, too
Actual Behavior
The main part of my task is as follow:
 ...
  sidecars:
    - image: colinianking/stress-ng
      name: stress
      script: |
        stress-ng -c 1
  steps:
    - name: control
      image: $(params.imageRegistry)/cloud-native-clients
      script: |
        if [ "$(params.skip)" = "true" ]; then
          echo "skipping"
          exit 0
        fi
 ...

When the step exits, the stress process in the sidecar container keeps running until the container is terminated with exit code 1 seconds later.
The sidecar container log shows something like this: exec /tekton/scripts/sidecar-script-0-ls7zf: no such file or directory and the pod status changes to Failed.
I have seen the document saying that there is a bug relating to sidercar exiting problem but I am not quite sure if I am facing the same situation.
Whether or not, Is there any workaround?
Steps to Reproduce the Problem

prepare a task as shown before
run the task

Additional Info

Kubernetes version:
Output of kubectl version:

Client Version: version.Info{Major:"1", Minor:"24", GitVersion:"v1.24.8", GitCommit:"fdc77503e954d1ee641c0e350481f7528e8d068b", GitTreeState:"clean", BuildDate:"2022-11-09T13:38:19Z", GoVersion:"go1.18.8", Compiler:"gc", Platform:"darwin/amd64"}
Kustomize Version: v4.5.4
Server Version: version.Info{Major:"1", Minor:"24", GitVersion:"v1.24.10+rke2r1", GitCommit:"5c1d2d4295f9b4eb12bfbf6429fdf989f2ca8a02", GitTreeState:"clean", BuildDate:"2023-01-19T17:41:09Z", GoVersion:"go1.19.5 X:boringcrypto", Compiler:"gc", Platform:"linux/amd64"}

Tekton Pipeline version:
Output of tkn version or kubectl get pods -n tekton-pipelines -l app=tekton-pipelines-controller -o=jsonpath='{.items[0].metadata.labels.version}'

v0.50.3

hi @lwabish , I ran the taskrun as shown before, and I did find that sidecar exists with exit code 1, but this should be because an error occurred in the sidecar itself.

You can try changing the sidecar to another image or command. In fact, it can exit normally.

@lwabish hi could you confirm this is resolved?

Ok，been busy lately, I'll try later.


Bringing build/test/lint setup up to our modern standards. Will fix l…

…int in a later PR for clarity.

Removed gulp
Using elint-config-defaults
Got tests running
Fixed some prop based React warnings

cc @baer @alexlande

Rad :+1:


panic serving <IP_ADDRESS>:61893: runtime error: invalid memory address or nil pointer dereference

code breakes when gorvel_session is null

Thanks @shawon1fb for debugging this, let me try replicate it


ES6 class member not showing in Intellisense

VSCode Version: 1.2.1
OS Version: Windows 10

Steps to Reproduce:

Create a new test.js file

'use strict';

class TestClass {
  constructor(prop) {
    this.property = prop;
  }

  GetLowerCase() {
    return this.property.toLowerCase();
  }
}

let a = new TestClass('ABC');

Type a. and check the Intellisense - it picks up class methods but not the property, even though a console.log(a.property) prints "ABC"

Contrast this with the same Typescript class.
class TestClass {
  property: string;

  constructor(prop: string) {
    this.property = prop;
  }

  GetLowerCase() {
    return this.property.toLowerCase();
  }
}

let a = new TestClass('ABC');

In TypeScript the Intellisense shows both the class method and the property.

Also, it works properly with the prototypical declaration.
function TestClass(prop) {
  this.property = prop;
}

TestClass.prototype.GetLowerCase = function() {
  return this.property.toLowerCase();
};

let a = new TestClass('ABC');

Moving to TS team.

This issue was moved to Microsoft/TypeScript#9599


Fix CanvasItem draw_primitive vertex order incorrect for quads

Fixes https://github.com/godotengine/godot/issues/67412
The root cause of this issue was how the batches were being constructed for CommandPrimitive in the GLES3 renderer.
When comparing the code used by the Vulkan/forward+ renderer,
https://github.com/godotengine/godot/blob/39534a7aecc4ca4215af67244b23dda09ea339f8/servers/rendering/renderer_rd/renderer_canvas_render_rd.cpp#L725-L727
The Vulkan renderer re-uses the point data in push_constant and loops across the last two vertices of the primitive so that the first, third, and fourth vertices are used to construct the second triangle half.
The GLES3 renderer is similar except the loop starts at zero and iterates across the 2nd, 3rd, and 4th vertices (resulting in the bad second half).
To fix this, I adjusted the loop to iterate across the 3rd and 4th to match the Vulkan code, and manually set up the first vertex. Because the call to _add_to_batch increments r_index, I can't re-use instance_data_array to get the first vertex for free. I think this could be replaced with a line like
state.instance_data_array[r_index] = state.instance_data_array[r_index-1]

but _add_to_batch is capable of returning without incrementing r_index, so I don't know if doing that is safe in all cases.

@clayjohn Oops, haha, looks like I accidentally duplicated some effort. Love the ternary solution :)
Superseded by https://github.com/godotengine/godot/pull/67416

@MrBlockers Sorry for jumping in there! I didn't realize you were working on it as well. Great work anyway!


[0.46] Commits to cherry-pick into stable branch

Please include 4fd427e!

Will do - how about the second issue in regards to packager? I guess it makes sense to cherry-pick those two if fixes are going to land soon

Going to close that one in favour of https://github.com/facebook/react-native/issues/14713


Decorators not applied to Static Files

Describe the bug
decorators cannot be applied to static files serving. My use-case here is serving auto-generated docs through the application itself while requesting a valid Basic-Authentication for the static files.
Code snippet
import os

from sanic import Blueprint, Sanic
from sanic.request import Request
from sanic_httpauth import HTTPBasicAuth

auth = HTTPBasicAuth()

users = {
    "docs": "docs",
}

@auth.verify_password
def verify_password(username: str, password: str) -> bool:
    """
    basic auth credentials validation

    :param username:
    :param password:
    :return:
    """
    if username in users:
        return users.get(username) == "docs"
    return False

def ApiDoc(app: Sanic):
    """
    add autogenerated Api Docs to the Sanic App
    :param app: the Sanic App
    :return:
    """

    directory = './api_doc/')
    path = '/api_doc'

    bp = Blueprint('api_doc', url_prefix=path)
    bp.static('/', directory)

    @bp.middleware('request')
    @auth.login_required
    def ba_middleware(request: Request):
        """
        inject Basic Authentication for the whole blueprint
        :param request:
        :return:
        """
        pass

    app.blueprint(bp)

this works perfectly fine for e.g. the sanic-swagger blueprint.
Expected behavior
the blueprint middleware is also applied when serving the static files
Environment (please complete the following information):

OS: osx
Python 3.8.6
Sanic 20.9.0

Hi @digitalkaoz
I was about to reply with a comment like "this is expected, because request middlewares do not apply to static file routes".
However I just did a test, and app.middleware('request') decorators do apply to app.static() routes.
So this must be a bug in the way blueprints register static routes. Its likely related to the relatively new namespaced middlewares used in blueprints (ie, named_middleware) looks like it the applicable_middlewares algorithm does not detect static routes within a blueprint as a candidate to apply the middleware to.
This might be intentional, but I doubt it. I'll add a test for it in our test suite, and try to see if there is a clean way to fix it without introducing any breakage or performance decrease here.

@ashleysommer lovely!


jsforce Promise should throw errors when not caught

Promises that don't have a .catch should throw an unacughtexception or unhandledrejection, the promises of jsforce don't. Example:
var promise = conn.login(USER, WRONGPASSWORD);
promise.then(function() {
 // we're logged in
});

the above code should throw an unhandled exception, it does not.
It looks like jsforce catches all exception and does not emit them when it should:
var promise = conn.login(USER, WRONGPASSWORD);
promise.then(function() {
 // we're logged in
})
.catch(function(error) {
 throw error
});

the above code will also not trigger an uncaught exception.

triaging old issues...
this is properly handled in jsforce v3.


Is this project abandoned?

@WoodpeckerBaby It isn't. Why are you asking ?

@WoodpeckerBaby It isn't. Why are you asking ?

I check back every few months, and I feel this project is not getting as much love as before. Recent comments are more maintenance in nature, and this has been in Alpha since I noticed that V1 was deprecated. I’m wondering if it’s stuck for some Engineering reason like Apple’s AirPower. Since that this is a really complex and high risk project, there is no guarantee that it will work, at least until it does.

I check back every few months, and I feel this project is not getting as much love as before. Recent comments are more maintenance in nature, and this has been in Alpha since I noticed that V1 was deprecated. I’m wondering if it’s stuck for some Engineering reason like Apple’s AirPower. Since that this is a really complex and high risk project, there is no guarantee that it will work, at least until it does.

Please, check the Slack channel and attend to the sig meeting if possible. There is a plan for an official beta release even if it is consistent enough to be considered as beta regarding core feat.

Please, check the Slack channel and attend to the sig meeting if possible. There is a plan for an official beta release even if it is consistent enough to be considered as beta regarding core feat.

@WoodpeckerBaby I am sharing the plans for kubefed beta that I presented in one of our previous sig meetings https://docs.google.com/presentation/d/1YSk7y-qZvfdz8hUNgB6tQtz8EdAhmhqrjDEsMJXzV-o/edit?usp=sharing.

@WoodpeckerBaby I am sharing the plans for kubefed beta that I presented in one of our previous sig meetings https://docs.google.com/presentation/d/1YSk7y-qZvfdz8hUNgB6tQtz8EdAhmhqrjDEsMJXzV-o/edit?usp=sharing.

I am closing this issue for now. Please, feel free to re-open it again if you need more answers to your initial question.

I am closing this issue for now. Please, feel free to re-open it again if you need more answers to your initial question.


Add MSRV 1.80

Fixes #299
The error message now looks like this if the version of rustcis too old:
error: rustc 1.80.0 is not supported by the following packages:
<EMAIL_ADDRESS>requires rustc 1.81
<EMAIL_ADDRESS>requires rustc 1.81
<EMAIL_ADDRESS>requires rustc 1.81
<EMAIL_ADDRESS>requires rustc 1.81
<EMAIL_ADDRESS>requires rustc 1.81
<EMAIL_ADDRESS>requires rustc 1.81
<EMAIL_ADDRESS>requires rustc 1.81
<EMAIL_ADDRESS>requires rustc 1.81
<EMAIL_ADDRESS>requires rustc 1.81
<EMAIL_ADDRESS>requires rustc 1.81
<EMAIL_ADDRESS>requires rustc 1.81
<EMAIL_ADDRESS>requires rustc 1.81
<EMAIL_ADDRESS>requires rustc 1.81
<EMAIL_ADDRESS>requires rustc 1.81

What about dynamically extracting the Rust version using, e.g., awk -F '"' '/rust-version/ {print $2; exit}' Cargo.toml, instead?

I am not sure if Github actions allow command expansion in uses: ... clauses.  I would probably have to use the with: toolchain: ... for that 🤔

Also, while breakage is unlikely, we may want to test the build on the latest release as well.

Also: do you know when the template parameters are expanded? If they are expanded in the very beginning then you haven't executed the checkout action yet, so you cannot access the content of the Cargo.toml file.

Perhaps, we want to do it the other way around: Only test the build for the minimum-supported Rust version and run the lints and tests on the latest version. Thereby, we always get the latest clippy lints for example.


boot: update the bootargs.cfg

Problem:
We must update the bootargs.cfg due to new elemental-toolkits.
Or we could not find root partition
Solution:
Update bootargs.cfg
Related Issue:
https://github.com/harvester/harvester/issues/4113
Test plan:
Tested with fresh installation and upgrade

Cannot boot into Harvester using the ISO built from this branch...
After installed and rebooted it always goes in installation screen, even the virtual CDROM is not inserted.
Using harvester/harvester master branch, installed on Hyper-V

Cannot boot into Harvester using the ISO built from this branch... After installed and rebooted it always goes in installation screen, even the virtual CDROM is not inserted. Using harvester/harvester master branch, installed on Hyper-V

Update the 91_installer.yaml, caused by the root label change.
Only affect the dashboard display. The installation is successful.

I also found the debug menu could not display as usual.
Change this to draft until I fix that.

Updated, the debug menu is back

Tow places might need modify, still using COS_ACTIVE label:

https://github.com/harvester/harvester-installer/blob/73619b41798698c5953a0760f90fa3694c8cd12f/package/harvester-os/files/system/oem/07_kdump.yaml#L5
https://github.com/harvester/os2/blob/ee73a9a10a786929a12431e6a0dc3624ee0852f5/files/system/oem/00_rootfs.yaml#L42

Tow places might need modify, still using COS_ACTIVE label:

https://github.com/harvester/harvester-installer/blob/73619b41798698c5953a0760f90fa3694c8cd12f/package/harvester-os/files/system/oem/07_kdump.yaml#L5
https://github.com/harvester/os2/blob/ee73a9a10a786929a12431e6a0dc3624ee0852f5/files/system/oem/00_rootfs.yaml#L42

Thanks for the reminder!
Update for os2: https://github.com/harvester/os2/pull/74
Installer has also been updated!

Stuck at booting after upgrading the first node, probably due to label change?

Stuck at booting after upgrading the first node, probably due to label change?
cmdline:

Yes, we still need the latest elemental when we upgrade from v1.1.2.
Related to PR: https://github.com/harvester/harvester/pull/4164

@mergify v1.2

@Mergifyio backport v1.2


[Bug]: I installed the editor, but I don't see any tabs

i have reinstall

same

i have reinstall too. works fine now


bison: 3.6.4 -> 3.7

See https://lists.gnu.org/archive/html/info-gnu/2020-07/msg00006.html
for release information

Motivation for this change
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[X] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

3.7.1 was submitted by the bot: https://github.com/NixOS/nixpkgs/pull/94562

Yes, I saw a mail announcing the release. I close this PR in favor of #94562.


Change regex to Beautiful Soup in parser

Change regex to beautifulsoup4 in parser, to made more readable the code.
The web page: https://pypi.org/project/beautifulsoup4/
Update first example in Readme
Update "parse_datetime" function in util

With beautifulsoup4 the manual test takes 49.39 seconds,
with original 'ugly' regex it takes 37.22 seconds.
The difference is more than 10 secs, so the changes are not needed. This PR should be closed without merge.


Content-Type revamping

I wanted to start a discussion around the future of Content-Type and what direction everyone thinks we should go in. @NBTX mentioned a great idea in #63 which I'll requote:

I think we should make content-type a text field with 'command line completion' (autocomplete) for commonly used content types, rather than restricting to these two content types.

I personally love this idea. In addition to the auto-complete, a user could chose their own custom type, so that new types would not have to be manually implemented (#88).
But a related issue I see is that Content-Type is a header and nothing more. POST/PUT requests don't require a Content-Type header to succeed, odd as it would be to omit one. Within the context of postwoman UI you could technically have a Content-Type in the header section while the Content-Type dropdown was selected. It wouldn't be apparent to the user which one was actually set.
So I propose a few changes. First is to move the headers above the body, making the hierarchy Request > Headers > Request Body > Authentication > Parameters > Response > History. Second, remove the Content-Type dropdown and use it within the Headers section. Third, auto expand the Headers sections when requests types that expect Content-Type is selected--when this happens, Content-Type can pre-populate with application/json. The user is then free to modify that header or remove it entirely.
Open for discussion--when a conclusion is met I'll make a separate issue detailing the plan

Looks like no discussion needed so I'll be running with this!

Revamping UI is under construction. Changes will reflect your suggestions ✌

@nickpalenchar Just letting you know I'm working on autocomplete at the moment already.

Very nice, thanks for letting me know 👍
On Fri, Aug 30, 2019, at 8:07 PM, John Harker wrote:

@nickpalenchar https://github.com/nickpalenchar Just letting you know I'm working on autocomplete at the moment already.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/liyasthomas/postwoman/issues/99?email_source=notifications&email_token=ABZQYRJ3XH5EARHMCRQG7MLQHGY43A5CNFSM4ISIR6J2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5TA44A#issuecomment-526782064, or mute the thread https://github.com/notifications/unsubscribe-auth/ABZQYRLKLWEGQRLQIC4HIH3QHGY43ANCNFSM4ISIR6JQ.

Is this implemented? I can see some PR was merged, then reverted and merged again but I can't see any autosuggestions or completions in a header tab.

Content-Type for POST requests have been revamped with autosuggestions. Not for Headers. Headers can be added manually.


Replace docusaurus with sphinx

@bhawnasehgal Please check and merge, I have added a basic structure for using sphinx for our docs project.

@lorforlinux good job!


My first branch

I have created a new branch, created a file, and committed.

I am kind of getting stuck here


Training models with 24000 Hz audio data

Thank you for your nice works!
If I would like to train CARGAN with 24000 Hz audio data, besides SAMPLE_RATE in cargan.constant.py, what other parts of the code do I need to modify?

You might try tuning the chunk size and autoregressive input size. That's probably it.

What formula is used to determine autoregressive input size?
I'm battling to tune it for 24000 Hz audio data.

It might be that the causal receptive field of the generator is too small to for the larger chunk size. You could try tuning that.


I want to set the font.

I want to set the custom Font to richeditor Please help me.
On Activity launch the  cursor should be in the richeditor by default. How should I implement.

How did you achieve this?